Revel Immortal 0.10
Last Monday 8/5, the release Revel Immortal 0.10 went well; you can check it out at http://edigames.com/revelimmortal
Data Crisis
Okay, crisis might be overly dramatic; but a nagging issue with Revel came to a head after the release of 0.10.
Static data is stored in .js files and linked into the main code; kind of like a data segment would be in an EXE.
The problem is this data was spread over nine files and finally has become too unweildy to manage.
Examples of the data are:
- Character Templates
- Map Templates
- Stereotype Defenitions
- Markers
- Quests
- NPC Dialogue
- NPC Placements
- Structure Templates
- Achivements
Expressing all of the information in single files for each of these categories had finally become too messy.
The first, technically pleasing solution was to create a database and some UI for authoring and storing this information and exporting to the final data segment.
After some consideration this would prove to be a large project and stall content creation for Revel; so instead moving to sub-directories of these categories and multiple per-region and per-object files; and a added build process to concatenate the files into the final data segment was done instead.
This soloution only took about two hours and so didn't present a noticable hiccup in content creation.
Random NPC generation with Stereotypes
Even after we added a few more NPCs Garranshall was still feeling a bit bare; so I started work on randomly generated NPCs.
RNPCs work off the existing transient npc defenitions on map templates; that is, the type of map you're on designates the kind and quantity of randomly generated npcs you find there; enemies included.
An issue with this however is that an NPC created from a CharacterTemplate, generally is identical from one to another.
So a system needed to be create that allowed per-instance randomization of NPCs.
But not just any old randomization; for a given classification of people you want relatively controlled randomization, so that is where Stereotype objects come in.
If we assume a CharacterTemplate called "leowynNoblewoman" we might have a Stereotype object "leowynNoblewomen"
The Stereotype object defines ranges of random properties; such as hairstyles, colors, clothing etc. etc.
This system works for any kind of NPC, so enemies can be subject as well.
Revel Immortal 0.11
It's Monday again already and we'll be releasing 0.11 tonight; 0.11 adds randomly generated NPCs and new dialogue.
Slated work for 0.12 is mostly concerning item and loot drops/chests and as always filling out more NPCs/Quests
-Raymond