Getting involved with Shotcaller should be easy. Right now we are looking primarily for designers and programmers, but you're welcome to reach out about other fields of endeavor as well!
All participants must abide by the Amethyst Code of Conduct.
- https://www.youtube.com/extracredits
- http://www.designersnotebook.com/Design_Resources/No_Twinkie_Database/no_twinkie_database.htm
- https://www.amazon.com/Theory-Game-Design-Raph-Koster/dp/1449363210
If you’ve grokked the following resources, you should be able to work on the Shotcaller codebase with ease.
- https://doc.rust-lang.org/book/ (no need to fully grasp it)
- https://bfnightly.bracketproductions.com/rustbook/chapter_0.html
- https://pragprog.com/titles/hwrust/hands-on-rust/ (ask Erlend for early-access)
- https://specs.amethyst.rs/docs/tutorials/01_intro.html
- https://kyren.github.io/2018/09/14/rustconf-talk.html
- https://www.jojolepro.com/blog/2020-08-20_event_chaining/
- https://rustwasm.github.io/docs/book/introduction.html
https://github.com/thebracket/bracket-lib
For a text-based game, Rust gives us agency over the entire stack, all the way down to terminal libs like Crossterm. By intentionally constraining ourselves to ASCII/tiles graphics for the first iterations of the game we maintain a narrow focus on game mechanics.
https://crates.io/crates/plank_ecs https://github.com/jojolepro/minigene
Shotcaller is built with Minigene, an ASCII/tiled game engine using a custom ECS framework called Plank. Plank is intended to be very similar to Specs, and it should be easy to learn if you've reviewed any Specs-related learning resources (see Learning Path below).
Amethyst Engine is too heavyweight for our immediate needs. It is also in a state of flux at the moment. Once Amethyst Engine has stabilized (1year+) we will certainly evaluate the merits of migrating to it.