The 1995 source code was effectively released when they open-sourced the Remastered collection 5 years ago. The remastered collection was simply a wrapper to make them Windows-compatible via DLLs (basically).
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.
I really liked that game, it had a lot of strategy to it and a decent story.
The multiplayer had a common key bug that made it hard on some maps. The atreides airdrones could fly at the edge of the map and not be targeted, and take out the harvester carryalls / and other air units
There were claims of a flame tank bug that could target any unit that was mentioned on the forums much much later, but I don't know if the details were ever revealed, I never figured it out so I guess its just theoretical..
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.
This very early 2000s period of PC videogames is the period I'm most nostalgic for. There were a bunch of weird and kinda janky genre combos games being created. C&C Renegade, Giants: Citizen Kabuto, Sacrifice, Black & White, Tribes 2, etc. Some of this stuff was glitch-city, but it always seemed really creative and genuinely fun despite a lot of bad netcode, blue screens, etc.
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.
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
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.
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?
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?
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.
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
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.
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.
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)
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.
Sorry for not mentioning you initially and thank you Sir for making it happen!
I obviously love classical RTS and playing them since original C&C, but there are special place in my heart for Generals exactly because ot was different game.
And for me as game developer seeing this game in a sad state make me sad. I feel it does have as much potential as AoE2 and now more people can try to bring new life to it.
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.
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.
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.
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.
// 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" ));
//
// 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
... 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?
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.
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.
> 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
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.
I recently had a PR rejected because I used the name of a fictional character from a 90's movie in my tests. Keep in mind the character itself was not controversial. The reason given was that it's not professional.
Tbf, I chalked it up to a one singular cantankerous reviewer rather than the whole company.
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.
//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");
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
Generals was one of our favorite LAN games. It seemed that as time went on this problem got worse and worse somehow, to the point where we gave up trying to play it at all. I have fresh hope again that this might one day be fixed!
when generals was released it was the same time my high-school were encouraging everyone enrolled in specific classes to get laptops as part of a pilot program (with some of the money coming from the government). I started bringing a network switch to school so we could play during free periods/lunch (the wifi was problematic).
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.
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!
// 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;
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.
> 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.
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.
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?
I'm going to be nice to the net code and say that it has issues because of its age, but multicore CPUs don't cause any issues as far as I know: https://www.youtube.com/watch?v=tS0UL9QC2c4
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.
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)
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
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.
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.
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.
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.
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.
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.
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!
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.
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.
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.
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 :)
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.
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 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
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.
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.
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.
> 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.
It may be common but let's not take the average companies lax attitude to source code archival and backup as "legitimate". It's a disgrace for the industry that this happens so often.
Do you work for EA? Because they haven’t announced or released such a thing. A year ago a developer hinted there might be another remaster in the future, but it could just as easily be Generals as RA2.
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...
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.
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.
Neat! I am going to have to play with this for fun in my free time. C&C Red Alert was one of the first things that got me interested in programming and developing software, there was an ini file somewhere where you could control all the stats/wepons of the units. I had a blast making crazy units mods to units and it made me want to learn how to create games and software generally.
This is really nice and positively surprising for EA. While the RTSs are amazing I think Command and Conquer Renegade is one of the most fun games ever made as well.
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
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).
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)
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.
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
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.
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.
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 :)
Our intent with this release was to support the preservation of video games and the open source community. I hope that this release leads to more positive actions towards preserving classic video games across the industry :)
I really hope that one day they will open source Nox [1], it was my favorite childhood game after Sims. Nox was also a game created by the same studio that created Red Alert.
One idea I had for open source games like this is AI experiments or training. Many people have been using Starcraft. If not it, they often use games that are nowhere near mainstream quality.
My idea was to have games in various genres with different skills required, like planning or physical abilities. Then, set each one up to work with just the engine in a way where game state is easy to interact with. For instance, no graphics or pop-up menus. Then, iterative experiments, like genetic programming or neural networks, could run much faster. Later, a common interface to many of them, like human senses, might let them be used to build general knowledge for AGI experiments.
Curious what people think of this. Especially a few exemplars in each category modified to just run really fast. For each, maybe training data on top of it that shows how to play the game. Seems like a cheaper option for testing architectures vs games not designed to do this.
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.
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?
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.
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.
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.
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.
> 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.
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)
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.
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.
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.
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.
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.
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?
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...
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.
IDK why but it ironically brings me joy to find typos in old code. Maybe a reminder that we're all human (well back when code was written by humans /s).
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.)
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.
> 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.
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.
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).
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.
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.
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"
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.
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.
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.
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.
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.
"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)
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.
There are at least four dependencies that EA would have to replace for MAC. That would be an extremely complex task just for the first two. And who knows about the second. I just don't see a way for that to be profitable. Its no secret that games ported to Mac do poorly.
DirectX 5 SDK
DirectX Media 5.1 SDK
Greenleaf Communications Library (GCL)
Human Machine Interface (HMI) “Sound Operating System” (SOS)
Red Alert: https://github.com/electronicarts/CnC_Red_Alert
Tiberian Dawn: https://github.com/electronicarts/CnC_Tiberian_Dawn
Renegade: https://github.com/electronicarts/CnC_Renegade
Generals Zero Hour: https://github.com/electronicarts/CnC_Generals_Zero_Hour
EA post: https://www.ea.com/games/command-and-conquer/command-and-con...
Reddit post: https://www.reddit.com/r/commandandconquer/comments/1izmpmb
(Deleted Reddit post: https://www.reddit.com/r/commandandconquer/comments/1izmml4/)
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)
The 1995 source code was effectively released when they open-sourced the Remastered collection 5 years ago. The remastered collection was simply a wrapper to make them Windows-compatible via DLLs (basically).
https://github.com/electronicarts/CnC_Remastered_Collection/...
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.
I really liked that game, it had a lot of strategy to it and a decent story.
The multiplayer had a common key bug that made it hard on some maps. The atreides airdrones could fly at the edge of the map and not be targeted, and take out the harvester carryalls / and other air units There were claims of a flame tank bug that could target any unit that was mentioned on the forums much much later, but I don't know if the details were ever revealed, I never figured it out so I guess its just theoretical..
I play this game once a year... every year :)
I can play it back to back for days. It's so enjoyable and unique.
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.
Licensing perhaps
-Is the licensing done Yuri?
-No comrade premier, it has only begone.
There's Dune 2000 assets in the Red Alert repo. I'm not sure how much of it is there. https://github.com/electronicarts/CnC_Red_Alert/blob/main/CO...
I think those are holdovers from Dune 2, if you search for Dune you'll find explicit references to Dune 2 stuff.
Dune 2000 - countless hours spent! Ah!
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.
There is a re-implementation from scratch (I believe) here: https://totemarts.games/games/renegade-x/
This very early 2000s period of PC videogames is the period I'm most nostalgic for. There were a bunch of weird and kinda janky genre combos games being created. C&C Renegade, Giants: Citizen Kabuto, Sacrifice, Black & White, Tribes 2, etc. Some of this stuff was glitch-city, but it always seemed really creative and genuinely fun despite a lot of bad netcode, blue screens, etc.
Interesting to see how much Assembly was used in Red Alert (19.5% of code base), whereas all the rest is < 3%)
I haven't looked through the code yet, but could be real/protected mode interop. IME render code back then was typically in asm also.
Why would that be? Old code from C&C which in turn inherited from Dune?
Could be, though also maybe optimization?
Dunno just looking at some file names they seem generic. I would guess carry over since Dune.
praying for Red Alert 2
I would recommend checking out the openRA fork for Red Alart 2, Romanovs-Vengeance, https://github.com/MustaphaTR/Romanovs-Vengeance
Slightly odd (age wise) Generals got open sourced before RA2. I wonder why?
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.
To acquire the source code we must first obtain the Tacitus.
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
I wonder if Altman played it...Damn, Tiberian Sun was my favourite in that series
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.
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?
Mine too! I still play it sometimes through cncnet but you need a windows machine or a VM?
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?
Yuri's or bust!
Ahh, i was hoping for TBS remaster. I guess this is why i haven't seen it.
Thanks for the insight. I was wondering the same thing.
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.
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
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.
Thanks, I just lost my afternoon to this!
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.
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/
Apparently the source code for RA2 has been lost (along with Tiberian Sun)
If that ever happens I would be fascinated to see what the folks who made Mental Omega makes out of it.
Waiting for Road Rash
So not just one game like the title?
Perhaps @dang can change URL to https://www.ea.com/games/command-and-conquer/command-and-con...
Best to email hn@ycombinator.com; dang can't possibly read all comments.
It sure seems like he does.
Between 2025-02-26 at 10:20 and 24 hours later, there were 10563 posts to HN.
So it is simply not humanly possible.
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.
It would be easy enough for you to validate. Just start with the “comments” tab and keep up for one day.
wouldn't surprise me if dang is notified when he's mentioned :D
He's not. He's mentioned that.
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)
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.
It was a fun time at LAN parties. There is a fan remake: https://totemarts.games/games/renegade-x/
I loved Renegade. The multiplayer demo was great. It had such excellent map design. The trade-offs in buying upgrades felt very strategic, as well.
[dead]
[flagged]
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...
Hey, that would be me! :D
You can check out our full announcement post here; https://www.reddit.com/r/commandandconquer/comments/1izmpmb/...
Sorry for not mentioning you initially and thank you Sir for making it happen!
I obviously love classical RTS and playing them since original C&C, but there are special place in my heart for Generals exactly because ot was different game.
And for me as game developer seeing this game in a sad state make me sad. I feel it does have as much potential as AoE2 and now more people can try to bring new life to it.
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.
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.
Finally somebody can fix the mismatch errors in the game and make it actually playable again!
>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...
Thanks for spoiling my weekend. :)
.......and there goes my weekend :)
[dead]
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.
Hmm there's also a c&c remastered bundle.
Anyone knows if either of them includes stuff that requires an EA account?
The remastered bundle does not need it.
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.
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.
Damn looks like remastered one doesn't have the Zero Hour version in it.
No, that would be surprising. They only remastered C&C1 and 2. If you want Generals, buy the "Ultimate Collection" bundle.
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
... 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?
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
}
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.
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.
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.
> 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
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.
Still today, I tend to increase my motivation of writing unit tests by using some non-serious names and strings in the tests.
> 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
Probably depends how indie/small your studio is.
Nowadays it just depends on how shitty your job is.
says who?
I recently had a PR rejected because I used the name of a fictional character from a 90's movie in my tests. Keep in mind the character itself was not controversial. The reason given was that it's not professional.
Tbf, I chalked it up to a one singular cantankerous reviewer rather than the whole company.
anal_reactor says so.
The person reviewing your PR.
Well it works for RC4
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.
Game code comments are always the most entertaining :D
https://en.wikipedia.org/wiki/Fast_inverse_square_root#Overv...
EA game devs cursing each other out? Internal company drama being aired out years later? Oh boy!
*Westwood
Found this gem in Recorder.cpp of generals:
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
Generals was one of our favorite LAN games. It seemed that as time went on this problem got worse and worse somehow, to the point where we gave up trying to play it at all. I have fresh hope again that this might one day be fixed!
when generals was released it was the same time my high-school were encouraging everyone enrolled in specific classes to get laptops as part of a pilot program (with some of the money coming from the government). I started bringing a network switch to school so we could play during free periods/lunch (the wifi was problematic).
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...
Some funny comments
https://www.reddit.com/r/commandandconquer/comments/1izpkmh/...
ScenarioInit = 0; // Kludge.
I vibe with the authors.
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...
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!
// Lets discuss how Windows is a flaming pile of poo. I'm now casting the header
This is kinda funny too: https://github.com/electronicarts/CnC_Red_Alert/blob/0dc09bb...
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.
Sachs is a moron. Here are some reasons why.
https://voxukraine.org/en/open-letter-to-jeffrey-sachs
> 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.
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.
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.
I completely forgot about Nightfire! What an amazing game it was.
Who's going to be the hero that builds a modern update of C&C Generals/Zero Hour with 4k rendering, raytracing, etc?
There's a mod for RA3 that re-implements Generals: https://www.moddb.com/mods/command-and-conquer-generals-evol...
Whoa awesome. I spent hours playing Generals in the mid 2000s.
What is a modern equivalent of this genre of game? I loved C&C
I'd settle for a native Linux build.
There was a reverse engineering one, and openRA.
https://github.com/TheAssemblyArmada/Vanilla-Conquer
Would be nice. But they all work just fine with wine and/or proton.
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?
I'm going to be nice to the net code and say that it has issues because of its age, but multicore CPUs don't cause any issues as far as I know: https://www.youtube.com/watch?v=tS0UL9QC2c4
Generals has a really annoying issue where it just desynchronizes and drops you out of a multiplayer game after a random amount of time.
I haven't tried wine in ~15 years, but it was pretty useless for gaming back then. Has it much improved?
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.
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)
Basically the entire premise of the Steam Deck is built on WINE (via a Valve-developed fork, Proton).
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.
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
These days Wine works better than Windows for some kinds of games.
Man wine works on Android now, with stuff like winlator. I saw a video of someone playing fallout 4.
Wine was far from useless for gaming ing 2010.
You might check out https://www.openra.net/
That's RA. Generals was a different game engine.
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.
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.
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.
Even more importantly, running at 60+fps while not breaking gameplay, physics, shaders, cutscenes...
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.
Don't forget fix all the bugs...
EA, I've cursed your name since you smothered Westwood. But thank you for this.
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...
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.
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 :)
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!
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.
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.
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
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.
> 95%
I feel like the naysayers have a point too. 95% done? Only 95% left to go!
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 :)
Why don't you check for yourself: https://github.com/k4zmu2a/SpaceCadetPinball
It says in the readme this is a reverse engineering project, not stolen source code
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.
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
> 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.
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!
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
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.
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.
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.
> 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.
Alas, no red alert 2 (the best, IMO). But still this is such great news. Huge props to EA for this.
This is what you're looking for right?
https://github.com/electronicarts/CnC_Remastered_Collection/...
That's the original C&C Red Alert: https://en.wikipedia.org/wiki/Command_%26_Conquer:_Red_Alert
But there was a sequel, C&C Red Alert 2: https://en.wikipedia.org/wiki/Command_%26_Conquer:_Red_Alert...
Both were incredible at the time.
Ah got it.
I don't know why they're stalling, I wonder if there still any revenues from the game or if it's IP issue.
Some possible explanations: https://news.ycombinator.com/item?id=40506894
This stuff is decades old. It's completely legitimate that they may simply have lost the source code during a server migration or whatnot.
It may be common but let's not take the average companies lax attitude to source code archival and backup as "legitimate". It's a disgrace for the industry that this happens so often.
They didn’t announce it, the most likely explanation I’ve heard is that the original code is lost, along with Tiberian Sun
No, because Red Alert 2 Remaster exists...
Do you work for EA? Because they haven’t announced or released such a thing. A year ago a developer hinted there might be another remaster in the future, but it could just as easily be Generals as RA2.
No, that was gaming tabloids misunderstanding a sentence by EA a year ago. It was never announced.
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...
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.
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.
I heard this line of code `Sound_Effect(VOC_TANYA_LAUGH, Coord);`
Shake it, baby!
You must construct additional pylons....wait....crap...wrong game!
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.
Neat! I am going to have to play with this for fun in my free time. C&C Red Alert was one of the first things that got me interested in programming and developing software, there was an ini file somewhere where you could control all the stats/wepons of the units. I had a blast making crazy units mods to units and it made me want to learn how to create games and software generally.
This is really nice and positively surprising for EA. While the RTSs are amazing I think Command and Conquer Renegade is one of the most fun games ever made as well.
https://github.com/electronicarts/CnC_Renegade
What these people did is really amazing:
https://w3dhub.com/
That's nice, but who is working on porting this to the typescript type checker?
"Compiling"
"Cannot compile, building in progress"
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
Lol, we need a terminal extension to play these sounds when compiling. "Building-Unit Ready" is burned in my brain.
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"
Just bought the pack + remastered on steam to support open sourcing old games.
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).
Yup! Keeping those in there was important for us as we know the core community would love to see this historic data!
I think this marks the first time EA have open-sourced a videogame, a welcome development.
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)
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 !
I just reached Nostalgia Level OVER 9000.
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.
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
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.
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
Finally, EA does the optimal thing to benefit all humanity!
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 :)
Our intent with this release was to support the preservation of video games and the open source community. I hope that this release leads to more positive actions towards preserving classic video games across the industry :)
Finally we can start fixing the insane amount of bugs in Zero Hour.
Previously: https://news.ycombinator.com/item?id=23249964 "EA will be releasing the C&C Tiberian Dawn and Red Alert source code under GPL3" May 20, 2020 253 comments
Hopefully this means we’ll get an iPadOS and macOS release :-)
I wish they would release all the code and assets used to make Earth & Beyond.
The hardest part about making a game is the art.
I like to think I caused this
https://news.ycombinator.com/item?id=42827280
I really hope that one day they will open source Nox [1], it was my favorite childhood game after Sims. Nox was also a game created by the same studio that created Red Alert.
[1] https://en.wikipedia.org/wiki/Nox_(video_game)
One idea I had for open source games like this is AI experiments or training. Many people have been using Starcraft. If not it, they often use games that are nowhere near mainstream quality.
My idea was to have games in various genres with different skills required, like planning or physical abilities. Then, set each one up to work with just the engine in a way where game state is easy to interact with. For instance, no graphics or pop-up menus. Then, iterative experiments, like genetic programming or neural networks, could run much faster. Later, a common interface to many of them, like human senses, might let them be used to build general knowledge for AGI experiments.
Curious what people think of this. Especially a few exemplars in each category modified to just run really fast. For each, maybe training data on top of it that shows how to play the game. Seems like a cheaper option for testing architectures vs games not designed to do this.
This is some very welcome and surprisingly, good news which has been really, really, lacking this year.
Christ: https://github.com/electronicarts/CnC_Red_Alert/blob/main/CO...
Related: If you like the old Command and Conquer classics, give Combined Arms a try.
https://www.moddb.com/mods/command-conquer-combined-arms
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.
The only thing I know about this game is that it's what Jeremy in pure pwnage played
As a React developer, how does one even compile something like this
It's in the README
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?
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.
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.
> you are not allowed to make any money selling it.
Why not? I don't see it in the additional terms, so if you mean the GPL part then https://www.gnu.org/philosophy/selling.en.html
I recommend this video "This is Why We Still Play Tiberian Sun in 2025"
https://www.youtube.com/watch?v=qIbuqy6bI2Y
The comments on the Red Alert sources are so detailed. This is awesome. Major props to EA!
EA could release the source code of Chuck Yeager’s Air Combat and LHX.
What is the best c&c style game that has been released in the last couple years?
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.
Beyond All Reason sorta isn't released yet, but I'm liking that a lot as an old C&C2/AoE1 fan
EA... good?
How hard would it be to convert this so it could run in the browser using WebAssembly?
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?
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.
> 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.
The official stated reason is to make life easier for modders, for the steam workshop mods in their latest releases.
how prescient they were!
"Nationalism will bring us victory!"
"China will grow larger"
wow I didn't expect this from EA... Good for them, good for us, good for everybody.
Shame they'll never do it for Warcraft 3 with the remaster still around.
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.
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)
Even if it expires after 30 years, if the company doesn't publish the source code, what good does it do?
Perhaps to get the copyright you should put the code in escrow? Not really, it costs a fortune
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.
This is exactly what I meant though, put the code in a private third party library in order to gain IP protection.
Great memories, playing these when they came out against my crew.
Wow. Please do SimCity 2000, 3000 and 4 next EA!!
We used to waste so much time on this in the lan party.
This makes sense because OpenRA was doing so well!
Please open source Nox!
Sim City 2000!
[dead]
No sign of the Ma version :(
great news, thanks to id software for leading the way!
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)
Check out Beyond All Reason if you aren't aware of it https://www.beyondallreason.info/
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.
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.
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.
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.
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.
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?
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"};
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...
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.
> To use the compiled binaries, you must own the game.
I take that as buy the game to get the assets.
I'll just leave this here.
https://youtu.be/niZpcdp2v34
"I'VE GOT A PRESENT FOR YA!"
Good job, now open source Dark Age of Camelot.
Thank you
great in code documentation. but how to C++ folks cope. every C++ codebase looks like its own different language with so many dialects.
Now please, could somebody path C&C generals so we can play multi-player without every other game having a mismatch?
now, if they open source Red Alert 2 engine ... That was a masterpiece of using voxels
IDK why but it ironically brings me joy to find typos in old code. Maybe a reminder that we're all human (well back when code was written by humans /s).
https://github.com/electronicarts/CnC_Remastered_Collection/...
Some influencer coder right now "i don't use IDE, because it makes my coding more detailed & thorough"
We want that artisanal hand crafted environmentally friendly codebase
[dead]
> 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...
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.)
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.
> 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.
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.
Where are the assets for openra coming from? I guess those could be used in a fork of this?
I'm pretty sure they get their assets from the freeware release
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).
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.
The additional terms are under term 7 of the GPLv3, so -- assuming they're valid -- would still render this open-source.
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.
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"
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.
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.
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.
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.
Yes, it actually means that.
https://opensource.org/osd
> it just means the source is open, viewable
That's called source-available, unless "use it as per the licensing" includes further freedoms
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.
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?
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.
"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;
That still look like 5 minutes to you?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.
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.
There are at least four dependencies that EA would have to replace for MAC. That would be an extremely complex task just for the first two. And who knows about the second. I just don't see a way for that to be profitable. Its no secret that games ported to Mac do poorly.
DirectX 5 SDK
DirectX Media 5.1 SDK
Greenleaf Communications Library (GCL)
Human Machine Interface (HMI) “Sound Operating System” (SOS)
Your assumed scenario was a magic button to recompile it.