Skip to content

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

License

Notifications You must be signed in to change notification settings

funfoolsuzi/emojibomb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 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 includes a pair of server and client implementations with TCP as transport and Cursive, a TUI(Text User Interface) library as UI. This pair of implementations serves as example implementation.

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.

starting up the server

git clone https://github.com/funfoolsuzi/emojibomb.git

cd emojibomb/simple_tcp_server

cargo run

example server will be listening on port 8888. It will binds to wildcard IPv4 addresses. You can change it to local loopback(127.0.0.1) to be safer on emojibomb/simple_tcp_server/src/main.rs if you want. (as of May 21, 2020)

starting up the client

open another terminal

cd emojibomb/simple_tcp_client

cargo run

client will prompt you to enter ip and port. If you are running locally, 127.0.0.1:8888 would work. Or your LAN or ISP IP with port 8888. (as of May 21, 2020)

ESC to exit 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

No packages published

Languages