Maven 命名空间已从 com.soywiz.korge 迁移到 org.korge,属于破坏性变更,旧依赖配置需修改;7.x 版本需配合 Gradle 9 和 Android Gradle Plugin 9,应用配置方式有变化;KorGE Store 已废弃,扩展改为以 Gradle 子模块形式引入
korge
korlibs活跃维护用 Kotlin 编写的跨平台游戏引擎,一套代码可发布到 JVM、Web、Android 和 iOS,省去为各平台重写游戏的麻烦。
Korge is a Multiplatform Game Engine written in Kotlin for JVM, Web, Android and iOS.
在 gradle/libs.versions.toml 中配置插件:korge = { id = "org.korge.engine", version = "7.0.0-SNAPSHOT" };本地验证可运行 ./gradlew :korge-sandbox:runJvmREADME 未说明
用 Kotlin 编写的多平台游戏引擎,一套代码可发布到 JVM、Web、Android 和 iOS
用 Kotlin 编写的跨平台游戏引擎,一套代码可发布到 JVM、Web、Android 和 iOS,省去为各平台重写游戏的麻烦。
核心能力
- 支持热重载,改完代码无需重启即可看到效果
- Gradle 插件可构建 Android、Web、iOS 和桌面目标
- 用 KProject 通过 GitHub 共享和复用代码与资源
- 完全用 Kotlin 编写,可在 IntelliJ IDEA 中开发调试
- 无外部依赖,仅使用各平台自带库,体积小
容易踩的坑
- v6.0.0最新正式版2025-05-16 · 2025-05-16 09:30 UTC
What's Changed
- Fixes V2.duration conflict by @soywiz in https://github.com/korlibs/korge/pull/2184
- Extract korge-core -> korlibs-io by @soywiz in https://github.com/korlibs/korge/pull/2185
- Extract korge-foundation -> korlibs-bignumber by @soywiz in https://github.com/korlibs/korge/pull/2186
- Extract korlibs-number by @soywiz in https://github.com/korlibs/korge/pull/2187
- Split korlibs-math by @soywiz in https://github.com/korlibs/korge/pull/2189
- Remove remaining code from korlibs-foundation by @soywiz in https://github.com/korlibs/korge/pull/2190
- [CI] Bump actions to variants using Node 20 and use KVM on Android tests by @soywiz in https://github.com/korlibs/korge/pull/2192
- Split korlibs-ffi by @soywiz in https://github.com/korlibs/korge/pull/2191
- Extract korlibs-wasm by @soywiz in https://github.com/korlibs/korge/pull/2194
- Extract korlibs-image by @soywiz in https://github.com/korlibs/korge/pull/2193
- Extract korlibs-audio by @soywiz in https://github.com/korlibs/korge/pull/2195
- Cleanup remaining korge-core stuff by @soywiz in https://github.com/korlibs/korge/pull/2196
- Templates: Support elsif in addition to elseif by @soywiz in https://github.com/korlibs/korge/pull/2199
- Changes to prepare for Kotlin 2.0.0 by @soywiz in https://github.com/korlibs/korge/pull/2205
- Update UIContainerLayouts.kt so graphics{} work better by @rafi0 in https://github.com/korlibs/korge/pull/2166
- Now the korlibs are published from https://github.com/korlibs/korge-korlibs by @soywiz in https://github.com/korlibs/korge/pull/2207
- Kotlin 2.0.0-Beta5 by @soywiz in https://github.com/korlibs/korge/pull/2204
- [CI] Separate building test classes from running tests by @soywiz in https://github.com/korlibs/korge/pull/2208
- Kotlin 2.0.0-RC2 by @soywiz in https://github.com/korlibs/korge/pull/2224
- Fixes runJs, deduplicates template and adds to index.html template by @soywiz in https://github.com/korlibs/korge/pull/2225
- Update libs.versions.toml by @soywiz in https://github.com/korlibs/korge/pull/2231
- Bump korlibs to 6.0.0-alpha2 by @soywiz in https://github.com/korlibs/korge/pull/2233
- Make targetAll include targetWasmJs by @soywiz in https://github.com/korlibs/korge/pull/2235
- Target JS es2015 by @soywiz in https://github.com/korlibs/korge/pull/2237
- Remove nodejs korge target by @soywiz in https://github.com/korlibs/korge/pull/2238
- Use FastDuration internally and provide overloads to avoid allocations on JS by @soywiz in https://github.com/korlibs/korge/pull/2239
- Update to korlibs 6.0.0-alpha4 and split korge into korge and korge-core by @soywiz in https://github.com/korlibs/korge/pull/2243
- Support extract ManifestXml application attrributes by @soywiz in https://github.com/korlibs/korge/pull/2242
- Initial korge-ipc by @soywiz in https://github.com/korlibs/korge/pull/2244
- Substantially improve IPC performance by @soywiz in https://github.com/korlibs/korge/pull/2246
- Load automatically
korge.yaml, createbuild.gradle.ktsas required and initial code for Korge Kotlin Plugin by @soywiz in https://github.com/korlibs/korge/pull/2245 - Improve KorGE publishing by @soywiz in https://github.com/korlibs/korge/pull/2247
- Bidirectional IPC packets, support view tree operations for external debugger, support for offscreen GameWindow and rendering and initial incremental compilation without Gradle for faster, more-stable hot reloading by @soywiz in https://github.com/korlibs/korge/pull/2249
- WebGPU tests on JS/HTML by @soywiz in https://github.com/korlibs/korge/pull/2255
- IPC: Add event for bidirectional communication between the game and the projector by @soywiz in https://github.com/korlibs/korge/pull/2257
- Reload Agent on top of Unix Socket by @soywiz in https://github.com/korlibs/korge/pull/2258
- Fix warning by @soywiz in https://github.com/korlibs/korge/pull/2260
- Bump to korlibs 6.0.0-alpha7 by @soywiz in https://github.com/korlibs/korge/pull/2253
- Some
- v6.0.0-beta42024-09-15 · 2024-09-15 05:46 UTC
查看更新说明
What's Changed
- Update gradle to 8.10 by @soywiz in https://github.com/korlibs/korge/pull/2292
- Try Java version 21 by @soywiz in https://github.com/korlibs/korge/pull/2293
Full Changelog: https://github.com/korlibs/korge/compare/v6.0.0-beta3...v6.0.0-beta4
- v6.0.0-beta32024-08-27 · 2024-08-27 14:20 UTC
查看更新说明
What's Changed
- Enable org.gradle.caching by @soywiz in https://github.com/korlibs/korge/pull/2286
- Add packageAndroid* variants to the package group by @soywiz in https://github.com/korlibs/korge/pull/2285
- Adds $project/resources folder for KR generation by @soywiz in https://github.com/korlibs/korge/pull/2248
- Do not embed bitcode as it is deprecated now by @soywiz in https://github.com/korlibs/korge/pull/2287
- Change task groups to
@korge somethingso they are easier to find by @soywiz in https://github.com/korlibs/korge/pull/2288 - Adds packageIosSimulatorDebug and variants by @soywiz in https://github.com/korlibs/korge/pull/2289
- Try to fix e2e test by @soywiz in https://github.com/korlibs/korge/pull/2290
- Update CI test by @soywiz in https://github.com/korlibs/korge/pull/2291
Full Changelog: https://github.com/korlibs/korge/compare/v6.0.0-beta2...v6.0.0-beta3
- v6.0.0-beta22024-07-31 · 2024-07-31 11:47 UTC
查看更新说明
What's Changed
- Do not fail with non per-platform NativeImage by @soywiz in https://github.com/korlibs/korge/pull/2277
- Prepare for korlibs 6.0.0 by @soywiz in https://github.com/korlibs/korge/pull/2278
Full Changelog: https://github.com/korlibs/korge/compare/v6.0.0-beta1...v6.0.0-beta2
- v6.0.0-beta12024-07-22 · 2024-07-22 23:19 UTC
查看更新说明
What's Changed
- Ignore build folders. by @Kietyo in https://github.com/korlibs/korge/pull/2266
- Adds uses-sdk to generated AndroidManifest.xml in krpoject specifying minSdk and targetSdk by @soywiz in https://github.com/korlibs/korge/pull/2004
- Prepare for korlibs 6.0.0-beta1 by @soywiz in https://github.com/korlibs/korge/pull/2273
Full Changelog: https://github.com/korlibs/korge/compare/v6.0.0-alpha9...v6.0.0-beta1
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
Info about the project:
KorGE is a modern multiplatform game engine for Kotlin. Features include:
- Hot Reloading
- KorGE supports HotReloading to see changes immediately without having to restart the application
- KProject support
- Share & re-use source code and resources via GitHub
- Debugger
- Live-debug your games
- 100% Kotlin
- KorGE is fully written in Kotlin and designed from the ground up to embrace modern and easy coding styles
- Multiplatform
- KorGE gradle plugin allows to target the following platforms: JVM for Android, JS & WASM for the Web, native code for iOS, and JVM/JS for Desktop
- Quick installation
- Install KorGE Forge or clone the “Hello World!” project and start making your own game in less than a minute
- Fully productive
- Since KorGE targets the JVM, you can develop your game, try it, debug it and test it using IntelliJ IDEA
- Tons of features
- KorGE is just the last layer of a larger stack (Korlibs) for multimedia development
- Small footprint
- KorGE has a very small footprint. It has no external dependencies and only uses the libraries available on each platform
For more information, visit:
News:
08-Sep-2026:
Korge was updated to Gradle 9 and Android Gradle Plugin 9. This brings changes in the application
setup. For a starting point take a look at the korge-sandbox module in this repo or check the
korlibs/korge-hello-world repo on GitHub.
02-May-2026:
We are moving Korge to a new namespace on maven central, from com.soywiz.korge to org.korge.
This a breaking change. You will need to change your dependencies to use the new namespace in the configuration of
your project. Change your gradle/libs.versions.toml to:
[plugins]
#korge = { id = "com.soywiz.korge", version = "6.0.0" } <-- Old namespace, latest official version
korge = { id = "org.korge.engine", version = "7.0.0-SNAPSHOT" } # <-- New namespace, use latest snapshot version
Usage:
- The latest official release on Maven Central is
6.0.0 - The current snapshot release on Maven Central is
7.0.0-SNAPSHOT
Publish to Maven Local
For checking out local changes in Korge and test them in your own applications you can publish Korge to maven local:
./gradlew publishToMavenLocal
If you want to make changes and easily try things out without releasing locally, you can check
the korge-sandbox module that runs shared/src/commonMain/kotlin/org/korge/application/Main.kt
file. Make your experiments there:
./gradlew :korge-sandbox:runJvm
./gradlew :korge-sandbox:runJs
./gradlew :korge-sandbox:runAndroidRelease
./gradlew :korge-sandbox:runIosDeviceRelease
KorGE Store
[Deprecated] Korge Store will be discontinued in Korge release 7. Source code additions to Korge can be added as Gradle submodule in the context of Kotlin Multiplatform.
Traditionally all the KorGE modules were published to central and their source code was available here, now they are available via kproject in separate repositories. You can find a catalog of all the published extensions here: