Problem Description

MultiBatt is a multi-player space battle game. Each player is a at a separate work station, and commands a ship through a 2-dimensional, virtual space.

The virtual space is a "torus" - if you keep heading east, you end up at the western border, for example. Each player sees the game through a viewport, smaller than the space. One of our project decisions was that the player's own ship is always in the center of his viewport, so the ship is always visible to him.

A player may start a new game at his workstation or join an existing game. The creator of a game will decide when the game will begin, and until it happens, the players can type messages in a Chat Room, which are displayed on all the players' workstations.

Players can fire missiles and control their ships' velocity and direction using the keyboard (left, right, down and up arrows and space bar). Unaccelerated objects in the playing space, like the ships, missiles and asteroids, mantain a constant velocity, as in real space. But missiles don't keep present in the space forever - when they exceed their life time without hitting anything, they disappear.

Ships start with a certain amount of lives and strength. The players earn points when they successfully hit another ship with a missile, while the ship that is hit by a missile loses strenght. When a ship loses all of its strenght, the player loses a life. But the strenght of a ship can also be regained - after some time, all of the ships recover a fixed amount of strenght. It may also happen a collision between ships - in this case, both players lose a life. Players are given a specific number of lives before they are forced out of the game.

This is a summarized description of the problem that our group has designed. In the next topics, you can read our solution for this problem.