/OpenXcom

Open-source clone of the original X-Com 👽

Primary LanguageC++GNU General Public License v3.0GPL-3.0

OpenXcom Workflow Status

OpenXcom is an open-source clone of the popular "UFO: Enemy Unknown" ("X-COM: UFO Defense" in the USA release) and "X-COM: Terror From the Deep" videogames by Microprose, licensed under the GPL and written in C++ / SDL.

See more info at the website and the wiki.

Uses modified code from SDL_gfx (LGPL) with permission from author.

Installation

OpenXcom requires a vanilla copy of the X-COM resources -- from either or both of the original games. If you own the games on Steam, the Windows installer will automatically detect it and copy the resources over for you.

If you want to copy things over manually, you can find the Steam game folders at:

UFO: "Steam\SteamApps\common\XCom UFO Defense\XCOM"
TFTD: "Steam\SteamApps\common\X-COM Terror from the Deep\TFD"

Do not use modded versions (e.g. with XcomUtil) as they may cause bugs and crashes. Copy the UFO subfolders to the UFO subdirectory in OpenXcom's data or user folder and/or the TFTD subfolders to the TFTD subdirectory in OpenXcom's data or user folder (see below for folder locations).

Mods

Mods are an important and exciting part of the game. OpenXcom comes with a set of standard mods based on traditional XcomUtil and UFOExtender functionality. There is also a mod portal website with a thriving mod community with hundreds of innovative mods to choose from.

To install a mod, go to the mods subdirectory in your user directory (see below for folder locations). Extract the mod into a new subdirectory. WinZip has an "Extract to" option that creates a directory whose name is based on the archive name. It doesn't really matter what the directory name is as long as it is unique. Some mods are packed with extra directories at the top, so you may need to move files around inside the new mod directory to get things straighted out. For example, if you extract a mod to mods/LulzMod and you see something like:

mods/LulzMod/data/TERRAIN/
mods/LulzMod/data/Rulesets/

and so on, just move everything up a level so it looks like:

mods/LulzMod/TERRAIN/
mods/LulzMod/Rulesets/

and you're good to go! Enable your new mod on the Options -> Mods page in-game.

Directory Locations

OpenXcom has three directory locations that it searches for user and game files:

Folder Type Folder Contents
user mods, savegames, screenshots
config game configuration
data UFO and TFTD data files, standard mods, common resources

Each of these default to different paths on different operating systems (shown below). For the user and config directories, OpenXcom will search a list of directories and use the first one that already exists. If none exist, it will create a directory and use that. When searching for files in the data directory, OpenXcom will search through all of the named directories, so some files can be installed in one directory and others in another. This gives you some flexibility in case you can't copy UFO or TFTD resource files to some system locations. You can also specify your own path for each of these by passing a commandline argument when running OpenXcom. For example:

openxcom -data "$HOME/bin/OpenXcom/usr/share/openxcom"

or, if you have a fully self-contained installation:

openxcom -data "$HOME/games/openxcom/data" -user "$HOME/games/openxcom/user" -config "$HOME/games/openxcom/config"

Windows

User and Config folder:

  • C:\Documents and Settings\<user>\My Documents\OpenXcom (Windows 2000/XP)
  • C:\Users\<user>\Documents\OpenXcom (Windows Vista/7)
  • <game directory>\user
  • .\user

Data folders:

  • C:\Documents and Settings\<user>\My Documents\OpenXcom\data (Windows 2000/XP)
  • C:\Users\<user>\Documents\OpenXcom\data (Windows Vista/7/8)
  • <game directory>
  • . (the current directory)

Mac OS X

User and Config folder:

  • $XDG_DATA_HOME/openxcom (if $XDG_DATA_HOME is defined)
  • $HOME/Library/Application Support/OpenXcom
  • $HOME/.openxcom
  • ./user

Data folders:

  • $XDG_DATA_HOME/openxcom (if $XDG_DATA_HOME is defined)
  • $HOME/Library/Application Support/OpenXcom (if $XDG_DATA_HOME is not defined)
  • $XDG_DATA_DIRS/openxcom (for each directory in $XDG_DATA_DIRS if $XDG_DATA_DIRS is defined)
  • /Users/Shared/OpenXcom
  • . (the current directory)

Linux

User folder:

  • $XDG_DATA_HOME/openxcom (if $XDG_DATA_HOME is defined)
  • $HOME/.local/share/openxcom (if $XDG_DATA_HOME is not defined)
  • $HOME/.openxcom
  • ./user

Config folder:

  • $XDG_CONFIG_HOME/openxcom (if $XDG_CONFIG_HOME is defined)
  • $HOME/.config/openxcom (if $XDG_CONFIG_HOME is not defined)

Data folders:

  • $XDG_DATA_HOME/openxcom (if $XDG_DATA_HOME is defined)
  • $HOME/.local/share/openxcom (if $XDG_DATA_HOME is not defined)
  • $XDG_DATA_DIRS/openxcom (for each directory in $XDG_DATA_DIRS if $XDG_DATA_DIRS is defined)
  • /usr/local/share/openxcom
  • /usr/share/openxcom
  • . (the current directory)

Configuration

OpenXcom has a variety of game settings and extras that can be customized, both in-game and out-game. These options are global and affect any old or new savegame.

For more details please check the wiki.

Development

OpenXcom requires the following developer libraries:

The source code includes files for the following build tools:

  • Microsoft Visual C++ 2010 or newer
  • Xcode
  • Make (see Makefile.simple)
  • CMake

It's also been tested on a variety of other tools on Windows/Mac/Linux. More detailed compiling instructions are available at the wiki, along with pre-compiled dependency packages.