Hammerite 2.0

Hammerite 2.0 is out. Everything that was GDScript is now C++, in one library: the compiler, the lightmapper, sound, navigation and the editor itself. Levels compile faster, navigation builds faster, and your game no longer compiles any of Hammerite's scripts when it starts.

One native library

Until now Hammerite was GDScript, with an optional native kernel for the heaviest geometry work. In 2.0 I moved every class into one GDExtension library, with the same names and the same behaviour. Before deleting a script I checked the native class against it call for call, and the fingerprints a 1.x map was baked against come out the same, to the bit.

Only the plugins and the autoloads are still scripts, and two of those are a single line on top of a native class.

Performance

1.x2.0
Compiling 256 rooms626 ms303 ms
Recompiling after a one-brush edit42 ms25 ms
Loading the largest test map220 ms113 ms
Building navigation for a large stealth level5.7 s2.8 s
Building navigation for a smaller level1.5 s0.56 s

Also, no Hammerite scripts are compiled any more. On an M-series Mac that was 1.2 s of every launch for the core addon alone, and another 1.4 s the first time the editor was opened.

Two packages

A release now comes in two packages. Full has everything. Runtime has core, audio and navigation without the editor, for games where the players never open it. The library is built for macOS (Apple silicon and Intel), and Windows and Linux on x86-64, for Godot 4.7. There is no web export.

Upgrading from 1.x

Maps open as they did, but a few things need to be done once:

Versioned docs

The docs now keep every release. 2.0 is the current one, 1.0 stays as it was, and latest follows what is being worked on. Every page has a version switcher.

- Elli