0.10.0-4.3.0
New release 0.10.0-4.3.0 for Godot Kotlin.
Warning: Some breaking changes have been made to the API since the last release, so your current projects will most likely not compile without adapting the code. Also be aware that a lot changed behind the hood since the previous release. We fixed many bugs, but probably introduced new ones along the way. We encourage you to post issues if it happens.
Highlights:
- Massive changes to the C++ implementation of the module resulting in better maintainability, better logging/notification, recovery from invalid states and many crashes replaced by errors/warnings.
- Improved configuration file and command-line, including custom arguments for the JVM.
- Added efficient conversions between Godot PackedArrays and Kotlin primitive Arrays.
- Nodes with an invalid script (not built) now display a warning.
- Improved API for Callable, including the possibility to directly use Kotlin lambdas, not only registered functions.
- Support for Kotlin coroutines has been added, you can now wait for a signal, resource loading or the next frame.
- It's no longer allowed to register lateinit or nullable properties, except for Object/Resource/Node types.
- The editor plugin is back, allowing you to setup the Gradle project and build it from the editor.
- Memory model revamped and now running on the main thread for more stability and smoother handling of GC spikes.
- Memory usage has been significantly reduced.
- Fix .kt and .java scripts attached to Nodes not being correctly saved in editor.
- When a Java or Kotlin script has been edited without rebuilding, the editor is going to display warnings on Nodes using those scripts.
- Bug resetting property values in inspector has been fixed.
- General improvements to the core and generated API.
- iOS export now use our own custom JVM build
- Support for multidex APK on Android.
- Exports now working on Android 14+.
- Building for Android now requires SDK 35+.
Don't forget to change your build.gradle configuration with the following line:
plugins {
id("com.utopia-rise.godot-kotlin-jvm") version "0.10.0-4.3.0"
}
The files prefixed with godot-kotlin-jvm_editor_
are the editors.
release
editors are the editors you use normally. debug
editors provide debug symbols and are intended to provide better stacktraces in case of crashes of the editor. Please use those when submitting bugreports.
godot-kotlin-jvm_export_templates_0.10.0-4.3.0.tpz
is the archive for all export templates . See exporting documentation on how to use it.
What's Changed
- Merge GdKotlin rework into master. by @CedNaru in #620
- Fix GUT tests by @chippmann in #631
- Add callable convenience functions by @chippmann in #629
- Fix extension method name by @chippmann in #628
- fix(doc): place update ios jdk contribution guide to the right place by @piiertho in #623
- Rework Memory manager to make it more threadsafe. by @CedNaru in #626
- enh: Simplify cpp core type buffer protocol read and write by @piiertho in #630
- Support multidex and fix export for android 14 devices by @chippmann in #625
- Call voidMethod for on_destroy by @CedNaru in #636
- Fix PathScript caching. by @CedNaru in #635
- Improve ci/cd cache setup by @chippmann in #638
- Add better jni error reporting inside the godot editor by @chippmann in #627
- Update to kotlin 2.0 by @chippmann in #641
- fix function moveToward by @datouzhu125 in #649
- fix: proper ios template directory layout by @piiertho in #644
- fix(intellij-plugins): remove unused declaration extensions in psiClass.kt by @piiertho in #654
- Update setup documentation in contribution guide by @gabryon99 in #639
- Fix exception describe by @chippmann in #642
- Fix fat jar creation if users project defines a version by @chippmann in #656
- enh(api-gen): generate kdoc from api json by @piiertho in #534
- Feature/make compile with godot 4.3 rc3 by @piiertho in #659
- feat: Implement KotlinCallableCustom to enable lambda callables by @piiertho in #657
- Update core types and unit tests for 4.3 by @CedNaru in #665
- Feature/implement new core types 4.3 by @piiertho in #664
- Fix scons cache action path by @chippmann in #669
- Update kotlin to
2.0.20
and update other dependencies by @chippmann in #662 - Add documentation on how to use the project state from a specific branch by @chippmann in #667
- MemoryManager rework by @CedNaru in #661
- Improve script cache by @CedNaru in #670
- Add/Fix missing GD singleton methods. by @CedNaru in #673
- Update documentation regarding minimum android build-tool version by @chippmann in #674
- Fix property type generation by @CedNaru in #672
- Don't fetch default value for Object properties by @CedNaru in #671
- Make jre folder platform dependent by @chippmann in #632
- Limit core type usage on registered properties by @chippmann in #668
- Fix closing of module by @CedNaru in #680
- Fix default value retrieval for resources and node paths by @chippmann in #675
- Fix custom classes hint string by @chippmann in #678
- fix(graal): set right signature for GDPrint$Bridge::getStacktrace in graal jni config by @piiertho in #683
- Create and upload final binaries on master builds by @chippmann in #681
- Fix method pointer fetching from API + use hashes. by @CedNaru in #687
- Make VariantArray and Dictionary constructors visible to Java by @CedNaru in #685
- Improve API generation by @CedNaru in #688
- Optimize memory manager by @CedNaru in #682
- Rework Variant.kt by @CedNaru in #684
- RID is no longer a native coretype by @CedNaru in #689
- Add coroutines await() to signals by @CedNaru in #660
- Improve JNI exception handling and logging by @CedNaru in #691
- Remove duplicate classes by @CedNaru in #697
- Improve method and signal name caching by @CedNaru in #696
- Reenable Editor Plugin. by @CedNaru in #690
- Fix gradle task setup by @chippmann in #698
- Update doc regarding caching by @CedNaru in #699
- Make signal delegate static to avoid memory allocation by @CedNaru in #695
- Improve signal syntax by @CedNaru in #700
- Add tests on exported projects to our CI/CD pipeline by @chippmann in #679
- Fix coroutines gradle flag name by @chippmann in #702
- Add additional registered properties checks by @chippmann in #703
- Add some coroutines utility functions by @chippmann in #704
- Bump to 0.10.0 by @CedNaru in #701
Full Changelog: 0.9.1-4.2.2...0.10.0-4.3.0