Homeworld: Unbound 0.7 — a name of its own, and a version number that moves
Two things this build changed are the sort that sit underneath a project rather than in it, and both had been quietly wrong since the first release.
The app was still called something else
The package name was org.gardensofkadesh.homeworld, inherited from the project
this was forked from. It is now org.homeworldunbound.game.
That is not cosmetic. Android keys an app’s data folder off the package name, so as far as a headset is concerned this is a different app. It installs alongside the old one rather than over it, and your saves and game data stay behind in the old folder. What you get is two entries in your library, both called “Homeworld: Unbound”, one holding everything you have done and one empty, with nothing on either to say which is which.
If you have played an earlier build, use install.py rather than the bare APK.
It moves everything across on the headset — seconds, rather than pushing most of
a gigabyte back over USB — checks every file arrived before it deletes anything,
and offers to remove the old app afterwards. Installing fresh, there is nothing
to think about.
The version number had never once changed
The APK declared itself version 1.2.0, build 1. That is HomeworldSDL’s
version — the engine this is built on — and it had nothing to do with any
release here. It had also never moved, across all seven of them.
Sideloaders and app listings use exactly that number, and nothing else, to work out whether a build is newer than the one already installed. So every release looked to them like the release before it, and an update never registered as an update. Seven builds, each one the same build as far as anything downstream could tell.
It now matches the release — version 0.7, build 7 — and both move with each
one from here.
Internet play, for real this time
0.6 diagnosed three bugs and claimed all three were fixed. Two were. The third — the host filing a joining player under the address its own connection reported, rather than the address that player calls itself — survived, and it was the one that killed every internet game at Start Game, when the joining player looked for itself in the player list and was not there.
That is fixed here. The rest of the shape is unchanged from 0.6: the host forwards TCP 10500 and UDP 10600, whoever joins forwards nothing, two players, and not both of you on the same home network range.
And a path that outlived what it pointed at
The game stored the full path to its data folder and never checked it was still there. Anything that moved it — this rename, a hand-copied install, a restored backup — produced a startup error quoting a path you had never typed and could not correct from inside the game. It now falls back to where it is actually running.