NEMO
[ 日本語 ]
※ it's beta for now
A functional game engine that can create emoji games.
Major Features
- Easy to create games with powerful functional languages (PureScript).
- Only emojis can be used as materials. Instead, there is room for creativity.
- JavaScript knowledge is basically unnecessary. You can concentrate on implementing game logic with functional languages.
- You can play on any device on which the browser runs.
Why PureScript
When making games in functional language, there were the following options.
Haskell -> If everything could be done with this, it was the best. However, it is difficult to play on any device.
Elm -> It was one of the good options when thinking about device independence. But there is no type class support. It is also recommended that you follow the Elm architecture.
PureScript -> There is type class support like Haskell. It will also be compiled into Javascript. Therefore, you can play on any device browser!
Why Only Emojis
Something restricted stimulates creativity.
I was very inspired by fantasy consoles represented by PICO-8.
There are severe restrictions on sprites, sounds, capacity, etc. that can be used.
On the contrary, These constraints inspire creativity and making the game more fun.
Just like this, I think that it is very interesting to have constraints that only emojis can be used in the Web platform.
Play Online
You can also add games you made with NEMO here.
If you want, please make issue or PR at Github Pages Repository
Installation
bower i purescript-nemo
Getting Started
Specification
- Language: PureScript
- Monitor Size: 1024x1024
- Emoji: 1388 unicode emojis
- Color: 16 html base colors
- Map Editor: Raw text (emoji) editing
- Sound Editor: Raw text (emoji) editing
- Input Interface: Keyboard, Touch Screen
- Frame Rate: About 60 FPS
- Working Environment: Browers on any device (It needs some GPU power)
Input Interface
Keyboard
/¯¯¯\_/¯¯¯\
| W | ↑ |
| A D | ← → |
| S | ↓ |
\___/¯\___/
Touch Screen
For mobile, it is equivalent to keyboard inputs that swiping on the right or left side of the screen.
※ The swipe origin is the touch position which started.
Examples
clone this repository first.
install
npm i
bower i
build
※ if you can not build with warning, please pulp build
once.
npm run build
npm run build:examples
open html (public folder) on browser
npm run open
access with tag (it may need reload)
public/index.html#hello
public/index.html#basic
public/index.html#emodius
Emojis
Under Developing List
high
- add debug mode
- more sound effect support (ex. noise)
- improve touch screen operation
middle
- interpreter which executes code on the web
- performance tuning
- iOS sound support
low
- emoji parser (purescript-emoji-splitter)
wait and see
- emoji rotate (45°, 135°, 225°, 315°) problem on canvas
- default emoji presentation CSS Fonts Module Level 4 - Editor’s Draft, 17 August 2018
Module Documentation
Contribution
Since it is beta version, wait for a while. If you find an improvement point, please give me an issue. Thank you.
License
※ About license of emojis' graphics are owned by each vendor.