So I’ve started working on the player AI revisions.
Quests and QuestGivers were new in v1.1; they were entirely abstracted away in the v1.0 series. But even in v1.1, they were extremely limited; each PC could only have one active quest at a time, and would only work on quests from one quest giver until he’d completed every last quest available from that quest giver, before going to look for another quest giver.
For v2.0, I’m expanding things. PCs can now have up to ten quests active at once, and if those quests happen to overlap (say, two quests both send the PC to kill monsters in the same area), the PCs can complete those quests simultaneously. PCs still have to complete each QuestGiver’s quests one at a time in order, but now, they’ll be able to take quests from several different QuestGivers at once.
So far, I’ve set it up so that the PCs can store and know about their whole quest log of quests, and they get credit for completing those quests (even inadvertently. Previously, PCs only gained credit for quest progress when they were intentionally working on completing their quests; they weren’t getting quest kill credit if they just happened to be wandering through a quest zone to somewhere else).
So that’s all good, but I really need to write the AI code which will make players actually pick up multiple quests at once, as currently they’re still doing the “just keep doing quests for that one guy until he runs out, then find someone else” logic. To do this, I need to have each PC store which QuestGivers the PC is already working on active quests for, and which QuestGivers the PC has completed, so he won’t try to revisit them. I’m currently trying to work out how best to minimise the amount of storage required for this. I should have a good solution tomorrow, I hope. :)