top | item 43197131

EA Open Sources Command and Conquer: Red Alert, along with other games

1262 points| Klaster_1 | 1 year ago |github.com | reply

325 comments

order
[+] HelloUsername|1 year ago|reply
[+] lloeki|1 year ago|reply
Looks like the Tiberian Dawn code is Windows too (so C&C Gold / W95)

I was kind of wishing it was the 1995 DOS version source code!

(also, no Dune 2000)

[+] mizzao|1 year ago|reply
Wow, Renegade? That's amazing. Enjoyed so many hours of flame tank / stealth tank rushes in that game.

Hope someone takes it to the next level with open source.

[+] adenta|1 year ago|reply
praying for Red Alert 2
[+] alberth|1 year ago|reply
Interesting to see how much Assembly was used in Red Alert (19.5% of code base), whereas all the rest is < 3%)
[+] MisterTea|1 year ago|reply
Holy shit, Renegade. I had struck that from memory. God, I remember trying to play Renegade with my brother and all I can remember was a buggy nightmare. Also having flashbacks of extreme vitriol for gamespy.
[+] MortyWaves|1 year ago|reply
So not just one game like the title?
[+] SXX|1 year ago|reply
Whoever pushed for this at EA - my deepest respect is with you!

Original C&C was rewritten from scratch long ago, but open source version of Zero Hour is such an amazing gift.

PS: if you want to send respects to the person who did it you can do it on Linkedin:

https://www.linkedin.com/posts/jim-vessella-62726825_from-th...

[+] pizzathyme|1 year ago|reply
Agreed. Internally at companies like this, it's extremely difficult to get something like this approved. This is the result of a lot of meetings, a lot of "no"'s, a lot of legal approvals.
[+] jacooper|1 year ago|reply
Finally somebody can fix the mismatch errors in the game and make it actually playable again!
[+] tuantruong|1 year ago|reply
respect to the dude, what a great act !
[+] haunter|1 year ago|reply
>To use the compiled binaries, you must own the game. The C&C Remastered Collection is available for purchase on EA App or Steam.

Mind you EA released [some of] the games as freeware back in 2008 so no, you don't have to buy them for the graphics, art, sound, and music assets

Tiberian Dawn GDI https://web.archive.org/web/20110927141135/http://na.llnet.c...

Tiberian Dawn NOD https://web.archive.org/web/20111104060230/http://na.llnet.c...

Tiberian Sun (though no source code was released for this game) https://web.archive.org/web/20110823002110/http://na.llnet.c...

Red Alert Allied https://web.archive.org/web/20100130215623/http://na.llnet.c...

Red Alert Soviet https://web.archive.org/web/20100130220258/http://na.llnet.c...

[+] WhyNotHugo|1 year ago|reply
> you must own the game.

Really weird choice of word, considering how “you can’t own the game, into a licence for it”.

[+] pjmlp|1 year ago|reply
Thanks for spoiling my weekend. :)
[+] boomboomsubban|1 year ago|reply
The complete C&C bundle with all open sourced games and several others is currently $6 on Steam, if you need the art assets https://store.steampowered.com/bundle/39394/Command__Conquer...

Hopefully this causes a sales spike and encourages other developers to do similar things.

[+] nottorp|1 year ago|reply
Hmm there's also a c&c remastered bundle.

Anyone knows if either of them includes stuff that requires an EA account?

[+] mclau156|1 year ago|reply
We had to wait for a team of github users to reverse engineer Legend of Zelda Ocarina of Time before Nintendo would do anything about it
[+] Starlevel004|1 year ago|reply

    // Homework for today.  Write 2000 words reconciling "Your code must never crash" with "Intentionally putting crashes in the code".  Fucktard.
    //   DEBUG_CRASH(( "xferScienceVec - vector is not empty, but should be\n" ));
    //
https://github.com/electronicarts/CnC_Generals_Zero_Hour/blo...
[+] stnmtn|1 year ago|reply
This one made me laugh, mostly because the variable names are so dumb

// our RNG is basically shit -- horribly nonrandom at the start of the sequence.

// get a few values at random to get rid of the dreck.

// there's no mathematical basis for this, but empirically, it helps a lot.

UnsignedInt silly = GetGameLogicRandomSeed() % 7;

for (Int poo = 0; poo < silly; ++poo)

{

GameLogicRandomValue(0, 1); // ignore result

}

[+] account42|1 year ago|reply
I don't get the complaint in the comment. Asserts for invariants/pre-/postconditions are absolutely compatible with not crashing: don't violate those properties.
[+] genocidicbunny|1 year ago|reply
As an ex-gamedev, this one cracked me up:

  else {
    DEBUG_CRASH(("PREFER_CORRECT_SOLUTION @todo impl"));
  }
(From PartitionSolver.cpp)
[+] inetknght|1 year ago|reply
EA game devs cursing each other out? Internal company drama being aired out years later? Oh boy!
[+] thisOtterBeGood|1 year ago|reply
Found this gem in Recorder.cpp of generals:

  //Kris: Patch 1.01 November 10, 2003 (integrated changes from Matt Campbell)
  // Since we don't seem to have any *visible* desyncs when replaying games, but get this warning
  // virtually every replay, the assumption is our CRC checking is faulty.  Since we're at the
  // tail end of patch season, let's just disable the message, and hope the users believe the
  // problem is fixed. -MDC 3/20/2003
  //TheInGameUI->message("GUI:CRCMismatch");
[+] joerick|1 year ago|reply
Hahaha. We used to get desyncs on networked games of Generals pretty regularly. I remember if a game took more than 30-40 mins I'd start to get a spidey sense things were about to go wrong
[+] grayhatter|1 year ago|reply
OpenRA did it better :D

If you haven't seen it yet https://www.openra.net/ is worth your time.

https://github.com/OpenRA/OpenRA

I have many fond memories of playing openra as "LAN" game on the gaming weekends we used to have in a few open source groups I've been in. I can't recommend "saturday gaming" enough, for anyone involved in any foss community, set up a recurring gaming weekend! You get bonus points if you make it mostly or exclusively foss games!

[+] JanSt|1 year ago|reply
// Lets discuss how Windows is a flaming pile of poo. I'm now casting the header

     // directly into the structure, because its the one I want, and this is just how
   
  // its done. I hate Windows. - jkmcd
   
  DEV_BROADCAST_VOLUME *vol = (DEV_BROADCAST_VOLUME*) (hdr);

     // @todo - Yikes. This could cause us all kinds of pain. I don't really want 
     // to even think about the stink this could cause us.

     TheFileSystem->unloadMusicFilesFromCD(vol->dbcv_unitmask);
   
  return TRUE;
[+] dagelf|1 year ago|reply
For real, CnC Generals was the game that has taught me the most about the frivolity of war: there are no winners, both sides lose, it's just a grand burning of resources... for nothing.

You build a wonderful base and war machine, only to watch it burn.

If this was "required playing" to all kids, I would be greatly surprised if war would still be a thing... it basically mocks war. In the most fun way possible!

Look up Jeffrey Sachs' address to EU Parliament, if you are unsure about the real geopolitics of this century... you won't find it in US media.

[+] klaussilveira|1 year ago|reply
> 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;

Take the hint, Valve. And Epic (UT99). Having third-party code is not an excuse.

[+] anotherhue|1 year ago|reply
EA, I've cursed your name since you smothered Westwood. But thank you for this.
[+] keyringlight|1 year ago|reply
Louis Castle, co-founder of Westwood tells it a bit differently [0]. From memory after the EA acquisition they stopped doing their edutainment/casual games, which is where they used to nurture their junior developers along with taking on too many major projects because EA gave them the resources to do that. That led to less quality and later Westwood releases (Renegade, Emperor Battle for Dune) suffered.

The podcast also includes details of Westwood's filming setup, which seemed to include motion tracking which would have been interesting in the context of performance capture, but before its time.

[0] - https://www.idlethumbs.net/designernotes/episodes/louis-cast...

[+] ageitgey|1 year ago|reply
Who's going to be the hero that builds a modern update of C&C Generals/Zero Hour with 4k rendering, raytracing, etc?
[+] sho_hn|1 year ago|reply
This is very cool. It should be done a lot more often for old games. Whoever pulled this off at EA Games, you did a great thing for art and culture, and chapeau for pulling it off at a big corp.
[+] tetrisgm|1 year ago|reply
I was a young teen when Command & Conquer came out. It was so damn cool. Westwood was at their peak: they made hit after hit after hit. The Kyrandia point & click series. The Eye of the Beholder series. Lands of Lore. Dune II. Everything they made was gold.

They came in and made an RTS when we didn't have a term for this. It had a cool, modern soundtrack. It had a cool world and a story fleshed out in high production value FMV. Cutting edge CGI.

We all know how Westwood died. Then the series had disappointing sequels, and a sad mobile title, and it all died until the remaster. The remaster felt like a well-executed effort, and a way to enjoy the classics on modern systems.

Today's release of the source code is so exciting. A recognition that C&C is worth preserving. That its community is still excited for it. It allows the series to live on forever. For fans to go crazy. For all sorts of mods and tweaks to be enjoyed on Steam.

It finally feels like after a decade and a half, C&C has a future. No longer a great old RTS, but one that has lots of excellent campaigns available on modern systems, moddable, and evergreen.

Battle control... online :)

[+] LorenDB|1 year ago|reply
According to some research I did a few years back, EA currently owns the rights to Full Tilt! Pinball, which is what 3D Pinball Space Cadet was based on.

EA, if you have a single shred of decency, open source Pinball!

[+] bee_rider|1 year ago|reply
I only glanced at the code in ANIM.CPP but for a C++ program from 1997 it looks kinda nice, right? The methods are all short, with some descriptive comments at the top of each one. Inputs and outputs described. Nice index at the top of the file.

I’ve seen worse!

[+] giancarlostoro|1 year ago|reply
Who can we bribe at Microsoft to get Fallout 1 / 2 source code released? Would be really interesting when you consider that FO2 has online modding, so it would allow for so much craziness to ensue out of FO2...