Release week is always frustrating. On Android I just cannot test on enough devices, so I know that something is always going to bite me, and Monday morning it did. None of my Android testers had had any problems with the game loading, but Monday morning a number of devices were reporting that the game wouldn’t load. Later that night I spent a few fraught hours fighting with hotel WiFi trying to get an update tested by the affected customers, and then released.
In this instance it was an easy fix. In fact, I had already addressed the issue the previous week for the Windows release. Some last minute testing on my Mac Desktop running a windows VM, full screen, highlighted an issue of loading the splash screen. At the high resolution the splash screen was larger than 2048. When this image was being loaded, it was converted into a power-of-two texture and thus a 4096×4096 texture. The texture loader I was using was choking on that. A quick change to the affected images, across all resolutions, resulted in a fix, and a 5mb reduction in app size to boot!
This was the problem that affected some Android devices. So all I needed to do was rebuild the current version for Android and send it back out. In the end, the Android release was probably a lot smoother than The Lords of Midnight.
The next thing is the bugs that come from the game play. No matter how many testers play the game, no matter how long they play for, these things always seem to get through. What always amazes me, is how? Sometimes you just look at a bug and think, ‘how did no one notice that?’.
This is also, exasperated by the fact that I am releasing a retro remake. Some people remember how the game worked originally, some in amazing detail, some not so well. Doomdark’s Revenge had holes in it, it was never as polished as The Lords of Midnight, and I have kept those quirks. It’s important to me that the game plays like the original, before I think of making any changes to improve any originally flawed game play.
The problem is, these things are reported as bugs, and I need to investigate them, and often go back to the original to research and compare. A case in point is AI lords just leaving a battle. When it was reported, I thought about it, and I remembered from writing the battle code that there wasn’t anything that stopped the Lords wandering AI from kicking in when they were in battle. In The Lords of Midnight, there is an explicit check for wandering regiments, ‘if there is something at this location, stay here.’ I went back to the original code and noticed that there was a check that tested if a lord was in a tunnel they would not be moved. Now, AI lords can’t be in a tunnel, so that seems like a redundant check. It’s a bit flag check and I wondered if it was checking the wrong flag. When I consult my reference code, I look at my 80×86 disassembly, so I wondered if I had made the mistake 25 years ago. Going back to the original z80, the code is the same. So, either Mike intended to check for tunnels, or he made a mistake and it’s a 30 year old bug.
There have been a number of cosmetic issues, some of these are caused by different screen resolutions. A number of people didn’t like they way Dragons in particular looked at dawn. Most are easy fixes. There were a few UI/logic issues, times when you could do something that you shouldn’t be able to. This just results in the game being a little easier.
The biggest issue is with battles. One problem is reporting. The reports will show that a lords and his soldiers have killed X of the enemy. But that could be a combined number of a lord and a stronghold, or it could be from the stronghold and not the lord. There is no guaranty that when fighting at a location with multiple lords, that you will fight everyone. So you might inflict casualties but not notice the lord losing any soldiers, because you actually killed soldiers in the stronghold or another lord.
The next issue is that strongholds regenerate soldiers every night. So, they start with 1000 soldiers, you kill 200, you expect them to now have 800. But they generated 100 soldiers overnight, and thus they have 900. This isn’t helped by the fact that the owning lord takes from his stronghold. If the stronghold has more soldiers than him, he takes the difference less an amount. I actually have two bugs in this logic, firstly, I coded it wrong. An AI lord can take soldiers only from a loyal stronghold that he is currently at. I had him taking them from his own stronghold every night, regardless of where he is. Secondly, when the soldiers are given to the lord, I wasn’t taking them away from the stronghold. What this means is that unless you wipe out the stronghold, every night, the lord will be ‘magically’ topping up his army.
The final issue with battles is that strongholds appear not to be changing owners when they are reduced to nothing.
I have been working through all the issues, and hope to release a new version later this week. You can keep and eye on the current list of fixes here…