Skip to content

Releases: bearstonem/Homeworld

Homeworld: Unbound 0.1 — Quest 3 VR

Pre-release

Choose a tag to compare

@bearstonem bearstonem released this 26 Jul 18:48

Homeworld (1999) in room-scale VR, running natively on a Meta Quest 3.

Not streamed from a PC, and not the flat game on a virtual monitor — the engine renders the battle in tracked stereo around you, and you command the fleet by pointing at it.

Which APK do I want?

Pick one. The choice is compiled in, not detected at runtime — install the wrong one and it stops at startup with Unable to open required .big file.

Needs Gets you
homeworld-unbound-vr-demo.apk homeworld-demo-assets.zip, below The demo campaign. Nothing else to buy.
homeworld-unbound-vr-full.apk your own copy of Homeworld All 16 missions. The Remastered Collection on Steam includes the original data this uses.

Before you start

Whichever route you take, the headset needs Developer Mode:

  1. In the Meta Horizon app on your phone, open your headset's settings and turn on Developer Mode. (First time only, Meta will ask you to create a free developer organisation — it takes a minute and costs nothing.)
  2. Reboot the headset.
  3. Plug it into your computer by USB. Put the headset on: there is an "Allow USB debugging" prompt waiting. Tick Always allow and accept it. Nothing works until you do.

Option A — the installer (easiest)

Clone the repository and run it. It finds adb, connects over USB or wirelessly, installs the right APK, and copies the game data across:

git clone https://github.com/bearstonem/Homeworld.git
cd Homeworld
python3 install.py      # Linux, macOS
py install.py           # Windows

It will use the APKs from this release rather than building, which matters on Windows and macOS where the Android cross-toolchain isn't set up. If adb is missing it tells you how to install it for your platform.

Option B — a sideloading app, no command line

Tools like SideQuest or Sidenoder can do the whole thing with a mouse, and they bundle adb so there is nothing else to install.

  1. Connect the headset by USB and accept the debugging prompt inside it (see above).

  2. Install the APK — drag homeworld-unbound-vr-demo.apk (or the full one) onto the install button. SideQuest's is the box-with-an-arrow icon, top right.

  3. Copy the game data — open the device file browser (the folder icon), navigate to

    Android/data/org.gardensofkadesh.homeworld/files
    

    and upload the contents of homeworld-demo-assets.zip into it — the four files themselves, not the folder or the zip.

  4. Launch it from inside the headset, under Unknown Sources.

That folder only appears after the APK is installed, so do step 2 first. If your sideloading app cannot browse into Android/data — some versions of Android restrict it — use the adb route below for step 3 only; the APK install from step 2 still stands.

Option C — by hand with adb, from the files on this page

1. Get adb. It is one small program from Google's Android platform-tools:

winget install --id Google.PlatformTools        # Windows
brew install --cask android-platform-tools      # macOS
sudo apt install android-tools-adb              # Debian/Ubuntu

(If you would rather not touch a terminal at all, see Option B above.)

2. Check the headset is connected:

adb devices

You want a line ending in device. unauthorized means the "Allow USB debugging" prompt is still waiting inside the headset.

3. Install the APK — pick the one matching the game data you have:

adb install homeworld-unbound-vr-demo.apk

(Or drag the APK onto SideQuest's install button.)

4. Copy the game data. The app is on the headset now but has no data yet — it will start and immediately stop until this is done.

DST=/sdcard/Android/data/org.gardensofkadesh.homeworld/files

Demo — unzip homeworld-demo-assets.zip from this release. Its files are already named exactly as the game opens them, so the whole folder goes in one command:

cd homeworld-demo-assets
adb push . $DST/

Full game — from your Homeworld1Classic/Data folder (Remastered Collection), or the Data folder of an original install. Note the renames:

adb push homeworld.big $DST/Homeworld.big
adb push HW_Music.wxd  $DST/HW_Music.wxd
adb push HW_Comp.vce   $DST/HW_comp.vce

5. Launch it from inside the headset, under Unknown Sources in your app library. Don't start it over adb — that sometimes strands the headset in Meta's loading environment.

Things that trip people up

  • For the full game, the renames above are not cosmetic. The binary opens HW_comp.vce — lowercase c — which does not match the case the Remastered Collection ships. Android's storage is case-insensitive in practice, but pushing under the expected name removes the doubt. The demo zip is already correctly named.
  • Don't mix the two data sets. The demo's Update.big is first in the engine's load order and will silently override full-game data with demo content. Delete the other edition's files before copying.
  • files/ is created by Android when you install the APK, and belongs to the app, so pushing into it is fine — install the APK before copying data. Any subdirectory you make yourself with adb shell mkdir comes out mode 2770 owned by shell, which the game cannot even open; chmod 775 those after pushing. That is what catches people adding the optional remastered soundtrack into files/music/.
  • The game starts and immediately closes? Almost always missing or mismatched game data — the wrong APK for the data you pushed, or nothing pushed at all.

What's in it

  • Stereo world at a locked 72 fps, with ships at true physical scale
  • Orders placed in real 3D — the destination rides your aim ray at a depth you control, so there's no projection plane and no viewing angle where placement breaks down
  • Freehand flight paths: sweep a route and it's smoothed into a spline and flown leg by leg
  • A command wheel at the left wrist carrying the twenty-odd verbs six buttons can't
  • Sensors as a navigable 3D place rather than a flat screen
  • Live control reference and fleet readout on the wrists
  • Optional: the Remastered Collection's re-recorded soundtrack, if you own it (tools/rm_music.py)

Known limitations

  • Tested on Quest 3 only, though the manifest also lists Quest 2 and Pro
  • The world is still drawn three times a frame, and the stereo passes render into the window rather than their own FBOs — which is what currently blocks MSAA. There's headroom left on the table.
  • Multiplayer is untouched by the VR work and unexercised in it
  • Debug-signed, arm64-v8a only

Credits

A VR fork of Gardens of Kadesh, itself the continuation of Homeworld SDL, from Relic's 2003 source release. This project is not open source — that release came with restrictions that are still in force; see the license agreement in the repository. No game assets are distributed here beyond the freely redistributable demo data.

Homeworld is a trademark of its respective owners. This is an unaffiliated fan project.