# Gammarena Notes ## Goal The goal of Gammarena is to be a multiplayer first-person shooter deathmatch game similar to [OpenArena](http://www.openarena.ws/), with support for **custom character models, maps, and weapons**. Moddability and scriptability are concerns, bot AI is an eventual concern, but a single player campaign is currently **not**. Key to this is the ability to either natively load, or effortlessly import, various types of maps models used by other games. Gammarena runs as a client+server or as server only, and other clients can connect to it and run games on it. ## Engine ### Piston https://github.com/PistonDevelopers/piston #### Pros * Pure Rust * Under active development * Probably the most popular Rust game engine * [Widely used](https://github.com/PistonDevelopers/piston/wiki/Games-Made-With-Piston) * Has [tutorials](https://github.com/pistondevelopers/piston-tutorials) and [examples](https://github.com/pistondevelopers/piston-examples) * Also has [documentation](https://github.com/PistonDevelopers/piston/blob/master/GUIDE.md) #### Cons * May be lacking in features we require ### unrust https://github.com/edwin0cheng/unrust #### Pros * Pure Rust * Supports webgl (probably not relevant for us but nice to know nonetheless?) * Under active development * Has demos #### Cons * Under active development, still being worked on * More high level stuff (network support, model loading, levels) will probably need to be implemented * On the other hand, implementing these things helps the state of game development in Rust, generally. * We would eventually be "[rewriting ioquake3 in rust](https://github.com/ansuz/RIIR)" ### Cafu https://www.cafu.de/dive-in/ #### Pros * Under active development * Seems mature * Has [documentation](https://docs.cafu.de/) * Comes with [map editor](https://docs.cafu.de/#the_map_editor) * which can [port maps from other games/engines](https://docs.cafu.de/mapping:cawe:porting), apparently * Comes with [model editor](https://docs.cafu.de/#the_model_editor) * Has a [demo](https://docs.cafu.de/cppdev:startnewgame) * Supports Lua scripting #### Cons * C++ * May not be flexible enough for our use case * C++