Simpsons Hit and Run source code (2003)
github.com
github.com
I worked on Company of Heroes and Dawn of War during this era. The code looks very familiar. It's the same style of C++. The code looks very similar to Homeworld. https://github.com/HomeworldSDL/HomeworldSDL
I went to SFU, where Neall Verheyde one of the programmers from Radical lectured one semester. Sadly, it looks like he passed away a few years ago. https://www.dignitymemorial.com/obituaries/west-vancouver-bc...
"Ready ze panzerfaust"
Spanish: paraguas - which is umbrella in english looks like it comes from 'para aguas' or 'for waters' English: billfold - a wallet where dollar bills are folded
Similar things are happening with the Men of War franchise (a similar but more realistic game).... enshittification is happening everywhere, and nothing is becoming better.
CoH was amazing. CoH2 was eh. And CoH3 is atrocious.
I hate SaaS with a passion, but it provides a financial incentive to continue improving an already great product.
It's the blockbuster games that seem to have this problem as they always seem to dilute the game mechanics down for more cinematic experiences as time goes on. It's what happened to CoH, it's what happened with Dawn of War, it's what happened with Civilization (people will variously say 3, 4 or 5 was the peak; few list 6 as it) and it might happen with the Sins sequel.
Afaik, Paradox is still small enough / left alone enough by its parent to have avoided the shenanigans. We'll see what happens if they keep growing.
I also think by virtue of being niche and specific, Paradox incentivizes dev teams to stay true to the spirit of their game. I.e. no one is making a detailed 4X game because they want to sell CoD numbers. They do it because they honestly love 4X games.
Usually the base paradox games feel like they’re “missing” major features which makes some DLCs necessary for a more full experience, but by the time that happens the base game is heavily discounted so base+dlc=full price of a new game.
Just felt like I have to add onto the paradox comment since I enjoy their major updates + dlc approach. Whenever I buy one of their games, I know I’ll probably come back to the game for at least 5 years.
As someone who recently played a bunch of HOI4, this is not true. Even during a summer sale, game plus DLCs that fix the "new" ways they changed the game is often multiple hundred dollars.
They don't do this out of the goodness of their heart, they do this because it's insanely profitable to make a single game and then charge $12 for every adjustment and additional mechanic over the next ten years.
It's somewhat defensible for them, because I don't need the Japan DLC for HOI4 if I don't give a shit about playing as japan, but it's still the equivalent when Civ 5 charged ten dollars to add religion back to the game and fix the dumb health mechanic that allowed you to kill any unit with ten spearmen.
That is in no way true. Even now, there isn't any way for you to get EU4 (a much older game than Stellaris) and all of it's DLC for less than 60usd. Even in some super sale. At least, I've never seen it.
For your own example, the lowest the Stellaris ultimate bundle has ever been is ~117usd, which was when there was far fewer DLC in it:
https://gg.deals/pack/stellaris-ultimate-bundle-2023/
It's a common meme that a Paradox game will cost you 300-400usd, for a reason. I'm not knocking their economic model, people pay for it without much complaint. However, it is objectively more expensive for the consumer than a single full game.
Or not improve it all - but charge you for continued access.
In theory but every game I liked initially that went down that route turned to garbage. Destiny and Overwatch come to mind. The game aesthetics and world deteriorate as stupider and stupider cosmetics flood the game. Less and less time is spent in great content and more on increasingly IAP abusing events that qualify less and less as games.
Would be interested to hear a counter example but I think there is good reason no gamer gets excited hearing a game is gonna be SAAS/“live service”
For them, SaaS is much more about "Maximizing profit from this game, to fund other games (or generate shareholder returns)" than "Providing a sustainable business model to continue developing this game".
Consequently, you get maintenance teams whose primary KPI is maximizing revenue, versus improving a game.
Sometimes that models permanently destroys something without providing users a recourse for going back. See: Warcraft II, or World of Warcraft
I think the SaaS model really depends on the Developer/Company. There are a lot of good and bed examples out there...
The original CoH felt like such a well balanced and interesting game!
I have to say that oddly enough Iron Harvest has a similar feel to it, gameplay wise, even if the setting is different.
Then, you already mentioned Men of War, there's also Call to Arms, both of which still seem decent in my mind.
Where available, community made mods can be a nice touch! The community for those isn't too large, though, given the somewhat niche genre. There are also some free RTS games like Beyond All Reason (though it's more similar to Total Annihilation), or some others made in the Spring engine: https://springrts.com/wiki/Games
Very few WW2 themed ones, though. I'd also mention Steel Division, the first game of which had great balance, but the second game in the series feels almost too large scale for me (like Wargame, less about micro with individual units).
Amazing game.
“… but I am already saved.” shivers
And there have been plenty of RTSes...the genre just lost it's mainstream appeal in general. In this very thread alone, four others have been mentioned.
It’ll obviously (but regrettably) never get released to the general public, but it’s fun to watch and see what maybe could’ve been.
The videos are an excellent form of content marketing.
For examples of what happens if you don’t employ underhanded tactics, take a look at AM2R or the Chrono Trigger remake.
I'd love to see lots of things but that doesn't mean any of those things will ever be real
I feel like most open source C++ projects I read in non-game spaces are just a complete mess of indecipherable syntax.
Is this game code uniquely well written or am I often looking at the wrong codebases?
With a product using code from KDE it must be said.
Two of three remaining relevant browser engine vendors (Apple and Google) base their browsers in that code base. They could have gone from scratch or used a different base, but they took KDE's. They wouldn't have if it was of bad quality and unmaintainable.
[1] Unchecked assumptions everywhere, #ifdef with platform specific code everywhere, singletons everywhere. Only spent 5 minutes browsing the code, I'm sure there's more examples.
Ultimately the transition to 360/PS3 and the massive increase in production value and challenges cracked the company - or, depending who you ask, it was just the Activision merger with Vivendi (owner of Radical).
I don’t think you are. I have a couple of decades in the industry, in which I’ve had the honour to see quite a lot of code from many different organisations through one of my roles in Enterprise Architecture in the Danish public sector. In my completely anecdotal experience it takes quite a lot of dedication to the CI part of the development process to achieve clean code bases, and it’s often not something that’s going to be very beneficial in the short term. Over time, I think that most good programmers eventually ends up in a “readable code is good code” mantra, but it’s not an easy path and a lot of the “meta” philosophies that we teach programmers from their first day in programming are sort or counter-productive to writing clean code.
Having gotten into programming around the millennium I’m obviously mostly familiar with the OOP side of things, but many of the things I was taught in regards to OOP is still things I see CS students being taught when I do my side gig as an external examiner. Where I’m from we tend to start learning OOP with a classic “bird -> duck, something that flies, some bird that walks” sort of thing so students can put in “fly”, “swim”, “walk” and “say something” methods. Which is great, in theory, because in the real world (again very anecdotal) people tend to build polymorphism and inheritance in ways that eventually almost always seem to end up with code basis having been better off just writing a duck, a chicken and a ostrich instead of nesting them under a bird class. Don’t get me wrong, I love having basic classes to inherit from in any sort of data-modelling so it’s not like I’m aboard the “I hate all OOP” bus, my point is rather that we still teach students something that often turns out not to produce clean code. Often it’ll take a long time for some of those students to get to a point where they become critical of “academic” programming and many frankly never learn how to write clean code.
In non-OSS you can dictate a lot of things that you can’t with open source without breaking a lot of the concepts. I don’t necessarily think it’s wrong to demand that open source organisations make it a requirement that the only way you can build things for them is if you use their template projects in a technology they want to govern. But that goes against the principle of technology agnostics, so many will rightly not do that. If you don’t, however, take control on how code is supposed to be written, then it’s going to be written in a multitude of ways and I think it’s very hard to avoid it becoming messy over time.
Now, if you have a single project and not an organisation, and maybe you even have changing custodians, then you’re likely going to end up with not only different ways of contributing but also different governing philosophies over time. Which is very democratic, and probably unavoidable, but it’s also very prone to leave you with a code base that isn’t easy to read because it’s not actually written by a single set of “clean code” principles but multiple.
Or in short, no, writing clean readable code is hard.
In contrast, while far from my favourite language to write code in, I found Erlang to almost enforce, or at least strongly hint to the developer, many practices for writing clean code.
But I can recommend you to read the code from Quake, Doom, etc. Start with the early versions, because it's even much simpler. I also find this very easy to read and very simple, and easy to hack around with.
See my list here of code bases I recommend to read: https://github.com/albertz/wiki/blob/master/coding.md#recomm...
This is because a lot of C++'s idioms are a) very old (stemming back from C++98, and slowly morphing with each version) and b) extremely conservative. Ideas that are important to more "modern" languages like KISS and "nothing magic" apply much less, as efficiency is generally more focused on. Especially in systems and embedded development.
> Is this game code uniquely well written or am I often looking at the wrong codebases?
I would say it's multi-faceted. Firstly, the codebases you're referring to probably aren't nearly as messy or archaic to primarily C++ developers. They just seem that way to outsiders; though there are plenty of messy codebases. Secondly, gamedev has it's own paradigms and idioms that are generally structured more agnostically and modular.
That all being said, I would say modern codebases built in C++11 and newer are much "cleaner" for non-C++ developers with more modern idioms.
Source: experience of being a developer in the games industry lol
edit: I checked, he was the lead designer.. aka producer.
All external 56k modems were hardware, some people wouldn't risk an internal card for fear of ending up with a driver based device.
Ah good ol' days of BBS and wvdial for internet.
Or you get the damned Lucent/Agere drivers mess the things and transfer garbage instead of data. I still has some mp3s with garbled parts from these times and with 128kbps it's quite audible.
It wasn't until 2000 that upload got upto 48k (still not the full 56k on the download). I moved to cable/dsl in late 1999 so didn't go beyond 56/33.6
But God damn, I was already a teen and that was 23 years ago.... Getting old kinda sucks....
I'm not sure I knew this at the time (if I did, I had forgotten it by now), but V.92 actually did allow sending at up to 48kbits from an analog line. This was usually not used because it would lower the rate coming from the other direction, and l̶e̶e̶c̶h̶e̶r̶s̶ ̶g̶o̶t̶t̶a̶ ̶l̶e̶e̶c̶h̶ most people cared more about downstream.
Oral History of Brent Townshend [Computer History Museum] https://www.youtube.com/watch?v=QqudP6ojEDI
https://simpsonswiki.com/wiki/Evidence_for_the_location_of_S...
Only 50 instances of the word "fuck" in the entire repo.
I like "buffy" for a buffer. That really dates it :)
I think often about trying to figure out how to strip the assets and build an open source clone for it for when EA inevitably kill it and deprive the world of it.
“”” // Synopsis: Blahblahblah “””
I want to work in a place that allows this or encourages it.
https://www.youtube.com/watch?v=M4QUy02cQqY&list=PL3gCaTLUSA...
See this reddit post for instance: https://old.reddit.com/r/SimpsonsHitAndRun/comments/pa2ecc/s...
I'm sure we've all had variables like this: https://github.com/Svxy/The-Simpsons-Hit-and-Run/blob/eb4b34...
And comments like this: https://github.com/Svxy/The-Simpsons-Hit-and-Run/blob/eb4b34...
It’s weird to learn later that it’s basically a clone of crazy taxi.
Though I remember everything going “Halloween” in that game and having a big smile.
At a bit less than 5GB, this is the perfect candidate for a torrent. Small enough to reasonably seed to a high ratio, while so large that it apparently puts me over mega's transfer quota for my IP..
But your point stands that the large pipes, wherever they are, can support the RoW.
> // Make sure this is correct by verifying with Jesse.
Guess it was right!
Classic
https://github.com/Svxy/The-Simpsons-Hit-and-Run/releases/ta...
I hate this trend of the internet where we have to agree with anyone who is offended. I don't actually recognize this for what it could be, and my experience and opinion is as valid as others.
My post that you’re replying to just said that I don’t think that the comment on GitHub is likely to be an instance of ironic empowering homophobia. If you disagree then I have no particular beef with you on that factual point - I just think you’re wrong.
When gay began to mean GAY, people stopped using it to mean “lame”.
This poster is probably 30-50 years old and likely meant no harm. There’s an internet meme “fake and gay” which has nothing to do with homophobia but instead refers to the 90s usage.
> When gay began to mean GAY, people stopped using it to mean “lame”.
This is completely ahistorical. The ‘lame’ meaning came long after the ‘homosexual’ meaning.
I truly didn’t know. There was no internet, so my only source of culture was media and school.
I'm in my 30's, very happy that I barely hear this kinda direct homophobia anymore. I've long been unpacking the personal repercussions of `gay === very bad` being deep set in my brain in those formative years.
Also, no-one in this thread has called anyone a homophobe, but only pointed out that the comment is an instance of casual homophobia. It seems that you’d like to have a particular argument with some kind of caricature of a cancel culture warrior, but I’m afraid no-one present actually meets that description!
It turns out the remark this is all about is something in the setup of this repository, not by the original authors of the code. My comment was assuming it was. If so, the remark would be not a very shocking one and not rooted in homophobia, and complaining about it would be like complaining the Bible is misogynistic.
Instead, the remark was made in our era and probably rooted in some infantile meme lord attitude and although in my opinion not expressing real homophobia still not appropriate.