A Godot 4 port of the two 1996 XnGine shooters by Bethesda Softworks — SkyNET and Future Shock. The engine is rewritten in Godot; the game itself is read from your own copy of the original data: the BSA archives, the WLD heightmaps, the TEXTURE files, the maps, the sounds and the HMI music, all decoded at run time.
Nothing from the original games is included here. You need the games.

Mission one: out of the canyon, and the complex comes into view.
![]() | ![]() |
![]() | ![]() |
![]() | ![]() |
![]() | ![]() |
Left to right, top to bottom: mission 1's canyon under the moon; the ruined city; the Cyberdyne building; the jeep with its own HUD; the HK flying the highway with the convoy ahead; a deathmatch seen through the TERMINATOR class's machine vision; the network setup screen, whose left box turns the body you will play as; and the render settings, cut out of the original dialog art.
There is also an Android export preset. It builds and runs, but it gets far less testing than the desktop builds.
GAMEDATA directory; both work. It is recognised by
MDMDMAP2.BSA.MDMDMAPS.BSA.
Give it and the menu can start that game as well.Both paths are remembered, so you are asked once. Start the game with
--setup to point it somewhere else later.
Platform notes:
SkyNET.exe.chmod +x SkyNET.x86_64 after downloading..app inside the zip is not signed (it is built on
Windows), so Gatekeeper will refuse it: open it once with right-click →
Open, or clear the quarantine flag with
xattr -dr com.apple.quarantine "SkyNET Godot Port.app".| Option | What it does |
|---|---|
--gamedata=DIR | use this data directory for this run |
--setup | ask for the game folders again |
--map=MAP.230 | start straight on a map, no menu |
--host=MAP.605 --bots=3 | host a deathmatch at once |
--join=ADDRESS[:PORT] | join one |
--import | build the asset cache and quit |
--solve[=SECONDS] | let the solver play the mission and report |
--screenshot=FILE | save a frame and quit (for automation) |
Godot 4.7.2 (standard build, no C#). Open godot_project/ in the
editor, or export from the command line:
godot --headless --path godot_project --export-release "Windows Desktop" build/windows/SkyNET.exe
godot --headless --path godot_project --export-release "Linux" build/linux/SkyNET.x86_64
godot --headless --path godot_project --export-release "macOS" build/macos/SkyNET.zip
The project has three headless test suites that run the real game code:
godot --headless --path godot_project res://scenes/action_smoke_test.tscn
godot --headless --path godot_project res://scenes/game_smoke_test.tscn
godot --headless --path godot_project res://scenes/net_smoke_test.tscn
Every rule that could be measured was taken from the original DOS build (SkyNET v1.01) rather than reinvented: the action handler table, the mover families, the AI state handlers, the weapon table, the mission tables, the water and border-box code. Where the port and the original disagreed, the disassembly decided. The test suites above exist so those findings stay fixed.
Copyright © 2026 Marek Draškaba.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License, version 3 as published by the Free Software Foundation. It is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY — without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE for the full text.
The licence covers this port's own code. It says nothing about the original games' data, which belongs to its rights holders and is not distributed here.
A fan project, not affiliated with or endorsed by Bethesda Softworks or any rights holder of the original games. All trademarks belong to their owners. No original game content is distributed here — the port only reads data you already own.
GDScript
99.0%
Python
1.0%
A Godot 4 port of the two 1996 XnGine shooters by Bethesda Softworks — SkyNET and Future Shock. The engine is rewritten in Godot; the game itself is read from your own copy of the original data: the BSA archives, the WLD heightmaps, the TEXTURE files, the maps, the sounds and the HMI music, all decoded at run time.
Nothing from the original games is included here. You need the games.

Mission one: out of the canyon, and the complex comes into view.
![]() | ![]() |
![]() | ![]() |
![]() | ![]() |
![]() | ![]() |
Left to right, top to bottom: mission 1's canyon under the moon; the ruined city; the Cyberdyne building; the jeep with its own HUD; the HK flying the highway with the convoy ahead; a deathmatch seen through the TERMINATOR class's machine vision; the network setup screen, whose left box turns the body you will play as; and the render settings, cut out of the original dialog art.
There is also an Android export preset. It builds and runs, but it gets far less testing than the desktop builds.
GAMEDATA directory; both work. It is recognised by
MDMDMAP2.BSA.MDMDMAPS.BSA.
Give it and the menu can start that game as well.Both paths are remembered, so you are asked once. Start the game with
--setup to point it somewhere else later.
Platform notes:
SkyNET.exe.chmod +x SkyNET.x86_64 after downloading..app inside the zip is not signed (it is built on
Windows), so Gatekeeper will refuse it: open it once with right-click →
Open, or clear the quarantine flag with
xattr -dr com.apple.quarantine "SkyNET Godot Port.app".| Option | What it does |
|---|---|
--gamedata=DIR | use this data directory for this run |
--setup | ask for the game folders again |
--map=MAP.230 | start straight on a map, no menu |
--host=MAP.605 --bots=3 | host a deathmatch at once |
--join=ADDRESS[:PORT] | join one |
--import | build the asset cache and quit |
--solve[=SECONDS] | let the solver play the mission and report |
--screenshot=FILE | save a frame and quit (for automation) |
Godot 4.7.2 (standard build, no C#). Open godot_project/ in the
editor, or export from the command line:
godot --headless --path godot_project --export-release "Windows Desktop" build/windows/SkyNET.exe
godot --headless --path godot_project --export-release "Linux" build/linux/SkyNET.x86_64
godot --headless --path godot_project --export-release "macOS" build/macos/SkyNET.zip
The project has three headless test suites that run the real game code:
godot --headless --path godot_project res://scenes/action_smoke_test.tscn
godot --headless --path godot_project res://scenes/game_smoke_test.tscn
godot --headless --path godot_project res://scenes/net_smoke_test.tscn
Every rule that could be measured was taken from the original DOS build (SkyNET v1.01) rather than reinvented: the action handler table, the mover families, the AI state handlers, the weapon table, the mission tables, the water and border-box code. Where the port and the original disagreed, the disassembly decided. The test suites above exist so those findings stay fixed.
Copyright © 2026 Marek Draškaba.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License, version 3 as published by the Free Software Foundation. It is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY — without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE for the full text.
The licence covers this port's own code. It says nothing about the original games' data, which belongs to its rights holders and is not distributed here.
A fan project, not affiliated with or endorsed by Bethesda Softworks or any rights holder of the original games. All trademarks belong to their owners. No original game content is distributed here — the port only reads data you already own.
GDScript
99.0%
Python
1.0%