Game Of Bases
Goba is a remake of a classic game Flash
Attack.
Game idea
There are (at most) 4 players. Each player has a base and four
tanks. The tanks may move, lay mines and fire at other tanks.
Annihilate the enemies!
Screenshots
Goba in action
ver 399
ver 432
ver 475
ver 566
Download
Binaries are available for Linux (Compiled in Ubuntu 6.10).
Source is available, too. The
software is written in Objective
Caml, and has successfully been compiled with these dependencies:
- Ocaml 3.09.2 (earlier versions probably work too). Available in Ubuntu as package ocaml-nox .
- Findlib 1.1.2pl1 (earlier versions probably work too). Available as ocaml-findlib in both Ubuntu and Debian.
- Ocamldsort 0.14.3. Available in Ubuntu and Debian as package ocamldsort .
- SDL 1.2. Available in Ubuntu as packages libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-ttf2.0-dev libsdl1.2-dev .
- OcamlSDL 0.7.2. Available in Ubuntu as package libsdl-ocaml-dev .
- Sexplib 2.8.2 (earlier versions probably work too). Not available in Ubuntu or Debian.
- Imagemagick for cropping some bitmaps for tile graphics. Available in Ubuntu and Debian as package imagemagick .
I haven't tried Godi
out, but it may be worth the trouble using it for those Ocaml-based
packages, in case your distribution doesn't support any of the packages
out-of-the-box. Atleast findlib, sdl-bindings and sexplib are available
with it.
Change log
- You can no longer restore full health/ammo/etc by reconnecting the client :-).
- Base can now launch bomb! (angle+distance)
- Changed the way base laser works. Now, instead of fixed number of charges, it continuously recharges up to 10 seconds of blast time. The best performance of the laser can only be reached by using it continuously for atleast three seconds.
- Driving causes (very slight) damage to grass - enough to see common traffic patterns.
- Perhaps fixed mines not going away properly after detonation.
- Main view now displays relatively where the tanks are, when they are not visible in the it.
- Bases now have lasers! Aim with P, shoot with L.
- Added end-game view, where the player can view the whole map (after their base has been destroyed).
- Player can now join the game even if their base is destroyed.
- Also, bases can now actually be destroyed..
- Moved sound files into their own directory.
- Larger mine explosions with a nicer explosion pattern.
- Create slightly larger maps (100x100 instead of 80x80) with different parameters. MapGenerator can sometimes fail to find space for four players, in which case the server must be restarted (it'll bail out with an exception).
- It's easier to destroy mountains.
- Handle compile time dependencies better..
- Fixed bug regarding turning tank too much counterclockwise
- Better tile graphics (added lousy mountains, added softer
edges around grass patches, added grass that covers tanks)
- Internally better (server uses object classes for maintaining object state).
- Tank orientation is now passed to server (looks better)
- Tanks are now controlled by turning and adjusting motor speed, not by pointing to the direction you want them to do. Similarly firing is now relative to tank orientation.
- Some performance improvements (created bitmaps are cached already in the map structure, not only via their construction pattern which requires doing a hash table lookup)
- Fixed not being able to shoot enemy base (or rather, destroy it) (Source/binaries
- Tank view flashes red on damage
- Fixed network jerkiness-effect
- Added (some) tile graphics
- Better internals (bitmap composition, uniform object identification for map elements and objects, better extracting and feeding back of state for objects, dropped redundant protocol messages..)
- Flashing mines (randomly)
- Bigger tank views, smaller base view
- Better graphics
- Fixed bug that caused the game to increase cpu usage continuously
- Fixed some write error cases in server
- Apparently introduced some jerkiness to network play..
- Maps are now generated on server startup, instead of being loaded
from map.txt (map.txt-support is gone at the moment) (Source/binaries
Playing
First you start the server. It starts to listen in port 61753. The
option 'Start server' in the game actually does nothing :).
Second you start the game. If your host doesn't match the ones
hardcoded in the game (localhost and jolt.modeemi.cs.tut.fi)
you'll need to enter the host name in the command line, as the
first argument.
Now you're set to go! F1 provides keyboard help. The game doesn't
yet say who's won or died, so you'll need to figure that out
yourself..
Notes
- Enemy units cannot be destroyed if the enemy client is not
connected.
- If you build from the source, you want to build and run the
optimized version (goba.opt) of the game binary.
- Bug reports are appreciated. Especially helpful the bug reports are if you
- Build the binary yourself
- Use the byte-code binary (not the optionally produced .opt-variety)
- Put OCAMLRUNPARAM=b to the environment
to produce backtraces, in the event the bug manifests itself via an uncaught excaption.
Erkki Seppälä
Last modified: Fri Mar 23 09:41:28 EET 2007