Starpoint Arena


This is an overview of the most important platform independent game implementation issues.

Check Application implementation overview for information about 2D and 3D application implementations.


The main classes relevant during game are shown in this UML-diagram:

The game sequence is as follows (according to the GameState-updates frequently sent to the update()-method of the main application:

The main game sequence while a level is played is the loop with the four states RoundBegin, RoundBeforeGettingMoves, RoundBeforeMoves, RoundBeforeUpdate. Each GameState-object contains an animation index as shown in the diagram that is used for a 4-phase-update per round. For smooth painting, the 2D-painters manage a repaint-counter, that is used to smoothen moves and animations during the 1-5 repaints per phase. This sequence while playing a level is as follows:

The sequence when a figure picks up an item is as follows:

Extending the game

Starpoint Arena can easily be extended by:
  • Items - check class for details
  • ComputerFigures - check class for details
  • Fogs - check class for details

Copying a JAR with own extensions into the lib-folder automatically makes them available in the quest editor.

Check StarpointArena_Doc.html for further information.

API documentation

Package Description
Contains main classes for StarpointArena.
Contains classes for game state changes that are collected during one game update cycle.
Contains classes for the level editor.
Contains event handler and platform independent event classes for input events.
Contains the classes for the StarpointArena game.
Contains the figure subclasses, that implement the individual figure behaviours.
Contains the fog subclasses, that implement the individual fog behaviours.
Contains the item subclasses, that implement the individual item behaviours.
Contains listeners interfaces for different events during the game.
Contains some platform independent graphic objects.
Contains readers and writers for different file based info objects.
Contains classes for the league game.
Contains a (more or less unused yet) Logger.
Contains network handling components and message objects.
Contains 2D painters.
Contains special 2D painters for things.
Contains 2D painters for level editor.
Contains menu item implementations.
Contains classes for sound updates.
Contains state classes for UI updates, replay and best move storage.