The quest system.
Now, this is huge. Quests can make or break an RPG. I remember trying some indie RPGs to support them and see what indies are up to, see what can they do that AAA cannot and get some inspiration in the process. But after collecting herbs, bringing soups, and killing wolves, I quit. Unimaginative and repetitive is no fun. I expected a lot more. On the other side, I played Pillars of Eternity. So. Much. Talking. Which means reading. And all this text is not improving the game much, it just makes it longer and harder to finish. When I want to read a good story, I take a paperback or Kindle and enjoy it in the armchair or outside. Staring at the screen is not my favorite position for reading. Show, don't tell should be the guideline for games too.
So I want something in the middle. Powerful quests and story, without too much text. I want to see if it's possible to just give some hints of the story to the player and let their imagination do the rest.
I need an easy way to write quests. I'll just use a plain text file with some keywords which I can then feed to the game engine to convert it to game objects. Let's write a simple quest first. I'll avoid having such quests in the game, but I have to start with something easy and iterate.
The quest.There's a woman on the farm, goblins took her son. Everybody thinks he's dead but she's sure he's still alive. He had an amulet when he was taken. If you go to the goblin camp, fight goblins and enter the camp, you'll find an amulet there. Return to the farm and now the woman will understand her son is dead and mourn. But who knows, maybe you'll meet him on further adventures.
Here's the template I'll use to define quests:
npc:grieving_mother
at:world.grieving_mothers_house
item:engraved_amulet
at:world.goblin_village
dialog:grieving_mother
!talked_to_grieving_mother
grieving_mother: "Goblins took my son. Everybody thinks he's dead but I know he's alive. You'll recognize him by his amulet with E.K. engraved."
talked_to_grieving_mother = true
!gave_amulet_to_grieving_mother, talked_to_grieving_mother, !has_engraved_amulet
grieving_mother: "Please, find him."
!gave_amulet_to_grieving_mother,talked_to_grieving_mother, has_engraved_amulet
grieving_mother: "Oh no, my son, my only son... Thank you... for recovering the amulet. At least I can hold it when I pray for him."
xp += 100
gave_amulet_to_grieving_mother=true
gave_amulet_to_grieving_mother
grieving_mother: "Thank you for the amulet!"
This is a barebone quest. It says that there is an NPC at grieving_mothers_house (grieving_mothers_house is the name of an object I place on the map). Then, there is the engraved_amulet item, at the goblin_village (also a place on the map). You get it if you loot the village (after you remove the defenders). And then the dialog. If you talk to the mother, she'll give you the quest. If you go to the goblin village and manage to loot it, you'll get the amulet. If you have the amulet, she'll thank you and you get some experience. You can get the amulet first. In that case, she'll state her plea and immediately thank you.
I threw together some simple UI to display messages and dialogs. I'll add some pictures of the NPCs you are talking to but for now just the silhouette.
Visiting the farmhouse where you get the quest:
Fight the goblins, loot the village and get the item:
Return to the farmhouse and you get a thank you:
Of course, we can build a multistep quest like this. Let's say that the son is alive, taken into slavery somewhere far away. You can meet him and the quest continues. It's a matter of setting conditions and effects.
Future workThe above is just the quest mechanics. Quest design is a different story, and I'm getting there.
That was the fetch quest example. There are also kill/capture quests or destroy quests. They usually boil down to this, but int the way we tell the quest story and combine different storylines lays the great quest system. For example, there's that lich in the dungeon. You could go and just kill it, but it's too strong. By solving a related quest, you get his motivation. Another quest shows you his weakness. Finally, you can find a special weapon or defense that helps you kill it. All this spread around and weaved through other stories should make some good gameplay.
In addition, I want to give options with different consequences to the player. Multiple parties interested in the same item. Opposing factions where you help one but become the enemy of the other.