It’s weird how quickly time passes when I’m working on these levels. In some ways it’s hard work, and I often feel quite tired afterwards, but in the moment the hard work is effortless, an endless series of tiny changes that see hours pass me by. What’s a bit frustrating, though, is that I know that this work is impermanent: I’ll have to redo a lot of what I’m doing now as I develop the tilesets and figure out what works and what doesn’t. Well, if it wasn’t a bit stop and go and trial and error it wouldn’t be educational. I’m sure I’ll get the hang of it as I go.
As I build out the first really interesting and detailed area of the game – the first couple screens are just an introductory area without much action – I’m taking notes on changes to make to the programming and how to approach the tilesets. The first area is detailed enough at this point that I’ll probably spend a lot of this week working on tilesets, mostly just trying to get some really nice looking dirt and grass for the first areas. I can already tell that this is going to require a lot of back and forth, tweaking the level then the tileset, the editor then the level, the tileset then the editor, until I feel like I have everything lined up to go basically the way I want. It feels like progress, though.
I also spent some time fixing bugs with navigation map saving and loading, and I finally got around to fixing the bug that was causing each level to load multiple times. I spent a little bit of time exploring why the game takes a while to start up, and have more or less conclusively determined that it’s because I’m loading way too many files, and even though they’re tiny the overhead of loading them all is slowing the program down. This is actually good, because I have a solution nearly ready to go: Rather than importing individual frames of animation, I can create tilesheets. This is usually how it’s done anyway, and it’s mostly laziness on my part that’s taken me this long.
That actually brings me pretty handily to the subject of AnxEdit, since one of the primary tasks I’m creating the editor to help with is quickly and easily converting between individual frames and tilesheets. I created most of the frame importer this week – in fact, I would have likely finished this morning if I hadn’t run into a very frustrating problem. This problem was so frustrating, and I found so few resources for how to deal with it in my searches, that I’m going to go to some extra trouble to emphasize it here in case anyone else is running into this problem.
For anyone using Haxe or AS3 and having trouble with Flash/AIR’s File.getRelativePath() function returning null
Before you call getRelativePath(), call the canonicalize() function: This will ensure that the path you’re trying to source from is accurate to the actual file structure, which apparently is a big enough deal that getRelativePath() completely breaks if you don’t do it.
There. I hope you can avoid the frustrations that plagued me this morning.
Anyway I’ll try to get some screenshots and maybe a bit of animation up next week. Things are kind of right in between places where they’re interesting to show off.