Skip to content

Releases: utopia-rise/godot-kotlin-jvm

0.16.2-4.6.3

28 May 12:10
4ebf9c7

Choose a tag to compare

New patch release for Godot Kotlin based on Godot 4.6.3.

New:

  • A new simpler IDE plugin has been deployed and passed Jetbrain's review. It's still experimental so report any bug you can find, it mostly handle two things:
    • New project creation
    • Inspect your Godot code for any registration mistake (to activate manually in the inspection settings)
  • Gdj generation can be entirely disabled if you only want to use source file directly.
  • A fast build task has been added to the gradle plugin. After a first regular build, it can be used if your change doesn't change your script structurally (Put simply, you can use it if no registered signature changed).

Fixes:

  • Fixed VariantArray<Any?> and `Dictionary<Any?,Any?> creation
  • Fixed signal registration conflicts when a class declared a signal and a function with the same name.
  • Fixed reloading replacing gdj path with virtual path
  • Fixed buffer corruption when a registered function with Object argument was used for the first time.
  • Removed incorrect warning when a LambdaCallable was called
  • Improved .gdj scanning to properly identified existing files
  • Registered class names are now sanitized when FQNAME mode is enabled
  • Registration files now use unified indentation and a setting has been added in the gradle build.
  • Coroutine dispatcher behavior has been improved. No more extra dispatches when already in the correct thread.

Don't forget to change your build.gradle configuration with the following line.

plugins {
    id("com.utopia-rise.godot-kotlin-jvm") version "0.16.2-4.6.3"
}

What's Changed

Full Changelog: 0.16.1-4.6.3...0.16.2-4.6.3

0.16.1-4.6.3

22 May 02:56

Choose a tag to compare

New minor release for Godot Kotlin based on Godot 4.6.3.

Warning:

This release contains large internal and workflow changes compared to the previous release.
If you are upgrading an existing project, you should review your Gradle configuration, make the necessary changes, and refresh its cache.
Your previous UUIDs will also be invalidated, so you should also have a full reload of your godot project (Made easier in Project/Tools in the editor)

Gradle plugin:

  • Changes to the godot {} configuration.
  • Individual languages can be enabled and their version chosen (experimental).
  • Proper individual tasks to build for different targets.
  • Configuration-cache friendly. You can set it to true in your Gradle settings.
  • Optimized to become much shorter on hot runs, with less than 3 seconds on our 3D demo.
  • Generated files are no longer added to the source set, so the workflow is much less intrusive.
  • Library mode is much simpler and will not generate registrar or .gdj files for you ahead of time.

IDE plugin:

  • Simplification of the plugin to remove bloat.
  • Project creation wizard entirely redone.
  • Individual inspection settings for the 3 languages, but the focus remains on Kotlin.
  • The IDE plugin should be generally much faster and should no longer hang as easily.
  • Better feedback to tell you whether your JVM scripts are registered properly, including annotations, inheritance, properties, use of local copies, and related issues.

Signals and callables:

  • Specific Java and Scala syntax have been added for MethodCallable and LambdaCallable to bridge the gap with Kotlin.
  • Documentation properly explain how to use them for all 3 languages

Misc:

  • UUIDS for scripts don't collide anymore.
  • PackedArray support has been fixed and improved, including missing optimization for packed color arrays.
  • Recent Godot math fixes have been ported to the Kotlin core types.

Warning:

Don't forget to change your build.gradle configuration with the following line.

plugins {
    id("com.utopia-rise.godot-kotlin-jvm") version "0.16.1-4.6.3"
}

What's Changed

  • Bump to 4.6.2 by @CedNaru in #904
  • Normalize JVM CLI flags, improve command-line parsing, and update docs by @CedNaru in #902
  • Enable Gradle configuration cache in project template by @DSteve595 in #862
  • Port recent Godot core math fixes to Kotlin core types by @Copilot in #907
  • Add Dummy Implementation of abstract API class by @CedNaru in #906
  • Rework Java API for Signal/Callable by @CedNaru in #833
  • Rework gradle plugin, IDE plugin and shared Kotlin tool modules by @CedNaru in #911
  • Fix and improve packedarray by @CedNaru in #915
  • Update to 4.6.3 by @CedNaru in #918

New Contributors

  • @Copilot made their first contribution in #907

Full Changelog: 0.15.0-4.6...0.16.1-4.6.3

0.15.0-4.6

18 Apr 06:31
d83fef6

Choose a tag to compare

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.15.0-4.6.tpz is the archive for all export templates . See exporting documentation on how to use it.

Changelog:

Targets Godot 4.6. Update your Gradle plugin version:

plugins {
    id("com.utopia-rise.godot-kotlin-jvm") version "0.15.0-4.6"
}

⚠️ Breaking Changes

  • Multi-argument constructors are no longer supported. ([#879](#879))

✨ New Features

  • Scala support (initial) – The binding now has initial support for Scala as a JVM language. ([#761](#761), [#888](#888))
  • Godot 4.6 – The module has been updated to target Godot 4.6. ([#895](#895))

πŸ› Bug Fixes

  • Fixed path validation logic when determining whether a path was valid. ([541b9d7](541b9d7))

πŸ”§ Internal / CI

  • Updated the MoltenVK build runner. ([#889](#889))

Contributors

@piiertho Β· @CedNaru Β· @chippmann

Full diff: 0.14.3-4.5.1...0.15.0-4.6

0.14.3-4.5.1

19 Oct 17:59

Choose a tag to compare

New minor release for Godot Kotlin based on Godot 4.5.1.

Fixes:

  • Typed Array in JVM scripts no longer lose their type after rebuilding project.
  • Boostrap.jar is now properly generate and loaded the first time you build your project.
  • API methods with vararg argument behave properly.
  • Registering methods with an enum return now works.
  • ServiceLoader can now find dependancies in user code.

Changes:

  • API classes with required overridable methods are now abstract.

Java:

  • You can now use the GD singleton without using the INSTANCE static field.

Warning:
Because of a change in Jetbrains's plugin policy, we are not able to publish the IDE plugin anymore and have to rework it.
Therefore this release won't have an IDE plugin.

Don't forget to change your build.gradle configuration with the following line.

plugins {
    id("com.utopia-rise.godot-kotlin-jvm") version "0.14.3-4.5.1"
}

What's Changed

New Contributors

Full Changelog: 0.13.1-4.4.1...0.14.1-4.5.1

0.13.1-4.4.1

23 Apr 17:38
a222268

Choose a tag to compare

New patch release for Godot Kotlin

Fix:

  • Editor won't complain about missing bootstrap anymore.
  • Android exports don't create duplicated resources anymore.
  • BitFields/Enums from the Godot API is now visible to Java.

Changes:

  • The Gradle build button has been improved and now stream the text of the currently running task instead of only displaying everything at once at the end.
  • You can generate the embedded JVM from the editor using the same improved Gradle button.

Don't forget to change your build.gradle configuration with the following line.

plugins {
    id("com.utopia-rise.godot-kotlin-jvm") version "0.13.1-4.4.1"
}

What's Changed

Full Changelog: 0.13.0-4.4.1...0.13.1-4.4.1

0.13.0-4.4.1

21 Apr 16:12
d93c76f

Choose a tag to compare

New minor update for Godot Kotlin

Changes:

  • The bootstrap.jar is gone, the editor can now run by itself !
  • Many API methods taking a StringName as parameter can now accept a regular String instead. It's automatically transformed into a StringName and cached for efficiency.
  • Most Godot Enum values are now shorter, removing redundant words from the encapsulating Enum.
    Error.ERR_PARAMETER_RANGE_ERROR -> Error.PARAMETER_RANGE
  • The DocString documentation formatting has been improved.
  • Mutation helpers for PackedArrays have been added to the API.
  • Added a Gradle task to generate the embedded JVM

Fixes:

  • JVM modules like java.sql can now be used by your Godot projects.
  • The IDE plugin templates use the correct version.
  • Non-ascii characters are properly displayed when printing to Godot.
  • Reloading the project no longer crashes if you have several registered scripts in the same file.
  • Android exports should work again.

Don't forget to change your build.gradle configuration with the following line.

plugins {
    id("com.utopia-rise.godot-kotlin-jvm") version "0.13.0-4.4.1"
}

What's Changed

Full Changelog: 0.12.3-4.4.1...0.13.0-4.4.1

0.12.3-4.4.1

29 Mar 12:51
63bbf97

Choose a tag to compare

Update to Godot 4.4.1 for Godot Kotlin

Features:

  • You can now pass several JVM arguments to your project. See command-line section in the documentation.
  • Godot Object now has core methods like _set, _get, getPropertyList, _toString, etc...

Fixes :

  • Native core type should no longer leak.
  • Fix crash when using new PackedVectorArray batch conversion
  • Exports are no longer missing internal package

Don't forget to change your build.gradle configuration with the following line.

plugins {
    id("com.utopia-rise.godot-kotlin-jvm") version "0.12.3-4.4.1"
}

What's Changed

Full Changelog: 0.12.2-4.4...0.12.3-4.4.1

0.12.2-4.4

25 Mar 20:55
40599eb

Choose a tag to compare

Small fix release for Godot Kotlin/JVM:

Fixes :

  • Scripts should be properly reloaded by the editor when modified by an external program, you won't risk overwriting your code with an old copy of it anymore.
  • Fix crash when trying to extend a JVM script from the editor.

Improvements:

  • More efficient memory management of pointer based coretypes (Array, Dictionary, NodePath, etc...).
  • An efficient batch conversion to a JVM Array has been added for PackedVectorArrays.

Don't forget to change your build.gradle configuration with the following line. Be careful, we are now using the same version as Godot so it became 0.12.2-4.4 instead of 0.12.1-4.4:

plugins {
    id("com.utopia-rise.godot-kotlin-jvm") version "0.12.2-4.4"
}

What's Changed

Full Changelog: 0.12.1-4.4...0.12.2-4.4

0.12.1-4.4

16 Mar 18:57
441681c

Choose a tag to compare

New 0.12.1-4.4 release for Godot Kotlin

Breaking Changes:

  • Internal packages of the Godot library have been changed. Note that many occurrences of godot have became either godot.core godot.api.
  • Names of signal parameters should now be set in the @RegisterSignal annotation. kt @RegisterSignal val mySignal by signal1<Boolean>("reverse") becomes kt @RegisterSignal("reverse") val mySignal by signal1<Boolean>().
  • The jar reloading logic has been moved to the C++ code for more stability.. Note that a new ./jvm/ directory containing the jars will be created in your project. You should now place your embedded JVM there as well.

Changes:

  • Upgraded to Kotlin 2.1 and Gradle 8.13. Be aware that we had the change the internals of the IDE plugin to handle the new K2 compiler, new bugs might appear. Please report them if this is happening.
  • Added new coroutines dispatcher that can run on Godot's main thread or its thread pool.
  • JVM Scripts and Jars now have an internal UID based on their paths. For now, the expected behavior when moving/renaming them outside the Godot editor is expected to be the same as in Godot 4.3. Later, we plan to base the UID on the registered script name to make it more stable.
  • Added Support Typed Dictionary
  • A popup will now appear if the build of Godot you are using does not match your JVM project.
  • Added missing TransformXD operators.
  • Added missing sort() method in Dictionary

Fixes:

  • The Intellij plugin should now work on the latest versions.
  • Fixed export of Node inside Array and Dictionary
  • Fixed unexpected behavior that might occur when a script had a companion object or static field.
  • Fixed property registration when the annotation is in a parent class.
  • Fixed registration errors when using script from a different module or library

Don't forget to change your build.gradle configuration with the following line. Be careful, we are now using the same version as Godot so it became 0.12.1-4.4 instead of 0.11.0-4.3.0:

plugins {
    id("com.utopia-rise.godot-kotlin-jvm") version "0.12.1-4.4"
}

What's Changed

Full Changelog: 0.11.0-4.3...0.12.1-4.4

0.11.0-4.3

07 Oct 13:54

Choose a tag to compare

New 0.11.0-4.3 release for Godot Kotlin.

  • The export template archive .tpz should now properly work in the editor. Note that the internal name of the editor and templates has been changed to 4.3.stable.jvm.0.11.0 to avoid name conflict with the official 4.3.stable release.
  • The coroutine Signal.await() method now works properly on Nodes.
  • The API exposed to the Java language has been improved. Singletons are now truly static and Callables are easier to create (example in documentation).
  • Fix an error that could cause bugs when using PackedVector4Array with registered methods or properties.

Don't forget to change your build.gradle configuration with the following line. Be careful, we are now using the same version as Godot so it became 0.11.0-4.3 instead of 0.11.0-4.3.0:

plugins {
    id("com.utopia-rise.godot-kotlin-jvm") version "0.11.0-4.3"
}

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.11.0-4.3.tpz is the archive for all export templates . See exporting documentation on how to use it.

What's Changed

Full Changelog: 0.10.0-4.3.0...0.11.0-4.3