Game Development Community

RPG Map Editor Ease of Use

by Steven Fletcher · in Game Design and Creative Issues · 07/06/2005 (5:54 pm) · 3 replies

I'm programming an RPG, along with a custom map editor.

In the map editor, I've implemented placing the ground, floor, roof, walls, etc. That was easy.

My issue is with the placing "special" objects, such as doors and Npcs. I can certainly do it, but I want to do it in a way that's easy to implement and, more importantly, quick and easy to use. I don't want to implement it one way now, discover that it's too much of a pain, change it to something better, and then have to redo a bunch of maps.

I don't have many RPG map editors to go to for inspiration though. I've seen Runesword's, and I'm going to download Blades of Avernum's map editor when I have time. I took a look at Warcraft 3's even though that's not an RPG.

So I've come here for help.

There's 4 basic types of scripted objects: containers, doors, general scripted objects, and npcs. Each has slightly different data. Containers and doors will only have 2 data fields each. Npcs will have considerably more.

I may have a special "Enemy" type that is a smaller version of the Npc type to eliminate some data fields.

1. My original idea was to have you create new object types (each npc would have a different type, except for npcs who were truly identical) within the map editor. You would select "Scripted Objects" from the menu, and this would take to a screen listing all the current scripted object types. You would then either select a scripted object type to start placing on the map, or you would hit a button that takes you to a "Create a Scripted Object" screen.

From there, you would do all the creation.

This would mean that every time you wanted to place an object, you would have to go to the menu and then select the object from the screen. After that, you could place 100 of the same object if you wanted, but what good would 100 identical blacksmiths be?

This would be more work to implement than I would like, and it is kind of complicated.

2. My current idea is to place the scripted objects just like they were any other object and give them blank data fields that you can change later. You right click on the scripted objects in the map to change their data fields.

The original problem with this idea is that to create 10 of the same monster, you would have to fill in the same data 10 times. This can be greatly ameliorated by having an enemy type list (either created within the source code or within a seperate file). Then the only data fields for a normal enemy would be the enemy type and the enemy's level.

If no one says anything, option 2 is probably the option I will use.

3. In my previous attempt at an RPG (in which I had a really bad map editor), I listed the npcs seperately, specifying their positions in the map and their data fields. This was really bad because I had to change all the npcs' positions every time I moved something in the map.

4. I could assign special markers for the characters. Then the characters could be scripted somewhere else (referenced by the markers). This is better than option 3, but I still don't like it much.

5. Enemies could be placed like enemies in Warcraft-like map editors. There would be a set list of enemies, and the enemy tiles would be accessed from a menu.

Then, scripting would have to be implemented by triggers that could be attached to the characters (probably by right-clicking on them).

This could be set up alot like option 2 and could be even easier to use. The difference between them would be small. But option 5 just seems wrong somehow.

#1
07/06/2005 (6:09 pm)
It seems that what you really want is option 2, with a copy/paste function. Copy/paste and block copy/paste for not only such data, but even the tiles themselves were a much asked-for function by my designers.

The side-benefit is that you can create similar but different NPCs, etc. by going the copy->paste->edit route.
#2
07/08/2005 (4:25 pm)
You might want to look at Neverwinter Nights for inspiration - it has quite an extensive toolkit.
#3
07/09/2005 (9:12 am)
Hmm...

I've seen map editors that allow you to save "brushes" (of a section of a map), save them to file, and then paste them into other maps. I could set it up so that you could make a brush of (for example) a healer's house, including the healer. Then you could add the healer to each town easily, since the healers are all going to be pretty much the same.

I'll take a look at Neverwinter Nights. Now that you mention it, I recall hearing good things about it. So I expect it will be very educational.