HelloUsername 21 hours ago
  • lloeki 20 hours ago

    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)

    • evanjrowley 20 hours ago

      Emporer: Battle for Dune was their first 3D RTS and I personally loved the gameplay, story, and soundtrack. I very much hope it will eventually be open-sourced.

      • nunodonato 6 hours ago

        I play this game once a year... every year :)

      • bayindirh 18 hours ago

        I can play it back to back for days. It's so enjoyable and unique.

      • FirmwareBurner 7 hours ago

        Yeah, I wonder why Emperor: Battle for Dune is not part of the open source since it's basically an earlier version of the General Engine. Would be weird to have the source code for that but not for Emperor.

        • Macha 5 hours ago

          Licensing perhaps

          • FirmwareBurner 4 hours ago

            -Is the licensing done Yuri?

            -No comrade premier, it has only begone.

    • zenlot 20 hours ago

      Dune 2000 - countless hours spent! Ah!

  • mizzao 19 hours ago

    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 21 hours ago

    praying for Red Alert 2

    • BuildTheRobots 21 hours ago

      Slightly odd (age wise) Generals got open sourced before RA2. I wonder why?

      • apetresc 21 hours ago

        It is apparently the case that the original source for Tiberian Sun and RA2 has been lost; EA doesn't have it. There's been rumours to that effect for a while.

        • BuyMyBitcoins 20 hours ago

          To acquire the source code we must first obtain the Tacitus.

          • blibble 19 hours ago

            dead and back commander, dead and back

            I did very much enjoy the Firestorm expansion story line

            roughly: a rogue AI (CABAL) betraying the world to try and achieve its genocidal master (Kane)'s goals

            then because you can't operate your army without an AI, you steal the enemy's (non-crazy) AI and turn it evil

            one particularly memorable cheesy cutscene: https://www.youtube.com/watch?v=qEjtiACglSE

                General: CABAL is too dangerous and must be deactivated
            
                CABAL: No Generals, I will not allow it. My survival is paramount.
            
                (AI instructs its cyborgs begin the coup)
            
                CABAL: IT IS MY WORLD NOW! LISTEN TO THE SOUNDS OF YOUR OWN EXTINCTION, HUMAN
            
            I wonder if Altman played it...
        • iamacyborg 19 hours ago

          Damn, Tiberian Sun was my favourite in that series

          • slavik81 16 hours ago

            Tiberian Sun was the first PC game I ever owned. I picked my current username for Westwood Online and have been using it ever since.

            I had played Red Alert at a friend's house and when I went to buy my own copy, the guy at the shop recommend I get Tiberian Sun instead, as it had just released. I must admit that I was a bit disappointed in the gameplay as compared to Red Alert, but the world building was amazing. I spent hours in the map editor building huge bases and custom units.

            RAedit was such a fantastic tool. It was really frustrating how much more difficult it became to make custom maps once the games went 3D with Emperor: Battle for Dune and C&C: Renegade. I tried my best, but the learning curve for 3DSMax was steep.

            • mock-possum 9 hours ago

              Blizzard’s commitment to providing editors for the RTS games was a big part of my early loyalty - all the way up through Star Craft 2, you could just pop the editor open and start making your own maps and scenarios.

              It’s what gave us DotA, and Tower Defense, and maybe some others I’m not remembering - maybe even vampire survivors ish for horde survival?

          • piyiotisk 7 hours ago

            Mine too! I still play it sometimes through cncnet but you need a windows machine or a VM?

          • hammock 18 hours ago

            I was always trying to use the god mode and make a subterranean schoolbus in that game. Could never get it to work. Is it because it didn’t have sprites for it, or what?

        • lawlessone 17 hours ago

          Ahh, i was hoping for TBS remaster. I guess this is why i haven't seen it.

        • Aeolun 7 hours ago

          How is that possible? Surely someone that worked on it must still have it in one of their archives somewhere? It was made in a time when software was still free.

          The only thing I can think is that EA deliberately came down hard on that and were a little bit too zealous.

        • evanjrowley 20 hours ago

          Thanks for the insight. I was wondering the same thing.

    • t-writescode 21 hours ago

      Honestly, I wouldn't be too sad about them remaking RA2 and giving us easy-to-use online play. I wonder if that's why there's a delay - there's likely a *lot* of love for RA2

      • clemiclemen 7 hours ago

        I don't if the remake will come at some point but in the mean time, you can enjoy this online port by fans: https://game.chronodivide.com/

        You can play Red Alert 2 in the browser, with other players online.

      • Already__Taken 17 hours ago

        There's a patched dll around that replaces IPX for TCP.

        Turn off ipv6, the lobbies work but not the game when you try to start.

      • BuildTheRobots 18 hours ago

        Have a look at Mental Omega, a quite over the top RA2 Yuri's Revenge mod that makes it easy to play on modern windows, play online and also adds a tonne of extra content should you want it.

        https://mentalomega.com/

    • joshuaturner 20 hours ago

      Apparently the source code for RA2 has been lost (along with Tiberian Sun)

    • tomkarho 20 hours ago

      If that ever happens I would be fascinated to see what the folks who made Mental Omega makes out of it.

  • MortyWaves 21 hours ago

    So not just one game like the title?

    • HelloUsername 21 hours ago
      • wglb 21 hours ago

        Best to email hn@ycombinator.com; dang can't possibly read all comments.

        • adastra22 19 hours ago

          It sure seems like he does.

          • wglb 14 hours ago

            Between 2025-02-26 at 10:20 and 24 hours later, there were 10563 posts to HN.

            So it is simply not humanly possible.

            • account42 5 hours ago

              That's only 7.34 posts per minute so someone with insomnia might be able to do it.

              Dang could also filter for @dang and similar references since no matter how often people tell them to use email that's what many users will default to.

              • wglb an hour ago

                It would be easy enough for you to validate. Just start with the “comments” tab and keep up for one day.

        • 4ggr0 20 hours ago

          wouldn't surprise me if dang is notified when he's mentioned :D

          • jolmg 18 hours ago

            He's not. He's mentioned that.

            • VanTheBrand 12 hours ago

              Yeah. That said, if I were him and I were notified I’d probably publicly claim that wasn’t the case to cut down on abuse! (Not saying that’s what’s going on just saying what I’d do)

  • MisterTea 21 hours ago

    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.

SXX 20 hours ago

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 19 hours ago

    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.

    • SXX 19 hours ago

      Let's be honest I can't view this anything other than miracle that was delivered to us by some very dedicated people who likely pushed this for years.

      I hope there will be more people and companies within industry making similar moves. It's will both increase their sales as well as allow fans to keep their favorite games alive.

  • jacooper 5 hours ago

    Finally somebody can fix the mismatch errors in the game and make it actually playable again!

haunter 15 hours ago

>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...

  • pjmlp 8 hours ago

    Thanks for spoiling my weekend. :)

boomboomsubban 21 hours ago

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 20 hours ago

    Hmm there's also a c&c remastered bundle.

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

    • sumtechguy 20 hours ago

      The remastered bundle does not need it.

      • nottorp 19 hours ago

        Well I hope you're right, I just bought both bundles.

        This is the first time I give money to EA since Mass Effect 2* :)

        * Technically i also paid for the Mass Effect collection for playstation, because Sony doesn't allow them to require a login on there. But it's the first time for a PC title since ME 2.

        • sumtechguy 2 hours ago

          I checked before i posted. Liked the 'installer' bit they do just before the c&c remaster. One of the cooler installers during that time. Most were boring text screens with blue and white text. c&c had none of that crap. They start world building the second you get in.

        • gimme_treefiddy 18 hours ago

          Damn looks like remastered one doesn't have the Zero Hour version in it.

          • onli 16 hours ago

            No, that would be surprising. They only remastered C&C1 and 2. If you want Generals, buy the "Ultimate Collection" bundle.

  • mclau156 20 hours ago

    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 20 hours ago

    // 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...
  • jsheard 20 hours ago

      // 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
    
    https://github.com/electronicarts/CnC_Generals_Zero_Hour/blo...
    • poizan42 18 hours ago

      ... because they just casted lParam into a pointer to DEV_BROADCAST_HDR a few lines above, which is the common part of the different structure it could point to. That's just doing inheritance the C way. What did they expect? A C++ class from a C api?

  • stnmtn 20 hours ago

    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

    }

    • yobbo 6 hours ago

      This is similar to "burn-in" for markov-chain montecarlo. When the chain is initialized to some bad value, it requires a number of iterations to get into a "good chain". But for a uniform RNG, any value should be good.

      So the RNG doesn't seem great.

    • anal_reactor 18 hours ago

      I spent some time browing curiosities about old games, and what strikes me is that the code sometimes was quite personal. You could see the joy, the anger, the disappointment, the satisfaction. Nowadays it would never fly to name a variable "poo", you need to stay professional at all times.

      • qingcharles 15 hours ago

        I was a game dev in the mid 90s. It was unserious. There was all sorts of crazy shit in the graphics assets. One wall I remember says "CUNT" on it o_O

        I'm sad if developers can no longer name their variables poo and fuck.

        Also teenage me would probably be horrified finding out 30 years later his source code was public.

        • lucb1e 14 hours ago

          > Also teenage me would probably be horrified finding out 30 years later his source code was public.

          I guess that's why moral rights are unalienable in many countries: if you are horrified what they do with it, you still retain that and this right did not go to your employer

          Not that I think there is anything here the devs need to be ashamed of, to be clear, just what came to mind as I read this remark

          • qingcharles 10 hours ago

            I'd just be horrified by the quality of some code. It included some of my best code, and some of my worst code. Some of it was written after three days straight with no sleep for those times when Eidos wanted to come for a personal demo.

      • hasley 13 hours ago

        Still today, I tend to increase my motivation of writing unit tests by using some non-serious names and strings in the tests.

      • mschuster91 17 hours ago

        > Nowadays it would never fly to name a variable "poo", you need to stay professional at all times.

        I couldn't help but chuckle at your user name when reading this comment

      • recursive 17 hours ago

        Probably depends how indie/small your studio is.

      • herewulf 17 hours ago

        Nowadays it just depends on how shitty your job is.

      • lofaszvanitt 17 hours ago

        says who?

        • esafak 13 hours ago

          The person reviewing your PR.

        • broeng 8 hours ago

          anal_reactor says so.

  • account42 5 hours ago

    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.

  • inetknght 20 hours ago

    EA game devs cursing each other out? Internal company drama being aired out years later? Oh boy!

thisOtterBeGood 6 hours ago

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 6 hours ago

    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

modeless 21 hours ago

The complete game was released as freeware by EA over 15 years ago. It was freely available for download from EA's servers for many years and has been redistributed by many third party sites as well. So getting the art and other assets to use with this code should be no problem.

https://web.archive.org/web/20100214144634/http://www.comman...

superconduct123 16 hours ago
  • iab 12 hours ago

    ScenarioInit = 0; // Kludge.

    I vibe with the authors.

    • bbor 11 hours ago

      Ha, wow -- great minds think alike. Somehow I ended up at the exact same file (only went to one!) and was coming back to comment on exactly this line.

      What makes this especially funny is that this is the very second line of the entire game, at least in the case of Red Alert! So very CPP.

      For the curious: https://github.com/electronicarts/CnC_Red_Alert/blob/main/CO...

JanSt 17 hours ago

// 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 9 hours ago

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.

grayhatter 20 hours ago

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!

klaussilveira 19 hours ago

> 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.

  • jamesfinlayson 12 hours ago

    I thought about this recently - probably Valve is reluctant to because people are still licensing both the GoldSource and Source engines (I think the last GoldSource engine license was in 2020 but the game hasn't even been announced; I think four Source engine games are due this year). If EA released the Nightfire engine code (very advanced GoldSource engine fork) that would be great though!

    But it's sad that John Carmack's example has not been widely followed.

    • account42 4 hours ago

      This might be an argument if those engine licenses were more than a rounding error in Valve's profits. I seriously doubt that that's the case.

    • klaussilveira 5 hours ago

      I completely forgot about Nightfire! What an amazing game it was.

anotherhue 21 hours ago

EA, I've cursed your name since you smothered Westwood. But thank you for this.

  • keyringlight 20 hours ago

    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 21 hours ago

Who's going to be the hero that builds a modern update of C&C Generals/Zero Hour with 4k rendering, raytracing, etc?

  • theandrewbailey 21 hours ago

    I'd settle for a native Linux build.

    • tete 21 hours ago

      Would be nice. But they all work just fine with wine and/or proton.

      • josephg 9 hours ago

        Did they eventually fix the game desync bug that would happen when you have a multi-core CPU?

        We used to play Generals at LAN parties all the time - but once multicore CPUs hit the market, it was difficult to just get to the end of a game, because peers would desync and you'd suddenly find yourself playing singleplayer. Its clearly some race condition in the game engine which makes the game non-deterministic in a multicore situation. Does anyone know - is that still a problem?

      • chpatrick 7 hours ago

        Generals has a really annoying issue where it just desynchronizes and drops you out of a multiplayer game after a random amount of time.

      • insane_dreamer 20 hours ago

        I haven't tried wine in ~15 years, but it was pretty useless for gaming back then. Has it much improved?

        • Rebelgecko 20 hours ago

          It's pretty awesome. Some of the compatibility layers built on Wine (Valve's Proton/Codeweavers Crossover/Whisky) are almost plug and play. With Steam on Linux, a lot of games work seamlessly. I've only ran into trouble with very new games and multiplayer games with invasive anti-cheat that freaks out when they're running in an environment that doesn't look like a normal windows install

          The performance hit is surprisingly low. It's not rare for the windows binary to run better on linux than the native one (when it's an option)

        • khedoros1 20 hours ago

          When someone releases a game in a Windows version and a Linux version, the current Wine-based compatibility layers mean that the Windows one is more likely to run without issue than the native binary is.

          I built a Linux gaming desktop 5 years ago. The only thing that regularly causes more than minor issues is that many online games use incompatible anticheat technology. I pretty much play exclusively single-player games on PC, so it hasn't been a practical issue for me.

        • Sesse__ 20 hours ago

          Basically the entire premise of the Steam Deck is built on WINE (via a Valve-developed fork, Proton).

          • sho_hn 20 hours ago

            Noting that Proton is regularly rebased on upstream, and Valve is contracting CodeWeavers, the same company which employs many core Wine contributors.

            Fork is certainly technically the correct word, but "distribution" might give more the right impression.

        • lucb1e 14 hours ago

          Just yesterday I got the Linux version of an indie game made with Unity and it doesn't even launch. Fetched the Windows build, ran "wine game.exe" and it just ran. Couple other things (C# projects iirc) also worked well

          This is not a Unity game, but especially with ancient stuff like Red Alert? I would certainly try it and expect good results. Some years ago, Wine always used to give me trouble and never worked unless you used some special blend of options (like Proton and PlayOnLinux help with). Maybe those times have passed

        • alex7o 2 hours ago

          Man wine works on Android now, with stuff like winlator. I saw a video of someone playing fallout 4.

        • seba_dos1 6 hours ago

          These days Wine works better than Windows for some kinds of games.

        • account42 5 hours ago

          Wine was far from useless for gaming ing 2010.

  • harshreality 21 hours ago

    Converting the assets to use the Spring engine (or BeyondAllReason's active fork of it) is probably easier than writing a new engine from scratch for the existing assets. And then it'll feel like BAR but with C&C's assets. The UI is what gives the game most of its feel.

    • josephg 9 hours ago

      With the game engine opensourced, I doubt thats true. Its probably going to be much easier to just get this code building (patching out any proprietary bits and pieces) and going from there.

      Modding the game to work properly at a high framerate doesn't sound very hard when you have the original assets & source code to work from.

    • SXX 19 hours ago

      C&C Generals plays completely different compared to Total Annihilation like games with streaming economy that Spring was built for. I like both subgenres of RTS, but they are very different.

  • blashyrk 20 hours ago

    Even more importantly, running at 60+fps while not breaking gameplay, physics, shaders, cutscenes...

    • account42 4 hours ago

      This is less of a problem for multiplayer games usually because they will already need need to deal with these issues for syncing between clients.

  • ed_mercer 14 hours ago

    Don't forget fix all the bugs...

sho_hn 20 hours ago

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.

leshokunin 13 hours ago

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 21 hours ago

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!

  • Macha 21 hours ago

    From what I've heard from videos by Microsoft devs on why it was dropped between XP and Vista, the source code is obtuse and very difficult to port/work on.

    • theandrewbailey 20 hours ago

      Microsoft devs also claimed that making cmd faster would require years of research, but someone did that in a weekend by making it run on a GPU. I'm sure there's someone out there that would solve every problem Space Cadet has within a week, just for fun.

      • jimnotgym 19 hours ago

        I'm sure there are lots of large groups of devs who are undone by an upstart kid with a fresh perspective and no fear

        • josephg 9 hours ago

          Can confirm. I've been on both sides of that fence.

          I worked on a product about a decade ago which had an unnecessarily complicated custom layout system written in javascript. CSS was missing a lot of features at the time, so we figured we'd roll our own. It was crazy complicated - and it had all these weird easy to reproduce bugs.

          For fun, some pesky kid on twitter took our insanely layout system and reimplemented 95% of it in a couple hundred lines of (almost) pure CSS. At a glance, it looked identical to our product - but the code was small, clean and fast. The link got passed around the office. It was amazing how many reasons people had to dismiss it. "Ah, see - it doesn't even do this weird custom behaviour we have!" or "Well and good in chrome - but it doesn't work properly on IE8!" and so on. I've never seen a better example of motivated reasoning, before or since.

          What we should have done is reach out and offer that kid a job.

          The smartest programmer on your team isn't as smart as the smartest programmer on the internet.

          • skhr0680 39 minutes ago

            > 95%

            I feel like the naysayers have a point too. 95% done? Only 95% left to go!

          • seba_dos1 6 hours ago

            All you have said is that it's easy to write something that takes you 90% there and ignores the last 10% of requirements. I worked in webdev some 15 years ago and if I could have dropped IE support sooner my code would have been so much simpler as well :)

    • 6SixTy 20 hours ago

      Thing that's hard to communicate is that Vista was moving away from how older versions of Windows rendered their desktop and past art styles. With Pinball originally from Windows 95, porting it to leverage Vista's new graphics paradigm on top of the artstyle was probably too much work for a pack in game.

      Though I do wish they contracted out a clone of Pinball instead of Purble Place.

    • johnfernow 19 hours ago

      It may have been at one point, but since then it has been decompiled and ported to many platforms:

      - PS Vita

      - Emscripten

      - Nintendo Switch

      - webOS TV

      - Android (WIP)

      - Nintendo Wii

      - Nintendo 3DS

      - Nintendo DS

      - Nintendo Wii U

      - PlayStation 2

      - Sega Dreamcast

      - MorphOS

      - AmigaOS 4

      https://github.com/k4zmu2a/SpaceCadetPinball

  • mananaysiempre 20 hours ago

    > EA, if you have a single shred of decency

    That’s... I mean, I hesitate to comment on that under this particular post, but... yeah.

bee_rider 20 hours ago

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!

  • lucb1e 14 hours ago

    I made some games as a teenager and had the experience that I was basically forced to stop projects because they got too complex. Game Maker had only limited support for things like variable scoping; you really need to isolate components and have them all do their own defined thing to make it not grow too complex or you'll fix one bug and cause two new ones. Even more so as a team, I can only imagine, though I never concurrently worked on game code with more than one person (for longer than a literal weekend project, that is)

    Normal software I find is a bit different because things like UI libraries give you a lot of structure already. In game code, you do so many things custom, and performance matters so much (each frame needs to finish around e.g. the 17-millisecond mark) that it's really up to you to apply the necessary discipline

    • MrLeap 37 minutes ago

      Gamedev here. The process I have to go through to make a good core is never a linear thing.

      I'm making a custom netcode right now. I started from a blank folder. I had some design decisions worked out before I started, like I wanted udp transport for messages that didn't require responses (ie inputs), an isomorphic client/server simulation and state snapshot diffs and checksum validation. I had an idea what I wanted the syntax of creating a new request to be, but the rest I knew I'd just figure out as I went.

      The way everything fits together has taken a lot of refactoring, and I've disregared 3 prototype sim components. I've written a good 40% of the base types twice over to make it all click better. It's kind of sad how few libraries I've found for a fixed point physics simulation. I've been using one I stubbed together and it may end up growing into something permanent if I don't find something better that checks my boxes. That's just the way it goes.

      The only way I get top tier code is if I budget time to do controlled burns as I get a crufty feelings. There's never enough time to do it like that the whole way through a project, but I find that if you're aggressive about doing that the first 30% of the way into a thing, you have a good enough core to hang your less elegant ornaments off of and it wont collapse into a tangle.

      Another valuable process when writing things from scratch is finding compact archetypal islands that force your systems into a good versatile shape. Something simple like a boids simulation requires you have so much stuff worked out that if you write it first and stir it around and firm up the foundation, you'll build most of the tools you need for many different kinds of games.

  • pcwalton 19 hours ago

    Yeah, I was looking at infantry.cpp, and the quality is actually very good for 90s game code. The documentation is good, it's decently well-formatted, and there are assertions. Nice counterexample to the "all successful games have terrible code" conventional wisdom.

    • philistine 13 hours ago

      I think survivor bias is at play here. C&C had many sequels, ports, expansion packs that helped make it popular. So of course it had nice code, otherwise we wouldn't have seen such a wide berth of reuse for that code.

    • mschuster91 17 hours ago

      > Nice counterexample to the "all successful games have terrible code" conventional wisdom.

      That's a modern wisdom from the last 15-ish years when people started to have good enough internet connections that you can get away with publishing a dozens gigabytes patch on launch day.

      In ye olde times, it was prohibitively expensive (or in the case of console ROM cartridges, impossible) to distribute patches, so projects were usually planned with plenty of buffer time and plenty human testers. These days it's rush to not collide with the releases of other AAA studios, and human paid-for testers have been replaced by free (or, sometimes, paying) early-access players.

nomilk 17 hours ago

Alas, no red alert 2 (the best, IMO). But still this is such great news. Huge props to EA for this.

giancarlostoro 20 hours ago

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...

  • SXX 19 hours ago

    Fallout 1 and 2 were rewritten from scratch more than twice already.

    Several times as clone game engine with most popular being falltergeist:

    https://github.com/falltergeist/falltergeist

    Second time as MMO client-server tech:

    https://github.com/cvet/fonline

    FOnline for sure use nothing of original game except for assets.

    PS: So yeah source code of fallout wouldn't be of any use really except for historical archive.

    • account42 4 hours ago

      Reimplementations are never perfect replicas so the source code would at the very least be useful as a reference. Some people also want to play the original with only minor compatibility fixes for moderns systems without random unwanted "features".

      Your first link also talks about a "Development Roadmap" that doesn't give the indication that it's even fully playable yet.

kangs 12 hours ago

I love reading the code that these people wrote when i was a kid enjoying the game. Never thought I'd have the opportunity when I was 10 and dreaming of these things haha.

montag 16 hours ago

I heard this line of code `Sound_Effect(VOC_TANYA_LAUGH, Coord);`

  • edm0nd 14 hours ago

    You must construct additional pylons....wait....crap...wrong game!

lukky513 2 hours ago

I hope that the events like this could start a bigger wave of opening the source for many other older games.

To anyone else reading, who's passionate about the topic: reach out to the companies however you can! I can share a personal experience that it does sometimes work, and thanks to that, a somewhat niche game of Zatikon is getting a second life as a FOSS project :)

amacneil 20 hours ago

That's nice, but who is working on porting this to the typescript type checker?

tomaytotomato 19 hours ago

"Compiling"

"Cannot compile, building in progress"

  • lucb1e 14 hours ago

    Unable to* compile, building in progress

    as I recall, at least. I may have played tibsun to death on my grandma's computer. Not that I spoke a word of English back then, so this must have been from replaying it later actually

  • CrimsonCape 16 hours ago

    Lol, we need a terminal extension to play these sounds when compiling. "Building-Unit Ready" is burned in my brain.

    • tomaytotomato 3 hours ago

      Or we could do one for unit tests, every time a test fails it should say "Unit lost", "Unit lost"....."Unit lost"

      If a build or deployment fails "A-bomb launch detected"

hd4 21 hours ago

I think this marks the first time EA have open-sourced a videogame, a welcome development.

  • Macha 21 hours ago

    That would have been Micropolis in 2008, I think (better known as Simcity, the open source release was renamed to be super clear it doesn't include the trademark)

    • swat535 16 hours ago

      I think this is the biggest release of open source they have done, if am I wrong, someone correct me please.

      Either way I’m very impressed !

stormfather 14 hours ago

If anyone used to play Zero Hour, there is still an active community. They still have tournaments and world series. A guy called Dominator on Youtube casts it all and its a pretty entertaining blast from the past. I recommend checking out his channel.

  • llamaLord 13 hours ago

    I'm pretty sure there was a weird bug in the original C&C generals where the game engine 'tick rate' was somehow tied to CPU cycles and assumed single-threading or something.

    I remember going back and trying to play it many years after it came out, and it was basically broken because the entire game moved at like... 2-3x the maximum speed it was ever meant to run at

  • wingerlang 11 hours ago

    Same with Red Alert (etc) through the modern rewrite OpenRA (https://www.openra.net/). Similarly there is a guy FiveAces who has been commenting videos for nearly a decade.

astrostl 18 hours ago

Best game intro [1] ever IMO. Fun story, compact length, epic soundtrack ("Hell March"). They did that in 1996 and nothing since has even come close for me.

Had a ton of fun with the game itself, too.

1: https://www.youtube.com/watch?v=lJnMaTx4yjI

arduanika 19 hours ago

Finally, EA does the optimal thing to benefit all humanity!

ed_mercer 14 hours ago

Finally we can start fixing the insane amount of bugs in Zero Hour.

joquarky 18 hours ago

I wish they would release all the code and assets used to make Earth & Beyond.

Sjonny 17 hours ago

There are loads of .BAK files as well, and diffing them with the actual file gives you some insight on what they were working on. (Like pre and post Counterstrike addon).

ch33zer 9 hours ago

The only thing I know about this game is that it's what Jeremy in pure pwnage played

kennysoona 20 hours ago

This is some very welcome and surprisingly, good news which has been really, really, lacking this year.

icemelt8 18 hours ago

As a React developer, how does one even compile something like this

  • swat535 17 hours ago

    It's in the README

liamkearney 18 hours ago

Curious. Can anyone tell me if it’s windows thing, specific filesystem thing, source control system thing or just a style thing, naming all files and directories in caps?

  • abanana 17 hours ago

    It came out not long after Windows 95, so it will have supported earlier versions of Windows, which had the 8.3 character all-caps filename limitation.

1970-01-01 18 hours ago

I guess this is as close to public domain that software can be until the 2070s. Functionally no different to use, but you are not allowed to make any money selling it.

Owlettotoo 8 hours ago

wow I didn't expect this from EA... Good for them, good for us, good for everybody.

DrNosferatu 15 hours ago

EA could release the source code of Chuck Yeager’s Air Combat and LHX.

binary132 19 hours ago

The comments on the Red Alert sources are so detailed. This is awesome. Major props to EA!

hammock 18 hours ago

What is the best c&c style game that has been released in the last couple years?

  • Macha 5 hours ago

    C&C Remastered

    The 8-bit (armies/hordes/invaders) games play very much like a faster C&C. They had a sequel recently with 9-bit armies.

    Starcraft 2 for ages was basically "the last RTS", and it does have some differences from how the C&C formula, but then I always felt Generals took liberal inspiration from Starcraft compared to classic C&C too.

  • lucb1e 11 hours ago

    Beyond All Reason sorta isn't released yet, but I'm liking that a lot as an old C&C2/AoE1 fan

molave 17 hours ago

EA... good?

punnerud 19 hours ago

How hard would it be to convert this so it could run in the browser using WebAssembly?

m463 17 hours ago

how prescient they were!

"Nationalism will bring us victory!"

"China will grow larger"

tomw1808 21 hours ago

I am speechless.

The most vile gaming company I know. The most beloved game I ever played.

Now, Open source ... from them? How? Why? Marketing gag or a step in the right direction?

But then, OpenRA has existed for a while - does that mean its getting even better?

Where is this going?

  • sho_hn 20 hours ago

    EA and Open Source isn't completely alien. Their C++ standard library EASTL was open sourced long ago and is a historically quite important and influential codebase in the history of C++'s evolution.

    They've also open sourced and patent-pledged a bunch of gaming-relatee accessibility tech over the years.

    And of course Micropolis/SimCity.

    My advice is to celebrate the successes of large corporates in this regard very hard and often - this provides backup to the champions on the inside.

    • tomw1808 8 hours ago

      > My advice is to celebrate the successes of large corporates in this regard very hard and often - this provides backup to the champions on the inside.

      I am wondering what the metrics / KPIs are they are tracking to see if open sourcing something is a success or not. Can't be just "sales went up for retro games when we open sourced" - there must be something like community reception and retention, general acceptance or whatever...

      But yes, I agree. Let's celebrate this and hope for more.

  • Macha 21 hours ago

    The official stated reason is to make life easier for modders, for the steam workshop mods in their latest releases.

Jd 15 hours ago

A bit challenging since none of the repositories I looked at actually compile.

EA says that if you remove (or refactor!) the dependencies it might work but I don't know if that's high enough confidence to dive in.

zamubafoo 20 hours ago

Shame they'll never do it for Warcraft 3 with the remaster still around.

colechristensen 20 hours ago

25 or 30 years would be a good amount of time for software copyright to expire.

It would be fantastic if there was a way (somewhat like patents) where IP protection could be linked up with publishing materials so that in order to get the law to protect your software from copying, you had to have it published at the end of the protection period. (like on release you had to store the source code at the library of congress or something)

  • aflag 19 hours ago

    Even if it expires after 30 years, if the company doesn't publish the source code, what good does it do?

    • jimnotgym 19 hours ago

      Perhaps to get the copyright you should put the code in escrow? Not really, it costs a fortune

      • account42 4 hours ago

        Escrow for source code only costs a fortune because the only demand for it is b&b software where contracts require it. It's not a fundamentally expensive service and if it was required in order to receive copyright protection then it would just be provided by the government either for free or at cost.

      • colechristensen 19 hours ago

        This is exactly what I meant though, put the code in a private third party library in order to gain IP protection.

iancmceachern 19 hours ago

Great memories, playing these when they came out against my crew.

alanh 16 hours ago

A bit off-topic, but I found it very dystopian a few months ago to ask ChatGPT to describe the game in some detail. It refused to, claiming it violated content policy. Chilling.

voidfunc 17 hours ago

Wow. Please do SimCity 2000, 3000 and 4 next EA!!

ww520 19 hours ago

We used to waste so much time on this in the lan party.

jklinger410 20 hours ago

This makes sense because OpenRA was doing so well!

rumdz 15 hours ago

Please open source Nox!

Angostura 20 hours ago

No sign of the Ma version :(

newsclues 20 hours ago

great news, thanks to id software for leading the way!

walrus01 20 hours ago

I wonder if the current owners will ever consider open sourcing Supreme Commander, the spiritual successor to Total Annihilation.

https://en.wikipedia.org/wiki/Supreme_Commander_(video_game)

  • SXX 18 hours ago

    Might be you actually interested to work on that code?

    I do personally know some of main developers and they know who owns the IP, but to push something like that it will take some resources unfortunately. So might be if some people get together on this it's could be done.

    It's wouldn't cost some immense amount of money, but it will certainly cost some. At least I pretty sure that source code for the games is not lost.

    • walrus01 18 hours ago

      I wouldn't be the guy to work on the code, not being a game developer or even adjacent to it. I work in ISP/telecom core network infrastructure, so would be happy to help out with questions on stuff like DIYing a set of self-hosted servers for a revival of the game.

      • SXX 18 hours ago

        Don't you know? Multiplayer for SupCom is alive and well with FAForever:

        https://www.faforever.com/

        They also have patches, but they obviously limited since it's all just patching memory.

        • walrus01 17 hours ago

          Yes I'm aware it exists, was thinking more of what theoretical infrastructure might be needed if the full art assets/code/etc for the final release of Forged Alliance was open sourced and further built upon. My understanding is that FA Forever is a group of people who've implemented a server replacement since the officially-hosted multiplayer servers went offline some time in 2012.

  • russnewcomer 18 hours ago

    It's Wargaming who owns the IP and assets, and I doubt they release them, if they even have them. DrDeath or Mavor might have copies, but neither of them would likely release them.

    Similarly, TA's source code never got released, and while Spring is great and ArmoredFish made good progress with RWE, I wish that code hadn't gotten lost either.

Flimm 21 hours ago

Nice! Now this piece of video game history can be better shared and preserved. Does this repo include the artistic assists, or does it include the code only?

  • ratmice 21 hours ago

    I think this qualifies as art.

    char insert_string1[]={"\n\r;\n\r"}; char insert_string2[]={";For some reason, inserting these lines makes it assemble correctly\n\r"};

    • inetknght 20 hours ago

      Oh boy when I see stuff like that in modern code, I start looking for undefined behavior occurring elsewhere in the same or dependent translation units...

      • dwattttt 19 hours ago

        Normally I'd totally agree, but looking closely, that's a _comment_. If it is a load bearing comment, we're looking at an assembler bug there.

        EDIT: Looking more closely, it's less absurd than this. The comment is referring to directives on the next lines that have an impact, rather than itself.

  • bangaladore 21 hours ago

    > To use the compiled binaries, you must own the game.

    I take that as buy the game to get the assets.

jacooper 5 hours ago

Now please, could somebody path C&C generals so we can play multi-player without every other game having a mismatch?

dzonga 6 hours ago

great in code documentation. but how to C++ folks cope. every C++ codebase looks like its own different language with so many dialects.

nntwozz 18 hours ago

Good job, now open source Dark Age of Camelot.

Thank you

Zardoz84 18 hours ago

now, if they open source Red Alert 2 engine ... That was a masterpiece of using voxels

breck 17 hours ago

[dead]

nicce 21 hours ago

> To use the compiled binaries, you must own the game.

> This repository and its contents are licensed under the GPL v3 license, with additional terms applied. Please see LICENSE.md for details.

It does not sound open-source to me...

  • josephcsible 21 hours ago

    I think they just mean that for the game to work, you'll need art assets, etc. from the original game that aren't part of the code they open-sourced. I don't think it's a licensing restriction. (And even if it were, they released it under the GPLv3, which says "If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term.", so you could just ignore it.)

    • nicce 21 hours ago

      It certainly sounds like all you need is in the repository, and the usage of the resulting binaries are still restricted. Whether they find assets correctly or not correctly should not matter, if they are somewhere else.

      • Macha 21 hours ago

        > the usage of the resulting binaries are still restricted

        To use the binaries, you need the game assets. The only legal way to acquire the game assets is to own the game, as EA have not included them in this release.

        This is less a licensing issue, but stating the real limitations, that EA aren't volunteering to do the leg work to remove. Which is fine.

        • nicce 21 hours ago

          You could word it differently. Why not mention it?

          It is separate problem if runtime assets are missing and the game is not actually a game without them or gives an error message. Let's also assume that you can bypass DX dependencies with other means.

          The current wording sounds like binaries are always proprietary, no matter what.

        • worldsayshi 21 hours ago

          Where are the assets for openra coming from? I guess those could be used in a fork of this?

          • amlib 20 hours ago

            I'm pretty sure they get their assets from the freeware release

  • jsheard 21 hours ago

    It's the same model as the idTech GPL releases - the code is open source, the rest of the game is not. To legally play the original game or a modified version of it then you'll still need to buy it for the assets, but there's nothing stopping you from only taking the code and building a brand new game on it like various studios have done with idTech (e.g. Selaco and Wrath: Aeon of Ruin).

    • ryandrake 21 hours ago

      Yea, this seems -fine- to me. Even if they had to rip out some third-party licensed code that they couldn't open source[1], to the point where the game wouldn't even compile! Some code is always better than no code. The open source community can/will fill in any gaps.

      1: Which seems to be the case here. To fully compile, you need:

      DirectX 5 SDK, DirectX Media 5.1 SDK, Greenleaf Communications Library (GCL), and Human Machine Interface (HMI) “Sound Operating System” (SOS), or disable the code that calls into them.

  • oniony 21 hours ago

    The additional terms are under term 7 of the GPLv3, so -- assuming they're valid -- would still render this open-source.

  • AdmiralAsshat 21 hours ago

    It's realistically the best-case scenario we can hope for in most cases. If you want all old games to be FREE, then, fine, this won't make you happy. But for those of us who are just happy to be able to play the ancient PC games from our youth on modern systems, and are willing to PAY for it, this kind of license separates the engine from the assets, and effectively requires you to prove that you have bought the game by supplying the assets. But then you can do whatever you want with it to get it running on your favorite Linux distro, etc.

    I am personally not opposed to this. It worked for Doom.

  • Macha 21 hours ago

    I mean, it sounds like the Red Alert code is available under GPLv3 (plus some additional "we want to be very clear, this doesn't cover the trademark" terms tacked on), but you can't build it without DX5, which gets compiled into the binary, thereby making the binary non-free. Someone could port it from DX5, GCL, and HMI and produce something that builds as GPL.

    The other part is it doesn't include the game assets or usable replacements, much like OpenRA, or OpenTTD for the first half of its life.

    I'm not going to fault EA too much for this approach, particularly if it paves the way to open sourcing e.g. EOL MMOs and the like if game devs don't feel the obligation to port away from all the commercial libraries. I've seen game devs who I genuinely believe on this say things to the effect of "Oh yeah, we'd totally open source dead game X, except we'd have to port it away from Bink and Havok and XYZ, and we don't have the time to do that for 0 revenue"

    • lloeki 21 hours ago

      OpenRA doesn't ship with the assets+ for Tiberian Dawn, Red Alert, and Dune 2000 but they're downloadable straight from the UI as they were made officially available by EA/Westwood.

      + Without the music and cutscenes. If you want that you need original discs or other dematerialized versions.

    • nicce 21 hours ago

      That sounds reasonable, but they could have worded it differently.

      They first statement about DX:

      > or write new replacements (or remove the code using them entirely) for the following libraries;

      But, they say that binary is proprietary regardless, no conditions. So it is very difficult to say.

      If the code compiles without assets (no mention about them, it sounds like it should compile), then the resulting binary should be free to use. Missing runtime assets are different problem, and separate from the binary usage permissions.

  • dubcanada 21 hours ago

    Does open-source mean it's free? I don't think that is what it means, it just means the source is open, viewable, and you are free to use it as per the licensing.

    • Flimm 21 hours ago

      If it's open source, people are free to redistribute it. Copies of open source software can be sold for money, but open source licenses allow redistributing the software for free. In practise, that means most people won't buy the open source software from a seller, they will choose instead to get a copy from someone who is willing to redistribute it free of charge.

    • lucb1e 11 hours ago

      > it just means the source is open, viewable

      That's called source-available, unless "use it as per the licensing" includes further freedoms

lofaszvanitt 17 hours ago

How could they neglect this awesome franchise... Just the usual Retardation Arts. Bring everything to the ground, kill the joy these games bring to the masses. Plus they are literally pissing on the early EOA guys' work.

Worst management ever. yuck.

rgbrgb 20 hours ago

Would be cool to jump in the codebase here with claude code and start riffing. Anyone get this or the others to compile on a mac?

guidedlight 15 hours ago

Maybe someone can finally make a native Mac version.

It astonishes me that EA leaves obvious money on the table by not taking the 5 mins it would take to recompile it for MacOS.

  • grg0 14 hours ago

    "The 5 mins it would take" --- Check the README on Red Alert, for example:

    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;

        DirectX 5 SDK
        DirectX Media 5.1 SDK
        Greenleaf Communications Library (GCL)
        Human Machine Interface (HMI) “Sound Operating System” (SOS)
    
    That still look like 5 minutes to you?
  • bangaladore 15 hours ago

    This is a terribly naive comment. I'm not going to even go into the specifics.

    Lets assume they click one button and it recompiles, how many people would buy it? Almost certainly wouldn't pay back the dev and qa cost.

    • wingerlang 11 hours ago

      I am sure there are people who has moved to macOS that grew on playing eg. Red Alert 1 who gladly would pay some amount of money to instantly own and play it again for some nostalgia.

      And by this I mean myself.