[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)