Repository navigation
Home
SiegeFX is an open-source reimplementation of Dungeon Siege (Gas Powered Games, 2002), written in C# / .NET 10 for Windows and Linux. It loads the original game's data files and runs them on a modern engine — no copyrighted assets are redistributed, you bring your own DS1 install.
This wiki is the project's developer journal. It exists for two reasons:
-
So the next contributor doesn't relearn what we already learned the hard way. Reverse-engineering a 2002 engine without source means most days are spent finding out a file format does the opposite of what its header says, or that a constant lives in a
.gasfile no one has read in twenty years. Those discoveries belong somewhere durable. - So readers who want to do the same thing for another old game can copy the workflow. SiegeFX is one example of "how do you bring a vintage engine forward?" — the pattern of how we got here is more useful than the specific code.
- Status — current release, what works, what's queued.
- Parity — the measurement: how much of what the original ships the engine handles, section by section, and every gap.
- Multiplayer — co-op for up to 8 players: internet play on Epic's backend (no accounts, no IP addresses to share), the LAN and direct IP; how a game starts, who decides what, how the world reaches every machine, what it costs on the wire, and how to test it.
- SiegeSmith — the modding studio and world builder that ships in this repository alongside the engine. Its manual: How do I…? (quick answers), Making a Game from Scratch (empty viewport → distributable map), the World Builder Guide, Effects Lab and Studio Guide (full references), and the Modder's Guide (editing the original game).
- Engine Quirks and Stumbles — the running list of DS1 / .NET / engine gotchas we've hit and how we resolved them. Read this before you start touching a new subsystem.
- Architecture — solution layout, the projects, where each subsystem lives.
- Building and Running — build and run on Windows and Linux, where to point DS1 data, release builds, the test menus.
-
Diagnostic CLI Tools — the
siegefxCLI: every subcommand explained, with notes for modders, expansion authors, and people building new games on DS file formats. - Auditing the Spell Catalog — the tool we built to make recreating DS1's ~70 spells in our engine tractable instead of a one-by-one grind. Includes a small piece of game-development history we surfaced in the process.
- The Frontend Menu Machine — DS1's main menu is a miniature 3D machine: nine skinned meshes, a title drum, folding label planks, morphing buttons, and its own gear-sound foley. How it works, how every placement/animation/sound was decoded from retail data, and the measurement workflow that replaced a long stretch of blind iteration.
-
Release Archive — notes from the retired pre-reset milestone tags (
v0.7.0–v0.9.0) and why versioning restarted at0.0.1. - Phase 20 and v1.0 Polish Plan — historical planning page from the milestone era.
You need a legitimate copy of Dungeon Siege (GOG, Steam, or original discs). Configure the engine to point at its Resources directory; SiegeFX reads .dsres / .dsmap tank files directly and never modifies them.
Issues and PRs live on the main repo. When you fix something subtle, write the fix up on Engine Quirks and Stumbles before you close the issue — the next person to brush up against that area should not have to find your commit message.