Vanilla Conquer is a fully portable version of the first generation C&C engine and is capable of running both Tiberian Dawn and Red Alert on multiple platforms. It can also be used for mod development for the Remastered Collection.
The main focus of Vanilla Conquer is to keep the default out-of-box experience faithful to what the games were back when they were released and work as a drop-in replacement for the original executables while also providing bug fixes, compatiblity and quality of life improvements.
Current project goals are tracked as GitHub issues with the goal label.
There are rooms on multiple platforms for discussion:
- The Assembly Armada on Discord
- #vanilla-conquer:vi.fi on Matrix
- #vanilla-conquer on Libera.Chat IRC network
All of these rooms are bridged together so people can choose their preferred service. Please be nice to each other.
We support wide variety of compilers and platforms to target. Vanilla Conquer is known to compile with recent enough gcc, MSVC, mingw-w64 or clang and known to run on Windows, Linux, macOS and BSDs.
A CMakePresets.json file is provided that contains presets for common build configurations and is used by our CI scripts to build the release builds. These presets require the Ninja build tool to be available in the system PATH in order to be used.
We also provide an example CMakeUserPresets.json that can be copied to the root source directory and renamed. You can edit this file to create your own development presets that won't be included in git commits. A few example presets are provided which override the release presets to build a "debug" configuration.
To build using a preset, add --preset preset_name
to the CMake command line examples below.
The following components are needed to build Vanilla Conquer executables:
- MSVC v142 C++ x86/x64 build tools
- Windows 10 SDK
- CMake (installable from MSVC build tools)
- SDL1 or SDL2 development libraries, Visual C++
- OpenAL Core SDK
Extract SDL2 and OpenAL somewhere you know. If you are building only Remastered dlls you can skip installing SDL2 and OpenAL.
In a VS command line window in the Vanilla Conquer source directory:
cmake -DSDL2_ROOT_DIR=C:\path\to\SDL2 -DOPENAL_ROOT=C:\path\to\OpenAL -B build .
cmake --build build
This will build Vanilla Conquer executables in the build directory. If you are building Remastered dlls you need to configure cmake with -A win32
and ensure your VS command line is x86.
- GNU C++ Compiler (g++) or Clang
- CMake
- SDL1 or SDL2
- OpenAL
On Debian/Ubuntu you can install the build requirements as follows:
sudo apt update
sudo apt install g++ cmake libsdl2-dev libopenal-dev
or
sudo apt install g++ cmake libsdl1.2-dev libopenal-dev
On Fedora/RedHat based system you can install the build requirements as follows:
sudo dnf install gcc-c++ cmake SDL2-devel openal-soft-devel
or
sudo dnf install gcc-c++ cmake SDL-devel openal-soft-devel
cmake -B build .
cmake --build build
This will build Vanilla Conquer executables in the build directory.
To create a portable bundle for macOS we run macdylibbundler in our CI builds as an extra step to add the SDL2 and OpenAL libraries to the bundle. If you wish to create a portable bundle yourself, you will need to do this step manually as CMake will not currently do it for you.
CMake will attempt to generate icons in an appropriate format for Windows and macOS if ImageMagick is found in the system PATH. Otherwise you will end up with generic "program" icons.
Binary releases of the latest commit are available from here, which is updated whenever new code is merged into the main branch.
Copy the Vanilla executable (vanillatd.exe
or vanillara.exe
) to your legacy game directory, on Windows also copy SDL2.dll
and OpenAL32.dll
.
For Tiberian Dawn the final freeware Gold CD release (GDI, NOD) works fine.
For Red Alert the freeware CD release works fine as well. The official Red Alert demo is also fully playable. The demo supports custom skirmish maps (except interior) and includes one campaign mission for both Allied and Soviet from the retail game.
While it is possible to use the game data from the Remastered Collection, The Ultimate Collection or The First Decade they are currently not supported. Any repackaged version that you may already have from any unofficial source is not supported. If you encounter a bug that may be data related like invisible things or crashing when using a certain unit please retest with the retail data first before submitting a bug report.
The build process will produce Vanilla_TD and Vanilla_RA directories in your build directory if you enable them with -DBUILD_REMASTERTD=ON
and -DBUILD_REMASTERRA=ON
.
These work as mods for the Remastered Collection.
To manually install a local Remastered mod, launch both games once then head to My Documents/CnCRemastered/CnCRemastered/Mods. You should see Tiberian_Dawn and Red_Alert directories.
Copy the Vanilla_TD directory to the Tiberian_Dawn directory.
The directory structure should look like this:
My Documents/CnCRemastered/CnCRemastered/Mods/Tiberian_Dawn/Vanilla_TD/Data/TiberianDawn.dll
My Documents/CnCRemastered/CnCRemastered/Mods/Tiberian_Dawn/Vanilla_TD/ccmod.json
My Documents/CnCRemastered/CnCRemastered/Mods/Tiberian_Dawn/Vanilla_TD/GameConstants_Mod.xml
You should now see the new mod in the mods list of Tiberian Dawn Remastered.
Copy the Vanilla_RA directory to the Red_Alert directory.
The directory structure should look like this:
My Documents/CnCRemastered/CnCRemastered/Mods/Red_Alert/Vanilla_RA/Data/RedAlert.dll
My Documents/CnCRemastered/CnCRemastered/Mods/Red_Alert/Vanilla_RA/ccmod.json
You should now see the new mod in the mods list of Red Alert Remastered.