Skip to content

PurpleKingdomGames/indigoengine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5,503 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

MIT License Latest Tagged Release Discord Chat CI

Projects by Purple Kingdom Games

This repository contains the source code of all the officially supported Scala libraries and frameworks supported by Purple Kingdom Games, which includes:

Indigo

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.

Tyrian

An Elm-inspired Scala UI library for Scala 3.

The main documentation site, complete with installation instructions, is available here: tyrian.indigoengine.io/

Ultraviolet

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.

Roguelike Starter Kit for Indigo

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 our sponsors! 💜

Thank you to all our wonderful sponsors, and particularly to dedipresta for their generous support.

dedipresta

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.

Developers & Contributors

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.