February 9, 2010

466 words 3 mins read

Bafflingly stupid programming & error reporting

Last night I was playing Star Trek Online for the first time in a few days. I played a good couple of hours before the game took a dump on me. After they got over the initial hurdles of the launch, the game has been relatively smooth to play so I’ve been happy. Plus the problem occurred during a load from one zone to another after a quest was completed, so I didn’t “lose” anything. I got a message saying that I was “Disconnected From Server”, but it doesn’t give me any options to do anything about it (like quit, or reconnect). Being the good little QA minion that I am, I like to report these type of issues to the developers so they can fix them. I knew there was a tool that came with STO for this exact purpose. It wasn’t widely published, that I know of, but I ran across the EXE once. So I dug into the folder, found and launched “crypticError.exe” and then it started to crumble.

The first screen is fairly simple, you select the running process name and explain what you did/what went wrong. Simple enough; I did so then it started collecting data. Great, after about 10 minutes I came back to find it still uploading a dump. I thought this was a little odd so I looked closer. The “dump” was over 1 GIGABYTE in size, which corresponded directly to the exact size in RAM the game was taking up. It was uploading the ENTIRE game’s RAM state. Now, don’t get me wrong, I understand how that can be useful… but this is a VIDEO GAME on a CONSUMER’S machine. You launch the thing and it is taking up over 300MB of RAM. Even on my go go speedy DSL line, it was going to take about an hour and a half to upload the entire dump. My DSL is also fast, and uncapped. What about those people who have 1.5meg lines, and have bandwidth limits.

Seeing things like this just blow my mind. It wasn’t like I clicked some checkbox that said “Upload over 1GB of RAM state”, because you don’t have any checkboxes to hit. Plus, I hate to say this, but there is no damn reason for the error reporter to upload the entire RAM state. Why does one need to upload all the texture data? Report the file names loaded into memory and the checksums. If a checksum doesn’t match, then that could have been the culprit.

It is safe to say that shitty design like this is why some error reporting tools never get used. I wouldn’t be surprised if the devs were actually shocked the first time anyone let this tool run it’s full course (provided anyone has been that dumb).