 |
Overview
Project Snowman is a networked, multiplayer game where teams of snowmen battle eachother in a capture-the-flag style match. In its current form, the rules of the game are fairly simple:
- Each connected player controls a single snowman which is on one of two teams in the playing field.
- Each team may have other human controlled network players, AI robot snowmen players, or some combination of both.
- The object of the game is to capture the other team's flag, and bring it back to your base.
- Each snowman also has snowball throwing capabilities. If another snowman is hit with a snowball, it gets bigger and slower. If a snowman gets hit too many times, it will fall over, drop the flag if it's holding it, and respawn somewhere on the map after a delay.
Project Snowman was developed using Project Darkstar as its underlying server-side technology. On the client side, it uses jMonkeyEngine, and is thus written in 100% pure Java. While it is still light on features, we are hoping that through community support, Project Snowman develops into a mature game, and serves as an excellent showcase of Project Darkstar's features and capabilities.
Getting Started
For Players
The current distribution of the Project Snowman game is a single zip file that contains four runnable components:
- The Project Snowman server
- The Project Snowman interactive 3D client
- The Project Snowman client simulator
- The Project Snowman world editor
There are two requirements that you must have on your system in order to run the game:
Project Snowman should run on the following platforms:
- Windows Vista
- Windows XP
- Linux (any 32 bit distribution)
- Linux (any 64 bit distribution)
- Solaris
- Mac OS X (Intel Mac's only)
Assuming the above requirements are met, after downloading and unzipping the distribution, each of the components can be respectively run as follows
- The Project Snowman server (default configuration):
ant run-single
- The Project Snowman interactive 3D client (connecting to server running on localhost)
ant run-client
- The Project Snowman client simulator (connecting to server running on localhost)
ant run-sim
- The Project Snowman world editor
ant run-editor
Please see the README.txt included in the distribution zip file for details on how to:
- Run the server under different configurations (Including configuring the number of human players per game, the number of robots per game, and usage of BDB Java edition).
- Run the client, connecting to a server other than localhost
- Run the client simulator, connecting to a server other than localhost
- Modify additional configuration options
For Developers
Project Snowman is an open source game released under a BSD License. The source code is available in a Subversion repository and is organized such that it can be built using Maven. Both of these tools are required in order to get and build the project from source. Assuming this, here is a quick set of command line operations that will checkout the code from the repository, and build it:
svn checkout https://project-snowman.dev.java.net/svn/project-snowman/trunk project-snowman-trunk
cd project-snowman-trunk
mvn install -Pbdb-java
The final product, which is the same as the one consumable at the player's download link above, will be built and placed in the ./snowman-dist/target directory as a zip file. Additionally, it and each of the artifacts produced by the project's submodules will be installed into your local Maven repository (typically in the ~/.m2/repository directory). For additional details on how Maven works, see the Maven documentation at the Apache website.
Design Documentation
The current implementation of Project Snowman has a fairly simple design. The server is setup to host multiple, isolated games. Each game is homogeneous, and contains a configurable number of human, network connected players, and server side robots. As players connect to the server, they are automatically matched into a new game when enough players have connected. When a game ends, players are disconnected automatically, and must reconnect to join a new game. See the Game Lifecycle document for details. There is no user-controlled matchmaking, player accounts or statistics, or authentication implemented in the game. All of these features are on the TODO list and would be great steps towards making Project Snowman a mature game.
Once in game, Project Snowman uses an asynchronous message passing protocol for communication between the client and server. Clients send messages representing in-game actions such as Move, Attack, etc. Upon receiving these messages, the server verifies their content (preventing cheating clients), and broadcasts the result of each action to the other human players in that particular game. Additional details can be found in the Message Protocol document.
HOWTOs
|