14 ms·
The Outer Worlds: Fixing the “game thinks my companion is dead” bug
- pkilgore 7y agoDon't skip the gif at the end!
- doublement 7y agoI don't play video games, but if someone created one that was entirely glitches like this, I might start.
- drewrv 7y agoCheck out Goat Simulator: https://en.wikipedia.org/wiki/Goat_Simulator https://en.wikipedia.org/wiki/Goat_Simulator "The game, initially developed as a joke prototype from an internal game jam and shown in an early alpha state in YouTube videos, was met with excitement and attention, prompting the studio to build the game into a releasable state while still retaining various non-breaking bugs and glitches to maintain the game's entertainment value."
- Groxx 7y agoIt's full of awkward physics, I sort of love it. E.g. goats go up ladders by walking straight into them and continuing to walk with absolutely no other changes... so of course the body physics get a bit excited http://i.imgur.com/lNfzaDj.gif http://i.imgur.com/lNfzaDj.gif
- swsieber 7y agoSkate 3 has tons of glitches, or at least a few good glitches that keep on giving: https://www.youtube.com/watch?v=UaUR6u8nHoM https://www.youtube.com/watch?v=UaUR6u8nHoM You can launch yourself into the air (100s of feet), run inside a dumpster to move it, drop through the floor to start falling from the sky, booby-trap a trashcan so it flies out of no-where and hit you upside the head, walk up an invisible ramp... it's fun.
- doublement 7y agoWow that was exactly what I hoped existed! I especially liked the one where you end up beneath reality, hurtling sideways past yourself into a never-ending void.
- 91edec 7y agoPlaying any Bethesda game on release is a gold mine.
- russdill 7y agoEnding up in the ground a little bit causes a small bounce. Ending up in the ground a lot causes a large bounce. Combine that with poor collision code in tunnels...and well... https://www.youtube.com/watch?v=FMp-pzlwzlE https://www.youtube.com/watch?v=FMp-pzlwzlE
- ranger207 7y agoYou might enjoy speedrunning, especially older games like those for the Nintendo 64 or the original Playstation. In addition, there's the Super Mario 64 0x A Button challenge, an effort to beat the game while avoiding the use of its main mechanic. It's not a speedrun, but the themes of exploiting every glitch possible is the same. It's also the source of the infamous "0.5x A Presses" video. https://www.youtube.com/watch?v=kpk2tdsPh0A https://www.youtube.com/watch?v=kpk2tdsPh0A
- NoodleIncident 7y agoSeveral of his videos are about doing the same star with 0 A presses using a faster strat, although that might be only for the sake of the people TAS-ing the strats
- zf00002 7y agoCheck out Star Citizen, it's all terrible glitches and it's also unlikely to ever be a finished, playable game.
- driverdan 7y agoYou might enjoy this reddit sub dedicated to game bugs: https://www.reddit.com/r/GamePhysics/ https://www.reddit.com/r/GamePhysics/ Also this sub that highlights small, easy to overlook game details: https://www.reddit.com/r/GamingDetails/ https://www.reddit.com/r/GamingDetails/
- scrollaway 7y agoYou'll probably enjoy The Stanley Parable then. If you haven't heard of it, I recommend you buy it and avoid actually reading about what it is. If you don't enjoy it I'll refund you myself ;)
- cerberusss 7y agoFallout 4, which has many mods, comes pretty close. My favorite example is WeirdistBuilds, who completed the game without killing a single enemy: https://kotaku.com/guy-beats-fallout-4-without-killing-anyone-nearly-brea-1749882569 https://kotaku.com/guy-beats-fallout-4-without-killing-anyon...
- floatingatoll 7y agoThis is an excellent post-mortem, thanks for posting it.
- theshrike79 7y agoReadable format: https://threadreaderapp.com/thread/1205252714680045568.html https://threadreaderapp.com/thread/1205252714680045568.html
- fernandopj 7y agoThat'a well-worth read to everyone that enjoy reading about QA finding bugs, even if not interested in games Finding quest-related bugs is a nightmare in open-ended games...
- remarkEon 7y agoFunny read. The Outer Worlds is an unexpected joy, too. Definitely an open-world game I had no idea I needed. If you haven’t, check it out. It’s basically Fallout 4 but in space.
- thrownblown 7y ago...basically Fallout New Vegas in space... (obsidian made that)
- remarkEon 7y agoAh, yes. This is the better comparison.
- Aromasin 7y agoIt very much nostalgically brought me back to the beginning of the decade, when fantastic "open-world" single-player RPG's like Mass Effect 2, Skyrim, Fallout: New Vegas, Witcher 2, Dragon Age: Origins etc were being realised in quick succession. For me personally, that was a golden era. It's great to have something like The Outer Words fulfilling that itch that has been present for so long. If you like any of the games mentioned, I also recommend checking it out.
- oneepic 7y agoLots of Bioshock vibes too.
- sdfin 7y agoThe combats quickly become too easy. The world and story are fine. I liked about New Vegas that it had a very elaborate world and the fights were more challenging.
- dharmab 7y agoI'm waiting for rebalance mods before continuing my playthrough. Great characters and dialog, trivially easy combat.
- lordleft 7y agoCRPGs are my favorite genre of video game, and the complex interactions they feature make them both super fun and especially prone to glitches. I will say that TOW was very stable for an Obsidian Game. I don't think I've experienced a bug yet.
- INTPenis 7y agoI haven't bought this game but I watched a 12 minute speedrun of it with two devs commentating and got the feeling that QA didn't perform as well as they could have on this project. First of all the fact that the game could be finished in 12 minutes was a surprise to both devs. And at several points during the video dev#1 expressed surprise over a shortcut the player was taking, while dev#2 said he did that in testing all the time. Seems like a lack of both QA and communication. Projects are often rushed to completion for shipping, and open world games can't be the easiest thing to test. You're balancing player freedom and bug hunting. It's a challenge I can only imagine.
- schoen 7y agoOn the other hand, if you watch speedrun records on YouTube or watch the Summoning Salt documentaries about them, expert speedruns (especially those that allow glitches) are often 10% or less the time that an ordinarily skilled player might take to finish the game. For example, the Super Mario Bros. record is under five minutes, while the Castlevania record is under 11.5 minutes. I don't think the fact that developers are surprised by speedrun times means that a game is necessarily bad! (And even many of the most extraordinarily beloved games have glitches, often because realistic physics simulation is hard.) I think I saw a video of Bennett Foddy in which he noted that other people could complete "Getting Over It with Bennett Foddy" considerably faster than he could, and maybe faster than he imagined anyone would be able to.
- bipolar_lisper 7y agoprogramming quality and program quality are two very separate things. a great game can have terrible programming. and an awful game can have exceptional programming.
- jbattle 7y agoSpeed runs frequently rely on glitches. There was one for Oblivion where you could glitch through some geometry in the starting area and end up on the other side of the wall that was supposed to be inaccessible until the ending cut scene. The game was 'over' in like 5 minutes
- viraptor 7y agoFor all the flak people usually give the telemetry systems, this bug sounds like it could be made trivial if devs could push custom reporting to users. "When the companion dies, send me last few events and a minimal world-state". Having ready data collection/reporting when things go weird is super helpful, whether it's an own, server side software, or a remote client.
- aaronbrethorst 7y agoIt doesn't sound like that would've worked here. One reason it was so hard to pin down is that it was impossible to tell when the bug actually happened -- all of the cases we had were essentially "hey something bad happened in the last ten hours and now my quest is broken" (5/18)
- cjbprime 7y agoBut they knew that the proximate cause of the quest failure was a dead companion, so adding logging around companion death would have figured it out.
- rgoulter 7y agoThe tweets seem to also say the companions could die in battle, which would lead to a lot of noise.
- reificator 7y agoThey can get to a "downed" state, but they cannot die. Depending on how early they realized it was limited to companions on the ship, with a specific state (the source is not clear on how early they determined that to be) they could log events that damage a player when in that specific state. That would have gotten them to fall damage, at which point they might be able to make the leap to ladders. If not, they could then focus their logging around changes in elevation when in that state. But that's backward reasoning from the already known end state, so it's not fair to apply in hindsight. It's also not clear how much log data they can ingest, whether end-user telemetry was feasible, etc...
- choeger 7y agoBrilliant. It shows how your code is never encapsulated enough. You think physics should apply to all agents in your game and you think climbing a ladder is trivial and then someone thinks they can easily stop all NPCs from starting new Interactions. Boom. In that particular case, what would be your favorite fix. I tend to say that the second step of climbing a ladder should probably not count as a new interaction.
- gpm 7y agoI'm not sure I understand why NPCs are prevented from interacting with the environment while you're talking... given that gameplay isn't stopped. Seems like an arbitrary decision that might lead to other surprising behavior too... e.g. talking to someone else to interrupt an NPC performing a scripted action.
- lilyball 7y agoProbably because interacting with the environment could cause environmental changes that might affect you. For example, if you're standing in a doorway talking to someone and an NPC wants to close the door, it could close in between you and the NPC you're talking to.
- driverdan 7y agoWhich would make for some funny game clips. That kind of emergent behavior is great.
- umvi 7y agoI seem to remember a fallout clip where the character is trying to have a conversation with the NPC but then a monster is also attacking the NPC or something and the NPC is just oblivious. Kind of breaks the immersion when you are having a normal conversation and the NPC is taking mortal wounds at the same time. It would be hard to make believable interactions when unexpected environmental side effects can happen at any time
- lowbloodsugar 7y agoIf anyone is reading, can you guys fix the "There is no new game+" bug please? =)
- gambler 7y agoI'm sure this problem wouldn't occur if they simply used Haskell for scripting. Or modeled NPC interactions with TLA+. Can someone with a Twitter account please tell them this? Such a simple solution to all these game bugs.
- swivelmaster 7y agoI'm 90% sure this comment is satire
- bgun 7y agoPoe’s law applies here.
- nitwit005 7y agoSome may remember Todd Howard's Quakecon interview where he talked about Bethesda failing to implement ladders due to AI problems: https://www.ign.com/articles/2010/08/14/why-there-are-no-ladders-in-fallout https://www.ign.com/articles/2010/08/14/why-there-are-no-lad...
- AdmiralAsshat 7y agoShould've called this bug "Stairway to Heaven".
- iscrewyou 7y agoBut it ruins the story since that’s the punchline.
- kevin_thibedeau 7y agoI had the same problem in a hardware product using a legacy wired protocol that was sent over a ZigBee connection. People would complain that volume would uncontrollably go to 100% when operating a remote. Reproducing it was hard but the culprit was WiFi interference. The protocol had separate on/off commands and no provision for lost packets since it wasn't natively designed for wireless. If the off command dropped out everything would act as if a button was still pressed.
- AceJohnny2 7y agostateful volume control... >_<
- CGamesPlay 7y agoProbably the design constraints here make this pretty necessary: you want the user to be able to hold the button down to adjust the volume by large amounts and release when it gets to a comfortable level; sending individual volume packets this quickly causes too much traffic over the slow connection; and the remote doesn't have any way to receive packets from the controlled device so it can't just send absolute volume levels.
- pshc 7y agoYou could send another volume-up packet every say 200ms. No way that would congest a local wireless connection.
- rightbyte 7y agoOr implement a statemachine in the receiver that increases the delta volume added when in signals keep coming.
- CGamesPlay 7y agoThis might not be the actual constraint this system had: > I had the same problem in a hardware product using a legacy wired protocol that was sent over a ZigBee connection.
- ergothus 7y agoThe real payoff to me is when someone asks why they didn't just try more ways of making companions unkillable without/before going through all that debugging. The response: > that was our fallback, but > -without actually knowing the cause, we couldn’t be sure that’d fix it > -whatever the cause of the problem is might be causing OTHER problems, so we should find it > -games near ship are fragile and it’s best to not make changes you don’t 100% understand _THIS_ is someone that is practicing good software practices. I have no doubt this is why Outer Worlds is so much less buggy than, say, recent Bethesda _patches_. I saw a report this morning that the latest Fallout 76 patch causes some armors to degrade when a weapon reloads. This sounds exactly like the kind of bug you'd get from "fixing" something without understanding the actual cause, and thus just kicking up more emergent bugs because of your fix. Complex interactions (like modern games), filled with shortcuts and assumptions (like modern games) means some bugs are inevitable. Requiring rigorous understanding before making changes can keep those bugs from multiplying. ...says someone with zero experience in coding games, but plenty of experience both fixing and generating bugs. [Edit: fix formatting]
- mattmanser 7y agoI don't buy this at all. This is the antithesis of defensive programming. It's a game-breaking bug that's allowed to happen because of two things: 1. They allowed companions to take damage because they marked them with the wrong property 2. They never checked if the companions went somewhere silly to warp them back to where they should be That's not defensive, that's like calling an API without a defensive try/catch if something goes unexpectedly wrong. If they'd have done either of these things (and sent back error reports when it happened), they'd have caught it way sooner. I don't write games and appreciate the interactions can be very complex. While I can understand your delight in them finding the root cause, I can't understand your support for failing to put in some defensive measures when they couldn't recreate a frequently reported bug.
- gdxhyrd 7y agoThose defensive measures you describe are the kind of hacks that introduce more and more complexity. Defensive programming is not fixing bugs with more features, quite the opposite: it is failing hard when a condition does not hold.
- oniTony 7y agoThis reads a lot like the central premise in "You" by Austin Grossman -- unkillable NPCs are occasionally found to be dead and that bug is threatening the entire game studio.
- db48x 7y agoTheir QA should have been using a record-and-replay debugger. rr-project.org
- bitwize 7y agoI imagined the MGS3 theme softly playing as the companion character climbed an invisible ladder off the map and into infinity.
- MattyRad 7y agoOnly tangentially related, sorry: all of the the companions in The Outer Worlds were uninteresting, I found it much more satisfying (and challenging) to beat the game solo. Effectively, each companion was an ordinary human, with some arbitrary specialities, joining your crew because the current mission required it. That said, The Outer Worlds was a lot of fun (albeit short-lived).
- francislavoie 7y agoI wholeheartedly disagree. I loved the companion missions and the dive into the characters and their psychology. They all were interesting in different ways. Notably, I found that the Vicar had a really interesting progression as a character and his relationship with religion. It lead to some interesting philosophical dialogue, especially if you bring him when you meet the Iconoclasts. He has a healthy debate with their leader and they both come to the conclusion "let's agree to disagree". It was great.
- Danieru 7y agoThis thread is speaking to how regular programing and game play programming vastly differ. In regular programming scopes are small, small enough for programmers to accomodate all expected logic. In games interaction scope is unlimited, or atleast that is what the game designers want. If you try to program every expected system interaction you would never finish. So instead game programming is about making systems flexible. For example, as far as the gameplay code is concerned the inside of players ship is just yet another level. The bounds of any level are defined by what the map designers have layed out, not any pre-planned "ship area". There are no meetings where project managers request "more playable area for level 7". Likewise the systems programmer who made the furniture system was not the script writer who created the ladders. The script writer likely thought it was brilliant and elegant to split the entrances and exits, because in game programming it was indeed brilliant. It allowed the save system's existing code to handling what would have otherwise been special handling. It allowed the existing combat logic to handling what would otherwise be special handling. Of course regular programming is different. In regular applications if a user's data is being sent to a server there is no secondary system which needs to be allowed to kill this data. Nor is there any save system which needs to be able to save and restore an in-progress action. Games programming is all about figuring out ways to allow more varied and more complex interactions without exploding the implementation exponentially.
- tomerv 7y agoWhy is this a difference between "regular" programing and game play programming? Any kind of programming could have complex interactions between component. A few well known examples: OS kernel and drivers, VM manager, internet browser. The list is long, and there is a lot of programming of complicated products in the world - not everything is web development or CRUD apps.
- Danieru 7y agoRegular programming and game programming have different constaints and goals. Yes regular programming could indeed add a system where numbers might be animated. During the animation maybe you want another system to be able to change the number. Maybe the number disappears, make sure you're front end can handle not having the requested data arriving. Maybe you want systems which add extra fields to user data, maybe you want anytime a user attempts login that there is a 1% chance they receive a reward determined by their "user rank". All these are "possible" but do not happen in regular programming. If a user attempted to log into your application, and instead a window popped up saying "you have died from starvation, please recreate your account and play again" rightly so your users would be angry, not impressed. Different constraints and goals lead to different priorities. Games on a per screen basis have a lot more budget available. Imagine if your application's login screen took 2 months to program and required the full time effort of multiple artists.
- gambiting 7y agoSo I work in games as well, and one thing you learn really quickly is that this "one weird bug that QA has seen once and no one has been ever able to reproduce or even come up with an idea of how it could happen" will be reported thousands of times and cause uproar on forums once you sell 10+ million copies. It's just a statistical inevitably.
- loeg 7y agoDitto in enterprise, but that doesn't mean you're ever able to reproduce it in house before it ships. You do the best you can when you have a signal to follow. And there are probably other open bugs that impact more customers that deserve higher priority anyway.
- bipolar_lisper 7y agowhy is the most upvoted thing on hackernews right now a story about a bug that came about as the result of bad code > The only logical culprit was a bit of scripting that runs when a companion's health reaches zero: if they're in the party, it waits for combat to end and revives them; otherwise it marks them as dead "for real The code should never have been written this way if the companion is not supposed to die. There should have been an `is_dead()` function that always returned false. This site has declined dramatically and I think it's a result of the quality of programmers we have today vs what we had 10 years ago before the internet became mainstream. None of these comments nor the tweets talk about how bad that code was, but instead kiss the guy's ass. I expect to see more and more posts about games and other trivialities and less and less posts about important topics as the years fly by.
- squar1sm 7y agoGamedev is full of interesting problems. The industry scares me because of a few friends. Fun to hack on, on the side and I’m jealous of the story and mystery this team got to chew on for a while. I know it’s hard but still jealous of these gems.