-
Notifications
You must be signed in to change notification settings - Fork 72
Update README.md #515
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Update README.md #515
Changes from 5 commits
c37d3db
7268492
f57b276
b71ac04
7df07db
f310e35
bb23065
ea1f7a6
a4f97e6
4e64ce6
9ea4bef
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,49 +1,100 @@ | ||
[](https://github.com/TheSuperHackers/GeneralsGameCode/actions/workflows/build-games.yml) | ||
[](https://github.com/TheSuperHackers/GeneralsGameCode) | ||
[](https://www.community-outpost.com/discord) | ||
[](https://www.youtube.com/@xezon0/videos) | ||
[](https://www.gamereplays.org/community/-cnc_zero_hour-Section.html) | ||
DevGeniusCode marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
# Command & Conquer Generals (inc. Zero Hour) Source Code | ||
[](https://github.com/TheSuperHackers/GeneralsGameCode/issues?q=label%3ABug) | ||
[](https://github.com/TheSuperHackers/GeneralsGameCode/issues?q=label%3AEnhancement) | ||
[](https://github.com/TheSuperHackers/GeneralsGameCode/issues?q=label%3ABlocker) | ||
[](https://github.com/TheSuperHackers/GeneralsGameCode/issues?q=label%3ACritical) | ||
[](https://github.com/TheSuperHackers/GeneralsGameCode/issues?q=label%3AMajor) | ||
|
||
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)). | ||
# Welcome to the Generals Game Code Project | ||
|
||
GeneralsGameCode is a community-driven project aimed at maintaining and improving the classic RTS game, *Command & | ||
DevGeniusCode marked this conversation as resolved.
Show resolved
Hide resolved
|
||
Conquer: Generals* and its expansion *Zero Hour*. This repository contains the source code for both the original game | ||
DevGeniusCode marked this conversation as resolved.
Show resolved
Hide resolved
DevGeniusCode marked this conversation as resolved.
Show resolved
Hide resolved
|
||
and *Zero Hour*, with a primary focus on *Zero Hour*. | ||
|
||
## Dependencies | ||
Additionally, there is a separate repository for managing game assets such as graphics, localization files, and more. | ||
You can find it [here](https://github.com/TheSuperHackers/GeneralsGamePatch/) and contribute to it as well. | ||
|
||
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; | ||
## Project Overview | ||
|
||
- DirectX SDK (Version 9.0 or higher) (expected path `\Code\Libraries\DirectX\`) | ||
- STLport (4.5.3) - (expected path `\Code\Libraries\STLport-4.5.3`) | ||
- 3DSMax 4 SDK - (expected path `\Code\Libraries\Max4SDK\`) | ||
- NVASM - (expected path `\Code\Tools\NVASM\`) | ||
- BYTEmark - (expected path `\Code\Libraries\Source\Benchmark`) | ||
- RAD Miles Sound System SDK - (expected path `\Code\Libraries\Source\WWVegas\Miles6\`) | ||
- RAD Bink SDK - (expected path `\Code\GameEngineDevice\Include\VideoDevice\Bink`) | ||
- SafeDisk API - (expected path `\Code\GameEngine\Include\Common\SafeDisk` and `\Code\Tools\Launcher\SafeDisk\`) | ||
- Miles Sound System "Asimp3" - (expected path `\Code\Libraries\WPAudio\Asimp3`) | ||
- GameSpy SDK - (expected path `\Code\Libraries\Source\GameSpy\`) | ||
- ZLib (1.1.4) - (expected path `\Code\Libraries\Source\Compression\ZLib\`) | ||
- LZH-Light (1.0) - (expected path `\Code\Libraries\Source\Compression\LZHCompress\CompLibSource` and `CompLibHeader`) | ||
The game was originally developed using Visual Studio 6 and C++98. We've updated the code to be compatible with Visual | ||
Studio 2022 and C++20 to improve the development experience and take advantage of modern C++ features. | ||
DevGeniusCode marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
The main goal of this project is to fix critical bugs and implement improvements while maintaining compatibility with | ||
the original *Zero Hour* version 1.04 in the initial stages. We'll focus on resolving critical bugs, with future plans | ||
to break compatibility with version 1.04 once the community around the project is established, allowing for further bug | ||
fixes and the addition of new features. | ||
|
||
## Compiling (Win32 Only) | ||
## Current Focus and Future Plans | ||
|
||
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/). | ||
This project is in the early stages and heavily work in progress, with ongoing work on bug fixes and enhancements. | ||
Here's an overview of our current focus and future plans | ||
DevGeniusCode marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
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. | ||
- **Modernizing the Codebase**: Transitioning to modern C++ standards and refactoring old code. | ||
- **Critical Bug Fixes**: Fixing game-breaking issues (e.g., fullscreen crash). | ||
- **Minor Bug Fixes**: Addressing minor bugs (e.g., UI issues, graphical glitches). | ||
- **Cross-Platform Support**: Adding support for more platforms (e.g., Linux, macOS). | ||
- **Engine Improvements**: Enhancing the game engine to improve performance and stability. | ||
- **Client-Side Features**: Enhancing the game’s client with features such as an improved replay viewer and UI updates. | ||
- **New Gameplay Features**: Adding new in-game features (e.g., new units, balance changes). | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'd take this out or explicitely state that it's a future goal. I will probably be years before we get to this There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. (This was just regarding the There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. New units and balance changes also refers to game data, not game code, so it does not fit here. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Can we remove this? I think it must be removed because this line will make the competitive community jump fences. |
||
- **Multiplayer Improvements**: Implementing a new game server and an upgraded matchmaking lobby. | ||
- **Tooling Improvements**: Developing new or improving existing tools for modding and game development. | ||
- **Community-Driven Improvements**: Once the community grows, we plan to incorporate more features, updates, and | ||
changes based on player feedback. | ||
|
||
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. | ||
## Running the Game | ||
|
||
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. | ||
To run *Zero Hour* using this project, you need to have the original *Command & Conquer: Generals and Zero Hour* game | ||
installed. The easiest way to get it is through *Command & Conquer The Ultimate Collection* | ||
on [Steam](https://store.steampowered.com/bundle/39394). Once the game is ready, download the latest version of the | ||
project from [GitHub Releases](https://github.com/TheSuperHackers/GeneralsGameCode/releases), extract the necessary | ||
files, and follow the instructions in the [Wiki](https://github.com/TheSuperHackers/GeneralsGameCode/wiki). | ||
|
||
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. | ||
### Disclaimer | ||
|
||
The current builds may have bugs or unexpected behavior. We will aim to release stable versions that are as free from | ||
DevGeniusCode marked this conversation as resolved.
Show resolved
Hide resolved
|
||
bugs as possible, but even those may have some unexpected behaviors. | ||
|
||
## Known Issues | ||
### Antivirus Warning | ||
|
||
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. | ||
Some antivirus software may mistakenly flag this project as a false positive (e.g., Windows Defender). We assure you | ||
DevGeniusCode marked this conversation as resolved.
Show resolved
Hide resolved
|
||
that the project is fully safe to use. However, if you have concerns, you can | ||
always [build it yourself](#building-the-game-yourself). | ||
|
||
## Joining the Community | ||
|
||
## STLport | ||
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. | ||
You can chat and discuss the development of the project on our | ||
[Discord channel](https://www.community-outpost.com/discord) or on | ||
our [GameReplays forum](https://www.gamereplays.org/community/index.php?showforum=132). Join us to get the latest | ||
DevGeniusCode marked this conversation as resolved.
Show resolved
Hide resolved
|
||
updates, report bugs, and contribute to the project! | ||
|
||
## Building the Game Yourself | ||
|
||
## License | ||
We provide support for building the project using Visual Studio 6 (VS6) and Visual Studio 2022. For detailed build | ||
instructions, check the [Wiki](https://github.com/TheSuperHackers/GeneralsGameCode/wiki//build_guides), which also includes guides | ||
for building with Docker, CLion, and links to forks supporting additional versions. | ||
|
||
This repository and its contents are licensed under the GPL v3 license, with additional terms applied. Please see [LICENSE.md](LICENSE.md) for details. | ||
## Contributing | ||
|
||
We welcome contributions to the project! If you’re interested in contributing, you should have some knowledge of C++ and | ||
DevGeniusCode marked this conversation as resolved.
Show resolved
Hide resolved
|
||
Visual Studio. We also allow this to be built without Visual Studio. Join the developer chat on Discord for more | ||
DevGeniusCode marked this conversation as resolved.
Show resolved
Hide resolved
|
||
information on how to get started. You can also check out | ||
the [Wiki](https://github.com/TheSuperHackers/GeneralsGameCode/wiki) for more detailed documentation. | ||
|
||
## Modding | ||
|
||
Interested in creating your own mods? Check out | ||
our [modding guide](https://github.com/TheSuperHackers/GeneralsGameCode/wiki/Modding). | ||
DevGeniusCode marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
## License & Legal Disclaimer | ||
|
||
This project is not affiliated with, nor endorsed by, Electronic Arts in any way. All trademarks are the property of | ||
DevGeniusCode marked this conversation as resolved.
Show resolved
Hide resolved
|
||
their respective owners. | ||
|
||
This project is licensed under the [GPL-3.0 License](https://www.gnu.org/licenses/gpl-3.0.html), which allows you to | ||
freely modify and distribute the source code under the terms of this license. Please see [LICENSE.md](LICENSE.md) | ||
for details. |
Uh oh!
There was an error while loading. Please reload this page.