|
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)
Introduction
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 (magi@iki.fi)
- Client: Jani Argillander (japear@utu.fi)
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.
Other
- 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
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.
References

Last modified: Fri May 16 03:35:27 EEST 2003
|