And here we are in July, in what is proving to be the most “interesting” year of the new century so far. And I don’t mean that in a complimentary fashion. 😛
My 45th birthday is coming up this week, and sadly I’ll have to spend it at home alone. My family (my mom’s birthday is the day before mine, my brother’s a week after mine) all live in Yakima county, which if you’ve been reading the news, has the highest rate of infection and positive cases for the entire west coast. This doesn’t surprise me in the least; the county’s population is very neanderthal conservative and pretty much ignored all the state government’s emergency mandates until just a month ago.
Even though my family is being ultra-safe, we decided it’s better I don’t come come over to visit until things improve a bit. (I’ll have to deliberately self-quarantine myself coming BACK, just as a precaution.)
And meanwhile, testing continues. And continues. And continues some more!
Beta 29.4 is nearing the end of it’s cycle and 30 will be coming shortly. One of my testers has been both enthusiastic and thorough, and it’s really helped with finding content bugs and even code bugs. I really wanted 30 to be the last beta build, but we’ll see how that goes.
The engine feels like it’s getting pretty solid now. Although… there is some signs there may be some subtle and inconsistent bugs in the code somewhere. After several hours of play, testing started to see little “glitches” on the display, and crashes when interacting with mobs. A game restart cleared up the issues. These could take awhile to hunt down, unfortunately…
One example was a bug with teleport in combat. It crashed the game, but not every time. I eventually had to use a debugger dump to figure out where it was before it went crazy, and it turned out the data table storing the address for the “teleport” routine was getting over-written by monster pathfinding algorithms, as they were next to each other in memory.
I also had to make changes to content when it came to altering maps. I have script and mob types that alter map tiles, but I had to greatly reduce their use. Why? Because they reset after you reload. This creates situations where a player may get trapped. This is something I never noticed in my own testing because I wasn’t playing a “save/reload” style a typical player would.
Both my level curve and monster stats needed adjustment as well. My main tester easily got the party to level 11 (out of 16) without even touching several areas of content, and generally found the bosses easy to defeat if they didn’t have any special attacks. I’d rather err on the side of “too easy” than “too hard” though.
One thing this whole process has made me realize is with any complex system (like a CRPG), the amount of testing is staggering. You could get away with less testing, if you have a much more simple system, but you may not end up with that great of a game.
Also, it’s important to leave your ego out of it. As a game designer and coder, you may get feedback you don’t like hearing. I wasn’t convinced that floating values for damage was necessary, and it was a pain to implement, but I did it. And I’m glad I did so now. Good testers make for a great game!