Skip to content

codimango/emojibomb

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EmojiBomb

MIT licensed

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.

Under development

This repo is still very early stage

Demo setup

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.

official client

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:8888

Run only the server:

cargo run --bin emojibomb -- server 0.0.0.0:8888

Join an existing server:

cargo run --bin emojibomb -- client 127.0.0.1:8888

The 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 smiley

Use w, a, s, and d to move. Press ESC to exit the client.

Architecture

+-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)|  +----------+
                        |  +---------------+ +---------------+  |
                        |                                       |
                        +---------------------------------------+

About

This is designed to be a bomb man game with Emojis as playable characters.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Rust 100.0%