This is a host for Ocelot Wars programming competitions. In the competition, programmers create bots that participate in Ocelot Wars games via a language agnostic Websocket-based API.
An Ocelot Wars game consists of a two dimensional map containing resources, player units and player bases. The objective of the game is to gather as many resources as possible. When the map's resources are depleted, the player with the most gathered resources wins.
A spectator client visualizes the score, currently running games and replays of past games. This allows the audience and the programming participants to get a feeling for the progress of the competition.
The general idea of the programming competition is based on Mäxchen.
Later iterations of the game will potentially
- differentiate the API into
- a simple API for quick programming competitions (multi-hour)
- a more advanced API for fine-grained control and longer competitions (multi-day)
- potentially play in space or on earth
- have a different game goal, e.g. player that survives wins (implies some way of eliminating the other players)
- have various unit types
- have units that need resources to be constructed
- have resource types
- have technology tree(s)
We use Gradle as the build system with the Gradle Wrapper. To build the project either use
./gradlew
on Linux/Mac or
gradlew.bat
on Windows appending the desired command like test
to the call.
We use EditorConfig for the basic formatting settings. There are plugins available for most IDEs and editors.
(Eclipse) configuration ocelot-wars-code-conventions.xml. (Others) todo
Prefer rebasing over merging
(Eclipse) add to favorites:
- java.util.Collections.*
- java.util.stream.Collectors.*
- org.hamcrest.Matchers.*
- org.junit.Assert.*
- org.mockito.Mockito.* (Others) todo