Saturday, July 23, 2011

Third Praetor Campaign Underway

I've been seeing a lot of crashes reported by Praetor users, and the new WP7 developer "App Hub" reports statistics that corroborate: both the for-pay Praetor and the new ad-supported Praetor Free have been crashing far too often.

To fix this, over the last few weeks I've been concentrating on finding and fixing crashes and adding defensive code to make any as-yet-undiscovered bugs less visible in the field. For example, one of the computer opponent's current symptoms is that sometimes--maybe once every fifty battles or so--it will run forever trying to decide on its next move. I've found and fixed lots of causes of this, but there might be more causes--so I've taught the for-release builds to just give up looking for new options after a certain amount of effort, such that the computer opponent might play stupid but at least won't crash and bring the game down. Invariably that kind of defensive code is disabled in my debug builds, so that I'll still see the bad behaviors in house and will have a chance to fix them.

The newly stabilized Praetor 2.4 is in the release process, awaiting Microsoft's say-so to release. With any luck this will be the last substantial update I'll need to make until it's time to release the next campaign as Praetor 3.0.

With every campaign I'm adding 25 new battles, including 25-35 new bad guys and 20-25 new good guys to join your army. I'm also trying to add new features to the base game, however simple--for instance with the Water campaign I added the new Swamp tiles, which have an unusual effect on your movement across the land and can inflict a nasty Swamp Rot on your creatures. The Water campaign also added the idea of Allies--named warriors that join you on the battlefield as each fight begins.

The screenshot in the upper-right is faked--it's just a mock-up that I'm using as I try to get the visuals right--but it shows two of the new things I'm adding for the Air campaign. In the lower left is a series of Desert tiles, which inflict Exhaustion much as Swamp tiles inflict Rot. As your creatures try to travel through the deep desert their movement speed slows and their movement cost increases, and the longer they stay in the desert the more strength they lose. That strength recovers slowly once you leave the desert--unlike Rot, Exhaustion isn't fatal--until you're back to full strength. The result should be that crossing a desert will be a lengthy, wearying process--just as it should be.

More interesting is the red field in the upper right. Yes, Praetor is going to gain walls now: with the Air campaign you'll actually be tackling multiple cities and other fortifications, and you'll need to bring your catapults and siege engines to break down those walls. Oh, it's going to be simply tremendous.

I wrote the first 50 battles (all I've published so far) one at a time, kind of choosing where the plot would go with each battle as I wrote it. For the Air campaign, since I've been writing code only to fix bugs in the current release, I've spent time designing the new campaign instead of just immediately writing it. I've now got all 25 battles figured out ahead of time: all the bad guys, all their skills and strengths, all the things you gain and all the little plot twisties are already plotted out. That should make actual construction of the levels a lot easier to accomplish, since that creative part is the stuff I find hardest to accomplish--and now it's out of the way, leaving me able to concentrate on the easy part (the coding).

Oh, one more spoiler: in the Air campaign you'll be picking up a new ally: Kaitronius, a cousin of your second-in-command Tallius. Kaitronius will be with you for the rest of the game, and eventually the land in which you're fighting will be named for him ("Kaitron") when he is martyred near the end of the Fire campaign. That's all paving the road for the follow-up game "Lords of Kaitron," which I'm busily plotting out.