Scage is a free and open-source framework for writing simple 2D opengl games.
Scage was developed in Scala (http://scala-lang.org/) and based on several java libraries:
· phys2d as a physics engine (http://phys2d.cokeandcode.com/)
· lwjgl as an opengl wrapper (http://lwjgl.org)
· slick as a resource and texture loader (http://slick.cokeandcode.com/)
Detailed instructions on how to install and use the Scage utility on your Mac are available HERE.
Scage is a cross-platform utility capable of running on any operating system that comes with Java support (e.g. Mac OS X, Windows, Linux).
Here are some key features of "Scage":
· Architechture similar to actors framework with different kinds of tasks executing on different stages of app lifecycle. Simililar to actors these tasks are anonymous functions, and you can add and remove them in runtime in any scope of your app. Its all singlethreaded, so you dont have to mess with messages.
· Vast drawing library for any kinds of 2D opengl primitives.
· Loading and utilizing fonts from ttf-files (based on 'Slick2D' api but with improvements).
· i18n: loading strings and even the whole interfaces from xml files. Runtime language change.
· Framework to build in-game interfaces from xml files of simple structure.
· App settings can be specified in a text files as a key-value pairs. Lots of engine options are set that way (alongside with the standard possibility to set them as parameters) allowing fine-tuning without app rebuilding.
· Tracers framework: easy game objects tracking and interacting on a two-dimensional game map.
· Lightweight wrapper upon phys2d engine.
· Easy app building/deploing (as a standalone or via webstart) using maven infrastructure.
· Multiple platforms support: Windows, Linux, Mac, Solaris (thanks to Java and lwjgl actually). Similar build process for any platform (with maven).
· Client/server network api upon actors with simple text protocol based on json format.