Case study
OpenXcom: an open-source clone of X-COM: UFO Defense and Terror from the Deep
Reimplements MicroProse’s UFO: Enemy Unknown (X-COM: UFO Defense) and X-COM: Terror from the Deep as a C++/SDL engine that runs on the user’s original game resources. Game data such as items, craft, research and missions is expressed in YAML rulesets, which also carry its standard mods and a wider modding ecosystem. It is a clone that reuses original content, not recovered MicroProse code.
- Targets
- Game
- Category
- Independent reconstruction cases
- Relationship
- Independent reconstruction project
- Sources reviewed
Requirements & limits
- Prerequisites: Requires an unmodified copy of the resources from either or both original games. For UFO these include the GEODATA, GEOGRAPH, MAPS, ROUTES, SOUND, TERRAIN, UFOGRAPH and UNITS folders, and TFTD needs a similar set. The README warns against modded copies such as XcomUtil-patched data; the Windows installer can detect Steam editions.
- Prerequisites: Building targets C++11 with CMake 3.5+, Visual C++, Xcode or a plain Makefile, against SDL 1.2, SDL_mixer, SDL_gfx 2.0.22+, SDL_image and yaml-cpp 0.5.3+. CI compiles debug builds on Linux, 32-bit Windows and macOS.
- Scope: The reviewed master snapshot reports version 1.0 Dev; the last tagged release is v1.0 from 2014, and a nightly workflow builds later Windows, Linux and macOS versions. It covers both games and can import saved games from the originals, while standard mods based on XcomUtil and UFOExtender add optional changes.
- Testing evidence: CI only compiles the code, and the repository has no automated behaviour tests.
- License: Source headers apply GPL-3.0-or-later, and the README notes modified SDL_gfx code (LGPL) used with its author’s permission. Original game resources keep their own rights.
About this entry
The description was reviewed against primary sources.
Primary sources
- README.md GitHub · OpenXcom/OpenXcom · Revision 4a4bae5
- bin/UFO/README.txt GitHub · OpenXcom/OpenXcom · Revision 4a4bae5
- bin/TFTD/README.txt GitHub · OpenXcom/OpenXcom · Revision 4a4bae5
- CMakeLists.txt GitHub · OpenXcom/OpenXcom · Revision 4a4bae5
- src/version.h GitHub · OpenXcom/OpenXcom · Revision 4a4bae5
- .github/workflows/ci.yml GitHub · OpenXcom/OpenXcom · Revision 4a4bae5
- .github/workflows/nightly.yml GitHub · OpenXcom/OpenXcom · Revision 4a4bae5
- src/main.cpp GitHub · OpenXcom/OpenXcom · Revision 4a4bae5
- LICENSE.txt GitHub · OpenXcom/OpenXcom · Revision 4a4bae5
More in Games
- P.T. for PC: a behavior-based engine reimplementation that reads the PS4 data · Case study
- re2ds: a native Nintendo DS engine for Resident Evil 2 · Case study
- San Andreas Unity: a GTA San Andreas engine reimplementation in Unity · Case study
- sh23ds: a native 3DS reconstruction of Silent Hill 2 · Case study
- SiegeFX: a Dungeon Siege engine reimplementation in alpha · Case study
- Skate 3 Rust Engine: a Bevy rewrite built on Skate 3 reverse-engineering research · Case study