While caught up in the complexity spiral, I committed a cardinal sin and spent a day optimizing some code I hadn’t even bothered to profile; finally profiled it earlier today, and at first the results looked bleak, it was not even showing a 10% boost in performance compared to SendMessage, and I was feeling pretty stupid for wasting a whole day on it. Then I realized – I was profiling only one specific situation, when the message is sent and received. So I set up some test cases for the case of sending a message which nobody is listening for – which is much more common, given the volume of messages sent by the new input manager – and in that case it was blowing SendMessage away!
With the new touch input scripts, I think I could throw together a basic clone of Flight Control in a day or two; only feature I would have to add is the detection and verification of landing vectors relative to the runway, but it would be pretty easy to implement using the events the existing line path classes do provide.
Entirely new feature, implemented a system to automatically path around small obstacles, using dynamically-generated circular, elliptical, or rectangular border paths, which can be rotated with their objects. It’s overkill, from the last phase of my complexity spiral, but ultimately it produces exactly the behavior I was needed (and more), and is cleanly integrated as an extension of the touch input and line drawing scripts, so I’ve kept it in and slashed all the other systems it was originally built on top of. This bit resolves what was the biggest frustration point in the early prototype builds, so I’m highly optimistic that once the rest of the code is integrated with the new input foundation, it’s gonna be a lot more fun and a lot less frustrating.
Still quite a few things to implement, but everything input-related is going to be easier than it would’ve been using the old system, and the new code seems to be a lot more solid, so won’t have to keep duct taping everything to prevent it collapsing as I add features like I was before.
On the asset front, have the first sets of assets coming in from my artist now, and they look great! I’d started to feel like my programmer art was pretty good after staring at it for so long, but any delusions about that were shattered once I had some proper graphics coming in to compare them to. Will have all the graphics I need for the playable demo by as soon as the end of this week, though there’ll be a lot more graphics to get done after that.
So things are moving along pretty well, I have to say!]]>