https://github.com/PurpleKingdomGames/indigo
An FP game engine for Scala.
https://github.com/PurpleKingdomGames/indigo
elm-architecture game game-development game-engine gamedev indigo scala scalajs
Last synced: 18 days ago
JSON representation
An FP game engine for Scala.
- Host: GitHub
- URL: https://github.com/PurpleKingdomGames/indigo
- Owner: PurpleKingdomGames
- License: mit
- Created: 2020-05-30T12:45:05.000Z (almost 5 years ago)
- Default Branch: main
- Last Pushed: 2024-10-29T12:46:54.000Z (7 months ago)
- Last Synced: 2024-10-29T15:15:21.521Z (7 months ago)
- Topics: elm-architecture, game, game-development, game-engine, gamedev, indigo, scala, scalajs
- Language: Scala
- Homepage: https://indigoengine.io/
- Size: 133 MB
- Stars: 636
- Watchers: 12
- Forks: 58
- Open Issues: 138
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
[](https://github.com/tterb/atomic-design-ui/blob/master/LICENSEs)
[](https://github.com/PurpleKingdomGames/indigo/releases)
[](https://discord.gg/b5CD47g) [](https://gitter.im/Purple-Kingdom-Games/Indigo?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[](https://github.com/PurpleKingdomGames/indigo/actions/workflows/ci.yml)# 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). Hypothetically consoles could also be supported.
Documentation can be found on [indigoengine.io](https://indigoengine.io).
## Thank you, to our sponsors! 💜
Thank you to all our wonderful sponsors, and particularly to [dedipresta](https://www.dedipresta.com/) 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](https://github.com/sponsors/PurpleKingdomGames?o=esb).
## Full local build and test instructions
### Using Nix
The root of the project contains a very very simple `flake.nix` file that, if you have nix installed and flakes enabled, will give you all the tools you need to build Indigo by running `nix develop` in the root directory.
### Build requirements
You will need:
- Mill
- SBT
- JDK (Update: 8 works, 17 is used in Indigo's development)### Running the build
On Mac / Linux, from the repo root to do a full build and test:
```bash
bash build.sh
```On Windows, open up powershell and run:
```powershell
& build.ps1
```There is also another script which is a bit faster since it doesn't build the examples or demos.
```bash
bash localpublish.sh
```## Software requirements for running games
The list above covers the software needed to build Indigo itself, but to run a game you may also need:
- NPM and/or Yarn
- NodeJS
- Electron
- An http server that will serve static from a directory (suggestions: `http-server` via npm, or Python's `SimpleHTTPServer`)
- A frontend packaging tool such as Parcel.js