Building a level-editor

So our game (RPG) is nearing completion and we are at the stage where we are planning to add content to the game in form of questing, combat-able enemies, dungeons, etc. We are pretty new to java (couple of months in, university class, we know some python/c++) and have a hard time figuring out how to implement a leveldesigner. We figured we start out the same we way we did with the game, create a canvas and draw sprites on it, but that can be done with paint. We would like some advice on the next step to take from here, and would be grateful for any source of any leveleditors we can look at (learn much faster like this).

Things we are planning to implement:

  • Gameobjects
    Placing animations on the map, changing how it animates (framerate, directions). Adding enemies, with their sprites and animations and their AI, maybe even adding items and weapons to them.
  • Collisiondetection
    An invicible overlay of the currentmap that shows what is walkable and what is not, only visible in editor. Letting an object decide whether it is walkable or not, automatically updating the overlay. This would let us add cool stuff like player walking on some water (required he has Cool Item of the Waterwalker) while other water is unwalkable (ie cross rivers but not seas).
    [li]Porting
    This sounds like the hardest part, we would like to transfer what is on the level editor to an actual playable game without creating huge xmls or .map files or a billion different classes for loading stuff from those files proplery. The same objects exit and work problemfree in the game, so hopefully an easy solution exists for just loading them into memory as if they were intialized in the game-code.

This sounds like a lot more work than the actual game, especially for newbies but content is what drives a game, even the coolest looking game can get boring after a minute if there is nothing more to do.

What kind of game is it?

EDIT:

For my game(s) I use multiple readable text files that get parsed by the application when loading.
Any lines that don’t start with a # are ignored when loading.

Here’s one:


How to use: #[entity-name]@[position]:[entity-type]

[entity-name] is the name of the entity.
[position] is where the entity spawns.
[entity-type] is the type of the entity.

Positions are represented like: (x,y)
Where x is the horizontal coordinate and y is the vertical coordinate.

[entity-type] can be one of the following:

player - A player-controlled entity. The last entity defined on this list is the one the player will control.
npc - A non-player character. Can not be attacked by the player, or attack anything else. Can be attacked by monsters.
monster - An enemy. Will attack players and/or npcs.

#warrior@(8,8):player
#sheep@(1,1):monster
#sheep@(1,6):monster
#sheep@(15,8):monster
#sheep@(5,7):monster
#sheep@(1,14):monster
#sheep@(7,3):monster
#sheep@(1,10):monster
#sheep@(6,6):monster
#sheep@(12,14):monster
#sheep@(12,10):monster
#sheep@(14,11):monster
#sheep@(8,11):monster


Then I use string functions to split each line at the @ and :, then I parse each section and use the data (eg: spawning a sheep with monster AI at the coordinates (1, 1))

Maybe you could do something like that, then add a simple GUI-based editor.

Thank you that is helpful, we can use something very similar for entityloading and expand on this!