An FP game engine for Scala.
Indigo is a game engine written in Scala for functional programmers. It allows game developers to build games using a set of purely functional APIs that are focused on productivity and testing.
Indigo is built entirely on Scala.js + WebGL, but it's sbt and Mill plugins will export games for web, desktop (via Electron), and mobile (via Cordova). Hypothetically consoles could also be supported.
Documentation can be found on indigoengine.io.
The root of the project contains a very very simple
shell.nixfile that, if you have nix installed, will give you all the tools you need to build Indigo by running
You will need:
On Mac / Linux, from the repo root to do a full build and test:
On Windows, open up powershell and run:
NOTE: You may have trouble installing or running the glslangValidator. As long as you have installed it (e.g.scoop install glslang) the build will continue, it's just that the shaders may not be validated.
There is also another script which is a bit faster since it doesn't build the examples or demos.
The list above covers the software needed to build Indigo itself, but to run a game you may also need:
http-servervia npm, or Python's