Skip to content

About

Unofficial C# + SDL3 port of SkyNET and Future Shock, with a mission editor and Android build (bring your own game data)

Resources

Stars

16 stars

Watchers

3 watching

Forks

Repository files navigation

SkyNET SDL

An unofficial, open-source C# + SDL3 port of The Terminator: SkyNET (Bethesda Softworks, 1996) that also plays The Terminator: Future Shock, with a mission editor (SkyNetEdit).

Unofficial fan port. Not affiliated with or endorsed by Bethesda Softworks, ZeniMax or the owners of The Terminator. No game data is included.

Download

Releases: Windows, Linux and macOS builds (the game skynet-sdl and the editor SkyNetEdit), the Android APK and the optional HD mod skynet-hd.zip. The Linux and macOS builds come from GitHub Actions (.github/workflows/release.yml); macOS builds are unsigned (xattr -dr com.apple.quarantine <folder> once). The game's data is not included: you need your own copy (below).

Screenshots

The original DOS look, and ENHANCED

DOS on the left, ENHANCED on the right The same moment on MAP.280 at dusk: the DOS renderer on the left, ENHANCED (sky, haze, lighting) on the right.

DOS ENHANCED
DOS look ENHANCED look
The original 1996 look, drawn as SKYNET.EXE drew it. The same frame in ENHANCED: lit sky, depth haze, muzzle-flash lighting.

DOS and ENHANCED wipe An HK-Aerial shot down over the MAP.280 base, wiping between DOS and ENHANCED.

HK explosion The HK goes down in ENHANCED.

Other renderers

Retro ASCII RETRO ASCII: the world drawn as fine coloured glyphs.

Retro ASCII, green RETRO ASCII in green phosphor, with an explosion.

Point cloud POINT CLOUD: the scene as a cloud of lit points.

TERMINATOR VISION TERMINATOR VISION in deathmatch: a machine's red point-cloud view with target tags.

SkyNetEdit

Editor map view SkyNetEdit on MAP.280: Outliner, a selected robot with its gizmo, and its Details.

Editor terrain mode Terrain mode: raise, lower, smooth and paint the heightmap with a brush.

Editor model viewer The Model Viewer playing a robot's animation clips (here the HD mod's T-800).

The HD mod (skynet-hd)

HD robots Raptor walkers in the MAP.210 trench, as HD models.

HD HK-Aerial An HK-Aerial over the city ruins, and the 3D gun in hand.

HD gun in hand A 3D assault rifle firing at an HK at dusk.

HD HK cockpit Flying the HK on MAP.270.

Deathmatch with bots

Deathmatch Deathmatch on MAP.605 against eight bots: jeeps and HKs included.

Deathmatch, a jeep burns A bot's jeep burning at the gas station.

Deathmatch, bots in vehicles Bots take the vehicles: an HK flies low past a parked jeep.

Future Shock

Future Shock Future Shock's data runs in the same engine.

You need

A legal copy of SkyNET v1.01 and/or Future Shock: the folder holding MDMDMAP2.BSA (SkyNET) or MDMDMAPS.BSA (Future Shock). Future Shock's data is found beside SkyNET's where the installer puts it (shock/GAMEDATA).

The port is tested on SkyNET v1.01 and Future Shock v1.30. Other releases (European ones, other patches) start too: the game warns that the data is an unknown version and plays on; small differences from DOS are possible there.

Installing

The port replaces the DOS executable only: it reads the game's own data files and never changes them.

Windows

  1. Install SkyNET (from its CD, or copy an existing install). You need the folder with the game's data, usually GAMEDATA, holding MDMDMAP2.BSA.
  2. Unzip skynet-sdl-<version>-win-x64.zip into the game's folder, beside GAMEDATA:
    SKYNET\
      GAMEDATA\          SkyNET's data (MDMDMAP2.BSA, ...)
      shock\
        GAMEDATA\        Future Shock's data (MDMDMAPS.BSA, ...), optional
      mods\              mods (skynet-hd.zip, ...); the port creates it
      saves\             saved games; settings sit beside the exe
      skynet-sdl.exe     the port
      SkyNetEdit.exe     the editor
    
  3. Run skynet-sdl.exe. The first start prepares the maps once ("PREPARING GAME DATA").

Future Shock is found in shock\GAMEDATA beside SkyNET's data folder (the original installer's layout) and then shows up under NEW GAME. mods\ is always beside the exe (--mods-dir <folder> to move it). The data can live anywhere else: start with skynet-sdl.exe --data <folder> or set SKYNET_DATA.

Linux / macOS

Unpack the .tar.gz the same way, beside the data folder, and run ./skynet-sdl. Linux needs glibc 2.35+ and a Vulkan driver. macOS builds are unsigned: run xattr -dr com.apple.quarantine <folder> once.

Android

  1. Copy the game's data folder (the one holding MDMDMAP2.BSA) to the phone.
  2. Install SkyNET-<version>.apk (allow installing from this source when asked).
  3. On the first start, pick that folder: the app copies it into its own storage. Long-press the app icon → Setup to change it later or to pick a mods folder.

HD mod (optional)

Copy skynet-hd.zip (unzipped or not) into mods\ beside the exe and turn it on under OPTIONS → MODS.

Running

skynet-sdl.exe --data <the game's data folder>

Without --data the game tries SKYNET_DATA, then gamedata beside the exe or its parent. The first start bakes the maps ("PREPARING GAME DATA").

Android: on the first start the app asks for the game's folder and copies it into its own storage.

Main options (skynet-sdl.exe --help lists all):

Option Effect
--data <dir> the game's data folder
--mission N / --map N start mission N / on MAP.NNN
--mod <name>[,name] / --no-mods mods for this run / none
--look original|enhanced DOS look or the enhanced renderer
--gpu d3d12|vulkan the graphics backend
--width N --height N, --fullscreen the window
--difficulty low|med|high robots' fire rate and damage
--host=MAP.NNN / --join=HOST[:PORT] network deathmatch (docs/multiplayer.md)
--dedicated --config server.json dedicated server (config/server.sample.json)
--record NAME / --playdemo NAME demos (docs/demos.md)

Building

.NET 10 SDK. Packages come from nuget.org; the engine (RetroEng.*) from its public feed (nuget.config: https://nautilusbits.github.io/retroeng-packages/index.json).

dotnet build SkyNet.slnx
Target Command Needs
Release (Native AOT) build-release.bat → release\skynet-sdl.exe (-r linux-x64 for Linux) VS C++ tools; Vulkan SDK optional (Vulkan/Metal shaders)
Editor build-editor.bat
Android build-android.bat → release-android\SkyNET-<version>.apk android workload, Android SDK, JDK 21, Vulkan SDK

The release publish by hand: dotnet publish src\SkyNet.App\SkyNet.App.csproj -c Release -r win-x64 -o release.

Engine work: with a RetroEng checkout at ..\..\retroeng (or RetroEngRoot), build with -p:UseLocalRetroEng=true to use project references instead of the RetroEng.* packages.

Project What it holds
SkyNet.App / SkyNet.Android / SkyNet.Edit Game executable (desktop, Android) and mission editor.
SkyNet.Game, SkyNet.Data, SkyNet.Formats Game logic, extracted tables, DOS file formats.
SkyNet.Upscale Optional texture upscaling through an external Real-ESRGAN (ncnn/Vulkan) tool.

Tests

dotnet test -c Release

Set SKYNET_DATA=<the SkyNET data folder> for the tests that need the game's data; without it they are skipped. Future Shock tests also need its data beside SkyNET's.

Mods

Mods live in mods/ beside the exe and are turned on under OPTIONS - MODS or with --mod. docs/modding.md is the reference; mods-samples/ holds small examples. The HD pack skynet-hd (skynet-hd.zip on the Releases page; unzip into mods/ or copy the zip there) is released separately under CC BY-NC 4.0 (non-commercial, own credits).

Licence

MIT (see LICENSE) for the port's code, docs and sample mods. Third-party components: THIRD-PARTY-NOTICES.txt. data/tables holds values read from the original SKYNET.EXE v1.01, included for interoperability; tools/SkyNet.Tables rebuilds them from your own copy. The licence grants no rights to the original games or their data.

The engine, RetroEng, is not part of this repository: its RetroEng.* packages are binary-only under the RetroEng Non-Commercial Binary Licence (LICENSE-RetroEng.txt in each package). Builds that ship the engine may be shared free of charge but not used commercially (no sales, paid access or advertising) without the engine's copyright holder's written permission. SkyNET, Future Shock, Bethesda and The Terminator are trademarks of their owners.

About

Unofficial C# + SDL3 port of SkyNET and Future Shock, with a mission editor and Android build (bring your own game data)

Resources

Stars

16 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages