• Ever wanted an RSS feed of all your favorite gaming news sites? Go check out our new Gaming Headlines feed! Read more about it here.
  • We have made minor adjustments to how the search bar works on ResetEra. You can read about the changes here.

Aureon

Banned
Oct 27, 2017
2,819
Don't have to. There's a Digimon game in the PSX that's completely unbeatable.
YEAH. AND FUCK THAT.
Childhood me ran against a fucking wall there. Goddamn tyrannomon in Digimon World 1. (Reportedly, PAL version only.)

(Basically, a bossfight just respawns after you kill it.)

I finished it 15 years later in an emulator. I forgive you, kings.
In retrospect, i probably wouldn't have even gotten as obsessed with that game as i did if i could finish it.
 

jelly

Banned
Oct 26, 2017
33,841
Cool stories, I don't understand most of them but generally get the gist and enjoy the examples for some. Devs are amazing with the way they solve things enough in the end. Really clever.
 

Deleted member 6056

Oct 25, 2017
7,240
This is the single greatest thread I have seen in years. Please lord archive this legendary thing.

Contributing this gem.


also this one had me dying...

 
Last edited:

Professor Lich

Resettlement Advisor
Avenger
Oct 25, 2017
656
While working on Rogues Like Us, I wanted to add little polish things to our dungeons for fun. One of these things were birds that spawned in select spots that you could run up close to them and scare away. I didn't want them to be gone forever though, so I added in a timer that would have them respawn. There was a slight issue however, just about everything could scare a bird away, including a spawned bird flying to the same spot as another bird. Long story short, we were wondering why the game would freeze during testing until we found this one day.

41HIUXf.png


Less of a 'sin' where something was fudged to get something else to work, but it was a good lesson on making sure you close your loops in code.
 

Hella

Member
Oct 27, 2017
23,409
I love this thread. It's so incredible to hear how games (barely) come together.
 

sabrina

Banned
Oct 25, 2017
5,174
newport beach, CA
Can someone explain the bioshock controller one to me like I'm not a game developer?
Local variables store all of the things you need to remember. How much ammo you have, which animation is playing, current velocity, time since you last used a special attack, whatever sort of information that would be pertinent. The previous might look like:
C#:
int ammo = 100;
Animation currentAnim = "idle";
Vector3 vel = Vector3.zero;
float lastSpecialAttack = 0f;
So what the tweet is saying is that the player character's code in the game needed to keep track of at least a thousand things like that, and possibly several more since you can declare as many things per line as you want to.
 

Pokémon

Member
Oct 27, 2017
11,681
Don't have to. There's a Digimon game in the PSX that's completely unbeatable.

If you are talking about the first Digimon World game on PS1 then it's not quite right as you can beat the game. You are talking about the Agumon bug which only exists in the non-English PAL versions. You can still beat the game but you can't reach 100% completion rate. The NTSC version had other weird bugs but none were as game breaking as the one in the PAL version.
 
Last edited:

Planet

Member
Oct 25, 2017
1,358
Just to give you an example that this kind of stuff isn't limited to game development, I'd like to share this story:

Working on a web application for a major German automobile manufacturer we faced a problem when people created instances of a certain object almost simultaneously. The root of the problem was that every object had to be assigned a unique number (no, not the primary key, that one was a composite key, but that's stuff for another story). Even mildly experienced developers will now say that's super easy, this is what database sequences were designed for. The thing is, we were explicitely denied to make use of those, among a host of other useful technologies and frameworks, because... well... I wish I knew. In large corporations, stuff like this happens all the time, the people making such decisions are not the ones with engineering background. But we had to work with what we got.

We already synchronized the circumstantial number generation on one application server, but the application ran on 2 distinct server instances. Those two instances then occasionally generated the same number, leading to the error. And we also weren't able to get greenlit in time for utilizing other means of sharing information between those servers like Archaius, so we needed a quick solution. Quick like in hours before we had to deliver a working solution or productive deployment had to be postponed a few weeks. Another thing that should work quite differently in 2018, but that's not what I wanted to focus on either.

The quick solution was: I hardcoded the server instance names of all stages into the service that provided number generation. Those were then compared to the server name from the current request and based on that the instance identified itself as even or odd instance, incrementing the number to the next either even or odd number. This resulted in some gaps in the sequence, but that was acceptable to the customer (unlike using the most basic database functionality). It had to be hardcoded because changing the configuration file was also tied to lengthy organizational processes. The whole thing will fail when they set up a new cluster of servers or start adding a third instance, but we made the deadline. Sure, not as funny or relatable as those game dev stories, but we had a hearty chuckle at the loops we had to jump through and how it all ended.

Did I mention I quit my job because I'm sick and tired of projects with ridiculous restraints on the tools and technologies to be used? Yeah, 2019 is going to be glorious.
 
Last edited:

Yippiekai

The Fallen
May 28, 2018
1,476
Toulouse, France
Which one? That sound really bad

Digimon World, Pal version.
You had to unlock a certain number of digimons to get to the next zone, however, after half of the game, you need to speak to an Agumon to enter to Ogremon Fortress. An Agumon that decided in the Pal version to be mute and deaf. And 50% of the game becomes unachievable, just like that.

I still have this damn disk and those fond memories of despair, 20 years ago.
 

Irrotational

Prophet of Truth
Member
Oct 25, 2017
7,171
Has anyone tweeted about the heavy ammo bug yet? It took Bungie several months to fix and their brief explanation did make it sound like ti was very difficult....but was it?
 

thomasmahler

Game Director at Moon Studios
Verified
Oct 27, 2017
1,097
Vienna / Austria
I'm honestly surprised that some of these games shipped this way. Some of the stuff I'm reading here feels like bugs didn't get properly resolved, optimization apparently wasn't a concern, etc. Most of the bugs I'm reading about here would be 'blocking' bugs at Moon and I really hate when people resolve bugs in a lazy manner. Not that what we're doing is completely perfect, but I don't even understand how some of these issues made it through QA Testing.
 
Oct 25, 2017
2,407
Digimon World, Pal version.
You had to unlock a certain number of digimons to get to the next zone, however, after half of the game, you need to speak to an Agumon to enter to Ogremon Fortress. An Agumon that decided in the Pal version to be mute and deaf. And 50% of the game becomes unachievable, just like that.

I still have this damn disk and those fond memories of despair, 20 years ago.

oh god, i played the NTSC version, but don't remember if i reached that far...

How did you find out about that without internet at that time? was it cover in some magazine or something? Now i'm curious.
 

KratosEnergyDrink

Using an alt account to circumvent a ban
Banned
Oct 27, 2017
1,523
I'm honestly surprised that some of these games shipped this way. Some of the stuff I'm reading here feels like bugs didn't get properly resolved, optimization apparently wasn't a concern, etc. Most of the bugs I'm reading about here would be 'blocking' bugs at Moon and I really hate when people resolve bugs in a lazy manner. Not that what we're doing is completely perfect, but I don't even understand how some of these issues made it through QA Testing.

Thats how I feel about some of these "confessions". Even when I began programming I had a sense of what is the right thing to do and whats not. Everyone makes dumb mistakes but I would never even considered some of the "solutions" or "programming techniques" mentioned here.

And with such messed up code its just impossible to port it to other platforms than the specific one it was made for. Meaning a lot of work has to be done if a port is necessary. This is why even some very simple indie games made for PC runs like trash on consoles.
 

Chronus

Member
Nov 2, 2017
460
I love Rube Goldberg machine stuff in lieu of actual scripting solutions. Doom 1 and 2 have a similar thing for monster spawning encounters. The monsters are all sitting in a tight hallway with a see-through window that's only visible from their side of the plane. Once they see the player and are triggered, since the halls are so tight they can only move forward toward the teleport trigger that takes them outside. This is also why the teleport rate ends up being somewhat random since they'll sometimes change direction and walk the opposite way in the hall, but they will inevitably walk over the trigger.
Most Doom spawn traps work because enemies react to sound. The little one way window allows sound to propagate to the enemies hidden away in the out of reach room, waking them up, while maintaining the illusion that it is a regular wall to the player.
The same kind of technique is used in the original Quake, but this time, it is a dark room completely detached from the play area. The enemies get teleported whenever the player crosses a trigger instead.
In Duke Nukem 3D, the way the devs did the swimming effect was pretty rad too. Whenever the player pressed the dive key, he would be instantly and silently teleported to a room in another part of the map where gravity had no effect. In order to further simulate being underwater, the sound would be different and the ceiling of said room would have a water texture. If you touched this water ceiling, you'd be teleported back to the original room.
Old school games had so many of these fun little tricks.
 

Weltall Zero

Game Developer
Banned
Oct 26, 2017
19,343
Madrid
This thread is amazing. I don't have anything nearly as funny to share. The most I can remember is that at some point I must have misplaced a sign, because rather than crumble to the ground when destroyed, buildings would take off to the sky like rockets instead.



This is absolutely incredible. I'm nearly rolling on the floor laughing here just imagining it. :D

I don't think this one should be considered embarrassing. It is a perfectly valid design and production decision.

Particularly when you take localization into account!
 

ILikeFeet

DF Deet Master
Banned
Oct 25, 2017
61,987
some game no one ever heard of

I'd never coded 3d sounds before so in Celeste all the objects update their sound position every frame relative to the camera instead of moving the listener. I have no idea why it didn't occur to me that obviously the listener shouldn't be stationary


what the people don't know won't hurt them

During a school project we had a segfault that would happen at the very end of our game Rather than spend hours debugging b4 our presentation we just took a screen shot of the end screen and set that as the desktop wallpaper so when it crashed to desktop it looked like the end


hey, it works for bethesda

the grass in my last game are actually trees