Welcome to Dime! Dime is an effort to build a modularized framework for Worldforge clients which will run easily on different platforms.

    The Dime Game View can be renderized using different components, which could be used to have different views (text, 2D, iso, 3D with different engines) without rewriting the whole client.

    Currently there are two Game Views: the dime main view which uses SDL + OpenGL, and the OGRE view which uses the OGRE 3D engine.

Current Dime Screenshot


2004-Jul-08 - Dime updated for Eris 1.2.0.

From now on, Dime officially uses latest Eris release (eris-1.2.0).
Plans are for the near future to integrate mercator terrain with PagingLandscapePlugin and Crazy Eddie's GUI.

2003-Oct-28 - Dime activity.

These days we've been having quite a bit of activity. We are setting the goals for the next dime release, and working with the media team to define the requirements to produce a werewolf game that will also serve as a media testbed.
The immediate goals are to get something playable (with Acorn servers), and get Dime running on windows.
A refactoring is also on the works.

2003-Sep-05 - Dime progresses.

Dime has been making slow progresses along the summer. I am currently involved in the Open Model Format definition, so 3d applications can share media between each other. This will make possible that the Dime Ogre component can use media from Cal3D, Crystalspace and other applications
Also, Dime plays nice with James' new server, Indri. Aslo character creation support has been added, and a glimpse of OOG chat (the last sentence said will appear on the Ogre game view). Hopefully more cool stuff will soon follow.

2003-May-05 - Cal3d meshes within dime.

Aglanor is coding the Cal3DOgreConverter class which is intended to convert models from Cal3d to Ogre format and back. The goal is that Dime uses the same media package as Sear, thus unifying the media distribution for all 3D clients (the two of them ;) making life easier for everyone, including of course the media team which will only need to worry about one format.
The current converter converts Cal3d meshes (a set of .cmf for a .cal model) into one Ogre .mesh, you can see a screenshot of munin's malebuilder here.

2003-Apr-03 - Dime is kickin' and alive!

I just realized this page hasn't been updated since the Flood. Dime has progressed a real lot since May 2002, the date of the last news item.
Dime has a lot of features now, has a console and a logging system, and can connect to the server, create accounts and enter the game world (thought it is not playable yet).
Xmp has been working on the widgets for the main SLD+OpenGL component, which are now quite advanced.
Aglanor has been working on the OGRE component, which is a GameView that uses the OGRE 3D engine. Also he's made the SoundService which renders 3D audio using OpenAL, the Open Audio Layer.
Soon there will be fancy screenshots and hopefully the first playable version.

2002-May-13 - Flurry of Activity.

We have had a flurry of activity over the past few months, starting with Adamgreg's Widgets, and finishing with Unicode support. There is still a lot to be done, and a lot of corners to be polished, but dime is coming along quite nicely. We now have textboxes and Labels, and buttons. The data model is nearing it's first real release, and we are nearing a usable version of dime. Keep up the good work guys!

2002-Mar-16 - Preliminary theme format proposal added.

Added a preliminary version of the WF Theme Proposal

2002-Feb-16 - Task List and Project Plan updated.

The Dime Task List (formerly feature list) was updated, and the tasks planned for the next iteration (Dime version 0.1.1) were marked. It also contains a section on project metrics at the end.

2002-Feb-16 - Dime 0.1.0 Released

Dime 0.1.0 was released. It contains our current work up until now, which is a basic framework, some services, and an application that starts but doesn't do anything. A CVS tag named "dime_0_1_0" was created in forge/clients/dime/.

2002-Feb-16 - Weekly Project Meeting

On the weekly Dime meeting we went through status updates, welcomed a new developer, tbp, who will be working with nikal on GuiService, discussed the features to be implemented for the next release (Dime version 0.2.0), and discussed the way the GuiService and InputService should get the input from SDL.

2002-Feb-12 - Methodology discussion, planning for iteration 2

There was an interesting discussion about possible ways to apply extreme programming methodologies to Dime.

A draft of a development methodology for dime was created as a result.

We also started collecting a list of features for iteration 2 (and sometimes later iterations).


Archived News

Meetings and Discussions

IRC Bookmarks

Bookmarks of Dime discussions and meetings on IRC (#dime at irc.worldforge.org).


Dime Concept Document

This document describes the history and motivations that led to the starting of the Dime client, and our goals for it.

Battleplan for Dime

The dime battleplan, detailed goals for the near future and general goals up to version 1.0.

Dime Task List and Project Plan

Contains the list of features to be implemented for Dime divided up into suitably sized tasks, and with notes of which ones should be implemented in the current iteration. Focus is on features to be implemented in release two (version 0.2.0).

We will work towards release two in many iterations, each about a month long, and each increasing the minor version number (0.1.1, 0.1.2, etc).

Also contains some project metrics.

Dime Design Document

The core Dime system is built as an application framework. It consists of Services, a central Data Model, Components, Scripting capability, and Interface Layout support. This document provides a view to the internal design of Dime.


Services provide various low level services to higher level platform and implementation independent components and scripts. This document describes what Services are in more detail, and what services we will implement for Dime.

Data Model

The Data Model allows components and scripts to use and monitor information provided by different services, and to set properties and invoke actions provided by services, through a standardized interface. This design document takes a closer look at the Data Model, and the standard directory structure it will have in Dime.


TODO: To be written.


TODO: To be written.

Working Notes

This section contains various design notes produced during development, that are used for communicating between developers, and to put down designs or ideas. They are normally not kept up to date, but they are listed here in cronological order so that new developers can follow the trail of ideas.

Dime Development Methodology

Various practices and rules borrowed from XP and other places, that we try to follow.

Data Model Framework Implementation

An implementer's view on the Data Model. The question is, how to keep both, the effort of using it and providing additional branches of the directory structure, to a minimum.

Architecture document

The modules and libraries that make up the Dime client, and their internal dependencies and roles.

Out of date, as it seems we will not split up dime itself in different libraries, or if we do, in a generic framework library and in a Dime application that implements dime specific services and functionality, and uses the framework. TODO: Update this document to mainly describe the external libraries we use.

ParaGui Extension library class diagram draft

Some GUI classes needed for docking panels, internal windows, and similar things.

[Outdated, we can implement docking panels in a better way (a docking panel can accept drag & dropped docking panels to any of it's edges, to the center of it (creating a tab), or to the seam between two docking panels that it contains). Ask zzorn for details.]

WF Theme Proposal The

Prposal for generic theme format to use for new WF clients.

External Resources

Some quick links to useful external resources and interesting reading for Dime Developers

Writing JavaDoc Comments for Doxygen.

Evolving Frameworks.

Extreme Programming: A gentle introduction.
A very good introduction to the Extreme Programming methodology, with key concepts and rules organized on small pages, and links to the Portland Pattern Repository WikiWikiWeb and other sources for more in depth descriptions, examples, and discussions of the usage of the practices.

Autoconf Tutorial

STL reference