2018-04-23 00:44:47 -05:00
# Gammarena Notes
2018-04-23 01:38:09 -05:00
## 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.
2018-04-23 00:44:47 -05:00
## Engine
2018-04-23 01:32:30 -05:00
### 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
2018-04-23 00:44:47 -05:00
### 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++