1
0
Fork 0
mirror of https://github.com/ftsf/nico synced 2026-01-14 00:11:44 +00:00
No description
Find a file
2024-07-09 10:14:20 +10:00
.github/workflows Added docs task and workflow 2022-10-04 16:34:20 +11:00
exampleApp Auto clean up SDL2 zip in windows deps task, use tar 2022-02-21 15:58:49 +11:00
examples Added default value for rotShear benchmark 2024-07-09 10:14:20 +10:00
nico fix import 2023-07-15 17:07:47 +10:00
tests handle loading RGB images, fixes #84 2022-02-21 15:40:29 +11:00
.gitignore update examples 2021-06-14 16:22:32 +10:00
API.md Add more tilemap documentation 2021-12-22 20:54:06 +11:00
LICENSE update licence 2017-05-10 22:33:11 +10:00
nico.nim blitShearRot - simplified code 2024-07-09 10:14:20 +10:00
nico.nim.cfg lots of changes, removing js backend for emscripten, cleanup android build and example 2021-06-14 15:00:16 +10:00
nico.nimble bump version 0.4.10 2023-07-15 17:08:37 +10:00
nicoandroid.nim lots of changes, removing js backend for emscripten, cleanup android build and example 2021-06-14 15:00:16 +10:00
nicoandroid.nim.cfg lots of changes, removing js backend for emscripten, cleanup android build and example 2021-06-14 15:00:16 +10:00
nicoboot.nim Remove useless line of code in nicoboot.nim 2022-10-04 16:34:45 +11:00
nicosynth.nim lots of changes, removing js backend for emscripten, cleanup android build and example 2021-06-14 15:00:16 +10:00
nicosynth.nim.cfg lots of changes, removing js backend for emscripten, cleanup android build and example 2021-06-14 15:00:16 +10:00
README.md MacOS works 2022-10-04 16:35:17 +11:00

NICO Game Framework

test

NICO is a simple game framework for the Nim programming language inspired by the PICO-8 API.

Supported platforms:

  • Windows
  • Linux, including RaspberryPi
  • Web/HTML5 via Emscripten
  • Android
  • MacOS

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 <yourname> <projectname> <directory> to create a new directory with an example base ready to start working with.
  • You can watch a quick tutorial here
  • Native build:
    • You'll need SDL2 for native builds, on Windows, ensure SDL2.dll is copied to your project directory.
    • From your project directory run nimble runr to build and run the example as a native build.
    • From your project directory run nimble rund to build and run the example as a debug native build.
  • Web build:
    • For web builds you'll need Emscripten.
    • From your project directory run nimble webr to build for web in release mode.
    • From your project directory run nimble webd to build for web in debug mode.

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

Games made using NICO: