ProductPromotion
Logo

Kotlin

made by https://0x3d.site

GitHub - littlektframework/littlekt: A multiplatform WebGPU 2D game framework written in Kotlin. Build your own game engine on top.
A multiplatform WebGPU 2D game framework written in Kotlin. Build your own game engine on top. - littlektframework/littlekt
Visit Site

GitHub - littlektframework/littlekt: A multiplatform WebGPU 2D game framework written in Kotlin. Build your own game engine on top.

GitHub - littlektframework/littlekt: A multiplatform WebGPU 2D game framework written in Kotlin. Build your own game engine on top.

Logo

License build Download

Requires JDK 21+ in order to use due to the usage of the new Java FFM API.

Currently, in development.

Features - Docs - Dokka / KDocs - Samples - Showcase - Ask a Question - Changelog - Starter Project

A 2D game framework written in Kotlin

LittleKt (Little Kotlin) is a Kotlin multiplatform 2D game development framework based on WebGPU that is inspired by libGDX and KorGE. The goal of this project is to allow the freedom and flexibility that libGDX offers with enjoyable idiomatic features coded in Kotlin that KorGE has to offer.

Check out some planned features

If you are looking for the OpenGL version, check out this branch. Note: this branch is deprecated.

Install

LittleKt releases are hosted on Maven Central and can be installed like so:

build.gradle.kts:

repositories {
    mavenCentral()
}

kotlin {
    jvm {
        compilations.all {
            kotlinOptions.jvmTarget = "21" // littlekt targets jvm 21 so we must target at least 21
        }
    }
}

val littleKtVersion = "0.10.1" // get the latest release at the top
val kotlinCoroutinesVersion = "1.9.0-RC" // or whatever version you are using

sourceSets {
    val commonMain by getting {
        dependencies {
            implementation("com.littlekt:core:$littleKtVersion")
            implementation("com.littlekt:scene-graph:$littleKtVersion") // optional scene-graph module
            implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlinCoroutinesVersion")  // littlekt requires coroutines library on the classpath
        }
    }
}

Snapshots

On every build a snapshot gets created. If you want to be on the bleeding edge then you can pull from the snapshot repo. The snapshot versioning uses commit hashes as a suffix. The version convention looks like so: x.x.x.hash-SNAPSHOT. E.g 0.2.1.080b1ad-SNAPSHOT. Note: this will most likely cause breaking changes

build.gradle.kts:

repositories {
    maven(url = "https://s01.oss.sonatype.org/content/repositories/snapshots/")
}

kotlin {
    jvm {
        compilations.all {
            kotlinOptions.jvmTarget = "21" // littlekt targets jvm 21 so we must target at least 17
        }
    }
}

val littleKtVersion = "0.10.0.a9529eb-SNAPSHOT" // or whichever hash you are using
val kotlinCoroutinesVersion = "1.9.0-RC" // or whatever version you are using

sourceSets {
    val commonMain by getting {
        dependencies {
            implementation("com.littlekt:core:$littleKtVersion")
            implementation("com.littlekt:scene-graph:$littleKtVersion") // optional scene-graph module
            implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlinCoroutinesVersion")  // littlekt requires coroutines library on the classpath
        }
    }
}

Current targets

Platform Support Implementation Expected By
Desktop (JVM) wgpu-native via FFM Current version
Web (JS) webgpu Current version
Android In Progress Planned: wgpu-native via JNI v1.0
iOS / Native Planned Planned: wgpu-native v1.0

Showcase

Real world examples instead of the samples' repo.

Glutton for Punishment

Source - Play

gif

Acknowledgements

LittleKt was put together based on bits and pieces of features found across multiple engines/frameworks and languages that were very enjoyable to use and flexible. If a piece a code looks familiar, feel free to open an issue with details, so that we can properly attribute the code.

A big thanks to the folks over on libGDX and KTX, KorGE, and MiniGDX.

The very popular and amazing libGDX which is the main inspiration of this framework as well as the Kotlin framework KTX for the clever and awesome utilites and extensions built on top of libGDX.

Carlos Velasco's (soywiz) awesome Kotlin game engine KorGE which has a bunch of very enjoyable features and awesome ideas that were brought over to be used in LittleKt.

Max Thiele's (fabmax) incredible Kotlin OpenGL/Vulkan graphics engine kool where many features were shamelessly copied and brought over as well which helped get many graphics related features working and allowed me to understand how it worked.

David Wursteisen's excellent multiplatform game framework MiniGDX that allowed LittleKt to get up and running quickly.

More Resources
to explore the angular.

mail [email protected] to add your project or resources here 🔥.

Related Articles
to learn about angular.

FAQ's
to learn more about Angular JS.

mail [email protected] to add more queries here 🔍.

More Sites
to check out once you're finished browsing here.

0x3d
https://www.0x3d.site/
0x3d is designed for aggregating information.
NodeJS
https://nodejs.0x3d.site/
NodeJS Online Directory
Cross Platform
https://cross-platform.0x3d.site/
Cross Platform Online Directory
Open Source
https://open-source.0x3d.site/
Open Source Online Directory
Analytics
https://analytics.0x3d.site/
Analytics Online Directory
JavaScript
https://javascript.0x3d.site/
JavaScript Online Directory
GoLang
https://golang.0x3d.site/
GoLang Online Directory
Python
https://python.0x3d.site/
Python Online Directory
Swift
https://swift.0x3d.site/
Swift Online Directory
Rust
https://rust.0x3d.site/
Rust Online Directory
Scala
https://scala.0x3d.site/
Scala Online Directory
Ruby
https://ruby.0x3d.site/
Ruby Online Directory
Clojure
https://clojure.0x3d.site/
Clojure Online Directory
Elixir
https://elixir.0x3d.site/
Elixir Online Directory
Elm
https://elm.0x3d.site/
Elm Online Directory
Lua
https://lua.0x3d.site/
Lua Online Directory
C Programming
https://c-programming.0x3d.site/
C Programming Online Directory
C++ Programming
https://cpp-programming.0x3d.site/
C++ Programming Online Directory
R Programming
https://r-programming.0x3d.site/
R Programming Online Directory
Perl
https://perl.0x3d.site/
Perl Online Directory
Java
https://java.0x3d.site/
Java Online Directory
Kotlin
https://kotlin.0x3d.site/
Kotlin Online Directory
PHP
https://php.0x3d.site/
PHP Online Directory
React JS
https://react.0x3d.site/
React JS Online Directory
Angular
https://angular.0x3d.site/
Angular JS Online Directory