#1[Retnur 7:43PM Jun 19]: "Started the newbie area we've yet to name full of tah goblins and loot"
New [Area 1] ->
+name: "goblin place"
#2[Retnur 7:45PM Jun 19]: "Created a basic layout of the 2 room area"
For [Area 1 "goblin place"] ->
New [Room 1] ->
+name: "before the den"
New [Room 2] ->
+name: "in the den"
New [Connection [Room 1 via N] with [Room 2 via S]]
New [Room 3] ->
+name: "the treasure room"
New [Connection [Room 2 via E] with [Room 3 via S]]
#3[Retnur 8:10PM Jun 19]: "Added goblin leader"
For [Area 1 "goblin place"] ->
New [NPC 1] ->
+name: "goblin leader"
New [Reset [NPC 1 "goblin leader"] in [Room 2 "in the den"]]
#4[Retnur 8:15PM Jun 19]: "Decided the names were bad after talking to Shane."
For [Area 1 "goblin place"] ->
Edit [NPC 1 "goblin leader"] ->
-name: "goblin leader"
+name: "goblin boss"
Edit [Room 3 "the treasure room"] ->
-name: "the treasure room"
+name: "the stash"
It gives a clear history of who did what changes in this area.
It lets peer review happen quickly and effectively when you don't have to be walked through a zone on a game, or tediously examining what exists, rather than why they exist and what they relate to.
This would also allow us to be able to see that a change in the game was made, and use a command to find out who made the change and what they logged the reason as being. Something like gitblame.
I think this really would be useful for games that have more complex areas. Not just topographic in nature, but scripts and dependancies. For example, if I break a quest chain but only find out a week later, and don't realize how the chain was broken I could use something similar to git bisect to find out the specific commit that did it in a few minutes rather than guessing and debugging.
Anyways, I'm really interested in this idea for a project I'm working on, but I'm absolutely stumped at how to implement it. I guess such systems by nature are complex even with text documents, but dealing with something more complex like arbitrary data structures seems very difficult?
So I'm interested in discussion here. Comments, implementation suggestions, criticisms are all things I'm looking for.