Tutorial - Implementing a Basic Quest

From Divinity Engine Wiki
Jump to: navigation, search

Overview

This tutorial will provide an overview of all the steps necessary to implement a quest in a standalone campaign from scratch. It will not delve into any one area in great detail, the goal is to provide a 'big picture' walk through of some of the more commonly desired components in a quest. I will keep adding to it as time permits and when community feedback indicates additional areas of need. The end goal is to provide both video and written guides for each section. The video will be done first, followed by written guides later.

The Quest: It's Launch Day at Larian Studios, but there is no power! Swen is lookin for a hero to save the day. Will it be you?

Creating a New Project and Playable Terrain

The first video in this series starts right at the beginning of creating a new Project, Level, and then a walkable terrain. It will not go in depth on terrain editing as there are good resources already available for it.

Creating a New Project and Playable Terrain (Youtube)

Building Your First Story

The Story is an essential element to any campaign and should be compiled soon after creating your terrain. In this episode we cover the concept of a story and how it functions in the game. We'll go over how to build it and include a basic introduction to writing your own goals.

Building Your First Story (Youtube)

Placing and Modifying an NPC

An overview of how to place an NPC in the game, customize its appearance, and some of the other important properties of an NPC.

Placing and Modifying an NPC (Youtube)

Creating a Default Dialog for an NPC

How to create a very basic dialog and assign it to an NPC.

Creating a Default Dialog for an NPC (Youtube)

Creating and Updating a Quest Journal

Demonstrates how to create a quest journal and cause the first stage of a quest to be triggered from the dialog that was created in the previous tutorial.

Creating and Updating a Quest Journal (Youtube)

Quest State Driven Dialogs and Giving an Item

In this tutorial we re-visit our dialog to make it reflect the quest progression. Instead of asking the same question over and over and re-offering the quest, we add some additional dialog nodes and flags to provide a better user experience. We also use the dialog to trigger the giving of a weapon to the player through a story script, and we cover some useful debugging tools for dialogs and story scripts.

Quest State Driven Dialogs and Giving an Item (Youtube)

Customizing Doors, Containers, and Object Tooltip Display

In this tutorial we move on from our quest setup and create a simple building with an entrance door. We examine the properties that control whether it is locked and how it can be unlocked. We also look at how to specify the strength of the door for potential destruction. We examine containers and adding items to them as well as pseudo-random treasure tables. Finally, we look at "Tooltip Type" settings for controlling when an object's display name is visible in the world.

Doors, Containers, and TooltipTypes (Youtube)

Character Creation

In this tutorial we tackle adding real Character Creation to the campaign so that it can be played both within the editor and from the game client. We'll create a new goal in the story editor and paste in some code released by Larian for a standalone campaign. Then we will edit that code to workaround a discovered bug that prevents game made characters from entering combat with hostile NPCs. After we get our script working, we'll revisit it and go over what some of the frames within the goal are doing. Lastly, we will create a player companion that automatically gets added to the party when the game starts.

Wiki Page on creating an adventure and adding character creation:
My_first:_Adventure#Necessary_scripting

Character Creation (Youtube)
Character Creation and Story Cleanup (Youtube)

Introduction to Encounters

In this tutorial we create a dynamically driven encounter that begins when picking up an object. We cover the meaning and uses of Combat Groups and Factions as well as some options for initiating combat from story scripts.

Introduction to Encounters (Youtube)

Scripted Dialog, Timers, and Inventory Checking

In this tutorial we modify our quest so that combat does not start immediately when taking the generator. Instead, we'll have one of the NPCs initiate a dialog with the player and give them five seconds to drop the generator before becoming hostile. The tutorial introduces story scripting to start dialogs, create and process timers, and check the player's inventory for a specific item. Towards the end it also provides some suggestions on how to go about finding the right Osiris calls for your needs at any given time.

Adding Scripted Dialog, Timers, and Inventory Checking (Youtube)