Although things have been quiet on the Blogging front, things have been continuing behind the scenes. The past few sessions have seen the enemy system revamped to allow enemies to be dropped into the game at the Player's current position. At the moment they only move left and stop; this being a state-based AI system, there's only so much I can teach the little guys to do right now.
The biggest challenge with the enemies revolves around Blitz Max's list system: in an entire list of enemy objects, it's actually nigh-on impossible to gracefully target one specific enemy for editing or deletion. After some careful coding, I managed to come up with a workaround, but I worry about the speed impact in the final game.
After two or three short evening sessions, I had multiple enemies doing their thing, enemy selection/highlighting implemented, and the ability to change some of the enemies' rudimentary data. I also tweaked the game to run within a window, allowing me to add a GUI editor (I had previously experimented with a text-based menu system, but why re-invent the wheel when Max GUI is sitting right there?).
The past couple of days have been spent putting together the basic framework for the editor; while this may seem premature, structuring the editor will also help me to a) work out the data structure for the enemies, and b) work out precisely the kind of functionality I want the enemies to have.
Rather than code by hand, trial, and error, and not enamoured with the thought of cutting and pasting in PhotoShop, I loaded up a great little utility called Logic GUI, and created the basic shell of the editor, fleshing out ideas as I went along. Despite a few quirks, it was a simple process, and already I have a much better idea of how the editor will look and the enemies will behave.
Having exhausted all of my ideas, I turned to a couple of previous projects (Creatures and Mayhem on the C64, and Last Ninja: The Return on the PC) to see how they handled their enemies. In the case of Last Ninja, I worked on the project for several months and became very intimate with its superb in-game editor (a testament to John Twiddy, who's approach to such tools very much shaped the way I've handled other projects).
Armed with a host of new ideas, now it's time to start building the editor...
