Smash Battle is a really cool game made by Bert Hekman and Jeroen Groeneweg. Of which Jeroen is now a collegue of mine at Tweakers.net.
It supports up to four players, you can use gamepads and the multiplayer is best out of five. You can get powerups in the game like extra damage, health pack, armor etc. :)
(I see that in the codebase also a single player is under development!)

Network version

I decided to add a network multiplayer gametype to it, and I develop that in a separate branch. It supports more than four players.

Currently the network multiplayer supports only bullets and mines (your default equipment). Powerups do not yet appear.
All damage to players or tiles is determined on the server. The clients are trusted though, to send their correct player positions, shots fired etc.
You could theoretically cheat (up to a certain level) by modifying and compiling your own client, but it is far easier to implement a network multiplayer if I can trust clients somewhat.
This can easily be rewritten though, and if you play with low lags you will probably not notice any difference. But I think you will notice if someone is cheating.

Pre-alpha test release

It's a pre-alpha because the gametype is not completely finished yet, if there are more than two players a normal best out of five multiplayer starts.
Once the game has started, you cannot join the server anymore.
You can already test it out simply install the current release of Smashbattle.

Note that the update command might give you this if you are running 64 bit:

Ign http://us.archive.ubuntu.com quantal-backports/universe Translation-en_US
Fetched 1,032 kB in 30s (33.7 kB/s)
W: Failed to fetch http://repository.condor.tv/dists/lucid/main/binary-amd64/Packages 404 Not Found
E: Some index files failed to download. They have been ignored, or old ones used instead.

You can ignore this error and continue installing the 32 bit version.

The game should now run, but to use the pre-alpha, you have to replace the 'battle' binary with mine:

While developing I sometimes put #include's above the function where I use stuff from it.
This is when I feel like I might refactor the code, I can easily remove the #include again. Works for me, but it results in some stray #include's.
Also I'm not sure about my design choice of making server and client singleton's (basically global classes).
It was easy so I could weave the client/server code into the game rapidly, but I think it may need to integrate with the existing classes better, and use polymorphism a bit more here and there.
Example: I have a few places in the code where I do different stuff based on Main::runmode static global, for server do this, for client do this..

Appreciating the time and energy you put into your blog and in depth information you provide. It's good to come across a blog every once in a while that isn't the same unwanted rehashed information. Excellent read! I've saved your site and I'm adding your RSS feeds to my Google account. ccbbfaebgafegege

Leave a Reply

Name (required)

Mail (optional, NEVER displayed!)

Website (optional)

Comment may not be visible immediately, because I process everything manually.**