Word of introduction here. I have promised to provide feedback on current state of content creation tools as one of my sprint tasks and try to fill all the holes I can see with some concepts. I was hoping to meet Rowan on IRC, but, since I'm rarely there and there is not much I can do with it, I thought - what the heck, I may post it here as well and maybe someone will benefit from this or tackle the subjects a bit forward.
It is all just my idea, ad-hockerish invention, so feel free to discuss it. Especially if you feel like you have better idea. Or when I'm clearly wrong.
I have checked current state of map editor and it was "not good". It seems to be close to useless now. It was hard for me to do anything in there. There was many basic things not present there. It looks like it should work, yet there is clearly something broken.
- I was unable to load any object into the editor, for most of the time the editor crashed. I was unable to import whole directory of objects at once as well.
- There was no objects palette to choose objects from
- Interface used to customize an object is crude, prototype-like thing, yet it looks promising and extensible.
What was annoying was also the fact that each time I had to choose directory from / level, it was not remembered by the editor.
How can this be improved? By extending funcionality - for example adding "auto load" of all PARPG assets available in game directory. By adding simple object selection palette that reflects directory structure and eventually adding "last used" palette. (I thought I've seen this palette before, but it doesn't work now...)
What is a quest?This is the other major topic.
From how I can imagine the quests are three kinds of interconnected elements:
1.
Conditions - that block or permit further elements from being executed without fulfilling them. Condition can be: event that happened, time that passed (or certain global time), given inventory state of PC
2.
State changes - (taken from dialogue with rowan): NPC state changes (inventory, stats, behavior, look, or if it exists (is visible) at all, also adding/removing/moving dialogue options), PC state changes (inventory, skills, stats that are lowered, increased or fixed at a given level, also changing boundaries of stats if needed, altering learning to be easier or harder, altering health status of PC, changing PC look), scenery changes - map objects changes, new passage is opened, area of map is changed (like when flooding big area or when whole level of building colapses), changing interface (adding or removing a quick slot), item state alteration (sharpening a knife), altering other quest state, changing map situation (adding/removing a map or changing existing map in the game). If a particular object is changed - it would be better to point it (or recall what was pointed) with a mouse.
3. events - stuff that PC does (or NPCs) that can make a need of checking out if quest conditions are fulfilled. This may be entering a "quest area" on the map, that will make someone angry, tweaking inventory, progressing in a dialogue, interacting with a map object in a specific way (pulling a lever), given fight result, given global or relative time.
I have chatted with Technomage and we've been trying to figure out how to bind it together in terms of data structures. It seems like some state changes can be binded to map, global timer and PC himself, and some events may happen due to interferrence with "quest layer" of a map.
What do we need to make to make a quest- Produce quest information: dialogues, conditions, chains of state changes, events
- Attach above to a real (may be real, but invisible) game object or time - that may be as much as altering map for a given location or as little as upgrading a given tool stats due to sharpening
What tools would be needed?1. Map editor, enabling developer to comfortably put, move and remove things on maps. Features: comfortable map editing, opening one map from another, opening map with other tools when needed (like when pointing state change to object on a different map. Ideally it would be best to only load main map for a given location and freely move to all the needed places by clicking exits and triggering events.
2. Editor, enabling designer to in-depth edit objects (inventory, NPC stats and behavior, buildings and so on).
3. Conditions, state changes and event editor for making a quest. What I think would be needed is making easy editing whole (quite simple in terms of count of branches, but long in terms of link count) chain of conditions, changes and events, jumping from one to another and editing what is going to happen at a given node - this all within a single window.
4. Dialogue editor that we have already nicely prototyped.
As for 2. and 3. - I'd say it will be best to merge it with map editor.
I know this is all a bit fuzzy. But I feel like I couldn't be much more precise. Maybe I wrote to little from time to time, so ask me if you feel like it.
What are your thoughts and ideas? Does it make sense to do it that way?
Will it be better to keep with buged and incomplete FIFE map editor? Or should we move to, for example, tiled, which seems to be more mature and stable (and will reqiure some extra work)?