A community driven list of libraries, software, and resources useful for Scala game development. Also lists of games being written in or already completed in Scala. This is not a catalog of all the libraries, just a starting point for your explorations. That said, due to the incubating environment here at ScalaGameDev, we welcome projects at any stage of development, so please submit a PR if you have or know about a project to get it added to the list. The list is inspired by awesome-scala. Other amazingly awesome lists can be found in the awesome-awesomeness list.
Also awesome is Scaladex, the searchable, tagged, and centralized index of Scala libraries.
Projects with over 500 stargazers are in bold.
- Reactors ★ 224 ⧗ 0 - a concurrent, distributed programming framework based on asynchronous event streams; currently targets Scala.js and the JVM.
- CBT ★ 375 ⧗ 1 -
pre-release
An upcoming, flexible build tool. Game development in Scala is one area where flexibility is often needed. - sbt-lwjgl-plugin ★ 42 ⧗ 194 -
inactive
For use with SBT, pulls in various LWJGL dependencies, including the appropriate native dependencies. Currently doesn't work with coursier. Suggest using the following patched version:addSbtPlugin("com.storm-enroute" % "sbt-lwjgl-plugin" % "3.1.6")
. - ScalaMeter ★ 358 ⧗ 25 - Microbenchmarking and performance regression testing framework for the JVM platform: http://scalameter.github.io.
- scalagb ★ 13 ⧗ 125 -
untested
A Z80 Gameboy emulator written in Scala.
- BlockSmith ★ 0 ⧗ 342 -
pre-release
BlockSmith is currently an experiment in the ways of MineCraft-like voxel games. - Checkers ★ 9 ⧗ 43 - live demo Checkers game rendered in web browser using SVG (about 10000 lines of Scala.js using React). Supports AI opponents.
- CodeCraft ★ 12 ⧗ 128 - live demo A real-time strategy game in which you write a program to command an army of virtual drones, written in Scala.js.
- doubletetris ★ 1 ⧗ 233 - live demo An interesting take on tetris.
- hexiles-web ★ 1 ⧗ 239 - live demo An HTML5 single-player puzzle game in Scala.js.
- scalajs-react-2048 ★ 25 ⧗ 113 - live demo This is 2048 game clone made using scalajs-react in just 350 lines of Scala and 250 lines of CSS.
- Scalatron ★ 578 ⧗ 14 - Scalatron, a multi-player programming game in which coders pit bot programs (written in Scala) against each other.
- scalawarrior ★ 103 ⧗ 12 - This is a game for learning Scala which is inspired by ruby-warrior. On each floor you instruct the warrior to battle enemies, rescue captives, and reach the stairs by writing some Scala!
- stargame ★ 1 ⧗ 1450 - Multiplayer browser-based space 4X RTS.
- UltraBlackBloodDeath ★ 2 ⧗ 506 -
untested
An open-source FPS tournament game made using Scala on top of JME3.
- Rat Trap - Rat Trap is a small and addictive puzzle game, where your role is to protect your reserve of cheese by carefully positioning blocking elements to prevent the rat from reaching it and eventually trap it.
- ScalaQuest -
pre-release
An online game to learn Scala. Battle Goblins and Wizards and face all kinds of challenges while learning a new programming language. Written using Phaser.js and the Play Framework. - WinSmash - WinSmash is a classic arcade game that pays homage to the late Microsoft Windows XP by reminding nostalgic people of the good old days.
- monadic mario - live demo A very simple mario "game", writtein in monadic-html.
- scala-js-games ★ 88 ⧗ 4 - live demo Demo collection including Asteroids, Astrolander, Snake, Pong, Brick, and Tetris.
- scalajs-snake ★ 4 ⧗ 152 - live demo Snake game written in Scala.js.
- RPG Boss ★ 233 ⧗ 1 - Multiplatform, point and click rpg game editor and engine, based on libgdx.
- Scage ★ 155 ⧗ 65 -
inactive
2D OpenGL game engine, based on phys2d, lwjgl, and slick. - sgine ★ 12 ⧗ 217 -
inactive
Scala Engine for OpenGL-based Desktop, Android, and iOS game and business development; based on libgdx. - SGL ★ 37 ⧗ 23 -
pre-release
Scala Game Library is a library for developing cross-platform 2D video games in Scala. It provides a high-level API for building 2D games, and can deploy for Desktop, Android, and HTML5, while iOS and console platforms are on the roadmap. Makes use of Graphics Bindings for Scala Native for some platforms. - Simplex3D ★ 28 ⧗ 217 -
inactive
The (first?) Scala 3D engine.
- scalacloth ★ 1 ⧗ 1399 -
untested
A cloth simulation in Scala.
- ScalaFX ★ 371 ⧗ 2 - Scala DSL for creating Graphical User Interfaces that sits on top of JavaFX.
- youi ★ 106 ⧗ 5 - Next generation user interface and application development in Scala.js for web, mobile, and desktop. Currently has support for a 2D API; WebGL may be added later.
- Graphics Bindings for Scala Native ★ 9 ⧗ 94 -
pre-release
Scala Native bindings for the popular graphics programming libraries SDL2 and OpenGL. The bindings try as much as possible to reproduce the original programming interface in C. In particular, they won't hide scalanative interoperability types behind regular Scala types. - MacroGL ★ 81 ⧗ 7 -
inactive
Scala macro-based frontend for OpenGL for structured and efficient graphics code. Currently targets Scala.js and the JVM. - SME ★ 0 ⧗ 111 -
pre-release
Scala Monkey Engine is a thin wrapper around JMonkeyEngine 3, helping to provide a more idiomatic feel to JME3 where possible. Currently requires and targets Dotty.
- Scala Collections RayTracer -
inactive
A small example meant to take advantage of Scala's parallel collections, complete with a writeup. - ScalaRay ★ 6 ⧗ 999 -
inactive
Educational raytracer based on pbrt, the ray tracer described in the book Physically Based Rendering - From Theory to Implementation by Matt Pharr and Greg Humphreys - scalasimpleray ★ 7 ⧗ 768 -
inactive
This is a VERY basic raytracer, but it's quite clean, and could be used by someone to learn. - SunBurn ★ 1 ⧗ 1353 -
inactive
- How to make a simple HTML5 Canvas game - The style is roughly that of an NES/SNES-era Zelda game. The tutorial targets JavaScript, but there is a Scala.js port (live demo). An alternative Scala.js port using various technologies.
- Scala on Android - Resources that will help you get your app (game) working on Android.
Your contributions are always welcome! Please submit a pull request or create an issue to add a new Scala game, game library (in Scala or a Scala wrapper library), article on game development related to Scala. If the project is inactive, deprecated, or pre-release a tag should be added to indicate this.