[HN Gopher] Far Cry 1.34 source code (2006) ___________________________________________________________________ Far Cry 1.34 source code (2006) Author : KomoD Score : 509 points Date : 2023-07-01 07:54 UTC (15 hours ago) (HTM) web link (archive.org) (TXT) w3m dump (archive.org) | omgmajk wrote: | I have spent many hours reading the source code to games from | sources like https://github.com/bobeff/open-source-games - this | is going to be a new fun weekend project! | unixhero wrote: | Well now Archive.org runs Farcry! | kelvinjps wrote: | Jhom carmack had a piece on how to release source code of games | cubefox wrote: | I remember when Far Cry came out. Around the time, Doom 3 and | Half-Life 2 were the most anticipated games for quite a while, | mostly because they promised graphics far ahead of anything | released so far. But as they were delayed multiple times, Far Cry | stole a lot of their thunder when it came out months before them, | with similarly impressive graphics. | | We don't see technically ambitious PC exclusive games like this | anymore, as the market for these games greatly decreased in | relevance. Most people don't own an expensive desktop PC anymore | (due to smartphones and laptops doing most of their jobs) and | they just buy a console if they want to play games. | jacooper wrote: | Crytek still makes graphical masterpieces (and IMO crysis has | one of the best FPS stories). Crysis 1 and 2 remastered are | very good, and crysis 3 is still a masterpiece after more than | 10 years. | | And crysis 4 is coming. | nerdix wrote: | The PC gaming market is actually bigger now than it was back | then. | | The difference is that consoles didn't really start to become | viable for the FPS genre until the Xbox/PS2 generation (and | even then it was really just Halo). | | So an FPS was PC exclusive by default with only the biggest | games getting a clumsy console port or spinoff years later | (like FarCry Instincts). Consoles became a first class citizen | in the world of FPSes with the 360/PS3 generation in the | mid-2000s. That's why FarCry 1 (2004) was a PC exclusive but | FarCry 2 (2008) released on consoles and PC at the same time. | cubefox wrote: | Competitive FPS games did even exist on the N64 (James Bond | Golden Eye, Perfect Dark), and in the next generation they | were very common and mostly had the modern two stick controls | which is still used today. So I don't think that had anything | to do with it. | | > The PC gaming market is actually bigger now than it was | back then. | | This might be true, but I'm fairly certain that the market | share of the PC platform has strongly decreased relative to | the consoles. AAA games have largely shifted to consoles or | console ports. The most plausible reason is that the desktop | PC market has collapsed. The heyday of PC gaming was probably | somewhere between Quake (1996) and Crysis (2007). | nerdix wrote: | The "next generation" after N64 was Xbox/PS2. In my | previous comment, I pointed out that FPSes on consoles | became viable during that time. There were FPSes on | consoles even prior to Golden Eye/Perfect Dark. For | instance, there were SNES ports of Doom and Wolfenstein 3D. | They were just all pretty bad. Even the "good" ones like | Golden Eye don't really hold up against the PC shooters of | the time. | | Shooters didn't become a premiere genre for consoles until | the 360/PS3 era. Like I said, as far as popularity went, | there was Halo and MoH (to a way lesser degree) during the | Xbox/PS2 days but not much else. And then all of a sudden, | shooters became the hottest genre on consoles in the mid- | late 00s. That's when CoD and Battlefield made the | transition over to consoles in earnest. It's when Sony | invested heavily (and ultimately failed) in creating a | "Halo killer". It's when CoD went from a pretty successful | PC franchise to consistently being the highest selling game | year after year. | | As far as the PC gaming market goes. There was a dark age | starting in the mid-00s. But PC gaming is very popular | right now (we'll have to see what impact high GPU prices | has on its future) . | | For instance, Activision makes more money from the PC | platform than all consoles combined. | | https://www.pcgamer.com/activision-is-making-more-money- | on-p... | | PC has been Ubisoft's second largest platform (ahead of | Xbox but behind PlayStation) since 2018 | | https://www.statista.com/statistics/269679/breakdown-of- | ubis... | | No one in the industry ignores the PC market anymore. | Everyone (except Nintendo) is releasing their games on PC | now even companies that weren't traditionally in the PC | gaming market like Japanese publishers. Genres that had a | spotty history of PC support (Sports, JRPGs, Fighting | games, etc) are seeing consistent PC releases. And even | Sony conceded and started releasing their exclusives on PC | (years later but it's still a dramatic shift from even a | few years ago). | | As someone who was primarily a PC gamer in the 90s, I can | tell you anecdotally that I know several people who were | console gamers only 20+ years ago who are now PC gamers. | barrysteve wrote: | The know how to make a game is free knowledge with paid | education add-ons... we figured out the broad strokes. | | Smaller tech leaps in client-side game software is difficult to | protect from instant duplicaton. The cloud and mobile is the | 'last moat'. | | Are we going to move into black box software designs and | trusted platform modules in hardware to enforce a technology | moat for devs on pc's? | delta_p_delta_x wrote: | > We don't see technically ambitious PC exclusive games like | this anymore | | You should consider _A Plague Tale: Requiem_. Even without ray- | tracing, it is by far one of the most beautiful games I 've | played in a long time (since _The Witcher 3_ , at least). Not | to mention it has a sucker-punch of a story and a phenomenal | soundtrack. | Version467 wrote: | Huh? That doesn't seem right. We absolutely have ambitious | games on pc that bring generational leaps in graphical | fidelity. | | Like the Witcher 3, which was absolutely stunning when it first | released. Similarly (although originally a console exclusive) | Red Dead Redemption 2 looks incredible on PC. We also have | releases like Hellblade: Senuas Sacrifice which pushed the | limit of what was possible to achieve with limited resources | (regarding the development, not the hardware). | | Honorable mentions should probably also include Star Citizen, | which although still unreleased is definitely an incredibly | technically ambitious project. As is Cyberpunk 2077. The launch | might have been a total disaster, but afaik it's the first big | game to ship a full ray-tracing renderer. | | Maybe we have a different understanding of what a 'technically | ambitious' game is. But I see technical improvements left and | right. Unreal Engine 5 comes with some features that are just | mind-blowing and make a whole new level of graphical fidelity | available even to small indie developers. Just take a look at | the recently released footage of "Unrecord", where lots of | people thought it was real life footage. | hutzlibu wrote: | In general I agree, but I rather remember The Witcher 3 for | the story and atmosphere, than for the graphics. Likewise | Senuas Sacrifice - it pushed the limit for psychological | games(the game is about processing loss through a psychosis, | so it is not a casual game). In either case, both titles are | really worth it. | dreday wrote: | I have never heard of Senuas Sacrifice, so I googled it. | It's 85% off on steam summer sale ($4.49 in the US). Just | an fyi for anyone else interested. | hutzlibu wrote: | That's definitely worth it. But just to repeat myself, it | is not a casual game and I recommend head phones, for the | full experience. Meaning you should not be on the call, | when playing it. It also _has_ a decent fight mechanic | but the main experience for me, was the mind trip. | | (professional psychologist were strongly involved in the | developement) | mcpackieh wrote: | Witcher 3 caught a lot of flak when released for looking | worse than what was shown at E3. Why gamers still pay | attention to early-access peeks of games at E3 is beyond my | comprehension, it seems like a recipe for disappointment | every time.. | zokier wrote: | It depends what your reference point for the rate of progress | is. The release date of Crysis is closer to release date of | Doom than today, but visually Crysis holds up dramatically | better than what Doom did at the time of Crysis release. | mcpackieh wrote: | On the other hand I bet there are more people playing Doom | 1 & 2 today than Crysis. Doom's gameplay held up better, | and 3rd party WADs (in large part facilitated by the | primitive graphics making it easy for one-man creators) | gave Doom a life of its own. | zirgs wrote: | 16 year old games were considered "retro" when Crysis came | out. Crysis came out 16 years ago. | TillE wrote: | Hell, if you were making a game that looked like Ultima | VI (1990) in the mid-late 90s, that would be treated as | embarrassingly retro. Call it 5 or 6 years. | | Once we settled on quasi-realistic 3D games with a mostly | consistent control scheme as the norm, that process of | obsolescence has slowed down dramatically. Games have | sort of plateaued in that way. So you really can go back | and play Crysis and it's still fine. It's noticeably | "retro", but I think only serious graphics nerds would be | bothered by its deficiencies. | zirgs wrote: | Yeah, seems like that every year the age of games that | are considered "retro" keeps increasing. Now it is at | least ~25 years or so. | zokier wrote: | idk. 80s-early 90s pixel art style was all the rage 10 | years ago as retro, nowdays the action is at late | 90s-early 00s wonky polygon graphics, so it seems to have | advanced pretty proportionally | Kaytaro wrote: | Witcher 3 is 8 years old and considered an old persons game. | I learned that the hard way when I tried talking to my nephew | about video games. | | In all seriousness, most of your examples I would consider | part of the previous era of gaming, which ended with | Fortnite's explosion. Hyper realistic games will continue to | be developed of course, but the overall industry trend is | moving towards mobile-friendly graphics, which presents its | own set of technical challenges. | Version467 wrote: | I agree that Witcher 3 doesn't count as "current gen" | anymore, but it wasn't meant to represent that. I picked my | examples to show that we've seen high fidelity games | throughout the last decade. All of those games pushed the | boundaries of what's possible in some way and I don't think | we've seen a decline of that at all. | | There are just so many more games now that it might seem | like that. | Closi wrote: | Parent comment said PC-exclusive, Witcher 3 and RDR2 are | examples where the PC port came out way after the console | release and they are both fairly old games at this point. | derrikcurran wrote: | Witcher 3 came out on PC at the same time as consoles. CDPR | has a long history with PC gaming and they tend to | emphasize the PC experience. They also own GOG which is a | PC game store/platform. RDR2 on the other hand was indeed a | timed console exclusive. | cubefox wrote: | To be fair, I edited in the "exclusive" to make it clear I | wasn't talking about ports, so he might not have seen it. | cubefox wrote: | Most ambitious games are now primarily developed for console | while only being ported to PCs. Cyberpunk 2077 was apparently | primarily optimized for PC (while still being a cross | platform title) but that's an exception. | DrNosferatu wrote: | Clean room engineering for a (new&clean) source port? | | FreeFarCry, with new assets a la Freedoom? | | I wonder how it runs natively on a Raspberry Pi? | b212 wrote: | One of the most beautiful games of its time. | | Stopped gaming years ago but saw my cousin playing Far Cry 6 the | other day and it looked better but not that much better. After 17 | years. Crazy. | bloqs wrote: | What is really interesting, is that lots of people would accuse | you of rose-tinted spectacles and similar, I have continued to | game from about 1998 until today. | | the gaming industry is in a very odd place, and not unlike the | film industry. Rehashes and sequels to increasingly aging 80s | and 90s franchieses is the done thing. It generates nostalgia | bucks from the older folks, the new folks are ignorant of the | originals so just consume them at face value, and there is the | magic 3rd property of being much cheaper to develop than | creating something original. | | This has lead to a huge drought of good new things because MBAs | are not condusive to creative risks. | | In gaming, what also follows the same line is stuff like | graphical development. It's far more economical to take the | Original game engine, and just gradually modify it as each | generation passes. As a result, the most recent Far Cry game is | almost identical in graphical quality to the last 3-4 at least | (and it's not massively far away from the original either). | | Because of cost-saving increment culture. Now, there is an | additional element at play here, increasing polygon counts are | exponentially uneffective - if a car with a circular wheel has | 3 points, it looks awful. Double those points to 6, and | hexagonal wheels look a hell of a lot better, and are passable | in many older games. Double it again to 12 and it becomes | indistinguishable from a circle at a glance. Double it to 24 | and you would barely notice, double it again and it looks no | different to the last generational increment. | | The other issue is despite tooling coming so far, we it still | takes a human artist the same amount of time to draw and design | something. If that has to be done at increasingly extreme | levels of detail, it's going to require more artists (and | artists also don't even work well like that). So that also | presents new problems. | | So along with all the cost-saving and business optimisation of | the pipeline of games production, there are real factors at | play in how things have improved that really change how things | look and feel. | | I will say, if you watch a youtube video of the original game | being played in high detail on a high end machine (this would | have been before 1080p was a thing I believe) and watch a video | of FC6 with a modern high-end machine at max settings, it's | still impressive. | Version467 wrote: | Have you compared it to screenshots from Far Cry 1, or to your | memory of the game? | | Far Cry 1 was a beautfiul game, absolutely, but the new | iteration clearly does look _a lot_ better than the original. | simonklitj wrote: | Yeah, take a look at this photo: | https://i.redd.it/rfvm4j1j9m391.jpg | | Looks like a lot of improvement to me. | xwdv wrote: | Somewhat, you can still see how the sky looks unnatural | from the HDR effect which just ruins everything. The top is | a more natural realistic sky. Shoreline is kinda weird too. | bhouston wrote: | I see what you are referring to. | | But I don't think it is just simple HDR tonemapping, it | doesn't do that, but rather some type of color grading | going on. The bottom is over saturated and over | contrasty. | hifikuno wrote: | This was one thing that surprised me when playing the | remastered version of Halo. It looked exactly as I remembered | it. Then I swapped to the original graphics and realized my | nostalgia and memories had added lots of extra details. | busfahrer wrote: | Had the same experience with the StarCraft Remaster | dumdumchan wrote: | They peaked at far cry 2 and it has been down hill ever since | paxys wrote: | Far Cry 3 was miles better than the first two. In fact it | was because of the success of 3 that every later game was | just a copy of it, and the franchise stagnated. | hotsauceror wrote: | If they'd re-release Far Cry 2 with graphics on par with FC | 5, I might never play anything else. I could hike around | all day admiring the scenery in FC 5, or ride a jet ski | from one end of the river to the other. But the story was | hokey and tropey, most of the characters were | uninteresting, and the ending was enough to put me off of | Ubisoft for good. FC 2 had a great story, great characters, | lots of interesting mechanics. And of course, the Standard | Ubisoft Paradigm (climb a $TALL to unlock a map quadrant, | sneak into $PLACE and fight $HEAVY, $SNIPER, and $LIGHT, | have a $FORCEDENCOUNTER with $SUBBBOSS for some | exposition), was still new enough that we weren't tired of | it yet. | mcpackieh wrote: | I liked Far Cry 4's setting and characters, but the game | otherwise seemed very lazy and uninspired. Bland map and | very little do to in between outposts. Little emergent fun | to be had, except for doing missions or clearing outposts. | Same complaint with Far Cry Primal; really neat idea but | lazy/rushed execution. | als0 wrote: | There's a lot to be admired by Far Cry 2: the environmental | mechanics, the introduction, the lighting effects, the | gritty and exotic atmosphere... but to me it was not a fun | game. Not in the way that Far Cry 1 was fun. | thsbrown wrote: | I absolutely loved far cry 2. Dynamic fire and gun | jamming were standouts. | dumdumchan wrote: | The immersion is what sold it to me. No hud, no on screen | markers. Need to look at map? Pull it out, hold it in | your hand and look at it. I'm surprised no other AAA game | has tried this formula. | looperhacks wrote: | You might want to take a look at the latest entry in the | Metro series | papito wrote: | As a Far Cry fanatic, even the difference between Far Cry 3 and | Far Cry 4 is substantial. Far Cry 3 is one of those games where | the gameplay is so good, you don't even pay attention to | graphics, but with 4, you are on a different planet. | ftxbro wrote: | maybe someone is trying to cause trouble for archive.org by | putting such clearly violating content on there | throwaway2037 wrote: | This is a good point. What is archive.org's policy with regards | to "leaked" (unlicensed) source code? I imagine they need to | remove it. | boomboomsubban wrote: | If the content owner DMCA strikes it, they'll remove it. If | not, it's not really their problem. Basically the same way | the rest of the internet works. | MaxBarraclough wrote: | I think that's unlikely, it's a drop in the bucket at this | point. | | Last I heard they were hosting Nintendo ROMs, in unarguable | infringement of the copyrights. | stefncb wrote: | They were also hosting the release doom wad files for | multiple versions last time I checked. | ftxbro wrote: | Well that sounds bad. Are they all-in on piracy like their | server is hosted on international waters or rotating between | some whack-a-mole servers from like kazakhstan and mongolia | and eswatini? | xwdv wrote: | Yup. Hosted on a server farm aboard a repurposed cargo ship | flying a pirate flag roaming international waters, spending | its life evading the coast guard, using starlink satellites | to provide connectivity to the rest of the world. The crew | is made up of former cyber criminals evading the law from | their home countries for hacking related offenses, along | with a few actual Somali pirates or random killers and war | criminals. They have the greatest collection of pirated | software, raw leaks and rare media files that you won't | find anywhere else. | ftxbro wrote: | i want it on netflix | boomboomsubban wrote: | No, they just follow DMCA claims and there's no real issue. | They are under no obligation to police themselves. | ExoticPearTree wrote: | It doesn't really matter at this point. It is out there and the | Internet never forgets. | | What will come next, if it ever comes, it will be a game a | whack-a-mole that the copyright owners have no chance of | winning. | naillo wrote: | The internet _can_ wipe things completely given enough want | from corporations. For instance the hulk hogan tape seems | utterly gone no matter where you look. | rebane2001 wrote: | No it can't if you do your part | dreday wrote: | I think in the US they would be protected under section 230. | Which is a reminder to is all (in the US) of why section 230 is | so important. | Confiks wrote: | $ grep -ir "remove this after e3" | wc -l 40 | RGBCube wrote: | It got stuck in the soon(tm) phase | cahoot_bird wrote: | I remember there is a bug with the hang glider that if you move | down and up you gain momentum | | Back in the day far cry 1 was ultra realistic graphics. | | The game was fun to play, the most annoying thing is if you throw | a rock or grenade where they can see if your stealth meter in | instantly goes to zero and they start shooting you. | | I played it a lot, hehe. | mediumsmart wrote: | :) me too - guiding trigens towards the mercs from a patrol | boat with rockets. | | Coming out of the bunker was amazing and then the realization | that it would be a guided tour because "Doyle" :| | cahoot_bird wrote: | The game is riddled with small bugs, like you can knock the | phone off the rock in the first level bunker then the cut | scene will have him picking it up. | | Having the trigens fight the people throughout the game was | fun, and stealth aspect as well. | | It's funny how the game emphasis seemed to be on the | realistic mode, but it's like it was only tested on medium - | the trigens would die very quickly and easily on realistic if | the guards shot them, if I had to guess probably the bullet | damage is turned up on that mode. | [deleted] | hexagonwin wrote: | Illegal or not I'm glad to see these getting released on public, | it won't cause much harm due to being ancient but they're great | learning resource. | sacnoradhq wrote: | I would advise NOT using this to learn from. There are so many | antipatterns in here that it's a hot mess. There are plenty of | better resources that teach good habits than learning how to | become another high turnover C++ developer intern about to | throw in another broken, fragile lava layer. | inteligence_po wrote: | Good links on another leaks: | | github.com/StrongPC123/Far-Cry-1-Source-Full | | breachforums.vc/Thread-FarCry-1-Leaked-Source-Code | | I guess it is interesting about github | cuken14 wrote: | cool | Havoc wrote: | I wish companies would just opensource really old engines for | educational purposes. | | Maybe take game assets resize everything to 1/10th so that it | looks like sht but can still be used as placeholder. | | Would boost the pipeline of talent for the entire industry | pshirshov wrote: | I guess the best way woul dbe to regulate that. If you want to | sell any software (including firmware) you have to deposit the | sources and encryption keys into some state-owned repository. | If you decided to stop maintaining the code it would be | released into public domain after some reasonable grace period | (e.g. 5 years). That would solve many issues including excess | e-waste. | masklinn wrote: | > Maybe take game assets resize everything to 1/10th so that it | looks like sht but can still be used as placeholder. | | The assets are commonly licensed, so you can't include them _at | all_ , or in large parts. Commonly the game data is not part of | the release either. | esperent wrote: | I guess this is legally unfeasible. Take a look at the splash | screens next time you're loading a game - especially AAA but | also smaller ones too. There will beone page with a bunch of | logos. Havok physics is the one that comes to mind but there's | loads more. Each of these is a plugin with proprietary code. | They would need to be stripped out before the code could be | released, which would probably be a lot of work. And then the | code wouldn't run anyway. | | This isn't a recent thing - as another comment points out, even | the original Doom ran into this problem and only the Linux | source was released. | masklinn wrote: | It's often legally feasible but the result is difficult to | get value out of (and obviously worthless for the company). | | For instance Frictional open-sourced their HPL engine, | Penumbra: Overture, Amnesia: The Dark Descent and Amnesia: A | Machine For Pigs. | | However the Amnesia games are built with Autodesk's FBX SDK, | and I don't think they include any assets, they're not | necessarily uninteresting artefacts but there's not much you | can do with them either. | stepupmakeup wrote: | I believe most popular libraries and middleware (like Havok) | aren't freely available/leaked, OR at the very least it's | some ancient version with massive API differences compared to | newer versions. Around the time of the Pokemon leaks in 2020 | I was watching people live on Discord struggling getting | Pokemon Diamond to compile, because apparently the DS Wi-Fi | component of the official SDK was never actually leaked | online (at the time) | torginus wrote: | I'd be fine if they put up their code with the proprietary | parts removed. They can just include a FIXME stating that the | physics engine/video player etc. is missing. If the community | picks up the code, they can just replace the missing parts. | grogenaut wrote: | I've worked on games before. We ported our game to havock | between versions. That took 8 months for one dev. The code | review was 3 weeks. Ripping ours out was a month by itself. | There were several libraries like that. The sound system | was similar and we had to upgrade it every game which was | similar work to havock. Heck there was a really simple font | to bitmap lib/utility we used and that would have taken | several months to replace. A month to rip out. | | I moved us from PlayStation 3 to PlayStation 4 for our | debugging UI and literally just removing all the calls to | the old debugging UI system was something like 2 weeks my | only goal there was to get it to not compile. Wiring up all | 3,900 debug UI connection points to the engine with access | to all the rest of the game engine library and having | written parts of both systems in the engine and the | debugging library and the new UI library still took me | almost 2 weeks I did it with both systems working at the | same time which was actually easier than doing a full rip | out. The studio I worked at tried really hard not to use | proprietary libraries and it was a big deal for us using | havoc but we needed to they ended up going back for the | next title. They also wrapped literally every library with | shims to make it easier to Port but things like physics | engines are just basically impossible to wrap fully as our | sound engines and font libraries the implementation details | leak into everywhere. | | The suggestion you're making is a very large amount of work | probably on the level of several engineers for several | years on a Triple-A title now you're talking like a million | dollars for the company to open source it and locking up | some good devs for a year or more. There's literally no | economic trade off in doing that unless you can come up | with a way to make one. | | Porting would be an okay economic trade off there. | torginus wrote: | Thanks for taking your time to answer my suggestion in | detail. I was just trying to suggest something very | simple - just don't include the files that you don't have | the rights to - so in your case just don't publish those | font and physics library files. No need to completely rip | out all references to it. | | The resulting code will be broken, but if the community | cares enough, they can fix it up. | | I don't think this would be a huge effort to do - do you | see any issues (legal or otherwise) with this approach? | grogenaut wrote: | We did have our code mostly sorted into 3p and 1p... | However I'm not a lawyer and not sure how the taint might | leak up. I forget where Google/oracle landed on apis | being copyright but havock ids and other concepts leak | into your code everywhere. Heck even proprietary details | might or algos. It would still be hard and the lawyers | would be skeptical. You'd need a business case besides | goodwill to get over those humps. | | I bet a ton of companies don't follow those best | practices. And there's also the fact that you've now | exposed yourself to litigation where some dev violated | copyright of previous companies or libraries or whatever | and put it in the wrong place or copied it. Before open | sourcing you were fine. After you have essentially | incriminated yourself. | | The doom/quake case is kinda an exception. In that you | likely (I'm guessing) had Carmack who is a founder/owner, | deeply understand the tech base, understands cost and | estimates, likely understands licensing quite well, able | to go do the work, but also able to make the cost benefit | tradeoff and override objections in some cases. That's | not common in many companies. | maccard wrote: | That's gojng to be a hell of a lot of effort, unless the | third party libraries were abstracted out in the first | place. | ironSkillet wrote: | Removing these proprietary parts can actually be a lot of | work or potentially impossible without a major refractor, | especially if they're foundational to gameplay, like a | physics engine. | skrebbel wrote: | It can just "ERROR file physicslib.h not found". Nobody | says open source code must compile or work. | maccard wrote: | You need to remove all the calls to the SDK too. | someplaceguy wrote: | Why is that? | | Wouldn't the calling code be written (and thus | copyrighted) by the company that wrote the game rather | than the one that created the SDK? | hesdeadjim wrote: | Depends, if it's code calling a console SDK API then you | are bound by terms of the NDA to not publicly share it -- | forever. Even just function names! | | More realistically, a drop of source code is basically | painting a big target on your company to get sued by a | troll. I've wanted to release my game's source but am | terrified of this. | alerighi wrote: | > Depends, if it's code calling a console SDK API then | you are bound by terms of the NDA to not publicly share | it -- forever. Even just function names! | | This is not true. API itself (function names and | parameters) does not hold copyright. Otherwise you | wouldn't have open-source applications on any proprietary | OS, since they have the function calls of proprietary | APIs inside. | | What can be copyrighted are the header files itself: | these you can't redistribute, as you can't redistribute | the binary that is linked to the executable. Of course | without these you wouldn't be able to compile and run the | software, but you can reverse engineer the API from the | function names and parameters and even the binary | executable (because for an EU law reverse engineering for | the purpose of substituting proprietary parts, that is | this case, is allowed) and build a replacement for sure. | badsectoracula wrote: | > What can be copyrighted are the header files itself: | these you can't redistribute, as you can't redistribute | the binary that is linked to the executable. | | Note that while the exact header file is covered by | copyright, the "information"/"facts" the header file | describes (e.g. said function names, parameters, | constants, etc) is not - at least as far as EU is | concerned anyway (BTW the case you most likely have in | mind wasn't for substituting proprietary parts but for | interoperability between parts - i.e. it would still be | valid for substituting one proprietary part with another | proprietary part). This is also why different compilers | for Windows have a "windows.h" (or language equivalent) | with each having its own copyright but describing the | exact same API. | | (obviously this is for unsubstitutable fact-like | information a header file contains and does not apply for | any code like macros or inline methods like in C++ | classes/templates) | ChoGGi wrote: | > you are bound by terms of the NDA | | > This is not true. | | You usually have to follow contracts you sign. | someplaceguy wrote: | Perhaps you could just rename the function names, | structure fields, etc, to something different but | similar? | | e.g. instead of ps3_fly_up(...) you'd rename to something | a bit more generic like sdk_float_up(...) or something | like that. | | It could require a bit of creativity and some work but | with a sufficiently-intelligent IDE it'd just be a one- | time rename per function name + structure name + field | name. | plank wrote: | Surely that part of the code is AT LEAST fair use? Or one | has to be at the wrong part of THAT historical argument | (not necessarily pointing at parent)? | | (Yes, I would argue that this is exempt following the | 'functional' argument) | mostthingsweb wrote: | "Oracle would like to know your location." | | https://en.m.wikipedia.org/wiki/Google_LLC_v._Oracle_Amer | ica.... | orra wrote: | Absolutely untrue. It's legal to reimplement a third | party API, as upheld by the highest courts in both the US | and the EU. | | So of course you don't need to remove your lines of | source code which call into an API. | kevincox wrote: | Probably true, but that is probably also against the | license agreement (even if unenforcable). Most companies | don't want to take this risk (and potential legal costs) | just to release code that won't bring them any (direct) | revenue. | maccard wrote: | That's not the same thing - one is redistributing the API | (which is what we're talking about here) and the other is | implementing an API. | alerighi wrote: | Why? You just ship the code that you wrote without the | third part libraries. I don't think you did copy/paste | the library code inside your own, it's probably linked to | the executable in some form. Of course it would be | impossible to compile the program without it, but as it's | said, the component may be recreated by the open-source | community, or sourced form the closed-source game in some | other ways. | rychco wrote: | Agree. I would even be happy if the game was stripped of all | licensed code/assets/tools/etc. And honestly, I don't even care | if it can successfully compile/run. Just having the code alone | would be tremendously useful for the purpose of study. | grishka wrote: | In general, open-source all abandonware. Here's a few examples | of non-game old software that would benefit the society if | open-sourced: | | Windows 9x and classic Mac OS. No one has sold these OSes for | 20+ years and they turned out to be evolutionary dead ends. It | would make sense to release their sources so people could learn | from them and run them on new hardware more easily. | | Flash Player. Adobe has stated in no uncertain terms that Flash | is dead. Is there any good reason why the sources need to stay | closed if they aren't going to make any further gains, | financial or otherwise, from this product and its ecosystem? I | mean the Flash Player plugin and standalone app specifically, | not the Flash authoring software -- that's still alive under a | new name, Adobe Animate. | | Trident, the Internet Explorer engine. Again, it's dead for | good as far as Microsoft is concerned, so why not release its | sources for people to learn and hack on? | | Presto, the Opera engine. This was leaked and of course I | hoarded it, but it would be nice to see an official release. | | Winamp. The company behind it pivoted to some kind of streaming | social donation thing. It does not seem interested in | maintaining the old Winamp app. | | Path, the social media thing for "close friends", their mobile | apps. The apps were insanely cool, especially at the time of | Path's peak around 2013, but the service was shut down a few | years ago. Unless they're going to somehow resurrect the | service, there's no good reason for the sources for the apps to | remain closed. I'd love to take a look at their implementation | of real-time photo filters. | | Thinking of it, it makes _more_ sense for non-game apps than | for games to release sources. Old games do sometimes come out | as "remasters" for modern platforms. These usually reuse the | engine and sometimes some of the assets. Non-game software, on | the other hand, when it's dead, it's usually dead for good. | antegamisou wrote: | > No one has sold these OSes for 20+ years and they turned | out to be evolutionary dead ends. It would make sense to | release their sources so people could learn from them and run | them on new hardware more easily. | | Would add SGI's IRIX too! | catiopatio wrote: | > classic Mac OS | | I'd be really surprised if Apple still had the source code | and custom tools necessary to actually build the thing. | Palomides wrote: | they released the Lisa OS code (from 1983) recently, I | think they still have all the Mac OS code | | building it may be horrible, but the code would still be | very interesting to hobbyists | classichasclass wrote: | There is a fair bit of third party code in the classic | Mac OS, particularly in the extensions and cdevs. The | nanokernel and some basic portions of the OS are likely | releasable but they'd have to audit all of that. | stepupmakeup wrote: | Winamp's source actually did leak a couple years ago too | ("winamp-cvs") | geek_at wrote: | man I wish they had open sourced OS/2. It could have a linux | sized community at this point. | | Sadly microsoft had put so much of their code in it, that | they didn't allow the release (according to my dad who worked | for IBM and was even called "Mr. OS/2" because he had sold it | so good to companies) | ttfkam wrote: | OS/2 is still in use and under active development, just | under a different name. | | https://hackaday.com/2023/02/16/arcaos-os-2-updated-for- | the-... | mepian wrote: | I remember reading somewhere that while the developers of | ArcaOS have the rights to continue the development of | OS/2, they didn't obtain the source code. So they have to | patch their changes into the old OS/2 binaries instead of | changing the code. | rafram wrote: | > Trident, the Internet Explorer engine. | | Not really dead because it's still shipped with enterprise | Edge for sites that enable IE mode: | https://learn.microsoft.com/en-us/deployedge/edge-ie-mode | hulitu wrote: | Also i think that people from Spyglass INC would not be | very happy. | gibolt wrote: | Internet Explorer is still very much alive for millions of | people. Releasing the source would mean unlocking way more | exploits on those people, with no plan to patch. | pdntspa wrote: | Au contraire, Winamp 5.9.2 released recently and it's the | same old player. | | They are working on a new one that I am somewhat suspicious | of, but Winamp 5.9 has been a pleasant surprise. | [deleted] | manquer wrote: | > Is there any good reason why the sources need to stay | closed if they aren't going to make any further gains, | financial or otherwise, from this product and its ecosystem? | | Many reasons are there , it takes a lot of effort for a | company to open source anything, to name a few | | - Not get sued for IP infringement if your developer from 20 | years back copied something or used GPL code etc | | - Potentially expose active trade secrets , the program might | not be sold , parts the code /algorithms whole modules might | still be used in newer applications. | | - Presence of PII or other sensitive/inflammatory content in | comments and code, could be anything from funny(but | inappropriate )method names to comments and documentation . | | - poor boundaries, you could have dependencies which are used | by the app which are not possible to also be open sourced. | | - poor documentation, you simply no longer have all the code | or is it time consuming to piece it all together | | - expose vulnerabilities in your current offerings , code | sometimes has way of being reused , you would be surprised | how much "dead" code has a way of living on for decades later | . | | - third party agreements, not all your code is "your" code, | you may have only licensed it from another vendor. | psychphysic wrote: | Is there a risk those closed source projects would be sued | following the release because they disclosed some forgotten | sin? | | I'm thinking mostly of anti competitive practices from | Windows. | realitythreek wrote: | There's a bunch of costs to releasing closed source code as | open source. Generally they'd have to have a team of | developers review it, they'd need their lawyers to review | it and any licenses. That every company that had licensed | code used would also need to go through their own process. | | At any time, one of them could say no and the process | stops. So you're basically paying for everyone's time and | possibly to relicense some parts. And im sure I'm missing | other parts. | xyzzy_plugh wrote: | Yep, it's a huge time sink even in the best case | scenario, let alone with ancient software encumbered by | transfer of ownership through multiple corporate | custodians. | | It's not that unusual for it to not even be wholly owned | by a single entity due to licensing requirements. | stepupmakeup wrote: | It's unfortunate that when a company DOES chose to | release old software, the entire revision history is | thrown out due to processes like that. In the software | world, this probably doesn't matter too much, but video | games can go through massive changes during development. | But it also depends on factors like if game assets were | even stored in version control in the first place. | qingcharles wrote: | I doubt it. The Windows sources are available officially | through Microsoft if you're spending enough money and your | project requires them. | drewcoo wrote: | > anti competitive practices from Windows | | You would more likely be amazed by all the dumb hacks in | the system for backward compatibility, mostly for other | companies' software. | | https://devblogs.microsoft.com/oldnewthing/20050824-11/?p=3 | 4... | realitythreek wrote: | It seems dumb and it is dumb, but it's also an important | feature of Windows that your terrible app from the 90s | can still run today with minor changes generally. Less so | if it's win16 but anything win32 is good to go. | | Also, Linux has a similar philosophy as Linus has | eloquently described in the past. [1] | | [1] https://lkml.org/lkml/2012/12/23/75 | hulitu wrote: | > It seems dumb and it is dumb, but it's also an | important feature of Windows that your terrible app from | the 90s can still run today with minor changes generally. | | This is a myth which is mostly not true from some time. | realitythreek wrote: | Can you explain how it's not true? I've personally run | software from the 90s. I am not a myth! | squarefoot wrote: | > Is there a risk those closed source projects would be | sued following the release because they disclosed some | forgotten sin? | | I know nothing about law, but I guess software companies | would protect themselves in advance by mandating that all | their developers use only software and sources that belongs | to them anyway. That would be useful in case of a lawsuit | where a court could force them to show the sources to prove | they don't come say from the claimant's reverse engineered | software, or some other FOSS project. Things might be | different with 3rd party modules and libraries, where an | obscure module was licensed from a company that went out of | business ages ago, but all their assets were acquired by | another party who finds the module in the wild and decides | to sue. Just speculating, but although I'm 100% in favor of | FOSS, if the above were real possibilities, I couldn't but | understand why some companies are so reluctant to release | even old code they couldn't profit from anymore. | anders_p wrote: | It's not that simple. | | When developing software, a company might aquire a | license to add some library or code to their product. | | This happens all the time with OS's like Windows | (licensing the ability to play media formats, etc.) or | games (licensing certain engines or algorithms). | | That doesn't mean the company squired a license to | release the libraries or code as open source 20 years | later. | | So you'd have to go through the codebase with a fine- | toothed comb, line-by-line, because the original | developers don't work for you anymore, and the license | agreements are long lost. | | Releasing large software projects are a massive cost to | any company that wants to be protected from potential | lawsuits. | grishka wrote: | It's not like this kind of stuff can't be found by reverse | engineering. For Windows specifically, the ReactOS team is | doing lots of it to document the inner workings of internal | Windows APIs so they could reimplement them. | dahart wrote: | > Is there any good reason why the sources need to stay | closed if they aren't going to make any further gains, | financial or otherwise, from this product and its ecosystem? | | I can think of lots of reasons. From a competitive point of | view, you might risk having a big enough resurgence that it | eats into the business of your replacement. From a technical | point of view, it may reveal parts of the sausage making, or | expose technology and libraries that you still use and rely | on. From a legal point of view, it could open up multiple | kinds of liability. From a support and staffing perspective, | it typically takes at least a little time to open source | something, if you want to do it well, there's usually vetting | & review by engineers and lawyers, and usually the need for | more/better documentation than the internal docs. | | Think about this from a business perspective- if they predict | there's going to be no financial upside, even indirectly, and | there are costs and risks associated with it, then why would | they? When companies open-source something, it's not usually | because the code is dead, it's usually because the people in | it are committed to open source and the org agrees to support | that cause, or because the company stands to gain valuable | attention from the community, and eventually or indirectly, | profits. | | We do have to support and celebrate when companies decide to | release code, but we can't really expect it or complain when | they don't, it just doesn't make sense to them and they're | not obligated. | iforgotpassword wrote: | I'd guess something big as Windows 9x contains A LOT of | licensed third party code which would be a nightmare to get | permission for. Try finding five dozen rights holders after | thirty years... | pizzapill wrote: | This is the usual argument you hear when it comes to old | Games. It often would take way to long time to "clean" | them up from 3rd party contributions/licenses etc. For a | OS this is a impossible task. | tobr wrote: | As far as I understand, this is even true of lesser known | old movies - even the work of figuring out who has the | rights to what is unlikely to pay back, so it's just | never released in a digital format. | deaddodo wrote: | This is almost exclusively usually due to either producer | credits or music licensing. | | For the former, if it's really that big they'll just | release it and keep a standard budget aside for if/when | the unlocated people come out. The latter is what really | blocks movies because it actively costs them money, so | they need to be able to earn more than what it is costing | them to release. This makes music-heavy/niche music films | much more expensive for potential broadcasters/streamers. | mcpackieh wrote: | Usually the argument goes that it would take time/money | to rewrite the parts they don't have rights to, but | simply deleting those parts and releasing the (now | broken) code would be _much_ better than nothing. Of | course this assumes they kept track of who owns what code | in the first place. Probably a bad assumption in the case | of games particularly. | mrandish wrote: | > Of course this assumes they kept track of who owns what | code in the first place. | | Not only that but for any large company to release code | somebody in engineering needs to look at it to at least | know what all is there, the legal department needs to | assess the risk of potential liability, then which | license to release it under needs to be decided. Finally, | somebody in a senior business role needs to sign off on | doing it. | | I think it's great when old code gets released but the | reason it's rare is it gets complex and it's nobody's job | to do it. That's why many such releases are thanks to an | employee deciding to care about doing it and having the | internal cred and sway to push it through. Or, as it | appears in this case, someone who had access to the code | and is awesome enough to release it anonymously years | later when the business is defunct or will no longer | care. | wengo314 wrote: | don't quote me on that but i read somewhere that | microsoft has a strict policy of NIH in their codebase - | everything gets reimplemented from scratch unless it's | completely unfeasible. | | The only problem might be the software patents that their | code leverages. | kanzenryu2 wrote: | From memory they got their TCP/IP stack via the MIT | licence | happymellon wrote: | Why would parents prevent publishing of source code? | | Unless you mean that someone could see that you | implemented their patent and retroactively go to sue | them? | favorited wrote: | A license to use someone else's code doesn't necessarily | include permission to publish the source. | Hydraulix989 wrote: | What is "NIH"? Google only mentions health institutions. | tomjakubowski wrote: | "Not invented here" syndrome | mrtranscendence wrote: | Not invented here. | favorited wrote: | Their code for Zip folder compression/decompression is | licensed from a 3rd party. | | https://devblogs.microsoft.com/oldnewthing/20180515-00/?p | =98... | flohofwoe wrote: | The reason is often that those codebases are usually a giant | hairball of closed source 3rd party dependencies which would be | a nightmare to put under a common open source license, no | matter if the companies behind those products still exist or | not. | hinell wrote: | I think they won't as certain parts might have migrated to new | engines without being changed much. Like geometry engine etc. | boppo1 wrote: | RIP UT2k4 | pbhjpbhj wrote: | My own personal and private opinion is that I wish the | legislation would opensource things that are not being actively | sold where the owner is a corporation. | | You still have registration in USA, so if you register then you | have to deposit, if you register with corporate ownership then | you pay a yearly renewal, if you stop paying the deposit goes | to public domain. Simples. | grogenaut wrote: | And how much does that deposit need to be? | Heinrich_zHM wrote: | Often Open-Sourcing is not an option, as they license closed | source code for it. | | Windows for example couldn't be made open source because of | licensed, closed source code blocks. | rkagerer wrote: | Maybe start a non-profit whose sole mission is to buy up this | old IP and release it. | concordDance wrote: | What should really happen is a law that video games get | declared public domain and have their source code released | after 10 years. All assets and dependencies would get | automatically released under a license allowing for their use | in that game and derivatives of it. | | As it is, the source is mostly just lost to time, making | humanity poorer. | flohofwoe wrote: | There's a lot of games that have a shelf life of more than a | decade. Maybe make that "10 years after the game is no longer | sold". | Vespasian wrote: | That (maybe) would have worked in the olden days of | physical disks or catridges. Today it is trivial to keep | the game on steam with zero sales (or almost zero). | | If lawmakers wanted to pass a law that actually made this | happen they needed to stipulate a cut off date (and | potential compensation) as well as rigid rules about what | one can do with the released code. | concordDance wrote: | Very few and they still make 90+% of sales before then. A | price worth paying | flohofwoe wrote: | That dynamic has changed a lot with multiplayer games | which are in continuous development. For instance DayZ | just hit record player numbers after nearly a decade: | | https://www.reddit.com/r/dayz/comments/11nlu70/recently_d | ayz... | | But even if that's an outlier, online games can have a | surprisingly long tail where the game remains profitable | even if the player count doesn't grow anymore (as long as | the developer supports the game at least). | nerdix wrote: | Would be nice but remastering 10+ year old games is very | profitable these days so I'd imagine that the industry would | lobby very hard against it. | jjrh wrote: | From a pure archiving point of view it would be great. | | It's a shame how many pieces of software are already totally | lost forever. | dclowd9901 wrote: | I wonder if this reaches into the territory of "abandoning your | copyright" though. | kelsolaar wrote: | John Carmack did a stellar job in that respect. Doom and Quake | are still very much alive thanks to his decision. | lamp987 wrote: | Falcon 4.0 (1998) had a source code leak after Microprose | went bankrupt and just like Doom it also had many community | forks. | | Its still alive and kicking today as Falcon BMS. | throwaway2990 wrote: | 25 years and ultima online is still alive and kicking in | the community shards. | marcins wrote: | Oh man, I remember building a new PC for Falcon 4.0. I | think I still have the manual binder somewhere. I didn't | actually stick with it for that long in the end - I should | check out what the community has done in the meantime! | ahoka wrote: | They have added VR support. Crazy. | arendtio wrote: | Absolutely, and those releases weren't even that old (<10 | years). | | There are so many things that I learnt from tinkering with | the Quake 3 source code in 2007, I am still very happy and | grateful that I had the opportunity at the time. My | understanding of topics like real-time applications, AI, | platform independent code and debugging would be very | different if that code would not have been released. | suddenclarity wrote: | Even he had some challenges with releasing Doom: | | > The bad news: this code only compiles and runs on linux. We | couldn't release the dos code because of a copyrighted sound | library we used (wow, was that a mistake -- I write my own | sound code now), and I honestly don't even know what happened | to the port that microsoft did to windows. | | I would assume it's a lot more complicated today. Even the | most simple programming projects tend to have a ton of | dependencies nowadays. | | And it doesn't even account for the fact that you might be | killing future projects by handing out the blueprint of old | games. Would Assassin's Creed Valhalla exist if we had 100 | clones of Assassin's Creed III? | taneq wrote: | In the very short term, sure. All of the discussions of | this kind of thing (and of copyrights and patents in | general) have this same very-short-term perspective. | "Patents SUCK, they're MEANT to encourage innovation but | it's been SIX MONTHS and we STILL can't use [technique X]." | Sure, but 20 years from now that patent will expire and | we'll all be able to use it thanks to the fact that it was | patented, and so significant parts of the 'secret sauce' | are a matter of public record. | | In the case of Doom, the engines being released has lead to | an active community developing the engine (eg. GZdoom which | can now be played in VR, with ray tracing, fancy shading, | etc.) on pretty much any hardware with a processor. | dj_mc_merlin wrote: | > Would Assassin's Creed Valhalla exist if we had 100 | clones of Assassin's Creed III? | | Probably, unless they all had the budget to create a shit | ton of new assets and replace the old ones. And the code | was released with a license that allowed commercial use. | suddenclarity wrote: | > Probably, unless they all had the budget to create a | shit ton of new assets and replace the old ones. | | Isn't that what we're getting from AI generated content? | | Note, I'm not saying that a random person will create | something better. I'm just saying there might be a risk | of saturating the market if you can play 100 versions of | the same game for free. | angus-prune wrote: | This isn't how the games industry works for games at thia | scale (or any other media). They are events. Millions of | people having the same experience at the same time and | having a common cultural touch point. | | The 100s of clones would be more like fanfic. A set of | people would get very into them, search out the good ones | (perhaps better than the original), or revel in the | terrible ones. But then the whole community still comes | together to watch the latest marvel film anyway. | | The main effect would be to build and maintain the | community for the next commercial version. | techwiz137 wrote: | Still waiting for them to release RAGE 1 source code. | xen0 wrote: | The secret sauce is more than a 10 year old engine. | neurostimulant wrote: | > And it doesn't even account for the fact that you might | be killing future projects by handing out the blueprint of | old games. Would Assassin's Creed Valhalla exist if we had | 100 clones of Assassin's Creed III? | | Releasing the old doom source code doesn't stop id software | from making sequels all the way up to doom eternal. | poisonborz wrote: | > Would Assassin's Creed Valhalla exist if we had 100 | clones of Assassin's Creed III? | | Maybe not, but we would have 100 other games that may have | expanded the genre further. | nottorp wrote: | > Would Assassin's Creed Valhalla exist if we had 100 | clones of Assassin's Creed III? | | You are over appreciating the geek's willingness to toil on | assets and make up a compelling storyline :) | | Not that Ubisoft games are worth playing, but for a single | player game at least it can be much worse. | WastingMyTime89 wrote: | Less commercially motivated uninspired follow ups and more | original content seems like a huge win for culture at | large. Large video game and movie studios are mostly | churning out copy-pasted garbage nowadays. | tacocataco wrote: | Looping back to doom, here is a free library of doom mods. | | https://freedoom.github.io/ | | According to Doom Eternal's wiki, it sold 3 million copies | in spite of all these free to play doom games. | | https://en.m.wikipedia.org/wiki/Doom_Eternal | the8472 wrote: | Elder scrolls games are very moddable and people have made | total conversions and map extensions. That didn't prevent | the sales of newer TES games based on slightly improved | engines and slightly better assets (fan-made assets are | often still ahead of the official ones, but it takes years | of refinement to get to that point). | vertis wrote: | That and things like Counter Strike / Day of Defeat that | started as mods had a large number of maps back in the | day. 99% of them were shit and weird experiments. The | ones that did rise to the top eventually got incorporated | into newer versions, and indeed became games in their own | right. | | DOTA as well, started as a mod for Warcraft 3 and | eventually spawned a franchise. | | Trying to capture ALL the value (in this case the game | developer/publisher) is a mistake anyway. The healthiest | game franchises have broad ecosystems around them. | Releasing the source code of old games just encourages | that. | | If there is one set of games I wish were released it is | Ambrosia Software's catalog. Of all their games the only | one I can find that is open source is Maelstrom (It's the | Escape Velocity series, I'd love to see opened). | sersi wrote: | I always wonder what happened with Ambrosia, they had a | good library of games that they could update and could | still sell but they just disappeared suddenly. | photonerd wrote: | Updating and reselling their old games was the majority | of their business for the last ~10 years of the company. | | Their game library had some gems but they famously made | most of their ga my es by ripping off other games. I'm | guessing that didn't scale. | | Their biggest seller was a small Mac utility called Snapz | Pro if memory serves. | | They, frankly, were never a company run for anything | other than milking a quick buck. | virtue3 wrote: | Escape Velocity was what got me into coding. I was huge | into moding that game when I was younger on my old mac OS | 7.x system. Absolutely fell in love with being able to | extend the game. | | Thanks for bringing that up. Those were good times. And | agreed. Would love the source to original EV alone. Gonna | take a gander at maelstrom! Thank you! | cto_of_antifa wrote: | [dead] | symfoniq wrote: | We walked a similar path. Fond memories of modding EV | with ResEdit. | dustymcp wrote: | dayz and the arma series aswell they would not have sold | nearly the amount of copies without it, it also ended up | as a standalone however controversial it might be. | deadbunny wrote: | For sure I bought like 5 copies of A2 for friends just so | we could play DayZ mod together. | pgporada wrote: | Ayyy, Day of Defeat was peak early 2000's FPS. | CoastalCoder wrote: | > If there is one set of games I wish were released it is | Ambrosia Software's catalog. | | And Chiral! | | Man I'd love a Linux port of that game. | JD557 wrote: | While not open source, I recently learned that you can | still download windows versions of escape velocity in: | https://escape-velocity.games/ | | That was one hell of a trip down the memory lane. | vertis wrote: | I didn't, though you can also play them on Infinite Mac. | | Also if you haven't played Endless Sky, that's inspired | by EV and open source. | mcpackieh wrote: | There's no way I would have purchased Morrowind, if not | for OpenMW. | awestroke wrote: | Old engines are very far from the current way is doing things. | You might learn a lot, but you won't learn what you need to | program modern games | arendtio wrote: | I wonder how many people still program modern game engines? | Sometimes it feels like everybody just take the newest | release of the Unreal Engine and drops assets and scripts | into it. | | Just to be clear, I am not saying that there are no | alternative engines, just that these things are so complex | that there are very few people, who dare to compete with | Unreal. | maccard wrote: | The "scripts" you talk about dropping into unreal engine | are fully fledged c++ programs. | danhau wrote: | It's still interesting to see how certain challenges have | been solved back in the day. | | Or as a case study in what _not_ to do today. For example, | Quake's ingame console commands were stored in a linked list. | I believe looking up a command was a linear search through | that list. You wouldn't do it like that today. | wmanley wrote: | I don't know about quake, but in quake 2 it consisted of a | big list of: else if (strcmp(cmd, | "somecmd") == 0) somecmd() | | I remember reading it at the time and being inspired by the | simplicity of it. It didn't need to be more complicated | than it was, and so Carmack didn't make it more | complicated. That was in stark contrast to a lot of the | object oriented c++ design stuff that I was also reading at | the time. | | So much of the quake 2 game source was like that. | Beautifully straightforward code. | hyperthesis wrote: | Linear time is fine for small _n_ , and console commands | aren't time critical anyway. | | People famous for optimization also know where it | matters. Optimization obscures. | wmanley wrote: | Here it is: | | https://github.com/id- | Software/Quake-2/blob/372afde46e7defc9... | caskstrength wrote: | > For example, Quake's ingame console commands were stored | in a linked list. I believe looking up a command was a | linear search through that list. You wouldn't do it like | that today. | | Sure you would! You think those dinosaurs like Carmack | didn't know about tree-like structures and hash tables back | in the 90s? They did, it is just that (I assume) their main | goal was to optimize something that is computed every | frame, not once in a blue moon when player inputs a console | command, which latency doesn't matter that much anyway | whether is is 1ms or 10ms. In fact, toying with advanced | data structures for console optimization sound like | something junior engineer would get reprimanded for by | seniors, if caught up wasting time on it. | zelphirkalt wrote: | The example sounds like a quite basic insight into | algorithmic complexity or complexity of lookup operation of | data structures. A linked list is fine, if you need or want | to go through the entries sequentially anyway, but if you | need random access, then you probably want something | different. I can tell that without ever having looked at | something like Quake's console commands implementation. | However, it might have been the case, that there were not | that many commands anyway, so that the linked list did not | noticably slow things down. | codetrotter wrote: | > it might have been the case, that there were not that | many commands anyway, so that the linked list did not | noticably slow things down. | | Also, unlike the game code itself which has to finish | running its work in time for every frame, it probably | doesn't matter if running a command from the Quake | terminal takes a little bit extra time. | | Would anyone notice or care about a difference in the | amount of time it takes to run the /noclip command for | example, in a O(n) vs O(1) lookup of the command in the | probably short list of available commands? I don't think | so. | | Speaking for myself, if I bring up the terminal in a game | like quake to run a command, I'm probably standing | stationary somewhere out of danger at the moment. And the | amount of time I spend to tab open the terminal and type | /noclip would be much greater than the amount that the | game then takes to look for that command in its list of | commands. | TeMPOraL wrote: | > _Also, unlike the game code itself which has to finish | running its work in time for every frame, it probably | doesn't matter if running a command from the Quake | terminal takes a little bit extra time._ | | Except we did, because back then, the console command | loop was _part of the work done every frame_ - so your | lookup still had to fit in the budget, or the player | would see frames being skipped. Which, if memory serves | me, happened as far as Quake 3. | | Here's another important insight about how games were | written back then: _they were single-threaded_. | Rightfully or not, the cost of context switching was seen | as too big, so everything was run in a single thread - | maybe with an event loop (what kids these days call | "async") thrown in for convenience, especially around UI. | The games that did use threads, would use a small amount | of them to offload some work that wasn't strictly frame- | bound, or when outside main gameplay (e.g. in menu). I | actually can't think of any game from that era, which | would run multiple threads during main gameplay. | | And sure, you can adapt the console with your linked list | lookup to run on the event loop ("async"), so it would | e.g. do a fixed number of search steps, then yield, and | resume next frame. But the code for that would get _much, | much_ more complex than replacing a linked list with an | array, even if you then also replaced linear scan with | binary search. | | So one other thing about games back then: things were | much simpler, and skipping frames wasn't that big of a | deal-breaker. Multiplayer wasn't so popular, there was | nothing you could honestly call physics code - which | would explode if you skipped frame without compensating, | etc. And players were used to getting anything from 6 to | 60 FPS, depending on hardware they owned. These days, a | game console blocking main gameplay thread and causing | frame skips, would be unthinkable. | acomjean wrote: | Single threaded kind of makes sense for machines with | single core CPUs. And multiplayer was usually limited | because internet wasn't that good typically being dialup. | | Games required more cutting edge machines (maybe 2 years | old) I remember getting a notebook with enough power | (66mhz, 4 megs of ram) to place doom. Taking my machine | to a friends and playing one on one death match over a | serial cable. | dustymcp wrote: | i used it extensively and cannot think back on any time i | thought the cmd line was slow | grogenaut wrote: | The game studio I did did many many things in linked lists | or arrays still because literally searching an array is | still much much faster than computing out hash algorithm | when the total number of entries is less than a thousand | and it gives you memory predictability. So generally when | you're searching it almost all of it has been loaded into | RAM especially if you limit the size of the items in the | length list which games almost always do and you list limit | the size of the array which games almost always do almost | everything in a good game engine is fixed size arrays for | repeatable performance. I was surprised by this as well | when I moved from doing Ruby and Java apps into AAA game | studio but the engineers were kind and explained it to me | and showed me the math and I was like yep that is way | faster. I also didn't appreciate the things like cash | coherence that they highly leveraged to make every frame | sing | reassembled wrote: | Does Quake 3 also use a linked list for the console | commands? That game even has command completion, whereby | pressing tab after typing a couple of characters, the | console fills in the command you most likely wanted. The | console in Q3A is extremely fast IME. | anthk wrote: | Most of the old engines have been modernized. IoQuake3 for | Open Arena, Doom3, even the Quake 1 src it's not the same as | the one ID released. And I am not talking about DarkPlaces, | but QuakeSpasm, SDLQuake... | risyachka wrote: | Depends what part of game development you are referring to. | | Game engine development? Sure. | | Game development using engine? 99% didn't change. | gonzo41 wrote: | As an aside, have you played red alert lately. Holy crap. I | tried a while back and it's like people have just been studying | that game non stop since I was a kid. I got owned. But year | totally agree. | | I sort of think that with a smart OS license for game IP you | could put a lot of stuff into the public domain and it would | flourish in really interesting ways like fan fiction. | bombcar wrote: | Same thing with Heroes III - they talk about "breaks" and | chains and things on multiplayer and it just blows me away. | BiteCode_dev wrote: | I though I was good at starcraft before going to Battlenet, | and I though I learned I wasn't. | | But last year I went to play HOMM3 online, and I imagined I | could at least teach the kids a trick or two. | | I was so wrong. | bombcar wrote: | It's literally a completely different game from "normal" | HOMM3 now, really. | | It's _interesting_ watching playthroughs, and seeing the | tricks used, but it 's not quite the game I played 20 | years ago. | | I did pick up some positioning tricks and tips. | viktorcode wrote: | You can take a look at Amazon Lumberyard which is free. It's | based on CryEngine, which is behind Far Cry. | badsectoracula wrote: | Note that Lumberyard became "Open 3D Engine" (yes, very | inspired name) which is Apache 2 licensed: | | https://o3de.org/ | | https://github.com/o3de/o3de/ | | AFAIK all development in Lumberyard has ceased and moved to | O3DE. | nrjames wrote: | Crytek and Crysis, not Far Cry. | | Edit: I stand corrected, it was Crytek and the CryEngine | | https://en.m.wikipedia.org/wiki/Far_Cry | rzzzt wrote: | Far Cry 2 starts to diverge from CryEngine roots with the | introduction of Dunia: | https://en.wikipedia.org/wiki/Ubisoft#Dunia_Engine | sacnoradhq wrote: | Let's see how many antipatterns: | | - Multiple inheritance | | - Over-abstraction | | - Excessive identifier prefixing and suffixing | | - Use of friend | | - Use of bit fields instead of bools | | - Inconsistent mixture of custom and built-in int types | | - Direct storage of pointers instead of reference-counted | containers | | - Custom (and likely broken) _smart_ptr | | - Cancerous coding style that adds too many lines | | - Functions with 7+ arguments | | - Lots and lots of duplicated code | | - Inadequate use of const | | - Inconsistent coding styles | | - class name and base classes at the same indentation level | | - Redundant prefixing of directories ~~and namespaces~~ with the | name of the project | | Edit: My bad, they don't use namespacing at all. It's a flat | namespace. At least they don't _using namespace std_. | deely3 wrote: | Half of listed antipatterns are completely valid strategies in | some situations. | ranting-moth wrote: | How did this negatively affect the project? | slig wrote: | Don't do that unless you want a random commenter shitting on | the code you wrote 20 years ago when it finally leaks it. | extrememacaroni wrote: | People who work on such projects tend to focus on finding | solutions to difficult problems and many things that you would | consider weird or bad could be there because they were part of | a solution, either at the time or sometime in the past in a | previous project. | secondcoming wrote: | Nothing wrong with bitfields. | ExoticPearTree wrote: | Good today is better than perfect tomorrow. | nemetroid wrote: | > - Direct storage of pointers instead of reference-counted | containers | | Overuse of reference counting is an anti-pattern and a | performance killer. | badsectoracula wrote: | Pretty much everything you mentioned is also in Unreal Engine | and they affected it so much that companies left and right | throw away their own engines to switch to it. My favorite part | of UE5 is that its "base of all classes" object class (UObject) | has its own base object class (UObjectBase). | | Actually not just UE, but almost everything you mentioned was | in every single engine i worked on (to be clear these were all | engines that started long before i worked on them and designed | by completely different people). With a single exception they | were all used to release well received AAA games. | | None of that stuff actually matter at all in practice. | nomalloc wrote: | If anything, this is a perfect example of how little these | things actually matter in the real world. This game alone sold | over 2.5 million units and kickstarted one of the most popular | franchises in gaming today. | | I always have a feeling this type of comment must be | necessarily written by someone who hasn't shipped anything of | substance in the industry. It's trivial to point out irrelevant | minutiae like this as opposed to having an in-depth discussion | about the merits of the terrain rendering system or, you know, | literally any of the hard problems the game is solving and that | actually contribute to making it a technical success. | rvz wrote: | Who cares? Clearly the gamers, reviewers, etc don't care. | | Only pontificating armchair field marshals giving their take of | 'anti-patterns' in game engines built decades ago. | | That game made millions. Went on to release multiple sequels | after the first and still made millions. | | Is your game engine making millions? | torginus wrote: | It's weird to criticize all this stuff considering modern dev | companies often have teams like 'billing' that have more people | in them than the dozen or so developers who have built the | entire video game (plus editor) from the ground up. | nmfisher wrote: | Have you shipped many game engines? | jamesu wrote: | Bit fields saved me an immense amount of pain when packing | together state variables for a renderer, so I wouldn't write | them off as being bad myself. | jiggawatts wrote: | About half of those are because of "performance", which in game | engines is more important than future-proofing for maintenance | that will likely _never occur_. | _def wrote: | And it still was very successful as a game. I think this is a | great example of "perfect is the enemy of good", especially for | game development. | naillo wrote: | Makes me think I shouldn't care as much about perfect code and | best practices and focus more about actually shipping things. | sixothree wrote: | It matters 17 years later if you're still in the same code | base. | maccard wrote: | Best practices evolve. This code base predates modern smart | pointers, and from experience bit fields were a requirement | on some of those... tougher platforms. | bhouston wrote: | Sounds like a real world project that focused on shipping a | good game rather than have perfect code. | | There is a reason perfectionist devs do not run big projects. | They focus on minutiae rather than the big picture. | | Even in my own experiences, one of my most successful projects | (eventually acquired by Amazon) was a quickly written hacked | together project that solved a big issue well. Over time it | became better engineered but it taught me successful projects | are about market fit, not code quality, especially super minor | things like antipatterns. | [deleted] | Xeamek wrote: | Or maybe, just maybe, 'good practices' simply changed over | the span of literally 20 years? | | Naah, it must simply be those 'perfection vs practicality' | dichotomy again. | | ...Not to mention that your point is the definition of | survivor ship bias. Maybe the devs actually were super mad at | themselves how the codebase looked cause it slowed down their | development. Maybe they initially had 3 more times the | ammount of anti-patterns, but they reduced them. Or maybe | that's how their roll, but the fact that this code shipped is | almost insignificant when it comes to judging its quality. We | could spin infinite ammount of examples where bad code works, | where good code fails, where bad code fails and were good | code works. How about we actually talk about arguments | instead, though? | [deleted] | [deleted] | stcg wrote: | Has someone managed to compile this? In the reviews on the linked | web page the user 'MobCat' states that it does not compile | eXpl0it3r wrote: | 12 out the 22 projects with VS2022, but that's most likely just | the start, as there are dependencies shipped as binaries, which | most likely require a recompilation for compatibility. | | Maybe it's easier, if one uses the matching, old compiler | version. | tempodox wrote: | That's spectacular. I still enjoy playing Far Cry 1 in my Windows | VM (with the Sniper MP5 mod) to this day. It was a fantastic game | for its time, and I find it has aged well. | bullen wrote: | I'm curious about the legal side of copyright and code. | | If you have a closed source game and copyright expires then how | does that affect the sources? | | Do closed source games not require the sources to be released | after copyright expires? | jeroenhd wrote: | There's no reason why a company would be required to release | the source code once copyright expires. Someone finding an old | copy of the source could spread it around, but that's about | all. | | However, with copyright expiring 70 years after the death of | the author(s), by the time copyright does expire, the sources | will have disappeared. | ncphil wrote: | Under the Sonny Bono Act in the US corporate copyrights were | extended beyond 100 years. The original US Copyright Act was | limited to 14 years, and allowed a single renewal of the same | length. After that, public domain. The short term goal was to | provide authors with some income during the term, but with | the ultimate purpose of enriching the commons to benefit the | public. "To promote the Progress of Science and useful Arts, | by securing for limited Times to Authors and Inventors the | exclusive Right to their respective Writings and | Discoveries." US CONST, Art I, Sec 8, Cl 8. It could be | argued that copyright copyright terms of over a century, | especially during a particularly dynamic period in world | history such as ours, no longer serve that purpose. As you | point out, the end result of the current regime is the | debasement of any real practical value many works would | otherwise have. All that will be left are the cold entries in | whatever royalty ledgers survive. | jeroenhd wrote: | In my opinion, copyright and patent law needs to be altered | significantly, with the copyright term obliterated so | people can build upon advances in technology and culture | within a reasonable amount of time. | | Sadly, I don't think it's realistic to think copyright | terms will ever be reduced. They'll only be extended, | probably when one of the many Disney properties is about to | become public domain. | Avlin67 wrote: | This is awesome ! | | Someone could add raytracing maybe | haolez wrote: | I remember that the initial levels of Far Cry 1 were amazing | jungle/beach scenarios that enabled a lot of different strategies | for overcoming the smart human enemies. | | The last levels, however, were all inside claustrophobic | buildings with weird monsters running around. | | If all levels had the feeling of the first ones, it would be my | favorite game of all time. | iforgotpassword wrote: | I agree. Wasn't it zombies? The first levels set a great | feeling and atmosphere, everything was mysterious, and then it | felt like they ran out of ideas and were like "hm yeah let's | add zombies, because that's not totally something overused". | And yes, I don't even remember the later levels and didn't even | finish the game. | leokennis wrote: | The demo was the first level in the bay. I think after 100 | playthroughs there were like 5 different strategies to clear | that level, all equally fun and effective. | | And indeed at the end you were just pumping 500 rounds into | unstoppable Doom-style monster deep inside some dark hallway. | blameitonme wrote: | there are 370 TODOs in the code lol | als0 wrote: | I think some companies used TODOs strictly for issue management | before there were monstrosities like JIRA | cynicalsecurity wrote: | It's always like this. You can never complete all todos. | sixothree wrote: | You can change them to // resolve | stevefan1999 wrote: | despite it is illegal but im going to torrent it | zerr wrote: | CryEngine is open source now, isn't it? | debugnik wrote: | Kinda, Amazon purchased the code and forked it as Lumberyard. | Then they realised their own studios didn't want to use it and | their game-dev projects failed, so they donated the engine to | the Linux Foundation. | | But the engine didn't even support Linux yet, so they spawned a | new Open 3D Foundation for it, and renamed the engine Open 3D. | I haven't heard of anyone using it seriously yet. | Dracophoenix wrote: | Actually, before Lumberyard was released, Crytek had already | open-sourced Cryengine and gave it away under a pay-what-you- | want model until the engine's 5.5 release. | debugnik wrote: | Source-available is not open-source; I know people care | increasingly less but having access to the source is not | enough for it to be "open". | WhereIsTheTruth wrote: | How is this allowed? | gattr wrote: | I still do a playthrough of FC1 every two years of so (on highest | difficulty). I love the game mechanics (though not the Trigen- | heavy levels). ___________________________________________________________________ (page generated 2023-07-01 23:00 UTC)