This is designed to be a bomb man game with Emojis as playable characters.
The core library is a framework that can be used to implement the game with different types of transport and UI. This repo ships an emojibomb binary that implements the game with TCP as transport and Cursive, a TUI(Text User Interface) library as UI.
This repo is still very early stage
To set up the demo/example implementation, your system needs to have ncurses. Other than that, everything else can be installed on most of modern OS's.
- Rust and Cargo. Recommands using rustup to install them. Mac users can find it in Homebrew.
The main package includes a single emojibomb binary that can run as a server, a client, or both in one process.
Run a local hosted game:
cargo run --bin emojibomb -- host 127.0.0.1:8888Run only the server:
cargo run --bin emojibomb -- server 0.0.0.0:8888Join an existing server:
cargo run --bin emojibomb -- client 127.0.0.1:8888The client prompts for a player name if one is not provided. You can also pass it as the last argument:
cargo run --bin emojibomb -- host 127.0.0.1:8888 smileyUse w, a, s, and d to move. Press ESC to exit the client.
+-Emojibomb---------+ +-Transport---------------------------+
| | | |
| +-------------+ --msg--> +-------------------------------+ | Server
| |Server Engine| | | |Server Transport implementation|------> Implementation
| +-------------+ <-msg--+ +---------------+-+-------------+ |
| | | ^ | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | v |
| +-------------+ | | +---------------+-+-------------+ |
| |Client Engine| <-msg--+ |Client Transport implementation+--------------+
| +------+------+ | | +------------------------+------+ | |
| | | | ^ | |
+---------|---------+ +---------------------------|---------+ v
| | Client
| msg Implementation
| +-UI-------------------------|----------+ ^
| | | | |
| | +---------------+ +-------+-------+ | |
+-state update-> |Output(Display)| |Input(Keyboard)| +----------+
| +---------------+ +---------------+ |
| |
+---------------------------------------+