|
| 1 | +[](https://github.com/TheSuperHackers/GeneralsGameCode/releases) |
| 2 | + |
| 3 | + |
| 4 | + |
| 5 | + |
| 6 | + |
1 | 7 |
|
2 |
| -# Command & Conquer Generals (inc. Zero Hour) Source Code |
| 8 | +[](https://github.com/TheSuperHackers/GeneralsGameCode/issues?q=label%3ABug) |
| 9 | +[](https://github.com/TheSuperHackers/GeneralsGameCode/issues?q=label%3AEnhancement) |
| 10 | +[](https://github.com/TheSuperHackers/GeneralsGameCode/issues?q=label%3AMajor) |
| 11 | +[](https://github.com/TheSuperHackers/GeneralsGameCode/issues?q=label%3ACritical) |
| 12 | +[](https://github.com/TheSuperHackers/GeneralsGameCode/issues?q=label%3ABlocker) |
3 | 13 |
|
4 |
| -This repository includes source code for Command & Conquer Generals, and its expansion pack Zero Hour. This release provides support to the Steam Workshop for both games ([C&C Generals](https://steamcommunity.com/workshop/browse/?appid=2229870) and [C&C Generals - Zero Hour](https://steamcommunity.com/workshop/browse/?appid=2732960)). |
| 14 | +# Welcome to the Generals Game Code Project |
5 | 15 |
|
| 16 | +GeneralsGameCode is a community-driven project aimed at fixing and improving the classic RTS game, *Command & |
| 17 | +Conquer: Generals* and its expansion *Zero Hour*. This repository contains the source code for both games, with a |
| 18 | +primary focus on *Zero Hour*. |
6 | 19 |
|
7 |
| -## Dependencies |
| 20 | +Additionally, there is a complementary project repository for fixing and improving game data and assets such as |
| 21 | +INI scripts, GUI, AI, maps, models, textures, audio, localization. You can find it |
| 22 | +[here](https://github.com/TheSuperHackers/GeneralsGamePatch/) and contribute to it as well. |
8 | 23 |
|
9 |
| -If you wish to rebuild the source code and tools successfully you will need to find or write new replacements (or remove the code using them entirely) for the following libraries; |
| 24 | +## Project Overview |
10 | 25 |
|
11 |
| -- DirectX SDK (Version 9.0 or higher) (expected path `\Code\Libraries\DirectX\`) |
12 |
| -- STLport (4.5.3) - (expected path `\Code\Libraries\STLport-4.5.3`) |
13 |
| -- 3DSMax 4 SDK - (expected path `\Code\Libraries\Max4SDK\`) |
14 |
| -- NVASM - (expected path `\Code\Tools\NVASM\`) |
15 |
| -- BYTEmark - (expected path `\Code\Libraries\Source\Benchmark`) |
16 |
| -- RAD Miles Sound System SDK - (expected path `\Code\Libraries\Source\WWVegas\Miles6\`) |
17 |
| -- RAD Bink SDK - (expected path `\Code\GameEngineDevice\Include\VideoDevice\Bink`) |
18 |
| -- SafeDisk API - (expected path `\Code\GameEngine\Include\Common\SafeDisk` and `\Code\Tools\Launcher\SafeDisk\`) |
19 |
| -- Miles Sound System "Asimp3" - (expected path `\Code\Libraries\WPAudio\Asimp3`) |
20 |
| -- GameSpy SDK - (expected path `\Code\Libraries\Source\GameSpy\`) |
21 |
| -- ZLib (1.1.4) - (expected path `\Code\Libraries\Source\Compression\ZLib\`) |
22 |
| -- LZH-Light (1.0) - (expected path `\Code\Libraries\Source\Compression\LZHCompress\CompLibSource` and `CompLibHeader`) |
| 26 | +The game was originally developed using Visual Studio 6 and C++98. We've updated the code to be compatible with Visual |
| 27 | +Studio 2022 and C++20. |
23 | 28 |
|
| 29 | +The initial goal of this project is to fix critical bugs and implement improvements while maintaining compatibility with |
| 30 | +the original *Generals* version 1.08 and *Zero Hour* version 1.04. Once we can break retail compatibility, more fixes |
| 31 | +and features will be possible to implement. |
24 | 32 |
|
25 |
| -## Compiling (Win32 Only) |
| 33 | +## Current Focus and Future Plans |
26 | 34 |
|
27 |
| -To use the compiled binaries, you must own the game. The C&C Ultimate Collection is available for purchase on [EA App](https://www.ea.com/en-gb/games/command-and-conquer/command-and-conquer-the-ultimate-collection/buy/pc) or [Steam](https://store.steampowered.com/bundle/39394/Command__Conquer_The_Ultimate_Collection/). |
| 35 | +Here's an overview of our current focus and future plans |
28 | 36 |
|
29 |
| -The quickest way to build all configurations in the project is to open `rts.dsw` in Microsoft Visual Studio C++ 6.0 (SP6 recommended for binary matching to Generals patch 1.08 and Zero Hour patch 1.04) and select Build -> Batch Build, then hit the “Rebuild All” button. |
| 37 | +- **Modernizing the Codebase**: Transitioning to modern C++ standards and refactoring old code. |
| 38 | +- **Critical Bug Fixes**: Fixing game-breaking issues (e.g., fullscreen crash). |
| 39 | +- **Minor Bug Fixes**: Addressing minor bugs (e.g., UI issues, graphical glitches). |
| 40 | +- **Cross-Platform Support**: Adding support for more platforms (e.g., Linux, macOS). |
| 41 | +- **Engine Improvements**: Enhancing the game engine to improve performance and stability. |
| 42 | +- **Client-Side Features**: Enhancing the game's client with features such as an improved replay viewer and UI updates. |
| 43 | +- **Multiplayer Improvements**: Implementing a new game server and an upgraded matchmaking lobby. |
| 44 | +- **Tooling Improvements**: Developing new or improving existing tools for modding and game development. |
| 45 | +- **Community-Driven Improvements**: Once the community grows, we plan to incorporate more features, updates, and |
| 46 | + changes based on player feedback. |
30 | 47 |
|
31 |
| -If you wish to compile the code under a modern version of Microsoft Visual Studio, you can convert the legacy project file to a modern MSVC solution by opening `rts.dsw` in Microsoft Visual Studio .NET 2003, and then opening the newly created project and solution file in MSVC 2015 or newer. |
| 48 | +## Running the Game |
32 | 49 |
|
33 |
| -NOTE: As modern versions of MSVC enforce newer revisions of the C++ standard, you will need to make extensive changes to the codebase before it successfully compiles, even more so if you plan on compiling for the Win64 platform. |
| 50 | +To run *Generals* or *Zero Hour* using this project, you need to have the original *Command & Conquer: Generals and Zero Hour* game |
| 51 | +installed. The easiest way to get it is through *Command & Conquer The Ultimate Collection* |
| 52 | +on [Steam](https://store.steampowered.com/bundle/39394). Once the game is ready, download the latest version of the |
| 53 | +project from [GitHub Releases](https://github.com/TheSuperHackers/GeneralsGameCode/releases), extract the necessary |
| 54 | +files, and follow the instructions in the [Wiki](https://github.com/TheSuperHackers/GeneralsGameCode/wiki). |
34 | 55 |
|
35 |
| -When the workspace has finished building, the compiled binaries will be copied to the folder called `/Run/` found in the root of each games directory. |
36 | 56 |
|
| 57 | +## Joining the Community |
37 | 58 |
|
38 |
| -## Known Issues |
| 59 | +You can chat and discuss the development of the project on our [Discord channel](https://www.community-outpost.com/discord) to get the latest updates, |
| 60 | +report bugs, and contribute to the project! |
39 | 61 |
|
40 |
| -Windows has a policy where executables that contain words “version”, “update” or “install” in their filename will require UAC Elevation to run. This will affect “versionUpdate” and “buildVersionUpdate” projects from running as post-build events. Renaming the output binary name for these projects to not include these words should resolve the issue for you. |
| 62 | +## Building the Game Yourself |
41 | 63 |
|
| 64 | +We provide support for building the project using Visual Studio 6 (VS6) and Visual Studio 2022. For detailed build |
| 65 | +instructions, check the [Wiki](https://github.com/TheSuperHackers/GeneralsGameCode/wiki/build_guides), which also |
| 66 | +includes guides for building with Docker, CLion, and links to forks supporting additional versions. |
42 | 67 |
|
43 |
| -## STLport |
44 |
| -STLport will require changes to successfully compile this source code. The file [stlport.diff](stlport.diff) has been provided for you so you can review and apply these changes. Please make sure you are using STLport 4.5.3 before attempting to apply the patch. |
| 68 | +## Contributing |
45 | 69 |
|
| 70 | +We welcome contributions to the project! If you’re interested in contributing, you need to have knowledge of C++. Join |
| 71 | +the developer chat on Discord for more information on how to get started. Please make sure to read our |
| 72 | +[Contributing Guidelines](CONTRIBUTING.md) before submitting a pull request. You can also check out |
| 73 | +the [Wiki](https://github.com/TheSuperHackers/GeneralsGameCode/wiki) for more detailed documentation. |
46 | 74 |
|
47 |
| -## License |
48 | 75 |
|
49 |
| -This repository and its contents are licensed under the GPL v3 license, with additional terms applied. Please see [LICENSE.md](LICENSE.md) for details. |
| 76 | +## License & Legal Disclaimer |
| 77 | + |
| 78 | +EA has not endorsed and does not support this product. All trademarks are the property of their respective owners. |
| 79 | + |
| 80 | +This project is licensed under the [GPL-3.0 License](https://www.gnu.org/licenses/gpl-3.0.html), which allows you to |
| 81 | +freely modify and distribute the source code under the terms of this license. Please see [LICENSE.md](LICENSE.md) |
| 82 | +for details. |
0 commit comments