Friday, May 29, 2009

Nineteen

Articles!
  1. http://chrishecker.com/Do_Your_Job_Well,_Please
  2. http://chrishecker.com/Kurt_Gödel_is_Laughing_His_Ass_Off_Right_Now
  3. http://www.uwlax.edu/faculty/will/svd/index.html
  4. http://somethinbeautiful.blogspot.com/2009/05/cool-art-with-folded-paper-paper.html
When I got right down to it, designing the questing system wasn't all that difficult.  I'm implementing a quest creator tool now that, thanks to the way I redesigned the editor's save format, will be the first tool that's separate from the main game-file compiler and should let Joe/Erich build quests that can be easily merged with the main game.

Four
Wow, it's 4 already?  I've been hard at work on the quest editor, and things are going great.  I created an Evidyon tool-project template so that the next tool can be created much more quickly, and have finished writing out all of the quest data structures.  I'm just implementing some actions then I'll crank this thing up and see what happens.

One of the tricky problems I had to solve was how to get a localized editor (i.e. an editor for quests) that references data outside of that which it loads (such as items) to be able to edit those references.  Long story short, I added a "recursive" flag to the load method of the sql database resource storage so that these other resources can be loaded in name-only generic format.  Then, I made it so that references could be set simply using path-names.  I haven't tested it yet (later tonight) but this should allow the editor to save into the main game file without the need to actually know how it works--so even if the data format or structure types of the rest of the file change completely, an out-of-date local editor should still work fine.


I've decided not to include quest initiation or termination NPCs or locations inside of the quest definition itself.  Why?  Lots of reasons:
  1. The manner in which quests are given is more flexible--you can get one automatically by entering a dungeon, for example
  2. We can have several NPCs give the same quest but have different dialogue for doing so
  3. The termination points for a given quest can also be edited independently of the quest itself.  Since changing the map and NPCs are events that occur outside of the quest editor (and the quest editor can't "see" the map or edit the NPCs)
  4. This could allow for a quest to have multiple endpoints!

Another interesting quest item: there are now 3 termination methods.  Success, success over time limit and failure.  This is an effect of the time limit possibly not being a failure-condition.  We can have quests that give different rewards based on whether or not you met the time allotted.

2235
Quest editor done--tool template complete, will be refined as I make more tools.  Note to self:  when item are required to finish a quest, they must have been generated after the quest was initiated.  So store the ID # of the next item to be generated and be sure only items created after that point qualify.

4 comments:

Joe M. said...

Nineteen / is not the age of reason.

Joe M. said...

Sounds great, though!

Joe M. said...

While I'm spamming, have you implemented quest time-limits and a quest-clock that shows up (say red numbers above the gold) counting down if you have < X hrs to complete?

Karl said...

I haven't implemented quest-clock yet, that's on the client. I'm just doing editor stuff at this point. However the good news is that I might be able to send out a preview version tonight for you guys to play with! *crosses fingers*