Hi ports@,
The Godot port keeps evolving. To keep things interesting^Wconfusing,
there are parallel but only loosely connected versions in use. The pack
versions determine which binaries can open a distributed game. For
example, Godot 3.x uses pack version 1 consistently. However, with
Godot 4, the pack version was 2 for everything up to 4.4.x, but with
4.5+, it was incremented to 3. This means that godot 4.5 can't open
games made with Godot 4.0-4.4.x.
While there isn't guaranteed API stability from even one minor Godot
version to the next, it's not realistic to build binaries for every
possible Godot version. I propose to build the latest runtime for each
pack version at this point, starting with pack version 1 (Godot 3), up
to pack version 3 (Godot 4.5+). This will allow keeping a significant
compatibility coverage for games and other projects from the last few
years.
To not explode the build times, I propose to build the editor only for
the latest version. Users of the editor can be referred to the official
Godot migration guides [1].
Proposed structure:
Pack Version PkgPath: Bin Name
------------ ------- --------
pack1 (3.x) games/godot/pack1 godot3
pack2 (4.4x) games/godot/pack2 godot44
pack3 (4.5+) games/godot/pack3 godot{,-editor}
This would mean 4 full Godot builds (1x pack1, 1x pack2, 2x pack3)
instead of what was previously equivalent of 2x pack1 and 2x pack2.
Things to note that may need discussion/work:
- Warning: @option no-default-conflict without @conflict (I followed
examples of games/love/* and games/libgdx/*). I
- Do I need to add REVISION=0 to godot-3.6.2 in pack1/ now (to
distinguish it from 3.6.2 in games/godot)?
- Installing the editor (now in pack3/) fails now with a collision of
the desktop-file-utils stuff which would be intentionally named the
same. Would set quirks to update from games/godot,-tools and
games/godot4,-editor to games/godot/pack3,-editor. The editor works
though (have tested it with a separate way to build/run).
- There are a few new patches in pack1/ so that godot-sharp builds all
the mono files/DLLs without needing to run the full build of the
tools (the name for the editor in this version).
Tarball of the games/godot directory attached.
Happy to hear comments, criticism, other ways to plan this out. Goal is
a structure more maintainable for incorporating future version updates
with parallel versions available within reason.
ok's also welcome if it looks reasonable.
[1] https://docs.godotengine.org/en/4.5/tutorials/migrating/index.html
No comments:
Post a Comment