Monday, September 09, 2013

Gridiron Solitaire #71: Meltdown

Wednesday and Thursday last week were the two roughest days I've had on the game since I started.

I put out a new build on Tuesday night, and suddenly, for some people, the cut scene wasn't playing. Worse, when it didn't play, the users didn't have access to any of the buttons on the Title Screen, so they couldn't play the game.

Later that day, someone reported a crash while simming, and it happened every time. So that tester couldn't sim at all. They sent me their league files and option file, and I could sim on my machine just fine.

One of the things that has always kept me going on the game is that it's always been highly stable. Sure, there have been crashes I had to fix, but overall, the number of crashes have been low.

In the last two weeks, though, after the introduction of one specific 8.1 machine, I've had more crashes reported from that one tester than I had from the other fifty testers combined.

Combine all that and I basically had a freakout day on Thursday. I was just completely overwhelmed.

Combing through the wreckage on Friday, I started to find little things. I thought I hadn't changed anything with the cut scene, but actually, I had. Up until last week, while the cut screen was playing, the buttons behind it were still selectable. They were mostly covered, but not completely.

That's bad, so I inactivated those buttons until after the cut scene ended. Basically, an event fired when the cut scene ended, and I just hooked onto that event and reactivated the buttons then.

Seems reasonable, right?

Well, except when things were happening that I didn't understand. In this case, what I didn't understand was that if the cut scene failed to play on some systems, to the user it just appeared that the cut scene never started. They wouldn't even know there was a cut scene, and they'd just proceed with the game. So the cut scene had always been failing for a small percentage of testers.

However, when I made the buttons not selectable until the cut scene finished, I wasn't accounting for situations where it didn't complete successfully. There were cases where the media_ended event didn't fire because the cut scene didn't end.

In other words, I had no error handling to handle unexpected problems with the cut scene playing. That's manageable. I can fix that.

This was very simple and logical, in retrospect, but it was very, very painful to work through. When I did, though, I realized the sky wasn't falling.

Simming crash? When the tester put the latest build into its own directory instead of overwriting an existing directory (which usually causes no problems), simming worked fine.

Now that I'm off the ledge, I was able to do some good things on Saturday forward. I fixed lots of little things that were "non-working atmosphere", for lack of a better term. They didn't crash the game, but they were nice little touches that weren't working correctly.

Working atmosphere is good.

There were also some small functional touches added. Now you can hit the ESC key from anywhere and the options menu will pop up. The offseason broadcast now has blah blah blahs (thanks John). The backup file system (in case one of your league files gets corrupted) is now fully functional. There's special text if one of your punts goes out inside the opponent's 10 yard line.

The last touch of the championship celebration is almost finished, too. Now, after the confetti, there's a team picture that gets taken in the middle of the field.

There's a camera flash visual and sound effect when the picture gets taken, too. It's just a little bit of extra cheer.

So I'm off the ledge and moving forward. Hopefully that ledge will remain unoccupied from here on out.

Site Meter