This repository contains the source code of all the officially supported Scala libraries and frameworks supported by Purple Kingdom Games, which includes:
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).
Documentation can be found at: indigoengine.io.
An Elm-inspired Scala UI library for Scala 3.
The main documentation site, complete with installation instructions, is available here: tyrian.indigoengine.io/
Ultraviolet is a Scala 3 to GLSL (versions 100 and 300) transpiler library built on top of Scala 3 inline macros.
Please visit the official documentation site for more details.
A starter project for Indigo to provide rendering functionality specifically for ASCII art style roguelike games.
Documentation for the roguelike starterkit can be found at: rlsk.indigoengine.io.
Thank you to all our wonderful sponsors, and particularly to dedipresta for their generous support.
If you'd like to help advance our work, we are ever grateful for all forms of contribution, either by volunteering time or financial backing.
This is a predominately Mill based monorepo.
Aside from your usual Scala set up, the tools you may need are JS tools: Node.js, Yarn, and potentially Electron. There is a Nix flake provided, if you like that sort of thing.
You are highly encouraged to look at the very simple build.sh script, which you can run with bash build.sh.
The important thing to note is that running Scala.js linking on all of the modules at once is a very heavy operation that may grind your build to a halt.
So instead of doing ./mill __.fastLinkJS, you should do something like ./mill -j2 __.fastLinkJS to limit the concurrency. Other operations like compiling can by run at full parallelism, i.e. ./mill __.compile.
