Started work on the Bert Engine and I am very temtped to make a level editor prior to making the platform engine. I quite like the idea of a common engine and levels held in files.
I made a level editor years ago in TGF1 so i know the process there abouts although this time round i will use APO and tilesets.
My only concern is felxibilty (say i want moving platforms, level specific objects, talking event triggers, swinging balls/swinging platforms etc etc). I have already decided on a level type control (i.e. map, level, boss, race) then upon loading a level file it selects the appropiate engine.
What are everyones views on editors ? Decided I want to try to do one anyway
Level editors are quite nice. Not only does it speed up level creation on your end, but it makes things so much more efficient since you only need one frame to load many levels. It also means the players could potentially make levels. ;D
It does depend on many factors whether you should make an editor. If it its quicker and easier to do it without an editor do it without.
The game I'm making at the moment is so complicated I'm better off designing a good editor first to speed up level creation.
I decided to have internal tiles for my editor which makes it much simpler to create specific objects with all their attributes included in the MFA. Although I also use just one frame so even though there might be level specific object they're all sitting in the main game frame with 'create at start' unticked.
I find the editor is great for quickly producing levels without worrying about having to copy events or objects. Also because i don't like how quickly the MFA size increased with each new frame having a nice small 5kb level file sitting outside the main game is great.
IMHO, main use is if you plan on having people edit maps. So you can get a codemapmonkey to draw them for you. Or if your maps are very repetitive, like lots of tiles. Otherwise, they're more of a burden. Unless you enjoy making them, of course
Disclaimer: Any sarcasm in my posts will not be mentioned as that would ruin the purpose. It is assumed that the reader is intelligent enough to tell the difference between what is sarcasm and what is not.
That was my thinking, unless a map is like Super Mario Bros 1 I can see the editor becoming quite complex.
I still want to do one though as i do think it will speed up making levels, reduce file size and if the engine turns out any good - be re useable... If it turns out too much of a burden I will forget it and just make the game tho
Like Muz said, it's really about whether it's a repetitive level design or not full of crazy unique objects to each area or level. If you need a lot of custom objects and things coded specifically for a certain level, maybe level editor is not the path you want to take.
The only major limitation of level editors is that you can only create 20,000 backdrops at a time. Other than that, they are great for most multilevel games. And after you make one, you can modify that one to fit other games as well.
Probably the best editor i've seen is the one for the underside.
The Way Ive approched Sk8r Boy,
was to make the movement engine, then an editor, my idea was like most ppl, to speed up the level design sections in the end,
Ive gone for an ini file per level as a save, and it saves the item number, and the x and y position, its been a bit of a pain to pull it to a nice working point, but its working nice, and the bonus idea that made me pick ini for the save is that levels could actually be posted on forums and copied off, because its only text.
----------------------
Time for a Sexy Party!
----------------------
I've done level editors befores, but I doubt mine are near as good as Ricky's. The trouble is debugging them. You just getting master array and create/add and you can do it!
What you do is run a loop for your XYZ and you create events to compare the current XYZ loop indexes and see if that position on the array has a corresponding value/string attached to it.
What I do is:
Start of frame | run loop z (z Dimension times)
on loop z | run loop x (x Dimension times)
on loop x | run loop y (y Dimension times)
Then add an event for each type of object to create.
on loop y
+ (Compare two general values) (Array)StringatXYZ (loop index X, loop index Y, loop index Z) = "ball"
> Create ball object at 0,0
> Set ball's position to loop index x * 32 (or whatever tile/unit size), loop y * 32
See, the loops are running a 'ghost' run of every XYZ position on the map. They aren't really moving the array (therefore, don't use "Current Array Position" in any formula, as the array is sitting at 0,0 or 1,1), so eg at any one point in the 3 loops, the indexes for those loops could be zLoad: 1, xLoad: 5, yLoad:10 and at that exact position in the map you might have that ball object, therefore it will create it during the yLoad.
I don't think it matters whether you use x or y index for loading event. Eg. it could go in order of start loop zLoad, then yLoad, then xLoad and for creation it happens on xLoad.
Originally Posted by AndyUK It's not much of a burden if you reuse editors for different games. Although i know thats not always possible.
In my experience, carrying it to different games is what makes it a burden. Burden as in something clunky, slows me down, and would be easier if I could drop it. When I make a sequel, it's usually because I found a whole bunch of ways I could do things differently and want to remake the engine. If I had to design the engine to suit the editor, it's a bit of a burden there.
Just like things like AI, the level editor thing depends on what the game needs.
Disclaimer: Any sarcasm in my posts will not be mentioned as that would ruin the purpose. It is assumed that the reader is intelligent enough to tell the difference between what is sarcasm and what is not.
Originally Posted by nim To answer the question in the subject,
I don't know if Pain > Gain. It depends on how much enjoyment you get out of working on your game's foundations before designing it.
But I do know that Pain = Not Un-checking The "Base 1 index" Box
I sometimes do or don't do this, it just means when you convert your array position to pixel position, you go (X(Array)-1)*32 or to array position it's Object's X / 32 + 1.
Whether or not an editor is worth making all depends on the end product, the level. I found that knowing how you want your levels to be constructed (and deconstructed/loaded by the game) really helps to make the editor. For example, I know I want my levels to be layered, so I first chose the way I want level data to be saved: Because it's layered, on top of X,Y data, the natural choice was an array. But I also knew that the Z-index would be mostly empty, so an array for level data would be bloated and potentially take a bit of time to load.
If I had went with arrays from the outset, and later decided that they would be inefficient and hard to accomodate certain features, then I would be left with a format that was clunky to work with. I actually did settle on arrays, but I use more than 3 dimensions. If I had coded my editor to only handle three then I would probably have to recode the entire editor to support the extra dimensions!
Originally Posted by AndyUK It's not much of a burden if you reuse editors for different games. Although i know thats not always possible.
In my experience, carrying it to different games is what makes it a burden. Burden as in something clunky, slows me down, and would be easier if I could drop it. When I make a sequel, it's usually because I found a whole bunch of ways I could do things differently and want to remake the engine. If I had to design the engine to suit the editor, it's a bit of a burden there.
Just like things like AI, the level editor thing depends on what the game needs.
I guess it helps if like me, your games reuse the same basic engine too lol.
I don't see why remaking an editor is really a problem, it doesn't take that long to do anyway because you will be spending most of the time on the actual engine and using that editor to create levels.
I've done several, I think they are definitely worth it. It allows much greater flexibility for your game as far as levels go. You only edit one master frame and load levels into it...it's great.