{"id":13531226,"url":"https://github.com/TheAssemblyArmada/Vanilla-Conquer","last_synced_at":"2025-04-01T19:31:53.753Z","repository":{"id":37458823,"uuid":"269180673","full_name":"TheAssemblyArmada/Vanilla-Conquer","owner":"TheAssemblyArmada","description":"Vanilla Conquer provides clean, cross-platform builds of the C\u0026C Remastered Collection and the standalone legacy games.","archived":false,"fork":false,"pushed_at":"2024-04-07T11:58:59.000Z","size":21149,"stargazers_count":316,"open_issues_count":373,"forks_count":49,"subscribers_count":18,"default_branch":"vanilla","last_synced_at":"2024-04-12T22:58:53.382Z","etag":null,"topics":["c-plus-plus","cmake","command-and-conquer","cross-platform","crossplatform","game-engine","games","multi-platform","open-game","open-source","openredalert","real-time-strategy","red-alert","redalert","rts"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TheAssemblyArmada.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"License.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2020-06-03T19:51:17.000Z","updated_at":"2024-04-09T07:04:16.000Z","dependencies_parsed_at":"2024-01-03T03:58:18.441Z","dependency_job_id":"7c8b1f42-009f-45c6-af76-0f68a3d7dcca","html_url":"https://github.com/TheAssemblyArmada/Vanilla-Conquer","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheAssemblyArmada%2FVanilla-Conquer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheAssemblyArmada%2FVanilla-Conquer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheAssemblyArmada%2FVanilla-Conquer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheAssemblyArmada%2FVanilla-Conquer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TheAssemblyArmada","download_url":"https://codeload.github.com/TheAssemblyArmada/Vanilla-Conquer/tar.gz/refs/heads/vanilla","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246700489,"owners_count":20819880,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c-plus-plus","cmake","command-and-conquer","cross-platform","crossplatform","game-engine","games","multi-platform","open-game","open-source","openredalert","real-time-strategy","red-alert","redalert","rts"],"created_at":"2024-08-01T07:01:01.072Z","updated_at":"2025-04-01T19:31:48.736Z","avatar_url":"https://github.com/TheAssemblyArmada.png","language":"C++","funding_links":[],"categories":["Strategy"],"sub_categories":[],"readme":"# Vanilla Conquer\nVanilla Conquer is a fully portable version of the first generation C\u0026C 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.\n\nThe 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.\n\nCurrent project goals are tracked as [GitHub issues with the goal label](https://github.com/Vanilla-Conquer/Vanilla-Conquer/issues?q=is%3Aissue+is%3Aopen+label%3Agoal).\n\n## Chat with us\n\nThere are rooms on multiple platforms for discussion:\n\n- [The Assembly Armada](https://discord.gg/UnWK2Tw) on [Discord](https://discord.gg)\n- [#vanilla-conquer:vi.fi](https://matrix.to/#/#vanilla-conquer:vi.fi) on [Matrix](https://matrix.org)\n- [#vanilla-conquer](https://web.libera.chat/?channel=#vanilla-conquer) on [Libera.Chat](https://libera.chat]) IRC network\n\nAll of these rooms are bridged together so people can choose their preferred service. Please be nice to each other.\n\n## Building\n\nWe 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.\n\n### Presets\n\nA [CMakePresets.json](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](https://ninja-build.org/) build tool to be available in the system PATH in order to be used.\n\nWe also provide an example [CMakeUserPresets.json](resources/CMakeUserPresets.json.example) 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.\n\nTo build using a preset, add `--preset preset_name` to the CMake command line examples below.\n\n### Windows\n\n#### Requirements\n\nThe following components are needed to build Vanilla Conquer executables:\n\n - [MSVC v142 C++ x86/x64 build tools](https://visualstudio.microsoft.com/visual-cpp-build-tools/)\n - Windows 10 SDK\n - CMake (installable from MSVC build tools)\n - [SDL1 or SDL2 development libraries, Visual C++](https://libsdl.org/download-2.0.php)\n - [OpenAL Core SDK](https://www.openal.org/downloads/)\n\nExtract SDL2 and OpenAL somewhere you know. If you are building only Remastered dlls you can skip installing SDL2 and OpenAL.\n\n#### Building\n\nIn a VS command line window in the Vanilla Conquer source directory:\n\n```sh\ncmake -DSDL2_ROOT_DIR=C:\\path\\to\\SDL2 -DOPENAL_ROOT=C:\\path\\to\\OpenAL -B build .\ncmake --build build\n```\n\nThis 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.\n\n### Linux / macOS / BSD\n\n#### Requirements\n\n- GNU C++ Compiler (g++) or Clang\n- CMake\n- SDL1 or SDL2\n- OpenAL\n\nOn Debian/Ubuntu you can install the build requirements as follows:\n\n```sh\nsudo apt update\nsudo apt install g++ cmake libsdl2-dev libopenal-dev\nor\nsudo apt install g++ cmake libsdl1.2-dev libopenal-dev\n```\n\nOn Fedora/RedHat based system you can install the build requirements as follows:\n\n```sh\nsudo dnf install gcc-c++ cmake SDL2-devel openal-soft-devel\nor\nsudo dnf install gcc-c++ cmake SDL-devel openal-soft-devel\n```\n\n#### Building\n\n```sh\ncmake -B build .\ncmake --build build\n```\n\nThis will build Vanilla Conquer executables in the build directory.\n\n#### macOS considerations\n\nTo create a portable bundle for macOS we run [macdylibbundler](https://github.com/auriamg/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.\n\n### Icons\n\nCMake 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.\n\n## Releases\n\nBinary releases of the latest commit are available from [here](https://github.com/TheAssemblyArmada/Vanilla-Conquer/releases/tag/latest), which is updated whenever new code is merged into the main branch.\n\n## Running\n\n### VanillaTD and VanillaRA\n\nCopy the Vanilla executable (`vanillatd.exe` or `vanillara.exe`) to your legacy game directory, on Windows also copy `SDL2.dll` and `OpenAL32.dll`.\n\nFor Tiberian Dawn the final freeware Gold CD release ([GDI](https://www.moddb.com/games/cc-gold/downloads/command-conquer-gold-free-game-gdi-iso), [NOD](https://www.moddb.com/games/cc-gold/downloads/command-conquer-gold-free-game-nod-iso)) works fine.\n\nFor Red Alert the freeware [CD release](https://web.archive.org/web/20080901183216/http://www.ea.com/redalert/news-detail.jsp?id=62) works fine as well.\nThe official [Red Alert demo](https://www.moddb.com/games/cc-red-alert/downloads/command-conquer-red-alert-demo) is also fully playable.\nThe demo supports custom skirmish maps (except interior) and includes one campaign mission for both Allied and Soviet from the retail game.\n\nWhile it is possible to use the game data from the Remastered Collection, The Ultimate Collection or The First Decade they are currently _not_ supported.\nAny repackaged version that you may already have from any unofficial source is _not_ supported.\nIf 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.\n\n### Remastered\n\nThe 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`.\nThese work as mods for the Remastered Collection.\n\nTo manually install a local Remastered mod, launch both games once then head to _My Documents/CnCRemastered/CnCRemastered/Mods_.\nYou should see _Tiberian\\_Dawn_ and _Red\\_Alert_ directories.\n\n#### Tiberian Dawn\n\nCopy the _Vanilla_TD_ directory to the _Tiberian\\_Dawn_ directory.\n\nThe directory structure should look like this:\n\n    My Documents/CnCRemastered/CnCRemastered/Mods/Tiberian_Dawn/Vanilla_TD/Data/TiberianDawn.dll\n    My Documents/CnCRemastered/CnCRemastered/Mods/Tiberian_Dawn/Vanilla_TD/ccmod.json\n    My Documents/CnCRemastered/CnCRemastered/Mods/Tiberian_Dawn/Vanilla_TD/GameConstants_Mod.xml\n\nYou should now see the new mod in the mods list of Tiberian Dawn Remastered.\n\n#### Red Alert\n\nCopy the _Vanilla_RA_ directory to the _Red\\_Alert_ directory.\n\nThe directory structure should look like this:\n\n    My Documents/CnCRemastered/CnCRemastered/Mods/Red_Alert/Vanilla_RA/Data/RedAlert.dll\n    My Documents/CnCRemastered/CnCRemastered/Mods/Red_Alert/Vanilla_RA/ccmod.json\n\nYou should now see the new mod in the mods list of Red Alert Remastered.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTheAssemblyArmada%2FVanilla-Conquer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FTheAssemblyArmada%2FVanilla-Conquer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTheAssemblyArmada%2FVanilla-Conquer/lists"}