{"slug": "openigi-webgpu-independent-reimplementation-of-project-igi", "title": "OpenIGI: WebGPU independent reimplementation of Project IGI", "summary": "OpenIGI, a clean-room reimplementation of Innerloop Studios' engine for Project I.G.I.: I'm Going In (2000) and I.G.I. 2: Covert Strike (2003), runs both games from a user's own retail installation using a single renderer on Direct3D 12, Vulkan and WebGPU, including in the browser. The engine is written in C# on .NET 10 and reproduces the original's deterministic 30 Hz simulation, AI perception, weapon tables and mission flow, with a vanilla mode held pixel for pixel as a regression gate. All 14 Project I.G.I. missions are playable, the first 6 in the browser with original graphics, while all 19 I.G.I. 2 missions load and play but have no released builds yet and must be run from source.", "body_md": "**An open-source engine for *Project I.G.I.: I'm Going In* (2000) and *I.G.I. 2: Covert Strike* (2003).**\n\nOpenIGI is a clean-room reimplementation of Innerloop Studios' engine, written in C# on .NET 10. It runs the original games from your own retail installation. The original missions, scripts and AI play as they did in 2000, and a modern renderer, launcher and modding platform are built around them.\n\n[openigi.com](https://openigi.com) · [Releases](https://github.com/OpenIGI/OpenIGI/releases) ·\n[Modding guide](https://github.com/OpenIGI/OpenIGI/blob/master/sdk/README.md) · [Contributing](https://github.com/OpenIGI/OpenIGI/blob/master/CONTRIBUTING.md)\n\n**You need your own copy of the game.** OpenIGI contains no game assets and none of the original code. Every\ntexture, model, sound and script comes from the installation you point it at.\n\n- **Faithful to the original.** The game's own QVM scripts run on a reimplemented interpreter, over a deterministic\n30 Hz simulation that reproduces the original's timing, AI perception, weapon tables and mission flow. A`vanilla` mode reproduces the original picture and is held pixel for pixel as a regression gate.\n- **A modern renderer.** Deferred HDR rendering with cascaded shadows, real-time global illumination, volumetric\nfog, screen-space reflections, temporal upscaling and hardware ray tracing on capable GPUs. NVIDIA DLSS (Super\nResolution, DLAA, Ray Reconstruction and Frame Generation) and Reflex are offered as an optional download.\n- **Direct3D 12, Vulkan and WebGPU.** One renderer runs on all three. It runs natively on Windows, Linux and macOS,\nand in the browser.\n- **A launcher.** It finds your games, installs and updates OpenIGI on the stable or beta channel, and manages\ncontent packs and mods.\n- **Moddable.** You can replace art by dropping files in a folder, install content packs with a load order, or write\ncode mods in C# against a versioned API, published through a community index and built from source.\n\n|  | Project I.G.I. | I.G.I. 2 | \n|---|---|---|\n| Campaign | All 14 missions | All 19 missions load and play; in development | \n| Released builds | Yes | Not yet, run from source | \n| Browser | First 6 missions, original graphics | No | \n| Multiplayer | No | No | \n\n| Platform | Graphics API | Hardware ray tracing | \n|---|---|---|\n| Windows 10/11 x64 | Direct3D 12 (default), Vulkan | Yes, on DXR 1.1 / RTX- and RDNA2-class GPUs | \n| Linux x64 | Vulkan | Yes, on RTX- and RDNA2-class GPUs | \n| macOS 13+ (Apple silicon) | Vulkan through MoltenVK, included | No: shadows, reflections and GI use their screen-space and shadow-map forms | \n| Browser | WebGPU | No | \n\n**Desktop.** Install the launcher from [openigi.com](https://openigi.com). On Windows that's a download. On macOS and\nLinux run:\n\n```\ncurl -fsSL https://openigi.com/install.sh | bash\n```\n\nThe launcher looks for your game installations, or you can point it at them in Settings. It installs OpenIGI and\nkeeps it up to date. Switch to the **beta** channel in Settings for builds from the development branch.\n\n**Browser.** Open [openigi.com](https://openigi.com) in a browser with WebGPU and choose your Project I.G.I. folder.\nThe files are read on your machine and never uploaded.\n\nYou need the **.NET 10 SDK** (the version is pinned in [`global.json`](https://github.com/OpenIGI/OpenIGI/blob/master/global.json)).\n\n```\ndotnet build -c Release OpenIGI.slnx\ndotnet test  -c Release OpenIGI.slnx\n```\n\nTests that need retail data read `IGI_GAME_PATH` and `IGI2_GAME_PATH`, and skip themselves when those are unset. A\ncheckout with no game data still builds and tests clean.\n\nSome optional native components are fetched into `third-party/` rather than committed:\n\n| Script | Needed for | \n|---|---|\n| `tools/fetch-wgpu-native.ps1` | The desktop WebGPU backend | \n| `tools/fetch-streamline.ps1` | DLSS and Reflex in development builds | \n| `tools/fetch-dxc.ps1` | Regenerating the committed DXIL shaders | \n\nCopy the build into the game folder and run it there, or tell it where the game is:\n\n```\nexport IGI_GAME_PATH=\"/path/to/Project IGI\"      # PowerShell: $env:IGI_GAME_PATH = \"C:\\Games\\Project IGI\"\nexport IGI2_GAME_PATH=\"/path/to/IGI 2\"\ndotnet run -c Release --project apps/OpenIGI.Desktop -- -title igi1\n```\n\n| Option | Effect | \n|---|---|\n| `-title igi1\\|igi2` | Which game to run | \n| `-game <dir>` | The installation to read, ahead of the environment variables | \n| `-mission <n>` | Start in a mission, skipping the menus | \n| `-window` ,`-size WxH` ,`-fullscreen` | Window mode. Borderless is the default | \n| `-difficulty easy\\|normal\\|hard` | Difficulty | \n| `-vanilla` | The original menus, picture, pacing and audio | \n| `-content <dir>` | Load a content pack folder | \n| `+<command>` | Run a console command at startup, for example `+gfx_preset ultra` | \n\n`-help` lists every option, including the capture and camera tools used in development.\n\nThe graphics presets are `vanilla`, `enhanced`, `high` and `ultra`. Each one sets the renderer's variables together;\nevery setting can also be changed on its own in the settings pages or the console (`` ` ``).\n\nThe graphics API is chosen automatically: Direct3D 12 on Windows (when the GPU supports shader model 6.6), Vulkan\nelsewhere. Override it with `r_renderer`, or press **F10** to switch APIs while the game runs.\n\nDLSS and Reflex need an NVIDIA RTX GPU on Windows. Install them from the launcher's Content page (**NVIDIA DLSS**).\nWithout them the engine's own temporal upscaler runs.\n\nSettings are saved to `settings.cfg` beside the executable if one exists there, otherwise to your user profile:\n`%APPDATA%\\OpenIGI`, `~/.config/OpenIGI` or `~/Library/Application Support/OpenIGI`.\n\n- \n**Replace a file.** Put it under`<game>/overrides/` at the path it has in the game, for example`overrides/common/textures/000_04_1.tex` . A`.res` archive there works too. The`overrides` console command reloads\nthe folder, and**F8** toggles it.\n- \n**Content packs.** These are folders of replacement art with a load order, installed and ordered from the\nlauncher's Content page. The tools to build one from your own installation, such as an AI-upscaled texture pack,\nare`tools/texture-forge` and`tools/OpenIGI.Tools.ResExtract` .\n- \n**Mods.** A mod can ship files that stand in for the game's, whole new missions and campaigns, C# code, and shader\npasses over the picture, before the tone map or after it. Its code is one`Configure` that says, top to bottom, what\nit changes through a builder: settings, level systems, task types, script constants, the games' events and HUD\noverlays. A save records the mods it was made with, and a mod's tests are built with the same SDK\nagainst a harness that configures it as the game does. Start one with the template (`--kind code` ,`data` or`shader` ):\n\n```\ndotnet new install OpenIGI.Modding.Templates\ndotnet new openigi-mod -n MyMod --modId my-mod\n```\n\n Mods are published through a community index and built by its CI from a pinned commit of their public source, never from an author's binaries. The launcher's Mods page installs them. See the [modding guide](https://github.com/OpenIGI/OpenIGI/blob/master/sdk/README.md) .\n\n```\napps/       OpenIGI.Desktop (the game), OpenIGI.Launcher, OpenIGI.Web (the browser build)\nsrc/\n  Core/       primitives, settings, retail file formats, the QVM interpreter, release manifests\n  Engine/     the game host and frame loop, virtual file system, mod API and loader\n  Game/       gameplay shared by both games, each game's own gameplay and presentation, the menus\n  Rendering/  the renderer, its hardware interface, the D3D12/Vulkan/WebGPU backends, shaders, DLSS\n  Audio/      OpenAL and Web Audio\n  Platform/   windowing and input for desktop and browser\n  UI/         the UI framework used by the menus and the launcher\nsdk/        the modding SDK, the project template and the community index's rules\ntools/      asset extraction, QVM disassembly, shader build, release and site tooling\ntests/      xUnit test projects\n```\n\nNothing under `src/` may reference a concrete backend; the applications wire backends in. The architecture tests in\n`tests/OpenIGI.Core.Tests/Architecture` enforce this layering.\n\nContributions are welcome. [`CONTRIBUTING.md`](https://github.com/OpenIGI/OpenIGI/blob/master/CONTRIBUTING.md) covers the determinism rules, the clean-room policy,\nwhich retail build is the reference, and how changes are tested. In short: open a pull request against `develop`, keep\nthe Release build free of warnings, and keep the test suite passing. `tools/install-hooks.sh` installs the same\nchecks as git hooks.\n\nOpenIGI is licensed under the [GNU General Public License v3.0](https://github.com/OpenIGI/OpenIGI/blob/master/LICENSE). Third-party components are listed in\n[`THIRD-PARTY-NOTICES.md`](https://github.com/OpenIGI/OpenIGI/blob/master/THIRD-PARTY-NOTICES.md).\n\nOpenIGI is a clean-room reimplementation for use with game data you already own. It is not affiliated with or endorsed\nby the owners of *Project I.G.I.* or *I.G.I. 2*. All trademarks belong to their respective owners. The repository\ncontains no game assets, original source code or decompiler output, and contributions that include them are not\naccepted.", "url": "https://wpnews.pro/news/openigi-webgpu-independent-reimplementation-of-project-igi", "canonical_source": "https://github.com/openigi/openigi", "published_at": "2026-11-12 17:08:11+00:00", "updated_at": "2026-11-12 17:22:08.446322+00:00", "lang": "en", "topics": ["developer-tools", "ai-agents"], "entities": ["OpenIGI", "Innerloop Studios", "Project I.G.I.: I'm Going In", "I.G.I. 2: Covert Strike", "WebGPU", "Direct3D 12", "Vulkan", "NVIDIA DLSS"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/openigi-webgpu-independent-reimplementation-of-project-igi", "markdown": "https://wpnews.pro/news/openigi-webgpu-independent-reimplementation-of-project-igi.md", "text": "https://wpnews.pro/news/openigi-webgpu-independent-reimplementation-of-project-igi.txt", "jsonld": "https://wpnews.pro/news/openigi-webgpu-independent-reimplementation-of-project-igi.jsonld"}}