Times, trials, and turbulence.
Map Editor: BattleForge!
Getting Started on the Map Editor, and The Slump(tm)
As I’ve been hinting at for the last week or two, I’m at the stage of development where creating a map editor is overdue. Up until this I’ve been generating simple 50×50 maps consisting of randomly-sized rooms. This should be painfully obvious to all of you who have been keeping up with progress over these last several months. 😉
Writing a map editor can be a task ranging from simple to insanely challenging; it all depends on who your audience is. Any lone programmer’s favourite is likely the simple-to-code-but-incredibly-archaic editor, which the programmer naturally understands how to use, but anyone else is clueless. However, since the Skirmish map editor will be freely available alongside the game, I need to cater for a very wide audience. User friendliness is paramount, which means much more planning and more precautions have to be taken.
Development has been a little skittish lately because of this, since it makes the task before me feel all that more daunting. Making a clean, efficient, user-friendly map editor is a large task — just ask Jon about Stencyl! — so I’ve been relunctant to really sit down and get cracking on it.
Instinctively, fear of failure kicked in, and I tried convincing myself that I’d be better off working on a smaller simpler game project. I don’t really talk about it, but this is a nasty habit that I’ve had for ages now. When a large project starts to get to a particularly difficult part of development, I tend to saunter off and start a side project, if not quit the project entirely. Remember that Voxel Renderer? That was a product of the grimness of tackling the damage/resistances system and particle engine in Skirmish. Since a good experience came of it, I suppose you could argue that it’s a good habit. In fact, more than one of my games were brought to fruition by these means. However, if I ever want to finish Project Skirmish, I’m going to need to remain focused on it and not let myself slip off to less challenging projects. Feel free to whack me upside the head if you catch me slipping again. 😉
Stop cringing, it’s just a placeholder name. 🙂
BattleForge is the Work-In-Progress name of the Project Skirmish map editor. Like I said above, it will be freely available alongside the game itself, and will sport a clean and user-friendly interface. For those of you who have used SME, the last iteration of Skirmish’s map editor, expect to see the bar raised yet again. I don’t intend to go overboard or commercial-calibre, but my aim is to make the editor simple enough that somebody with no knowledge of how Skirmish works or plays like can sit down for the first time and get the editor to do what they want with minimal hassle.
Naturally this means that lots of fine-tuning will need to take place as development progresses. I haven’t decided how I’ll manage it just yet, but it will likey be something like posting betas on my development journal here and collecting what feedback I can from readers. By listening to the users of the editor as much as possible, I should be able to get the editor in good enough shape that it will be more than ready by the time the game itself is open for Beta.
Where does BattleForge stand right now in development? Early yet. One of the concurrent tasks that must take place is the creation of the GUI system, which will manage all of the user-interactable components like buttons, panels, menus, and so forth. I realize it is possible for me to embed an OpenGL screen within a Swing or SWT window and use a Java windowing library for my interface, although I’ve decided against it. Why? One reason is that I simply loathe Swing and SWTs’ APIs — tons of bloat. Rolling out my own system using OpenGL ensures that I have everything that I want, and that it is integrated seamlessly with the rest of the game.
That said, development is still very early, but the rough shape of the editor can be seen in the screenshot below. The idea is to have a hint/info-bar along the bottom, and a side-bar along the right side of the screen. The side-bar will be able to move between several different modes depending on what the user wishes to edit (tiles, props, decals, lights, etc). A mini-map will also be implemented for easy navigation of the map, although I’m unsure of where it will be placed as to not obstruct.
I’m still going to hold on to my original (loose) goal of having something downloadable (alpha of course :)) by the end of my Christmas holidays, which should be a safe bet now that I’m past the initial barrier of getting started on it. We’ll have to see if I can port some of the maps from the last iteration of Skirmish over, too. 🙂