Technologies#

This project uses many different technologies. This aims to document them

Kotlin#

Kotlin is a language that can run on many platforms. In this project we are targeting the JVM, which is what Java runs on.

Gradle#

Gradle is the build tool we are using for this project. It can be hard to wrap your head around, but its configuration helps automatically download dependencies and helps auto format the code. Some projects that target the JVM use Maven, but Gradle is a bit more modern and has better Kotlin support.

Spotless#

We use the Spotless Gradle Plugin with ktlint. This forces you to use consistent coding style. It comes with an auto-formatter, which you can run by executing ./gradlew spotlessApply or running the spotlessApply task in IntelliJ.

libGDX#

libGDX is a game engine for games written in Java (or more specifically games on the JVM).

Box2D#

Box2D is the physics engine we will be using. Box2D is supported in many different programming languages, but since we will only be using Box2D on the server side, using LibGDX’s Box2D wrapper makes the most sense.

ZeroMQ#

ZeroMQ is a library that helps with delivering messages between running programs. We are using the JeroMQ implementation, which is specifically for the JVM.