NICO Game Framework
NICO is a simple game framework for the Nim programming language inspired by the PICO-8 API and built on top of SDL2 or the web.
What it does:
- Paletted Bitmap Graphics (you can load a custom palette up to 256 colors)
- Fixed or flexible custom display resolution with pixel scaling
- Sprite drawing, load png spritesheets, specify tile size per sheet (can load multiple and switch between them)
- Tilemap drawing, import json from Tiled
- Drawing primitives: pixels, lines, rectangles, circles, triangles
- Input: Keyboard, Gamepad, Mouse, Touch
- Sfx playback: load and play ogg vorbis files, configurable number of mixer channels.
- Built in chip synth
- Music playback: stream ogg vorbis files.
- Custom audio callback for generating your own sounds via code.
- Text drawing: load and draw fonts from png, supports variable width fonts.
- Export animated gifs
Installation
- You will need to have the Nim compiler installed
- Run
nimble install nico
- Run
nicoboot <projectname>
to create a new directory with an example base ready to start working with. - You can watch a quick tutorial here
- Make sure you have the required dependency: https://www.libsdl.org/download-2.0.php for native builds, no dependencies for web builds.
- From your project directory run
nimble runr
to build and run the example as a native build. - From your project directory run
nimble web
to build for web.
Learning
Why should you use NICO?
- It's fun and easy to use
- Learn Nim the fun way! It's a great new statically typed programming language that compiles to C.
- You can build for Web, Windows, Linux, Mac, Android, and potentially other platforms.
Future work:
- API Documentation
- More examples
- Tests
- Utility modules for common higher level tasks
- Browser to browser networking using WebRTC
- Immediate mode GUI
- 3D Utils and Rasterizer