{"id":13610612,"url":"https://github.com/littlektframework/littlekt","last_synced_at":"2025-05-16T08:04:14.131Z","repository":{"id":43017168,"uuid":"442309478","full_name":"littlektframework/littlekt","owner":"littlektframework","description":"A multiplatform WebGPU 2D game framework written in Kotlin. Build your own game engine on top.","archived":false,"fork":false,"pushed_at":"2025-02-16T15:01:20.000Z","size":144208,"stargazers_count":356,"open_issues_count":12,"forks_count":13,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-04-12T04:48:08.302Z","etag":null,"topics":["2d","2d-game-framework","android","desktop","framework","game","game-engine","game-framework","gamedev","html5","ios","kotlin","kotlin-multiplatform","linux","macos","mobile","multiplatform","opengl","webgpu","windows"],"latest_commit_sha":null,"homepage":"https://littlekt.com","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/littlektframework.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-12-28T00:46:57.000Z","updated_at":"2025-04-09T13:06:19.000Z","dependencies_parsed_at":"2023-10-02T20:07:13.717Z","dependency_job_id":"36aacef7-c12a-4b2e-97e6-ac0b5b9b5692","html_url":"https://github.com/littlektframework/littlekt","commit_stats":null,"previous_names":[],"tags_count":22,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/littlektframework%2Flittlekt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/littlektframework%2Flittlekt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/littlektframework%2Flittlekt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/littlektframework%2Flittlekt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/littlektframework","download_url":"https://codeload.github.com/littlektframework/littlekt/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254493379,"owners_count":22080126,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["2d","2d-game-framework","android","desktop","framework","game","game-engine","game-framework","gamedev","html5","ios","kotlin","kotlin-multiplatform","linux","macos","mobile","multiplatform","opengl","webgpu","windows"],"created_at":"2024-08-01T19:01:46.286Z","updated_at":"2025-05-16T08:04:09.119Z","avatar_url":"https://github.com/littlektframework.png","language":"Kotlin","readme":"[![Logo](/art/logo/logo-outline.svg)](https://littlekt.com)\n\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://github.com/littlektframework/littlekt/blob/master/LICENSE)\n[![build](https://github.com/littlektframework/littlekt/actions/workflows/build.yml/badge.svg?branch=master)](https://github.com/littlektframework/littlekt/actions/workflows/build.yml)\n[![Download](https://img.shields.io/maven-central/v/com.littlekt/core/0.11.0)](https://search.maven.org/artifact/com.littlekt/core/0.11.0/pom)\n\nRequires JDK 22+ in order to use due to the usage of the new Java FFM API.\n\n**Currently, in development.**\n\nJoin the [Discord](https://discord.gg/8VCZEQVBvt) server!\n\n[Features](https://littlekt.com/features/) - [Docs](https://littlekt.com/docs/) - [Dokka / KDocs](https://littlekt.com/dokka/) - [Samples](https://github.com/littlektframework/littlekt-samples) -\n[Showcase](#showcase) - [Ask a Question](https://github.com/littlektframework/littlekt/discussions/categories/q-a) - [Changelog](CHANGELOG.md) - [Starter Project](https://github.com/littlektframework/littlekt-game-template) - [Discord](https://discord.gg/8VCZEQVBvt)\n\n## A 2D game framework written in Kotlin\n\n**LittleKt (Little Kotlin) is a Kotlin multiplatform 2D game development framework based on WebGPU** that is inspired by\nlibGDX and KorGE. The goal of this project is to allow the freedom and flexibility that libGDX offers with enjoyable\nidiomatic features coded in Kotlin that KorGE has to offer.\n\nCheck out some planned [features](https://github.com/littlektframework/littlekt/labels/enhancement)\n\nIf you are looking for the **OpenGL** version, check out\nthis [branch](https://github.com/littlektframework/littlekt/tree/opengl). Note: this branch is deprecated.\n\n### Install\n\nLittleKt releases are hosted on Maven Central and can be installed like so:\n\n**build.gradle.kts**:\n\n```kotlin\nrepositories {\n    mavenCentral()\n}\n\nkotlin {\n    jvm {\n        compilerOptions { jvmTarget = JvmTarget.JVM_22 }\n    }\n}\n\nval littleKtVersion = \"0.11.0\" // get the latest release at the top\nval kotlinCoroutinesVersion = \"1.9.0\" // or whatever version you are using\n\nsourceSets {\n    val commonMain by getting {\n        dependencies {\n            implementation(\"com.littlekt:core:$littleKtVersion\")\n            implementation(\"com.littlekt:scene-graph:$littleKtVersion\") // optional scene-graph module\n            implementation(\"org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlinCoroutinesVersion\")  // littlekt requires coroutines library on the classpath\n        }\n    }\n}\n```\n\n### Snapshots\n\nOn every build a snapshot gets created. If you want to be on the bleeding edge then you can pull from the snapshot repo.\nThe snapshot versioning uses commit hashes as a suffix. The version convention looks like so: `x.x.x.hash-SNAPSHOT`.\nE.g `0.2.1.080b1ad-SNAPSHOT`.\n**Note**: this will most likely cause breaking changes\n\n**build.gradle.kts**:\n\n```kotlin\nrepositories {\n    maven(url = \"https://s01.oss.sonatype.org/content/repositories/snapshots/\")\n}\n\nkotlin {\n    compilerOptions { jvmTarget = JvmTarget.JVM_22 }\n}\n\nval littleKtVersion = \"0.11.0.131d453-SNAPSHOT\" // or whichever hash you are using\nval kotlinCoroutinesVersion = \"1.9.0\" // or whatever version you are using\n\nsourceSets {\n    val commonMain by getting {\n        dependencies {\n            implementation(\"com.littlekt:core:$littleKtVersion\")\n            implementation(\"com.littlekt:scene-graph:$littleKtVersion\") // optional scene-graph module\n            implementation(\"org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlinCoroutinesVersion\")  // littlekt requires coroutines library on the classpath\n        }\n    }\n}\n```\n\n### Current targets\n\n| Platform      |                                     Support                                      | Implementation                                                                                                                                      |     Expected By |\n|---------------|:--------------------------------------------------------------------------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------|----------------:|\n| Desktop (JVM) |                                        ✅                                         | [wgpu-native](https://github.com/gfx-rs/wgpu-native) via [FFM](https://docs.oracle.com/en/java/javase/22/core/foreign-function-and-memory-api.html) | Current version |\n| Web (JS)      |                                        ✅                                         | [webgpu](https://www.w3.org/TR/webgpu/)                                                                                                             | Current version |\n| Android       | [In Progress](https://github.com/littlektframework/littlekt/tree/webgpu-android) | Planned: [wgpu-native](https://github.com/gfx-rs/wgpu-native) via JNI                                                                               |            v1.0 |\n| iOS / Native  |                                     Planned                                      | Planned: [wgpu-native](https://github.com/gfx-rs/wgpu-native)                                                                                       |            v1.0 |\n\n### Showcase\n\nReal world examples instead of the [samples'](https://github.com/littlektframework/littlekt-samples) repo.\n\n#### Glutton for Punishment\n\n**[Source](https://github.com/LeHaine/ggo2022)** - **[Play](https://lehaine.itch.io/glutton-for-punishment)**\n\n![gif](https://github.com/LeHaine/ggo2022/blob/master/itchio/gif1.gif)\n\n### Acknowledgements\n\nLittleKt was put together based on bits and pieces of features found across multiple engines/frameworks and languages\nthat were very enjoyable to use and flexible. If a piece a code looks familiar, feel free to open an issue with details,\nso that we can properly attribute the code.\n\nA big thanks to the folks over on libGDX and KTX, KorGE, and MiniGDX.\n\nThe very popular and amazing [libGDX](https://github.com/libgdx/libgdx) which is the main inspiration of this framework\nas well as the Kotlin framework [KTX](https://github.com/libktx/ktx) for the clever and awesome utilites and extensions\nbuilt on top of libGDX.\n\nCarlos Velasco's (soywiz) awesome Kotlin game engine [KorGE](https://github.com/korlibs/korge) which has a bunch of very\nenjoyable features and awesome ideas that were brought over to be used in LittleKt.\n\nMax Thiele's (fabmax) incredible Kotlin OpenGL/Vulkan graphics engine [kool](https://github.com/fabmax/kool) where many\nfeatures were shamelessly copied and brought over as well which helped get many graphics related features working and\nallowed me to understand how it worked.\n\nDavid Wursteisen's excellent multiplatform game framework [MiniGDX](https://github.com/minigdx/minigdx/) that allowed\nLittleKt to get up and running quickly.\n","funding_links":[],"categories":["Kotlin"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flittlektframework%2Flittlekt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flittlektframework%2Flittlekt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flittlektframework%2Flittlekt/lists"}