TheAssemblyArmada / Chronoshift

An open source re-implementation of Red Alert written in C++.
GNU General Public License v2.0
171 stars 23 forks source link
c-plus-plus chronoshift cmake command-and-conquer game game-development game-engine linux multi-player open-game openredalert real-time-strategy red-alert redalert redalertpp rts single-player visual-studio watcom windows

Chronoshift Logo

Build Status Build Status

An Open Source Re-Implementation of Command and Conquer: Red Alert

This project is a bottom-up rewrite of Command and Conquer: Red Alert, a real time strategy game. This project uses the original binary to provide functions that have not been implemented yet. The intention is to allow the fixing of bugs, implementation of new features and porting to platforms unsupported by the original.

Building

In order to generate a working binary, currently you must build the project using a version of the Watcom compiler. Building using MinGW-w64 and Microsoft Visual Studio is also tested periodically, but because of differences in the compiler ABI, dll's that it generates will not work correctly with the original game binary. Once the reimplementation is complete it should be possible to build with any C++11 compiler.

In order to build, first download and install Open Watcom and CMake for windows. Make sure you add CMake to at least your users path when prompted to during the install. Next, open a command prompt window and run the following commands:

Chronoshift will only work against the english 3.03 beta patch. Simply copy the launcher and .dll into your Red Alert directory and run the launcher.

Linux and macOS

Native support for Linux and macOS is planned for the future, but because of how the project is developed, a native binary will not be possible for some time. In the mean time, using Wine on Linux and macOS, should be possible but is currently untested.

Licence

The source code provided in this repository for Chronoshift is licenced under the GNU General Public License version 2 or later with an exception allowing the resulting code to be linked against a closed source binary which will be in place until Chronoshift no longer relies on the original.

Other Open-Game Projects

Below is a list of similar projects and their respective original games:

There is also the Wikipedia page for open source games.

Contributing

If you are interested in contributing to Chronoshift, you will need some knowledge of C++ as a minimum requirement. Join the developer chat listed below for more information on what else you will need such as the idc file for the current map of the binary.

You can also check the wiki for more information.

Contact

You can discuss development of this project on our Discord server.