DragonCoder here! As Highway to the Moon hits storefronts, we’re taking a look back at the road we took to get here with our post-mortem series. For this article, I’ll be talking about some of the things I learned developing the Level Editor for Highway to the Moon.
I had started the Level Editor shortly after Sientir started on the Enemy Editor, since it was his idea to use C# to make our own tools for making game data files. Unfortunately, I had never used C# before; I had to learn on the fly. Add in that I had not kept up my C/C++ programming skills, and I was a little overwhelmed at first. I started small, making a program to move and splice images. After that, I dove straight in and got my hands dirty, so to speak, with the editor in earnest. Unfortunately, at the time I did not have the experience needed to make sure that the end result was a quality product.
I went in without a solid plan of how the various parts would fit together, and just tackled features one at a time. This got a basic version of a couple of parts of the final editor up and running quickly, though as more features came online, and finishing touches needed to be made for the basic functionality, things started to bog down.
One of my biggest mistakes was to make the ‘game world’ represented in the editor be fully defined by the graphics editing section of the editor, which was where I started making the tool. This meant that every sub tool that needed to see the game world (which was most of them) needed to have a window in it the exact same size as the one in the graphics sub tool. Needless to say, when Sientir started to help me out when I needed help with the Physics sub tool, it was a major hurdle.
Then there were the problems with how it was structured overall. I made the whole editor thinking that it would work best to work on the level as a whole then break the level into segments that could loop. As it turns out, that takes some getting used to and is not very intuitive. A better solution came to mind after working on the system for a while; I would make the editor edit the segments directly and then have a sub tool to organize the segments and determine conditions for looping.
The Level Editor that I made was functional, but it definitely could have been better. I am glad to have had the experience of making it, however, and I certainly have learned from it. When we make other editors in the future for other projects, they will benefit from the time and energy spent on this editor.