Project status - Liquid War 6
Description: Liquid War 6

Next: How you can help, Previous: In a nutshell, Up: Introduction

### 1.2 Project status

#### 1.2.1 What works, and what does not (yet)

As of today, the game is in beta state. It can be installed, and you can toy arround with. You can even play with. It is still far from being complete as some key features are still missing.

What works:

- The whole framework is here, some functions are not implemented yet, but the bases are set up, and they are believed solid. The game is very modular, and is fully threaded. It is designed so that graphics, sound, network and bot backends can be hacked at will. It has a complete self-test suite, many debugging built-in tools, and is regularly checked with automated tools. For instance, you can check reports concerning global references, code coverage and cyclomatic complexity. This is not a quick hack.
- Documentation. Yes, you're reading it.
- Version 0.0.7beta is playable. Local game between humans (up to 4 players) is possible. Two bots are implemented, named random and stupid. No great players but well, they move the cursor. A new “deatchmatch” mode, different from LW5, is in place.
- Liquid War 6 already has some features which are nowhere to be found in Liquid War 5, such as multiple layers. It can be worth the upgrade.
- Maps. A number of interesting maps have already been designed (thanks to Kasper Hviid).
- The game runs natively on GNU/Linux and has been ported to Microsoft Windows and Mac OS X. Binaries are available for all those platforms. Use at your own risk. If in doubt, get the source and compile.

In the near future:

- Network play. Top-level priority. Yes, network has been promised for months (years?) and is still not there. I said “when it's done”.
- Fix bugs ;) The current engine is somewhat buggy, fighters might loose the cursor, it clearly needs polishing.

In the long run:

- Write new graphical backends so that the game does not require Mesa or any OpenGL-like subsystem. The idea is to get rid of the 3D-accelerator dependency.
- Implement all the fancy 3D features, make it possible to play Liquid War 6 on a Moebius ring.
- Use the cool features of CSound to provide dynamic, contextualized sounds & musics.
- Optimize the bot algorithm, which is probably a complex AI problem.

You might be interested in checking the following URLs, which give a view on opened tasks and bugs:

- bug list: http://savannah.gnu.org/bugs/?group=liquidwar6
- task list: http://savannah.gnu.org/task/?group=liquidwar6

#### 1.2.2 What has changed since Liquid War 5.x?

Liquid War 6 is a complete rewrite of Liquid War 5. The rewrite started in 2005. So a good question is “was the rewrite worth it?”...

Here's a list of key improvements:

- appearance, global rendering quality. Call it the way you want, Liquid War 6 simply looks nicer than any previous release. Period.
- level features, including multi-layer (allowing the map designer to create bridges and tunnels), wrapping (fighters disappearing on the left can reappear on the right). Those really change the gameplay.
- deathmatch mode. Give it a try, it's now the default mode, and definitely changes the rules.
- team profiles, as well as special “weapons”, which are tricks you can play on opponents.
- modularity, overall code quality. While this is not a user-visible change, the game is far less monolithic, therefore hacking to revamp the graphics engine, the algorithm, whatever, is easier. The situation has changed from “this is impossible to hack” to “OK, how much time can this take?”. So while one can't promise every idea will be implemented some day, at least many more things become possible with the new codebase.

The most interesting change is still to come, and concerns network games.

Stay tuned.

#### 1.2.3 Revision history

Liquid War 6 releases are “codenamed” after famous, historical, real or mythical characters. Here is a short revision history. For details, see the `ChangeLog` and `NEWS` files distributed with the game. Additionnally, there's an ever-increasing “stamp” number which is incremented each time a build is done with a different source. Latest versions use the stamp as the revision number (the version 3rd number).

- 2006-12-18 : 0.0.1beta
- 2007-09-07 : 0.0.2beta
- 2008-01-30 : 0.0.3beta, codename “Napoleon”, stamp 549
- 2008-09-19 : 0.0.4beta, codename “Clovis”, stamp 756
- 2008-12-20 : 0.0.5beta, codename “Henri IV”, stamp 1082
- 2009-01-10 : 0.0.6beta, codename “Cesar”, stamp 1124
- 2009-10-03 : 0.0.7beta, codename “Geronimo”, stamp 1465
- 2010-07-05 : 0.0.8beta, codename “Attila”, stamp 1658
- 2010-08-23 : 0.0.9beta, codename “Chuck”, stamp 2096
- 2011-07-29 : 0.0.10beta, codename “Gengis Kahn”, stamp 2562
- 2011-10-02 : 0.0.11beta, codename “Ho Chi Minh”, stamp 2785
- 2011-12-18 : 0.0.12beta, codename “Aguirre”, stamp 2938
- 2011-12-24 : 0.0.13beta, codename “Blackbeard”, stamp 2950
- 2014-01-04 : 0.2.3551, codename “Davy Crockett”
- 2014-03-26 : 0.4.3681, codename “Hannibal”

#### 1.2.4 Road map

The game will probably be labelled “6.0.0” when network mode is up and running. Until then there will probably be other improvements concerning gameplay and appearance (“eye candy”). There's a balance to keep between the major goals such as “make that network thingy work” and the very real fact that “hacking must be fun”.