Lots of these remind me of a repair I did when I was a new mechanic working in an auto shop. There was a customer vehicle (early 90's Buick iirc) that had been in this shop multiple times for a security system issue which would randomly disable the starting system of the car. The shop owner and other mechanic had never been able to figure out the problem. Well the car was brought in and since i was the new guy they have the job to me. I started the extensive troubleshooting using a program called Alldata, and one step was to replace a certain relay with a 30amp Maxi-fuse. If the car then started, the relay was faulty. I performed the test, and the car started, so we replaced the relay. The car wouldn't start... We reinstalled the Maxi-fuse and the car started. It didn't make any sense but it worked so we just left the fuse in there. Of course the security system no longer worked, but the customer didn't care about that, they just wanted their car to start. And it did, with no issue from then on. So I guess you can disable an early '90s GM security system by replacing a certain relay with a fuse...
Back when I was writing code (not games) we had a saying, CACE, or Changing Anything Changes Everything. It was a shorthand for "We have no clue who wrote all this spaghetti code, we don't know what most of it does, but changing the tiniest thing renders the whole thing into garbage". And the more workarounds you put in only makes it worse because the next coder is even more clueless than you. Now imagine it 20 coders down the road.
@kirbysaurus5670 formal "Coding standards" are about code formatting and general reccomended patterns. They don't help if you have a weeird hacky logic that you've wrote a certain way due to some reason that you have not communicated with the team. With games, the problem is even worse, as the code interacts with assets, and the code may not handle their absence well.
I work on the backend for a game publisher writing tests for a widely adopted system. I make sure that before I put even a single character into my code, I've scanned and rescanned the existing framework to see if something already exists that will do the thing that I'm trying to accomplish. This process can sometimes take days and sometimes I even have to take paper out and start diagramming the way the system seems to work. No one told me to do this, but experience has taught me that I can save face and lots of headaches by taking the time to do this.
Game dev here! One (of many) examples I have is - I worked on open world game. During development we created a test version of that open world map that was tiny just to test different triggers that would start during each plot segment. It worked great but when it came to shipping the game, level designers found out that if you removed that tiny "mirrored world" from the map game's not working. So... We just hid it inside one of the buildings that player coudn't enter. Now, every time you're exploring the world your actions are actually tied to an small, hidden version of that world instead of ACTUALL map you're walking on. Bare in mind - it's just about main story triggers, the rest of the gameplay is still properly connected to actuall open world map.
neat. im in game design school rn. i had to hide a sprite off screen constantly for a platformer i made for an assignment. if i deleted the sprite. that specific instance which wasnt the parent either. things fell apart. dont recall what it was. i think my character sprite wouldnt have colisions with my tilemap any more or something, the two really had no correlation with one another though.
@@BGID7 lol that's what you took out of this? Stands to reason you know nothing about anything else being talked about. We all know this big guy. Typos happen. Especially when typing about something you have passion about. Half wit
I have never done programming on a game, but I have done programming and even I know that sometimes code just does whatever the hell it wants. In college, I was programming something on a microcontroller in C for a lab project and added printf statements as debugging checks to make sure loops were running and when I got the code working, I went to remove all those printf statemesnts (That literally just printed "This is a deubg statement" to the terminal) and the code stopped working. I didn't have time to figure out why so I just changed the printf statements to "For some reason this printf statement is needed for the code to work". So yea I totally feel for game devs
Sounds like when removing it you forgot some bit of the nesting code and it broke things. Like having ((this))) in your code, so it expects there to be a third ( that isn't there, and breaks.
@@KainYusanagi actually sometimes it's worse - it could be a timing problem with a race condition, code a executing before code b finishes (whereas the printf statements in code a slows it down enough to finish after code b) causing the error. Particularly if you're uaing callbacks and any async code (networking, read console, read file, etc).
The "put information boards in NPCs so you can speak to them" trick reminds me of how Fallout 3 implemented moving trains in Broken Steel by putting a train model on the player as a giant hat texture, and having them move, so from their perspective it would seem to be in motion.
I remember reading about a similar thing in the original Half-life, where they recorded button presses, like at door pads etc, and stored them in the NPC's sound file so that when an NPC opens a door, you hear the keypad noises. The side effect is that you can see the NPC's lips moving when they press the buttons
@@richardvenables619 it is now my headcannon that none of those things actually make noises, instead everyone including gordon just mouths those noises because they are all nerds like that and are disapointed by the lack of bleeps and bloops.
@@DirkDiglerTheNHunterThank you for your contribution! It really expounded on the original post in a deep and meaningful way, and my day was made so much brighter because of it!
12:45 There's an old legend from the early days of computing, like in the 60s I think. The person telling the story was doing maintenance on some of these room-sized computer cabinets, and noticed a switch attached to the side of one cabinet. It had been labeled by hand: "MAGIC / MORE MAGIC" and was switched to the latter. Curious, they opened the cabinet and saw that the only thing running to it was a ground wire. So, why not? They flipped the switch -- and the computer immediately crashed. When they switched it back, the computer worked again, but as soon as they flipped it up to "MAGIC" it would crash again. No one was able to determine why, it was just a given to not mess with the switch.
Tech debt is real. I work as a consultant for a variety of software companies, including game dev companies. I have an engineering background, but I don't actually do any of the code; mostly just product consultation and marketing consultation. However, I get to see the code bases whenever I want since I basically get carte blanche, and yes, the tech debt on some of these companies (not just the ones mentioned here, but literally 99.9% of software) is absolutely bonkers. Stuff from the mid-90s, early 00's, you get the picture. Our worlds and lives are built on a house of cards from giants that came before us on archaic software that could fit on a floppy disk.
That is all coming to a crash when 2038 rolls around, since we can no longer just kick the can up the street like we mostly managed to do with Y2K. And Y2K being handled so adroitly has made a lot of people laugh at the fact that when the Unix Epoch ends, things turn out VERY poorly for everyone, since the things affected are going to be old legacy systems like those run by governments.
@@ФеофанЭтополедолжнобытьзаполне Considering it literally is, I have to wonder if you just get off on being contrarian; Technical/tech debt, aka code debt, is the consequence of decisions that result in prioritizing speed or release of software. Old code is often bad code, and bad code is code written that incurs tech debt.
I always like videos that peak behind the curtain of things got done behind making a game. Its kind of crazy how talented and creative some developers get. Its also fun to see how they can cheeze the system and get away with minimal effort too so, always a good topic to cover imo
If you've never seen Boundary Break here on YT, I'd highly recommend that. Really shows off a lot of the "Behind the scenes" stuff going on in games that you wouldn't see unless you had a free-floating camera view.
That Megaman "fix" reminds me of my psp hacking days. I was a Pro-CFW user, and even joined the IRC channel ran by Coldbird. One of the updates he put out caused a bug that if you tried to close a game, the psp would crash. So as a workaround, there was a plugin that would launch another game while already running one. With how Pro-CFW worked, I just relaunched the CFW launcher. Told him about it, and after some digging he found the cause of the bug. Turns out back when he was in competition with the other CFW at the time, it was a race of who could utilize the most ram. When CB expanded ram to some extent, he took up the space required to properly close the game and go back to home menu. Clearing that little spot free fixed it
I'm curious about the thumbnail. But it's not a thirst trap ffs. The games looks gorgeous and I have no idea what it is. I wondered if it was one of those vampire games I never played.
That one at number four is brilliant. It reminds me of that one Bethesda game were all the trains are actually being carried around by NPCs, hidden below the floor element, because the engine didn't support any workable train-on-track system.
Don’t know if anyone said anything yet but as an indie dev the fps counter does math or retrieves data every frame or every few frames so if you have a lot of stuff being checked while comtrolling it will slightly alter the response time in game. If they accounted for this and made it faster or cut corners in different areas then when the fps counter is gone you can get some unexpected behavior.
This is a great idea for a Viva La Dirt League video. The game developer shows up in the game world to add a one-off feature but was too lazy to add a bunch of code for it. So they create and cram a NPC into a box and set a bunch of parameters. Players who approach the box hear muffled screams. The box contains an item that teleports the player to a house whose walls and floors were created in a similar fashion. It happens to be the only two story house in the entire game that you can actually enter.
Unreal engine was released in 1998. Each 'new' engine generation isn't brand new code. Like Bethesda's creation engine it is just build on the back of what was there before. This is an incredibly common practice for MANY companies and is part of why you don't have everyone using the same engine. Not all engines are as 'easy to use' as they claim either. Using Unreal Engine as an example. Gamers CONSTANTLY say 'why isn't X company using Unreal? Its such a great engine and easy to use, look at Y person who has remade mission one of game Z in Unreal'. Yea, all SOUNDS great because 90% of the work is done. Adapting to a new engine is far more easy than building something from the ground up...but even then it cannot be done without thinking. Look at BHVR with Dead by Daylight and Wildcard with ASA. Just upgrading Unreal Engine has caused problems (not so seamless now, huh) and clearly Wildcard had no idea what changing an engine would do to a game who's code was already a mess. Its also why companies like CDPR hold onto the REDengine. Not only did they 'make' it back with Witcher 2, but they're aware of what can be done, common issues, and other odd interactions with it. They didn't blindly jump into it like Wildcard. Game engines and OS have that in common. They are just continuously built up and over time people have no idea what a line of code really does since 80% of coders never do any sort of documentation. It is also why code debuggers are so miserable and burn out. Hot take, but Unreal Engine is overrated. I may not be a game dev, but I am a modder. The creation kits are abysmal, and any 'tutorial' is like trying to adapt a python script into C++ and wonder why it isn't working.
Number 9 can be tested for modern games by checking how much storage they take up before and after the first boot up, without even loading into the actual meat of the game
Regarding the Halo code I'm not surprised. As a matter of fact Windows 11 has a lot of code still in use from Windows NT. Windows isn't the only operating system that does this. Notice that sometimes when a new critical vulnerability is discovered it'll encompass multiple versions. It's because there is still a lot of old code that hasn't been updated.
Just like how there is a picture (.jpg) of a coconut in the files for most valve games, if it is removed the game literally bricks on startup, but if it is added back to the same location, the game works perfectly.
The code thing is very similar to our DNA, there is code in our DNA that we have no idea why it's there and have figured out that it's a bad idea if we ever remove it. But they have no idea what it's there for.
This is an interesting video. Sometimes as a gamer I step back and marvel at the amazing amount of work and talent that goes into the games we play. Art and sound design, music, character design, writing, voice acting, animation…. Easy to forget what drives it all, and a good game lets you do that. HUGE respect to software engineers.
2 other titles I know of that actually used Marathon 2 Durndals engine were Damage Incorporated, an early squad based fps shooter, and ZPC (Zero population count).
Actually the DoNothing() part of code reminds me of Java and C# coding I've done. Basically when you'd search for a framework to render you'd test these things and some rendering libraries are finicky and had to use different classes to run the library. One of them was to use the constructor section to draw, a different class or object to colorize and move. And the only worked if you'd add a function that activates a static resolution running multiple threads as a main. I'm not sure if it had to do with the language itself, but something was barring it from working UNLESS you made a empty function that gets called, as sort of a wake up call. But it also reminds me of C# coding when you need a function to DoNothing() before doing anything, because of timing issues.
Fun Fact! The term "Bug" came from a time long ago when they were still using glass tube transistors for computers and a computer took up entire warehouses. Sometimes the computer system would start freaking out and it was because a cockaroach (or other pest) had crawled in somewhere and either got cooked on a transistor or managed to short something out. So it was a literal bug in the system. If you had a good team that knew the system well, they might find the bug in three months and fix it.
Common myth, but not true. There were cases of literal bugs causing problems for early computers, but the term 'bug' was already in use at the time. One theory for the origin of the name is that it dates back to the days of the telegraph, when operators would blame 'bugs in the telegraph wire' for bad connections.
@@macdjord Its sort of half true, from the Wiki about Admiral Grace Hopper: While Hopper was working on a Mark II Computer at Harvard University in 1947,[47] her associates discovered a moth that was stuck in a relay and impeding the operation of the computer. Upon extraction, the insect was affixed to a log sheet for that day with the notation, "First actual case of bug being found". [...] Hopper is credited with popularizing the term in computing. For many decades, the term "bug" for a malfunction had been in use in several fields before being applied to computers.
@@marcsh_dev You own quote proves my point. She wrote "First actual case of bug being found" because 'bug' for 'malfunction' was already in live usage, and it was therefore funny to find an actual literal bug in this particular case.
@@macdjord I literally called that out. Here it is again - " For many decades, the term "bug" for a malfunction had been in use in several fields before being applied to computers."
number 7 makes me kinda sad. the mentality that was "we can't ship this, it's got a bug in it we need to figure out and fix this" compared to now of "it's got several bugs... send it out anyways, who cares"
rotfl, no games were shipped with tons of bugs back then too the difference was that were was no internet to amplify everything 2 billions times over, expectations were way lower and games were so much simplier that a bug wasn't as easily appearent as today
Yeah, it’s more like now instead of “unfortunately we have to ship despite a few remaining bugs” to “the game is barely playable and there’s no way it’ll be fixed even with a day one update”.
@TBKSSS mmmmm nope, 2023 saw a huge number of big budget games release in a nearly unplayable state. Any other year I'd have agreed with you, on a technical level, but 2023 is evidence alone that games are very much published with a "get money now, fix later (if enough people buy)" mentality
It’s probably because gamers cry about any and every little thing the developers tired of y’all honestly so they send it out with bugs so yall don’t cry bout releasing late then fix it with patches but then yall cry over that smh now put yaself in their shoes with your job situation and hopefully yall shut the fuck up and just appreciate what you have 🤷🏾♂️
Re: code from much older games: If it ain't broke, don't fix it. Seriously, debugged code that you don't understand is better than code your just wrote which has bugs you don't know about yet.
Complete software layman here: If you don't understand the old code, how can you code the new code to work with the old one as efficiently as possible? Or how can you figure out why the old code works flawlessly with one piece of new code but not another one?
I love all the videos you guys do but this one in particular had me hooked from start to finish. It's always so interesting to hear the "behind the scenes" type info that most gamers do not know, when it comes to games/game development. Hope you guys do another video with this topic!
Someone working in the AAA industry here. Regarding the function, it sometimes goes down to the way compilers work. I faced a similar situation where I needed to leave a function that did nothing in place because somehow the compiler was expecting it to be there to add it to the PE table. A sane compiler would check, but UE compiler didnt. Fun times.
I mean sort of, but it's like a ship of theseus thing. It's been rebuilt and rewritten so many times it hardly resembles gamebryo. Based on this logic, since Halo Infinite references the company before Bungie was Bungie, does that mean Halo Infinite runs on an engine from the 90s as well?
Back when I was working on creating casino slot machine games I learned that these are also restarted occasionally (iirc, about every 24-48h) to avoid long term usage memory problem.
I first got involved with trying to learn the basics of coding back when i was 7-8ish. I tried to create an entire replica of a really old and primitive game from scratch (well of souls) and it was just insane to my young mind, i can pull off some little scripts for open source games and things like that, but actual coders have my eternal respect for their skills
Randy Knapp is a pretty famous modder, creating some incredibly deep, complex, and expertly-polished stuff, so I'd believe him. I've run into his mods in several games, and they are flawless, they are imaginative, and they are all must-haves. I'm surprised his name isn't MUCH better known.
Dev QA here, and have done QA in 3rd party before, and I can confirm that n5 is a common occurrence LOL we find some weird ass bugs all the time and they can be often just "fixed" *wink wink*. I remember once I found a bug in a game while i was on a third party company where a boss would spawn some add-ons during the fight, but it started spawning them out of bounds stuck in a place and infinitely, this wasn't a problem, unless you stood there, surviving the boss for around 20 minutes, when the framerate would drop to, I shit you not, 0.4 fps! LoL, solution? Make the boss more aggressive near the 15 minute mark, so you couldn't wait until 20 minutes lol
For #1, you just need a code that is frequently called upon or referenced. The code being called itself might not do anything but when you remove something that is being called often it needs to be there. It's kinda like making that house that gets Amazon delivery packages every day just disappear. You end up with a hoard of Amazon trucks in your neighborhood and a bunch of delivery drivers with packages and cellphones in hand walking in circles trying to find the house that should be there but isn't.
As somebody who has toyed around a lot with RPG-Makers and also seriously tried to create RPG's on them, the "masking an NPC as a chest" hits way too close to home. The stuff you do and try to tweak when something does not work out as planned can get really insane, until you find a solution that finally does work and you have no clue why. Has cost me some nights sleep of my life. And we're talking about "only" 2D here and stuff that is at most already pre-set and pre-generated and you just have to "put the puzzle tiles together" in a shape you would like the puzzle to have. And in the case of most RPG makers, the "hard" coding has already been done by the people that programmed the RPG makers so when I imagine I would have to do THAT as well AND for 3D animations....sheeeesh.....developers are really heavily underpaid!
Marathon: Durandal was one of the most intense games I'd ever played and it was in '95 on the Mac. Also if I'm not mistaken Durandal and Cortana were the two battling A.I.s that caused the whole Marathon situation in the first place.
I'm not sure if anyone from Gameranx will read this, but I just want to thank you. For the past couple of months your daily videos have been an escape from a difficult reality, even if only for just a few minutes that they last... However, it's nice to forget and crack a smile from time to time. So... Honestly, thank you.
I'm surprised you brought up that goal post one but didn't mention that some games have" load bearing images" ie images that were removed from the code or files of the game. It breaks it TF2 is infamous for it because theirs is a cutout of a cow for some reason (This image actually is used in 2 fort) but what inexpectedly break the game if we're moved? The other one I've heard of recently is for some reason. Genshin has a 3D model of starscream from transformers in its code
The last one reminds me of the time the Salt and Sanctuary devs had an AMA. I asked them why the catmerch exists and that's how they explained it, it's better to leave unused stuff than remove it or it may break the game.
Playing old flash games you see lots of off screen assets if you go full screen instead of the 4:3 ratio. Playing Bionicle games recently from early 2000, it helps being able to select tools without actually opening the bag because there's an animation for it normally
How is number 10 a "dark" secret? They worked a damn miracle there that deserves every praise it can get! I wish developers / publishers of THIS day and age we live in now would still be THAT engaged with their products!
I'm a software engineer (not in the game industry). Most of this stuff seems pretty normal to me. Code is not some magic thing and reusability is pretty important so def not surprised by chests being a repurposed enemy object/class. Is this really something disturbing for non tech people?
I think it's only disturbing because for people who don't know much about programming, someone saying "the chests are actually NPCs" might conjure up mental images of souls being trapped in inanimate objects crying out for help or something, even if the reality is that they just mean they copied code used for NPCs because that's what worked.
Thanks Falcon, interesting stuff. That's all except... can you imagine what a remake of Wing Commander would be like... it's one of my favourite games from that era and it could be so beautiful with todays tech.
Best topic in a while! I think more awareness of these situations will give a lot of disgruntled gamers perspective on why shifting the scope of a game can mess up an established piece of game tech (Deathloop -> Redfall comes to mind). CDPR's switch to UE5 was very likely a result of analyzing what held back their development process in the first place after the CP2077 debacle.
It just goes to show how writing games is a lot of work and deadlines / working conditions can be immense, so you get things like this, shortcuts or hacks which would never fly in other software engineering based roles. I write C#/Unity as a hobbyist (lead software engineer full time) and I am always surprised by the lack of consistency, testing, design patterns or even best practices / coding style guidelines other developers seldom seem to use or stick to - in other software engineering roles, a lot of the stuff I see being taught, streamed, leaked or demonstrated by seasoned game devs would never pass a code review without refactoring. That's probably why they end up with things like "Don't remove this static function or everything will break" or the infamous TF2 coconut jpg which cannot be removed else it breaks the game. Not hating on it, I understand why, it's a ruthless industry and time is a precious commodity.
the elder scrolls : arena - 1994 (bethesda softworks) i wouldnt be surprised to find legacy code from this in starfield - 30 year old engine great video as always, thanks Falcon
I've heard that every player controlled character in the original frost bite engine had to have a gun for the game to work, which makes sense for a game engine primarily designed for FPS games, however Need for Speed the run was made in this engine so this means that in some ways the various cars the players drives are guns. I find the idea of a m1911 rocketing at around 200 mph being chased by several other 1911's with flashing blue and red lights hilarious.
Number 5 (FR counter being offscreen) 8:15 A likely explantion to this bug is that somewhere along the coding process, a coder has accidentally linked performance-related code to the FR counter, rather than the FR itself. Eg, instead of "if (Framerate < 45) then change X to Y", they've mistakenly coded "if (FramerateCounter < 45) then change X to Y" This is something that could affect multiple sections of the code and just be a mega pain to try and rectify all instances of it, especially if it spans different files and has different variables with multiple coders not realising they're all having parts of their code affected by it.
Anyone who has ever worked with any kind of programming knows that when it comes to German - they use a paragraph where they could use a sentence... When you're dealing with multi-language stuff that includes German, you base all your expectations on German.
I'm a native german speaker and I'm not aware that it's that bad. Is this really an issue? I mean, when I translate a sentence from english into german, it usually ends up being a little longer, but entrie paragraphs? Can you give an example of what you mean?
As far as I understand it based on modding the wii itself, the IOS is used to load different modules into memory to support the functions you are carrying out. For example, use of an External HDD, the DK Bongo's in GC Mode, GH controllers. Each IOS is self contained and runs sandboxed which is why there are these "reboots" which are in essence just unloading the previous IOS and returning to the default state. Very clever way of doing things as it prevents the Wii Memory from becoming full and creating an overflow resulting in the console just shutting down or performing in an unexpected manner.
As a game dev in training, me and my team tried to implement something like #9. The game would front load all the data while the user stared at a black screen. So we tried to mask it with a loading screen to distract you 😅
that last one reminds me of something from sonic. basically one of the early games (i think the first or second one) had a lot of crash issues but not a lot of time to fix them, so they programmed the game to pull up a level select menu if it crashed. Then they told sega that the game didn't have problems, this was intentional.
Function that does not do anything but still has to be there was pretty common thing back when we had no "managed" code. It could be anything from padding/aligment issue to "untraceable" call of polymorphic nature (there is no such thing as trully untraceble call, ofcz, but sometimes it's just very expensive to analyze unless you know beforehand what exactly you are dealing with and the last dude who had any idea retired like ten years ago).
Best one in terms of code being held together by god and luck. In Team Fortress 2 there is a image of a coconut that isn't used anywhere in the game but it's in the game files. If it gets removed the game will not boot. But a personal one, for my final project game at school we wanted to do a intro cinematic where our grim reaper character stepped out of the shadows. We even did some mocap for it so it was really cool, problem was we had to have two models. The mocap version which did the cutscene and the actual game working model because they couldn't be the same. So we hid the game model in side a building because you could technically still move the model during this cutscene (we couldn't figure out why because we even removed the ability for it to happen in code but it still did) so once the cutscene ended we did a quick switch where the mocap character got sent through the world and the game came through all the walls into position. This also broke our skip cutscene function, still never figured out why.
Bethesda games are a rabbit hole that would fill as many videos as you wish on this subject. Any mod author can tell you the stories about Fallout 3's metro system, which is actually a guy running beneath the rail, wearing a wagon as a head replacer.
12:42 I'm calling bull on this one. I'm a developer and that is a well known anecdote. It represents something that can often happen. Such as that previous example of the frame rate counter having to be left in. Since it has a side effect that was resolving an issue. However the example given here has been told and retold so many times it's obviously not true. It's similar to the one about the server that would regularly crash at 6pm and turns out to be the cleaner unplugging it so they could plug their vacuum in. Never happened, completely made up.
Lots of these remind me of a repair I did when I was a new mechanic working in an auto shop. There was a customer vehicle (early 90's Buick iirc) that had been in this shop multiple times for a security system issue which would randomly disable the starting system of the car. The shop owner and other mechanic had never been able to figure out the problem. Well the car was brought in and since i was the new guy they have the job to me. I started the extensive troubleshooting using a program called Alldata, and one step was to replace a certain relay with a 30amp Maxi-fuse. If the car then started, the relay was faulty. I performed the test, and the car started, so we replaced the relay. The car wouldn't start... We reinstalled the Maxi-fuse and the car started. It didn't make any sense but it worked so we just left the fuse in there. Of course the security system no longer worked, but the customer didn't care about that, they just wanted their car to start. And it did, with no issue from then on.
So I guess you can disable an early '90s GM security system by replacing a certain relay with a fuse...
This is hilarious lol
Back when I was writing code (not games) we had a saying, CACE, or Changing Anything Changes Everything. It was a shorthand for "We have no clue who wrote all this spaghetti code, we don't know what most of it does, but changing the tiniest thing renders the whole thing into garbage". And the more workarounds you put in only makes it worse because the next coder is even more clueless than you. Now imagine it 20 coders down the road.
I mean that's why coding standards exist, it's 2024 not 2004 there is no way people still code like this
Explains the whole "if it's broke, don't change it".
@kirbysaurus5670 formal "Coding standards" are about code formatting and general reccomended patterns.
They don't help if you have a weeird hacky logic that you've wrote a certain way due to some reason that you have not communicated with the team.
With games, the problem is even worse, as the code interacts with assets, and the code may not handle their absence well.
@@boenrobot no that's incorrect, coding standards include design patterns and other guidelines about how code should work and interact with other code
You’re awesome thank you for coding
I work on the backend for a game publisher writing tests for a widely adopted system. I make sure that before I put even a single character into my code, I've scanned and rescanned the existing framework to see if something already exists that will do the thing that I'm trying to accomplish. This process can sometimes take days and sometimes I even have to take paper out and start diagramming the way the system seems to work. No one told me to do this, but experience has taught me that I can save face and lots of headaches by taking the time to do this.
Game dev here! One (of many) examples I have is - I worked on open world game. During development we created a test version of that open world map that was tiny just to test different triggers that would start during each plot segment.
It worked great but when it came to shipping the game, level designers found out that if you removed that tiny "mirrored world" from the map game's not working.
So... We just hid it inside one of the buildings that player coudn't enter.
Now, every time you're exploring the world your actions are actually tied to an small, hidden version of that world instead of ACTUALL map you're walking on.
Bare in mind - it's just about main story triggers, the rest of the gameplay is still properly connected to actuall open world map.
Cool.
Now wait until somebody starts clipping...you know how gamers looove to find ways to clip into stuff😑
neat. im in game design school rn. i had to hide a sprite off screen constantly for a platformer i made for an assignment. if i deleted the sprite. that specific instance which wasnt the parent either. things fell apart. dont recall what it was. i think my character sprite wouldnt have colisions with my tilemap any more or something, the two really had no correlation with one another though.
Actual has one L
@@BGID7 lol that's what you took out of this? Stands to reason you know nothing about anything else being talked about. We all know this big guy. Typos happen. Especially when typing about something you have passion about. Half wit
I have never done programming on a game, but I have done programming and even I know that sometimes code just does whatever the hell it wants. In college, I was programming something on a microcontroller in C for a lab project and added printf statements as debugging checks to make sure loops were running and when I got the code working, I went to remove all those printf statemesnts (That literally just printed "This is a deubg statement" to the terminal) and the code stopped working. I didn't have time to figure out why so I just changed the printf statements to "For some reason this printf statement is needed for the code to work".
So yea I totally feel for game devs
Oh my god
With me ir was with a comment.
Sounds like when removing it you forgot some bit of the nesting code and it broke things. Like having ((this))) in your code, so it expects there to be a third ( that isn't there, and breaks.
😅 8:54 😮
@@KainYusanagi actually sometimes it's worse - it could be a timing problem with a race condition, code a executing before code b finishes (whereas the printf statements in code a slows it down enough to finish after code b) causing the error.
Particularly if you're uaing callbacks and any async code (networking, read console, read file, etc).
The "put information boards in NPCs so you can speak to them" trick reminds me of how Fallout 3 implemented moving trains in Broken Steel by putting a train model on the player as a giant hat texture, and having them move, so from their perspective it would seem to be in motion.
im pretty sure its littlebigplanet. its a platformer and thats exactly how it works in game, a chatbox comes out at signs and when you are talked to.
I remember reading about a similar thing in the original Half-life, where they recorded button presses, like at door pads etc, and stored them in the NPC's sound file so that when an NPC opens a door, you hear the keypad noises. The side effect is that you can see the NPC's lips moving when they press the buttons
@@richardvenables619 it is now my headcannon that none of those things actually make noises, instead everyone including gordon just mouths those noises because they are all nerds like that and are disapointed by the lack of bleeps and bloops.
Literally everyone has heard of that example, bro. You're not dropping anything mind-blowing.
@@kriskross8908 Make it less obvious you’re pissed someone else brought it up first, next time.
NBA JAM had something else. A dev gave his favorite team a buff which activates every time they compete against the bulls.
Yes we know
@@DirkDiglerTheNHunterThank you for your contribution! It really expounded on the original post in a deep and meaningful way, and my day was made so much brighter because of it!
@@DirkDiglerTheNHunter I didn't actually
@@DirkDiglerTheNHunter because the whole planet resolves around you and what you know
@@DirkDiglerTheNHunter I didn't know! It's a neat little fact! :)
12:45 There's an old legend from the early days of computing, like in the 60s I think. The person telling the story was doing maintenance on some of these room-sized computer cabinets, and noticed a switch attached to the side of one cabinet. It had been labeled by hand: "MAGIC / MORE MAGIC" and was switched to the latter. Curious, they opened the cabinet and saw that the only thing running to it was a ground wire. So, why not? They flipped the switch -- and the computer immediately crashed. When they switched it back, the computer worked again, but as soon as they flipped it up to "MAGIC" it would crash again. No one was able to determine why, it was just a given to not mess with the switch.
These were some interesting facts but calling them spooky was a real stretch.
Tech debt is real. I work as a consultant for a variety of software companies, including game dev companies. I have an engineering background, but I don't actually do any of the code; mostly just product consultation and marketing consultation. However, I get to see the code bases whenever I want since I basically get carte blanche, and yes, the tech debt on some of these companies (not just the ones mentioned here, but literally 99.9% of software) is absolutely bonkers. Stuff from the mid-90s, early 00's, you get the picture.
Our worlds and lives are built on a house of cards from giants that came before us on archaic software that could fit on a floppy disk.
That is all coming to a crash when 2038 rolls around, since we can no longer just kick the can up the street like we mostly managed to do with Y2K. And Y2K being handled so adroitly has made a lot of people laugh at the fact that when the Unix Epoch ends, things turn out VERY poorly for everyone, since the things affected are going to be old legacy systems like those run by governments.
Old code != tech debt.
@@ФеофанЭтополедолжнобытьзаполне Not intrinsically, no, but often old code was written shoddily and off the cuff, without any real standards.
@@KainYusanagi Funny enough, bad code != tech debt either. Do you guys even IT?
@@ФеофанЭтополедолжнобытьзаполне Considering it literally is, I have to wonder if you just get off on being contrarian; Technical/tech debt, aka code debt, is the consequence of decisions that result in prioritizing speed or release of software. Old code is often bad code, and bad code is code written that incurs tech debt.
That thumbnail tho
"Mysterious masked rogue assassin female" or "silent rogue assassin female"
Makes me want to check the oil
Gameranx knows how to make you click.
They understand the gamer brain
And the title. Very Disappointed. The real dark secrets are: How to get and keep you addicted. How to get you to spend extra in the game.
I always like videos that peak behind the curtain of things got done behind making a game. Its kind of crazy how talented and creative some developers get. Its also fun to see how they can cheeze the system and get away with minimal effort too so, always a good topic to cover imo
If you've never seen Boundary Break here on YT, I'd highly recommend that. Really shows off a lot of the "Behind the scenes" stuff going on in games that you wouldn't see unless you had a free-floating camera view.
That Megaman "fix" reminds me of my psp hacking days. I was a Pro-CFW user, and even joined the IRC channel ran by Coldbird. One of the updates he put out caused a bug that if you tried to close a game, the psp would crash. So as a workaround, there was a plugin that would launch another game while already running one. With how Pro-CFW worked, I just relaunched the CFW launcher. Told him about it, and after some digging he found the cause of the bug.
Turns out back when he was in competition with the other CFW at the time, it was a race of who could utilize the most ram. When CB expanded ram to some extent, he took up the space required to properly close the game and go back to home menu. Clearing that little spot free fixed it
Idk why this was titled Dark Secrets but this is the best vid you guys have put out in a while! Absolutely love hearing these stories
What is that thumbnail😭😭
Do not fall for the thirst trap
Looks like she’s about to give birth next to a gargoyle
Except you did since you're here, we all did
I'm curious about the thumbnail. But it's not a thirst trap ffs. The games looks gorgeous and I have no idea what it is.
I wondered if it was one of those vampire games I never played.
There always the possibility it's not even a game...but does Gameranx ever do that? I can't recall a time
You should make this a series
👍
Absolutely agree, so interesting the hear about things like this that normal people, even gamers, probably have no clue about.
0:02 so like you did with the thumbnail
😂 oh yeah your 🍳
Falcon knew what he was doing with that thumbnail 😂😂😂
Exactly
That one at number four is brilliant. It reminds me of that one Bethesda game were all the trains are actually being carried around by NPCs, hidden below the floor element, because the engine didn't support any workable train-on-track system.
Don’t know if anyone said anything yet but as an indie dev the fps counter does math or retrieves data every frame or every few frames so if you have a lot of stuff being checked while comtrolling it will slightly alter the response time in game. If they accounted for this and made it faster or cut corners in different areas then when the fps counter is gone you can get some unexpected behavior.
We need more of these for sure gameranx you hear me!!
NPC: "What is my purpose?"
Dev:" You mimic a present in a videogame."
NPC: "Oh god..."
Rick and Morty reference right?😂
Every day is Christmas.
yah, welcome to the club pal
This is a great idea for a Viva La Dirt League video. The game developer shows up in the game world to add a one-off feature but was too lazy to add a bunch of code for it. So they create and cram a NPC into a box and set a bunch of parameters. Players who approach the box hear muffled screams. The box contains an item that teleports the player to a house whose walls and floors were created in a similar fashion. It happens to be the only two story house in the entire game that you can actually enter.
You pass butter
OMG
Unreal engine was released in 1998. Each 'new' engine generation isn't brand new code. Like Bethesda's creation engine it is just build on the back of what was there before.
This is an incredibly common practice for MANY companies and is part of why you don't have everyone using the same engine.
Not all engines are as 'easy to use' as they claim either.
Using Unreal Engine as an example. Gamers CONSTANTLY say 'why isn't X company using Unreal? Its such a great engine and easy to use, look at Y person who has remade mission one of game Z in Unreal'.
Yea, all SOUNDS great because 90% of the work is done. Adapting to a new engine is far more easy than building something from the ground up...but even then it cannot be done without thinking.
Look at BHVR with Dead by Daylight and Wildcard with ASA. Just upgrading Unreal Engine has caused problems (not so seamless now, huh) and clearly Wildcard had no idea what changing an engine would do to a game who's code was already a mess.
Its also why companies like CDPR hold onto the REDengine. Not only did they 'make' it back with Witcher 2, but they're aware of what can be done, common issues, and other odd interactions with it. They didn't blindly jump into it like Wildcard.
Game engines and OS have that in common. They are just continuously built up and over time people have no idea what a line of code really does since 80% of coders never do any sort of documentation. It is also why code debuggers are so miserable and burn out.
Hot take, but Unreal Engine is overrated. I may not be a game dev, but I am a modder. The creation kits are abysmal, and any 'tutorial' is like trying to adapt a python script into C++ and wonder why it isn't working.
Number 9 can be tested for modern games by checking how much storage they take up before and after the first boot up, without even loading into the actual meat of the game
shout out Sho Nuff, what a legend
Regarding the Halo code I'm not surprised. As a matter of fact Windows 11 has a lot of code still in use from Windows NT. Windows isn't the only operating system that does this. Notice that sometimes when a new critical vulnerability is discovered it'll encompass multiple versions. It's because there is still a lot of old code that hasn't been updated.
Just like how there is a picture (.jpg) of a coconut in the files for most valve games, if it is removed the game literally bricks on startup, but if it is added back to the same location, the game works perfectly.
Being a solo indie dev myself I can confirm a ton goes into making a game behind the scenes many will never see.
13:54 By far the best example of "It's not a bug, it's a feature" i have ever seen😂
The code thing is very similar to our DNA, there is code in our DNA that we have no idea why it's there and have figured out that it's a bad idea if we ever remove it. But they have no idea what it's there for.
This is an interesting video. Sometimes as a gamer I step back and marvel at the amazing amount of work and talent that goes into the games we play. Art and sound design, music, character design, writing, voice acting, animation…. Easy to forget what drives it all, and a good game lets you do that. HUGE respect to software engineers.
2 other titles I know of that actually used Marathon 2 Durndals engine were Damage Incorporated, an early squad based fps shooter, and ZPC (Zero population count).
This was excellent content, I love learning about weird deep shit like this. More please!
I just realised that gameranx got 7.97 milion subscribers, bravo🎉❤
Falcon I've said this on about 10 videos now, the phrase is "It cannot be OVERstated"
Please make multiple parts of this. Very interesting stuff!
👍
Actually the DoNothing() part of code reminds me of Java and C# coding I've done. Basically when you'd search for a framework to render you'd test these things and some rendering libraries are finicky and had to use different classes to run the library. One of them was to use the constructor section to draw, a different class or object to colorize and move. And the only worked if you'd add a function that activates a static resolution running multiple threads as a main. I'm not sure if it had to do with the language itself, but something was barring it from working UNLESS you made a empty function that gets called, as sort of a wake up call.
But it also reminds me of C# coding when you need a function to DoNothing() before doing anything, because of timing issues.
Fun Fact! The term "Bug" came from a time long ago when they were still using glass tube transistors for computers and a computer took up entire warehouses. Sometimes the computer system would start freaking out and it was because a cockaroach (or other pest) had crawled in somewhere and either got cooked on a transistor or managed to short something out. So it was a literal bug in the system. If you had a good team that knew the system well, they might find the bug in three months and fix it.
Common myth, but not true. There were cases of literal bugs causing problems for early computers, but the term 'bug' was already in use at the time. One theory for the origin of the name is that it dates back to the days of the telegraph, when operators would blame 'bugs in the telegraph wire' for bad connections.
@@macdjord Its sort of half true, from the Wiki about Admiral Grace Hopper:
While Hopper was working on a Mark II Computer at Harvard University in 1947,[47] her associates discovered a moth that was stuck in a relay and impeding the operation of the computer. Upon extraction, the insect was affixed to a log sheet for that day with the notation, "First actual case of bug being found".
[...]
Hopper is credited with popularizing the term in computing. For many decades, the term "bug" for a malfunction had been in use in several fields before being applied to computers.
@@marcsh_dev You own quote proves my point. She wrote "First actual case of bug being found" because 'bug' for 'malfunction' was already in live usage, and it was therefore funny to find an actual literal bug in this particular case.
@@macdjord I literally called that out. Here it is again - " For many decades, the term "bug" for a malfunction had been in use in several fields before being applied to computers."
number 7 makes me kinda sad. the mentality that was "we can't ship this, it's got a bug in it we need to figure out and fix this" compared to now of "it's got several bugs... send it out anyways, who cares"
rotfl, no
games were shipped with tons of bugs back then too
the difference was that were was no internet to amplify everything 2 billions times over, expectations were way lower and games were so much simplier that a bug wasn't as easily appearent as today
Yeah, it’s more like now instead of “unfortunately we have to ship despite a few remaining bugs” to “the game is barely playable and there’s no way it’ll be fixed even with a day one update”.
@TBKSSS mmmmm nope, 2023 saw a huge number of big budget games release in a nearly unplayable state.
Any other year I'd have agreed with you, on a technical level, but 2023 is evidence alone that games are very much published with a "get money now, fix later (if enough people buy)" mentality
It’s probably because gamers cry about any and every little thing the developers tired of y’all honestly so they send it out with bugs so yall don’t cry bout releasing late then fix it with patches but then yall cry over that smh now put yaself in their shoes with your job situation and hopefully yall shut the fuck up and just appreciate what you have 🤷🏾♂️
well now they blatantly don't finish making games before releasing them most of the time
Tbh, knowing now how many reboots the Wii makes, i'm surprised it wasn't SLOWER than it actually was. Kinda impressive.
Youre right Falcon, Bethesda is still using a version of Gamebryo from the 90s to create games. When will it stop? We may never see the day!
This is great, I would love a part 2!
As someone who is currently learning coding, I feel relieved that it isn't just me.
But also dread that it will always be like this.
I really liked this video, and the Bonus section made me laugh 😂
Wipeout HD was sooooo good, I miss that series. the PSP Wipeout was money too, also Tekken 5 on PSP was the best game ever ❤
Original was fun running on a PowerVR card (for the time-period).
10:41 remember the first Xbox camera that would turn on and be on all the time.
Great. I watch this whole damn video just to reach the end and discover I'm old. I remember the "Thanks for playing Wing Commander" one.
I played WC and Secret Missions on SNES. I'm going to have to emulate them on DOS to see what it was like on PC back then.
"Thank you for playing Wing Commander!" is fucking genius.
Re: code from much older games: If it ain't broke, don't fix it. Seriously, debugged code that you don't understand is better than code your just wrote which has bugs you don't know about yet.
Complete software layman here: If you don't understand the old code, how can you code the new code to work with the old one as efficiently as possible? Or how can you figure out why the old code works flawlessly with one piece of new code but not another one?
@@Bird_Dog00 Trial and error... lots of error. Eventually you develop superstition.
I love all the videos you guys do but this one in particular had me hooked from start to finish. It's always so interesting to hear the "behind the scenes" type info that most gamers do not know, when it comes to games/game development. Hope you guys do another video with this topic!
Dark secret of megaman playing a silent sound? 😂
Someone working in the AAA industry here.
Regarding the function, it sometimes goes down to the way compilers work.
I faced a similar situation where I needed to leave a function that did nothing in place because somehow the compiler was expecting it to be there to add it to the PE table.
A sane compiler would check, but UE compiler didnt.
Fun times.
That Wing Commander hack is legendary. I love it.
Thank you for knowing Bethesda still uses Gamebryo in their games!
I mean sort of, but it's like a ship of theseus thing. It's been rebuilt and rewritten so many times it hardly resembles gamebryo. Based on this logic, since Halo Infinite references the company before Bungie was Bungie, does that mean Halo Infinite runs on an engine from the 90s as well?
Back when I was working on creating casino slot machine games I learned that these are also restarted occasionally (iirc, about every 24-48h) to avoid long term usage memory problem.
13:36 this is why refactoring and doing code over from the start is both terrifying yet necessary.
I first got involved with trying to learn the basics of coding back when i was 7-8ish. I tried to create an entire replica of a really old and primitive game from scratch (well of souls) and it was just insane to my young mind, i can pull off some little scripts for open source games and things like that, but actual coders have my eternal respect for their skills
❤❤❤❤❤👍👍👍👍👍👍 Wow Great video. Thanks Gameranx.
Randy Knapp is a pretty famous modder, creating some incredibly deep, complex, and expertly-polished stuff, so I'd believe him. I've run into his mods in several games, and they are flawless, they are imaginative, and they are all must-haves. I'm surprised his name isn't MUCH better known.
LOOVE the channel. THIS was One of your most interesting videos in a long while. I went down about 6 different rabbit holes after this one.
Dev QA here, and have done QA in 3rd party before, and I can confirm that n5 is a common occurrence LOL we find some weird ass bugs all the time and they can be often just "fixed" *wink wink*. I remember once I found a bug in a game while i was on a third party company where a boss would spawn some add-ons during the fight, but it started spawning them out of bounds stuck in a place and infinitely, this wasn't a problem, unless you stood there, surviving the boss for around 20 minutes, when the framerate would drop to, I shit you not, 0.4 fps! LoL, solution? Make the boss more aggressive near the 15 minute mark, so you couldn't wait until 20 minutes lol
For #1, you just need a code that is frequently called upon or referenced. The code being called itself might not do anything but when you remove something that is being called often it needs to be there. It's kinda like making that house that gets Amazon delivery packages every day just disappear. You end up with a hoard of Amazon trucks in your neighborhood and a bunch of delivery drivers with packages and cellphones in hand walking in circles trying to find the house that should be there but isn't.
As somebody who has toyed around a lot with RPG-Makers and also seriously tried to create RPG's on them, the "masking an NPC as a chest" hits way too close to home. The stuff you do and try to tweak when something does not work out as planned can get really insane, until you find a solution that finally does work and you have no clue why. Has cost me some nights sleep of my life.
And we're talking about "only" 2D here and stuff that is at most already pre-set and pre-generated and you just have to "put the puzzle tiles together" in a shape you would like the puzzle to have.
And in the case of most RPG makers, the "hard" coding has already been done by the people that programmed the RPG makers so when I imagine I would have to do THAT as well AND for 3D animations....sheeeesh.....developers are really heavily underpaid!
Marathon: Durandal was one of the most intense games I'd ever played and it was in '95 on the Mac. Also if I'm not mistaken Durandal and Cortana were the two battling A.I.s that caused the whole Marathon situation in the first place.
Awesome video!
Can we get a designer or artist version of this?
I'm not sure if anyone from Gameranx will read this, but I just want to thank you. For the past couple of months your daily videos have been an escape from a difficult reality, even if only for just a few minutes that they last... However, it's nice to forget and crack a smile from time to time. So... Honestly, thank you.
I'm surprised you brought up that goal post one but didn't mention that some games have" load bearing images" ie images that were removed from the code or files of the game. It breaks it TF2 is infamous for it because theirs is a cutout of a cow for some reason (This image actually is used in 2 fort) but what inexpectedly break the game if we're moved? The other one I've heard of recently is for some reason. Genshin has a 3D model of starscream from transformers in its code
Wing Commander still looks kinda great. 😍
Falcon, I think we are all ready for a #2 in this series :) Funny stories of how devs tried fixing broken games.
The last one reminds me of the time the Salt and Sanctuary devs had an AMA. I asked them why the catmerch exists and that's how they explained it, it's better to leave unused stuff than remove it or it may break the game.
Playing old flash games you see lots of off screen assets if you go full screen instead of the 4:3 ratio. Playing Bionicle games recently from early 2000, it helps being able to select tools without actually opening the bag because there's an animation for it normally
I love this type of stuff. So much cleverness on display in stories like these
How is number 10 a "dark" secret?
They worked a damn miracle there that deserves every praise it can get!
I wish developers / publishers of THIS day and age we live in now would still be THAT engaged with their products!
I'm a software engineer (not in the game industry). Most of this stuff seems pretty normal to me. Code is not some magic thing and reusability is pretty important so def not surprised by chests being a repurposed enemy object/class. Is this really something disturbing for non tech people?
I think it's only disturbing because for people who don't know much about programming, someone saying "the chests are actually NPCs" might conjure up mental images of souls being trapped in inanimate objects crying out for help or something, even if the reality is that they just mean they copied code used for NPCs because that's what worked.
Thanks Falcon, interesting stuff. That's all except... can you imagine what a remake of Wing Commander would be like... it's one of my favourite games from that era and it could be so beautiful with todays tech.
9:57 So close to being the GameSpy icon.
I think half of Game creators are StarCraft Broodwar Editing genius that used to play around with that Trigger system in Create Mode lol
That game taught me how to code, no lie.
@@VyxelOP I made a few of the Bound games back in my day 😅 those were trigger hellscapes.
Great topic and video. Very interesting stuff even though much of it is over my head. Thanks for sharing.
good morning gameranx and also i love these types of stuff thank u👌👌
Super fascinating. More like this, please.
Best topic in a while! I think more awareness of these situations will give a lot of disgruntled gamers perspective on why shifting the scope of a game can mess up an established piece of game tech (Deathloop -> Redfall comes to mind). CDPR's switch to UE5 was very likely a result of analyzing what held back their development process in the first place after the CP2077 debacle.
Ok. The Wing Commander one got me. I remember those old EMM386 errors... holy shit!
It just goes to show how writing games is a lot of work and deadlines / working conditions can be immense, so you get things like this, shortcuts or hacks which would never fly in other software engineering based roles. I write C#/Unity as a hobbyist (lead software engineer full time) and I am always surprised by the lack of consistency, testing, design patterns or even best practices / coding style guidelines other developers seldom seem to use or stick to - in other software engineering roles, a lot of the stuff I see being taught, streamed, leaked or demonstrated by seasoned game devs would never pass a code review without refactoring.
That's probably why they end up with things like "Don't remove this static function or everything will break" or the infamous TF2 coconut jpg which cannot be removed else it breaks the game.
Not hating on it, I understand why, it's a ruthless industry and time is a precious commodity.
Treasure chests being people is the most realistic dev/publisher thing to do.
the elder scrolls : arena - 1994 (bethesda softworks)
i wouldnt be surprised to find legacy code from this in starfield - 30 year old engine
great video as always, thanks Falcon
That character not moving and being aware of your surrounding is a Book and Film called "Johnny got his gun"
I've heard that every player controlled character in the original frost bite engine had to have a gun for the game to work, which makes sense for a game engine primarily designed for FPS games, however Need for Speed the run was made in this engine so this means that in some ways the various cars the players drives are guns. I find the idea of a m1911 rocketing at around 200 mph being chased by several other 1911's with flashing blue and red lights hilarious.
Number 5 (FR counter being offscreen) 8:15
A likely explantion to this bug is that somewhere along the coding process, a coder has accidentally linked performance-related code to the FR counter, rather than the FR itself.
Eg, instead of "if (Framerate < 45) then change X to Y", they've mistakenly coded "if (FramerateCounter < 45) then change X to Y"
This is something that could affect multiple sections of the code and just be a mega pain to try and rectify all instances of it, especially if it spans different files and has different variables with multiple coders not realising they're all having parts of their code affected by it.
Cool to see Hackaday mentioned, I used to be active there. Not sure why I stopped.
Anyone who has ever worked with any kind of programming knows that when it comes to German - they use a paragraph where they could use a sentence...
When you're dealing with multi-language stuff that includes German, you base all your expectations on German.
I'm a native german speaker and I'm not aware that it's that bad.
Is this really an issue?
I mean, when I translate a sentence from english into german, it usually ends up being a little longer, but entrie paragraphs?
Can you give an example of what you mean?
Falcon is a great reviewer I've watched all videos with falcon's commentary he's really a great game reviewer I'm a big fan ✨
I love how falcon manages to dump on the gamebryo engine in every video :D
As far as I understand it based on modding the wii itself, the IOS is used to load different modules into memory to support the functions you are carrying out. For example, use of an External HDD, the DK Bongo's in GC Mode, GH controllers. Each IOS is self contained and runs sandboxed which is why there are these "reboots" which are in essence just unloading the previous IOS and returning to the default state. Very clever way of doing things as it prevents the Wii Memory from becoming full and creating an overflow resulting in the console just shutting down or performing in an unexpected manner.
As a game dev in training, me and my team tried to implement something like #9. The game would front load all the data while the user stared at a black screen. So we tried to mask it with a loading screen to distract you 😅
that last one reminds me of something from sonic. basically one of the early games (i think the first or second one) had a lot of crash issues but not a lot of time to fix them, so they programmed the game to pull up a level select menu if it crashed. Then they told sega that the game didn't have problems, this was intentional.
Function that does not do anything but still has to be there was pretty common thing back when we had no "managed" code. It could be anything from padding/aligment issue to "untraceable" call of polymorphic nature (there is no such thing as trully untraceble call, ofcz, but sometimes it's just very expensive to analyze unless you know beforehand what exactly you are dealing with and the last dude who had any idea retired like ten years ago).
Best one in terms of code being held together by god and luck. In Team Fortress 2 there is a image of a coconut that isn't used anywhere in the game but it's in the game files. If it gets removed the game will not boot.
But a personal one, for my final project game at school we wanted to do a intro cinematic where our grim reaper character stepped out of the shadows. We even did some mocap for it so it was really cool, problem was we had to have two models. The mocap version which did the cutscene and the actual game working model because they couldn't be the same. So we hid the game model in side a building because you could technically still move the model during this cutscene (we couldn't figure out why because we even removed the ability for it to happen in code but it still did) so once the cutscene ended we did a quick switch where the mocap character got sent through the world and the game came through all the walls into position. This also broke our skip cutscene function, still never figured out why.
Bethesda games are a rabbit hole that would fill as many videos as you wish on this subject. Any mod author can tell you the stories about Fallout 3's metro system, which is actually a guy running beneath the rail, wearing a wagon as a head replacer.
I remember "Thank you for playing Wing Commander". I feel.. trolled.. but in the best of ways.
Hi, Falcon The Hero. You're my hero. Days have been rough, thanks for lightening today up.
Hey
12:42 I'm calling bull on this one. I'm a developer and that is a well known anecdote. It represents something that can often happen. Such as that previous example of the frame rate counter having to be left in. Since it has a side effect that was resolving an issue. However the example given here has been told and retold so many times it's obviously not true. It's similar to the one about the server that would regularly crash at 6pm and turns out to be the cleaner unplugging it so they could plug their vacuum in. Never happened, completely made up.