Contact info
Free Software
About me
   Curriculum Vitae

©Marko Grönroos, 1998

WarWorld - Real-time strategy game prototype

First alpha version 0.1.1 works nicely 1.2.2000. There are various small glitches and crashes, but at least players can shoot each other and destroy their units. And it looks pretty.

Original plan for the software (in Finnish)


WarWorld (project work name) is a prototype of a multi-player real-time strategy game in a two-dimensional world. Commercial games in the genre include titles such as Dune, Command&Conquer, StarCraft, Total Annihilation, WarZone, etc.

Currently there exists no such game for Linux, even a commercial one (Myth II is slightly different kind), although there are some freeware projects in progress [Boson].

The intention with WarWorld is not to create a complete, full-featured game, but a prototype that contains just the essential basic features.

Development team:
  • Server: Marko Grönroos (
  • Client: Jani Argillander (

Basic prototype features

  • We use a simple, N*M gridded map. The unit positions are real-valued coordinates. In the prototype, the map is empty, i.e., there are no obstacles. It is also totally visible for all the players, i.e., there is not Fog-Of-War.

  • There are two kinds of combat units in the prototype: a Tank and a TankFactory. These are defined in an open Unit Description File that makes it very easy to define new unit types with different attributes. On client-side, the unit types have a bitmap representation.

  • Only weapon implemented in the prototype is LaserBeam. It travels between the firing unit and the target immediately.

  • There is no path-finding algorithm in the prototype; units try to move linearly between waypoints, and stop if they collide with anything. The movement is done smoothly, with acceleration, deceleration, and turning.

  • The game has resource handling for building new units, but there is no way in the prototype to acquire new resource points.


  • Implementation language is C++.

  • Communication is based on sockets, and is currently text-based.

  • The server uses a private base class hierarchy MagiClib. It is compiled using the Automake/-conf build system, and is under CVS.

    • magic-1.0.tar.gz (170kB) - MagiClib source
      Obs! Read the installation instructions in the warworld README file.
    • warworld-0.1.1.tar.gz (60kB) - WarWorld server source.
      Server i386 binary: wwserver.gz (70kB), object description file units.odf (1kb)
    • wwclient-0.1.1.tar.gz (1.6MB) - Client source, requires Qt 2.x.x (package contains precompiled binary for i386, but the binary requires qt-2.1.0 so you will probably have to recompile it).

  • The client is built with KDevelop, and uses the KDE and Qt libraries. KDevelop uses internally the Automake/-conf system. The client is not currently under CVS.


Future of the game is open. CVS accounts for the server and common code can be given by request.

  • Client and server have no common code currently. They would have to be fused together. Thus, development would first focus on the wwlib library that contains code useful for both the client and server.
  • The agent-oriented object architecture has to be developed much further.
  • Several data structures, algorithms and AI features have to be implemented: advanced map handling, advanced (predictive) collision detection, pathfinding, in-range-checks, field-of-vision-checks, coordinated unit movement, tactical unit AI, strategic unit AI, etc.
  • Development of the new client should be started from an open client-side protocol module. It might first be used to build external AI players, and then used as the basis of the new graphical client.
  • The above features are prerequisites for the development of a new client. The current client can be developed further in many respects, for example basic user interface, graphics effects and sound. Developing it completely under KDevelop might be a good start.


Pääsivu Takaisin Last modified: Fri May 16 03:35:27 EEST 2003