My original plan was to write the game engine, then create a game editor that would assist developers in creating games for said engine. However, it is hard to write a game engine when all of the test data (levels, characters, scripts, animations, etc) all have to be hand created for each test build, and as you might imagine, it gets tedious too.
It seems only logical that I should develop the game editor alongside the game engine, that way I can be sure they are compatible with each other. Most importantly, I can create test game object in the editor, and then run them in the game engine and make sure everything is working as expected.
Therefore, I've decided to temporarily suspend the development of the game engine until after the game editor catches up with it. I'm not TOO far along that it will significantly delay anything, and the way I look at it, nobody will be able to make anything for the engine without an editor anyway, so you'd have to wait anyhow.
The good news is, I have a really good idea for how I want this editor to work. I'm thinking about making it a model form, meaning that it can have children windows. The main windows will have a tree view on the left with categories of objects, like windows explorer folder view. To do anything, you would open a folder for an object type (such as tile sets), then a list would appear under that of tile sets you've created and saved. You could double click one to open it up, then import images into the set.
After a tile set has been created, you can create a new map. To draw tiles onto the new map, click the tile you want to paint in the tile set window, then click to draw that tile in the map editor.
Sprites will be similar, except they will be broken down into actions (such as walking, standing, attacking, getting hit, dying, etc) and then further into directions (north, south, east, west, etc). Then you will import a series of images that will be looped for each direction. There are a lot of options here that will need to be set, such as where in the image does the characters feet stand at, and what color should be regarded as transparent.
Scripts are possibly the hardest thing to implement. Instead of making you type in scripts in the low level game scripting language (not fun, by the way), you will be presented with a text editor, and you can type in an actual scripting language. This gets compiled into the low level language when the game is packaged for deployment (compiled).
The beauty of this is instead of referring to objects by their game engine ID number, you will be able to declare variables of each game engine class type, such as a character sprite, or a map, and refer to them as such in the scripts. You will be able to refer to maps, sprites, etc, using the names you gave them in the editor (such as world.map, OzarkCanyon.map, hero.spr, and such), instead of assigning a file name to a register index, and having to refer to it as some abstract number from there on out.
For right now, I'm aiming to get at least the functionality down that I have been able to manually code in notepad, and make it so that the editor can save and load projects so I can continue working on them after stopping and closing the editor session.
Once this is accomplished, I will return to developing the engine, one little piece at a time. Only at that point, I'll be able to test these components As I develop them.
No comments:
Post a Comment