EA Releases Source Code for Classic Command and Conquer Games on Github

jshackles

Gentlemen, we can rebuild it. We have the capability to make the world's first enhanced store. Steam will be that store. Better than it was before.

Command and Conquer: Generals - Zero Hour
Command and Conquer: Renegade
Command and Conquer: Red Alert
Command and Conquer Tiberian Dawn
 
That's cool, way too much to wade through to see if it includes the two red alert expansions but I hope someone uses Red Alert to make a new game.
 
Generals and Zero Hours play somewhat differently, no?

Why just zero hour?
I played it kind of extensively back in 2003 - 2004 if I remember correctly and as far as I can remember it was an expansion but the core gameplay was the same.

Don't remember that much, though. Other than some dialogs that I found funny, the Spanish translation was kinda racist.
 
Zero Hour is one of the greatest RTS' ever created. Can't believe I'm saying this without any sass but ... thank you EA. Now please release the Ultima IP to Larian.
 
I am excited and worried at the same time. Excited because EA remembered the existence of Command & Conquer (and this year is the 30th anniversary of C&C) but also worried because if they just release the whole source code like that, it could also mean they're done with it for good...

Also: No code for Red Alert 2 and Tiberian Sun. Which most likely confirms that they really have lost the source code for these games... Which means it's unlikely they will ever remaster them like they did the classic C&C games with the remastered collection.

Also: They have released a video on the C&C Youtube:


Lastly: They've also released patches for the Generals games on Steam:
 
I am glad they still had it in the archives. You figure it would be lost with the sale and dissolving of Westwood.
 
Also: No code for Red Alert 2 and Tiberian Sun. Which most likely confirms that they really have lost the source code for these games... Which means it's unlikely they will ever remaster them like they did the classic C&C games with the remastered collection.
Or they're waiting for the remasters to release the source code.
 
Or they're waiting for the remasters to release the source code.
I do hope you are right. I am waiting for fucking years now. Tiberian Sun is among my favorite games of all time (Red Alert 2 is also awesome but Tiberian Sun is just unbeaten). One slither of copium is that Petroglyph said multiple times they'd be interested in working on the remasters of these two games and on C&C in general, but it's up to EA. That could imply that the source code is not lost, and they've indeed held it back because they've got the remasters in the oven.

In which case, I already know my GOTYs.
 
Last edited:
Oh, yeah, gotta love C++ and Java programmers when the function header is far larger than the method itself.

CTDdfjU.png
 
You're asking Is compiling a thing anymore? What?!

Very well commented code, structure is a bit terse, but it is very readable. If they can polyfill some of the missing dependencies quickly this should be up and running soon.
 
Last edited:
I am excited and worried at the same time. Excited because EA remembered the existence of Command & Conquer (and this year is the 30th anniversary of C&C) but also worried because if they just release the whole source code like that, it could also mean they're done with it for good...

Also: No code for Red Alert 2 and Tiberian Sun. Which most likely confirms that they really have lost the source code for these games... Which means it's unlikely they will ever remaster them like they did the classic C&C games with the remastered collection.

Also: They have released a video on the C&C Youtube:


Lastly: They've also released patches for the Generals games on Steam:

They lost the source code for red alert 2 and tiberian sun? Please tell me you're joking. Fuck sake
 
They lost the source code for red alert 2 and tiberian sun? Please tell me you're joking. Fuck sake
It wasn't outright confirmed but it's heavily rumored. I think Jim Vesella also said that they lost source code of Red Alert and Tiberian Dawn before they found it in some abandoned EA storage room at EA's HQ. The rumor that they've lost the source code mainly comes from the fact that ex-Westwood people said that equipment, hard drives etc. were dumped into garbage containers when Westwood was shut down. But there's no official confirmation.
 
Oh, yeah, gotta love C++ and Java programmers when the function header is far larger than the method itself.

CTDdfjU.png
Documentation blocks are a good thing though, no matter how small the method. Means you can understand an API or purpose of a class without even looking at the code to figure out what it's trying to do. Means nice web manuals basically.
 
The C&C community reversed engineered their own source ports some years ago, however, this will enable terrific game preservation and even better source ports.

Praise where it's due: EA doing good work here.
 
Documentation blocks are a good thing though, no matter how small the method. Means you can understand an API or purpose of a class without even looking at the code to figure out what it's trying to do. Means nice web manuals basically.

Documentation is static, it cannot be compiled and gets out of date pretty fast (unless you are in a vertical hierarchy where five people need to accept a change before you are allowed to checkout and commit a one-line modification). With a good method name and good argument names you can understand what the method does, and if you can't the method is probably too large still for its own good.

Personal opinion but it's far better to have a set of unit tests working as a live documentation which can be compiled and executed (for example, having a BlowfishEngineReleasesSboxTables_WhenDestroyed method or a GivenABlowfishEngine_WhenDestroyed_ThenReleasesSboxTables if you are into BDD, or naming the test class as BlowfishEngineTests or BlowfishEngineUnitTests, BlowfishEngineShould or my favorite, BlowfishEngineMust with the method just called ReleaseSboxTables_WhenDestroyed). This way the documentation exists in the class and method names, like BlowfishEngineMust.ReleaseSboxTables_WhenDestroyed, BlowfishEngineMust.AllocateSboxTables_WhenCreated, BlowfishEngineMust.ThrowException_WhenKeyIsInvalid, BlowfishEngineMust.ReturnEmptyArray_WhenNoMatchesAreAvailable, etc, etc. And then you immediately know when the contract between the method name (or "documentation") and the compiled code is broken.

Mind you, this is 1996 code so I understand why every single method including empty, constructors and destructors are commented but I would think most companies are already past that. I think it's better to have a readable code where you know what it is doing than having to read the documentation and then check the code to see if it's still doing what the comment says it does.
 
Last edited:
A Command and Conquer Renegade 2 would be so fucking good. If it was done to the quality and sustainability of the big online games of today it would be amazing.
 
Top Bottom