Skip to content

karol-202/uranium-arkade

Repository files navigation

uranium-arkade

Deployment Download License: MIT

uranium-arkade is 2D game engine for Kotlin based on uranium. It's unique because of its React-like, component-based architecture with unidirectional data flow. Currently it supports HTML5 canvas, but support for more targets is planned.

Contents

Project structure

uranium-arkade has been designed as a multi-platform game engine, though at the moment, the only available variant is the one for HTML5 canvas, uranium-arkade-htmlcanvas.

uranium-arkade-htmlcanvas itself is a Kotlin multiplatform library, because it supports running as JavaScript or as WebAssembly (experimental). A few Maven artifacts are available:

  • uranium-arkade-htmlcanvas-js (recommended) - Kotlin/JS artifact, stable
  • uranium-arkade-htmlcanvas-wasm32 - Kotlin/Native artifact for WebAssembly, experimental
  • uranium-arkade-htmlcanvas - common artifact for use in multiplatform projects, where both JS and WebAssembly is used (though I can't come across any useful use cases for it)

How to install?

All the uranium-arkade artifacts are located in jCenter, so you can add it as a dependency to your Gradle or Maven project. The below snippets demonstrate how to use the Kotlin/JS artifact of uranium-arkade-htmlcanvas.

Gradle (Kotlin DSL):

dependencies {
    implementation("pl.karol202.uranium.arkade:uranium-arkade-htmlcanvas-js:0.2.1")
}

Gradle (Groovy):

dependencies {
    implementation "pl.karol202.uranium.arkade:uranium-arkade-htmlcanvas-js:0.2.1"
}

Make sure that you have jCenter in your repositories section:

repositories {
    jcenter()
}

How to use?

Work in progress

Contributing

Contributions are highly welcome.

If you find a bug or would like have some feature implemented, file an issue. You can also create a pull request if you have working solution for some issue.