So the past week was an exciting week, because I accomplished two thing that I have never done before. I have caused my first major bug at the office and I finally beaten one of the video game that defined my childhood, the original Crash Bandicoot. Now those may not seem all that interesting to some of you but hey, not every week gets to be the week where you beat your personal best time for the half marathon. Appreciate the small things, you know.
Now, there is not a lot to appreciate when causing a bug in your software, especially in the industry that I am in. So what happened? The gist of it was that we had files that an empty field that would cause a program to crash. We figured that we could add a check upstream a catch when that field was empty and get rid of that specific entry in the file. I was given a file that contained an example of such an entry and assumed that the file was an input file. After all it had the correct layout. So I did my magic on the code, tested it with said file and all was well. The faulty entry was rejected as it should have, and nothing else was different. All good! Right?
Well the thing was that the file was actually an output file and the field we checked gets populated inside the program. By placing my check at the top of the logic flow, pretty much every single entry on the file would get rejected…. Ooops.
But Alex, don’t you have test environments? Shouldn’t you have seen that something was wrong? Well, our test environment is junk. I checked and while we should have seen the same issue in the test environment that occurred in production, my faulty program made no difference in it. Junk data came in, junk data came out. Hard to pin point a fault in a system that is entirely faulty to begin with.
We were able to recover all the data and rerun the old version of the code, so I am not in hot water. I will have to explain to bunch of people why and how I screwed up but that should not be too painful.
Forget about all that work related nonsense, tell us more about the good stuff! Why, thank you imaginary reader! I did not realized that you cared so much about PlayStation 1 games.
Growing up in the late 90’s, there are two game franchise that I have very fond memory of: Crash Bandicoot and Spyro the Dragon. I don’t think there have been any games since that have matched their level refinement when it come to action/platforming. I have spent countless hours as a kid trying to get everything single collectibles in every level but there was always that one game that just relentlessly defied by attempts to beat it: The first Crash Bandicoot game. The third one was my favorite, I knew like the back of my hand and could probably beat it in my sleep. The second one was a bit tougher, lacking the double jump made getting some of the jumps a bit hard (like getting to the secret exit in Air Crash…). The first game however had the harshest level of difficulty a game can ever have: no save feature.
In the original game, the only way to save your progress was to complete one of the bonus rounds that you could find in certain levels. As you progress through the game, the levels would get tougher and so would the bonus rounds. Also, you only had one try at the bonus round, if you failed, you had to restart the entire level! As a kid I managed to go up to the level Road to Nowhere and never managed to beat it. Very disappointing.
When the games were re-released on the PlayStation network as PSONE classics, I ended up downloading them to my PSP and played through them while I was in college. I did manage to go quite a bit further but hit a stumbling block. There was a bonus round in the level Chemical Plant, right before the Pinstripe boss, but the next level with a bonus was Slippery Climb, which was incredibly hard. In order to make any progress I would have needed to beat Chemical Plant, Pinstripe, a Bridge level that was really annoying and make it through Slippery Climb, something that I never managed.
Finally, Earlier this year, Crash Bandicoot N’sane trilogy was released. Complete remake and modernization of the original games. Now, they made a major change to the original game that made it much easier: the game autosaves after every level. That being said, the levels are not any easier.
One thing that I notices through this run through of the game is what made it so hard. Crash 2 and 3 had a whole collection of enemies that served as the main obstacle while bottomless pits were more secondary to the level designs. In the first Crash, it all jumps and tricky platforming. There are the occasional enemy but they are more distraction than anything.
After many grueling hours of failing jumps and stupid deaths, I finally achieved 100% completion! Ah, the satisfaction of finally seeing a game that I have played for so many years bite the dust… I might even put the effort in getting all the time relics that were added, but I think that I will spend more time doing Planet Coaster stuff.