How to play X-COM UFO Defense using an Open Source Engine on Linux

2020-03-11

(last time edited: 2020-06-04)

tags: linux, games

OpenXcom is an open-source clone of the original UFO: Enemy Unknown (X-Com: UFO Defense in USA), licensed under the GPL and written in C++ / SDL. It was originally founded by SupSuper in February 2010, and has since grown into a small development team surrounded by a very supporting community. The goal of the project is to bring back the tried and true feel of the original with none of the issues. All the same graphics, sound and gameplay with a brand new codebase written from scratch.

First of all buy or grab from the Internet a Windows DRM-Free GOG copy of X-COM: UFO Defense and run md5sum on it to check its integrity.

The md5 hash for setup_x-com_ufo_defense_1.2_(28046).exe should be 31b98618a8f33eadc05700dda3c7d97b

$ md5sum setup_x-com_ufo_defense_1.2_\(28046\).exe

Install innoextract.

Create a local data directory to extract files into it.

$ mkdir -p ~/.local/share/openxcom/data

Extract the content.

$ innoextract -Lm /path/to/Downloads/setup_x-com_ufo_defense_1.2_\(28046\).exe -d ~/.local/share/openxcom/data

Download and install OpenXcom.

If OpenXcom is not present in your distro repository download an official binary release from here.

Extract the content in a temporal directory.

$ mkdir Engines

$ unzip /path/to/Downloads/OpenXcom* -d /path/to/Engines

or the equivalent tar extraction.

$ tar -xf /path/to/Downloads/OpenXcom* -C /path/to/Engines

Let's compile the source code.

OpenXcom requires the following developer libraries: SDL (libsdl1.2), SDL_mixer (libsdl-mixer1.2), SDL_gfx (libsdl-gfx1.2), version 2.0.22 or later, SDL_image (libsdl-image1.2, yaml-cpp, version 0.5.3 or later.

Install them on your system via your distro package manager and then compile the game engine.

$ make -C /path/to/Engines/OpenXcom*/src -f Makefile.simple

According to the XDG standard OpenXcom will check for game data in $XDG_DATA_HOME/openxcom/data

Play X-COM: UFO Defense by executing the compiled binary file or by executing the binary file installed in your system.

According to the XDG standard OpenXcom will check for game data in $XDG_DATA_HOME/openxcom/data

$ openxcom -data /path/to/Engines/X-COM\ UFO\ Defense/app

or just

$ openxcom

Happy gaming!