Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length

 
Advanced search

878281 Posts in 32913 Topics- by 24329 Members - Latest Member: 8BitPimp

May 21, 2013, 01:06:37 PM
TIGSource ForumsDeveloperCreativeDesignWhat is most important in tiled level editors?
Pages: [1] 2
Print
Author Topic: What is most important in tiled level editors?  (Read 1071 times)
Mikademus
Level 10
*****


The Magical Owl


View Profile
« on: January 23, 2012, 03:57:05 PM »

I am making an editor for a game I am working on. It is a platformer/adventure game where levels/worlds are composed of layers. Tile layers are built up by square tiles, props layers have images placed as decoration (and items of interaction). These are the two most important kinds of layers. The platforms are vector drawings.

Now, I want to manage my time carefully and spend effort on what is most critical. However, I am not fully certain what tends to be most critical in tile editors.

What are must-have features, and what are common stuff to implement that are rarely used?

F.i. a thing like moving entire blocks of tiles at once, is it critical or is it something that seems great but seldom used? Copy and pasting of blocks of tiles? Etc.
Logged

\\\"There\\\'s a tendency among the press to attribute the creation of a game to a single person,\\\" says Warren Spector, creator of Thief and Deus Ex. --IGN<br />My compilation of game engines for indies
MadWatch
Level 0
***



View Profile
« Reply #1 on: January 23, 2012, 04:36:32 PM »

I made an editor like this for my previous game (a platformer as well). I didn't want to spend to much time developing it so I didn't put anything but the bear minimal features into it. I regretted that choice later  Sad

Without a good editor level building becomes a pain. I'm currently making a new editor for my new game project (yet another platformer, sort of...) and this time I'm doing it well.

So, in my humble opinion, the most important feature of all is the ability to play your level as you edit it. Placing a spawn point and clicking a button makes the editor switch to game mode and then pressing esc make it go back to edit mode.

Aside that I would say the ability to select several tiles at a time with a selection rectangle or a ctrl-click is nice to have. Copy past is pretty useful too.

Since my levels are limited in size (1024x1024 tiles) I'm making a rustic minimap system that will let me have a quick look at how much space I have left and a shifting tool that will let me split the whole level in half in any direction and move one half away from the other, I really missed that in my previous editor.

Finally, if, like me, you're going to have a lot of different tiles types but won't use them all in a single level then a kind of pallet of already used tiles types (so you can quickly select them without searching them again in the menu) is a nice tool as well.

Hope this help.
Logged
Paul Eres
Level 10
*****


Also known as RinkuHero.

RinkuHero
View Profile WWW Email
« Reply #2 on: January 23, 2012, 05:59:59 PM »

- being able to save and load levels
- being able to edit them with a mouse and with keyboard shortcuts
- arranging the objects you place by type/category in a "palette" so that you can see a row of them at a time and select from that row
- being able to copy and paste groups of selected tiles. i.e. to draw a rectangle with the mouse, and use ctrl+c and ctrl+v to copy and paste that rectangle to other places
- a 'fill' tool that fills in enclosed areas with a tile
Logged

Danmark
Level 7
**



View Profile
« Reply #3 on: January 23, 2012, 09:15:57 PM »

  • zoom
  • mouse-controlled camera pan that doesn't require moving to the screen edges
  • free selection (rectangles being only marginally better than nothing)
  • move selection; more important than copy/paste unless repetition is important
  • draw tool that connects consecutive pointer samples (i.e. doesn't draw a bunch of dots)

- a 'fill' tool that fills in enclosed areas with a tile

If this is implemented, undo/redo functionality is essential. Accidental fills destroy much information.
Logged
Paul Eres
Level 10
*****


Also known as RinkuHero.

RinkuHero
View Profile WWW Email
« Reply #4 on: January 23, 2012, 09:28:45 PM »

yeah i agree, i forgot an undo/redo feature, that's pretty important even without a fill option
Logged

Mikademus
Level 10
*****


The Magical Owl


View Profile
« Reply #5 on: January 24, 2012, 03:16:43 AM »

Excellent advice. You've suggested some things I had hoped to delay or scratch altogether, which is what I needed to hear.

@MadWatch: The editor is in-game. Pressing tab switch between game and edit mode so changes are instantaneous. I am not limited in level size but if levels grow large a minimap sounds like a good idea. And yeah, your suggestions help!

@Paul: Thanks! I had reached almost the same conclusions, but I forgot about a fill tool. I had hoped to not have to do undo, but it seems like it is a pretty essential thing.

@Veracity: Dang, the game engine that renders the world isn't supporting zooming... Is that a show stopper issue according to you? About mouse panning: right now the arrow keys pan. Is that sufficient or is being forced to use the keyboard a nuisance?
Logged

\\\"There\\\'s a tendency among the press to attribute the creation of a game to a single person,\\\" says Warren Spector, creator of Thief and Deus Ex. --IGN<br />My compilation of game engines for indies
Fallsburg
Level 10
*****


Fear the CircleCat


View Profile WWW
« Reply #6 on: January 24, 2012, 06:10:08 AM »

I would suggest something along the lines of:
Mouse Wheel         -- Move up/down
Mouse Wheel + Shift -- Move left/right
Mouse Wheel + Ctrl  -- Zoom in/out

You can swap those to be whatever works best for you (or better yet make it a configurable option). Of course, if you can't zoom, then you just drop that and keep the others.

Undo/Redo is very important.

A way to put some sort of metadata and/or comments is nice too.
Logged

Moczan
Level 5
*****



View Profile
« Reply #7 on: January 24, 2012, 06:23:58 AM »

If you want to release it for other game developers, custom output is a must. I'm amazed how hard it is to output a plain Array of tiles in some of the tile editors out there.
Logged
Mikademus
Level 10
*****


The Magical Owl


View Profile
« Reply #8 on: January 24, 2012, 08:11:18 AM »

@Fallburg: Photoshop movement, eh? That's a good idea since I aren't using the mouse wheel for anything atm. Comments is a nice idea. I will consider it.

@Moczan: This is an in-game editor, and as such quite connected with the engine and formats I use. I also don't have a powerful GUI (like Qt etc) so dialogues and drop-down boxes with options would be a chore. I see your point, though. Would external converter tools be ok? Perhaps saving could be automatically chained through those by config commands... Hmm...

Logged

\\\"There\\\'s a tendency among the press to attribute the creation of a game to a single person,\\\" says Warren Spector, creator of Thief and Deus Ex. --IGN<br />My compilation of game engines for indies
baconman
Level 10
*****


Design Guru


View Profile Email
« Reply #9 on: January 24, 2012, 11:38:46 AM »

If you're going with a minimap; have a function that can enable/disable it to the player. Sometimes the outcome of a game is that it's broken without a minimap (like Metroid), or sometimes it can be broken by HAVING one (like Dark Souls, if it did).
Logged

increpare
Guest
« Reply #10 on: January 24, 2012, 11:46:10 AM »

Being able to seamlessly transition between editing and playing.

Other than that, painting by hand is usually fine for me (clicking+dragging), autotiling can help as well but that's not an editor thing strictly.  I do occasionally use brushes in mappy, but have never felt the need for it in my own games.  But none of the games I've made an editor for have been that expansive.
Logged
Paul Eres
Level 10
*****


Also known as RinkuHero.

RinkuHero
View Profile WWW Email
« Reply #11 on: January 24, 2012, 03:28:17 PM »

undo is actually pretty easy to code; when i coded SD's undo for the level editor i thought it was going to take a lot longer than it did. basically all you do is save the level after every action in an 'undo' folder, to the same file name. then load that file when someone presses the undo button. simple

doing multiple levels of undo is harder, though. but just a basic undo as described above takes a few minutes to code
Logged

Mikademus
Level 10
*****


The Magical Owl


View Profile
« Reply #12 on: January 25, 2012, 02:41:29 AM »

Level reload as undo would be a bit slow, but better than nothing I suppose.

Anyway, I bit the bullet and implemented a real unlimited-depth undo/redo solution. For every operation (move, paste, erase, etc) I store the affected tiles with the operation type and push it on an undo stack. The same state is passed to a "perform" method where it is effected. The same data structure can be used to reverse the change == undo, and since the level is now in the previous state it can be reapplied == redo.

@Increpare: in this game the game mode and editor modes are program state that acts on the same data set. TAB switches between them, with the editor pausing the game, and any level changes are therefore there in the game when you step back to it.

It is the first in-game on-the-fly game editor I've made and I can't see myself ever doing a game without one again!
Logged

\\\"There\\\'s a tendency among the press to attribute the creation of a game to a single person,\\\" says Warren Spector, creator of Thief and Deus Ex. --IGN<br />My compilation of game engines for indies
rivon
Level 10
*****



View Profile
« Reply #13 on: January 25, 2012, 04:15:24 AM »

Anyway, I bit the bullet and implemented a real unlimited-depth undo/redo solution. For every operation (move, paste, erase, etc) I store the affected tiles with the operation type and push it on an undo stack. The same state is passed to a "perform" method where it is effected. The same data structure can be used to reverse the change == undo, and since the level is now in the previous state it can be reapplied == redo.
I thought about exactly the same solution. Just create a class which has two variables - array of affected tiles and the used operation. Probably also the previous version of the tiles.
Logged
Mikademus
Level 10
*****


The Magical Owl


View Profile
« Reply #14 on: January 25, 2012, 08:02:21 AM »

For those interested, undo/redo is an example of when the "Command Pattern" is actually really useful. Smiley
though I guess that's more technical than design...
Logged

\\\"There\\\'s a tendency among the press to attribute the creation of a game to a single person,\\\" says Warren Spector, creator of Thief and Deus Ex. --IGN<br />My compilation of game engines for indies
Pages: [1] 2
Print
Jump to:  

Theme orange-lt created by panic