Well of Souls:
Home PageCommunity:
Bulletin Board
WorldDev Forum
Developer Pages:
Overview
Story and Place
Heroes and
Monsters
Items, Weapons
& Spells
Music and SFX
Non-linear
Storytelling
The 'Quest'
Language
Publishing Your
World
Developers:
Custom Skins
Other Worlds
Author's_Guidelines
Art_Submission
Beta Testers Page
Development_Notes
Synthetic Reality
|
In the game,
Well of Souls, players are allowed to freely roam
the world, dropping into 'scenes' at specific
locations where they chat with each other, and
with scripted computer players. |
It is these
scripted players which inform the players of
available 'quests' The script language allows you
to mark individual players with invisible
'tokens' to help remember who has heard what
already. That is to say, when a player enters a
scene, the game engine rifles through the
player's pockets to see what tokens he or she is
carrying (proof of prior accomplishments) and
that determines which dialog takes place. A given
scene script may include several different
dialogs. (for example, the FIRST time you meet
the king he says one thing, the NEXT time he says
something else, etc.) |
TOKENS Each minor quest requires
at least 3 different tokens:
Token 1 |
The 'I
have been told about the quest' token (to
prevent being told again, and to enable
various hints to be delivered.) If I
return to the scene, already in
possession of this token, the king should
just remind me about the quest.
("How're you doing with that dragon,
anyway? We're hoping to hold the festival
soon and it sure would be nice if we had
some goats left.") If I am NOT in
possession of this token when I enter the
scene, then the king should tell me the
whole boring story, ask me to help out,
give me some starter kit (a weapon maybe)
a couple clues, and token 1.
|
Token 2 |
The
"I have achieved the primary
goal": e.g. killed the dragon. When
I meet the king carrying this token, he
should give me a reward (and token 3) |
Token 3 |
The
"I have been rewarded" (the
quest is complete). If people I meet have
nothing better to say, they could praise
me. |
Tokens are just
numbers. Not seen by the player, but they
influence which path is taken through a scene's
dialogue. A single 'world' consists of many minor
and major 'quests' (including one final quest).
You must portion the available tokens (numbered 1
- 4095) between these quests. When you quit a
game (save it) your current tokens are recorded
with your character and restored later when you
resume playing.
|
NARRATION
VS. DIALOG All plot development is via dialog
with scripted characters in scenes, not via
narration. This plot form should stress actual
dialog over descriptions of events. Dialog should
be delivered in economical (bite-sized) chunks
since the dialog is displayed in a small speech
bubble, and introduces a delay in play.
There is a
single narrative paragraph, per world, which
scrolls by the user during the opening credits
for the world. It can be used to set the overall
tone and backstory for that world, as well as to
hint at what the final quest will be about.
A limited amount
of 'acting' is available to the scripted
characters (they can slide around the screen a
little, enter and exit, and appear to talk to
each other.) They can also ask the occasional
YES/NO question of the player, as in "I've
told you my problems, are you going to help me or
not?"
|
STRUCTURE
OF A QUEST Each minor quest requires 4 scene
scripts. Each scene script is influenced by the
tokens the player is already carrying:
scene1 |
The
player is told of the quest, accepts it,
and is given token 1. Returning to this
scene later results in a simple reminder
that the quest is not done. |
scene2 |
(actually
distributed over multiple scenes)
characters notice you have token 1, but
not token 2, and they give you a hint
about the quest. In some cases, they may
notice you have token 2 but not token 3
and might remind you where to go to get
your reward. |
scene3 |
The Big
Fight. You have found your way to the
dragon's cave and have a big battle with
the dragon (who taunts you a bit before
and after the fight). If you win, you get
token 2. Usually you had a long walk to
get to this point and fought many random
battles along the way, raising your
experience level. |
scene4 |
(usually
back in the original scene1 location) You
return victorious, they notice you have
token 2 and they reward you. Also they
give you token 3 (so as not to continue
rewarding you each time you return to the
scene.) |
In a given world
there are many quests, each with 3 tokens and 4
scenes. The REAL scene and token numbers are not
allowed to overlap, so 1,2,3,4 is just an
example. For simplicity you might want to number
your quests 1-25 and then use "23" to
mean "token 3 of quest 2"
And, of course,
this is the minimum form. You can add additional
scenes and tokens in a given quest to create
whatever level of complexity which appeals to
you. However, this will result in a high degree
of serialization. Overall you probably want to
create multiple, independent, but overlapping
quests to enable the player to perform the quests
in any order (and to be simultaneously working on
several quests at the same time).
|
NON-LINEAR
STORY-TELLING For the most part, the player can
enter into scenes in any order, so you cannot be
sure that some other quest has been completed
before the player begins a new one (unless you
specifically do a token check). You are advised
to embrace this non-linearity and to impose as
few such modal plot directives as possible.
(also, keeping your quests independent will mean
less work if you modify a quest -- you won't have
to also update 15 other quests).
However, there
are times when you WANT some forced serialization
(you might have a quest which only makes sense
after the town of Dorber has been destroyed.. and
that happens in the middle of a quest). The
easiest way to handle this is to have the same
king (as it were) deliver both quests. IN a
single scene's script file you control the order
in which the tokens are checked.
The script
language structure allows serialization such that
a particular king in a particular castle will
wait until you have completed his first quest
before he challenges you to the next one. Hence
you can take advantage of that fact to imply
historical progress. (at least local to that
kingdom). So you might have only 5 kings with 5
quests each where it would only be possible to be
working on 5 quests at a time and when working on
a particular king's 3rd request, the dialog can
refer to events of the first 2 quests in the past
tense (whereas they should not refer to other
king's quests at all without explicitly testing
for tokens from those quests.)
The goal is to
keep each quest separate enough that it isn't a
nightmare to keep all the numbers in order (for
example, avoid requiring that a change to one
quest affects the scripting for lots of other
quests)
And of course,
quests don't have to be managed by kings. That's
just an example. Any scripted character can
deliver quest dialog.
|
EXAMPLE
QUEST: The hunt for the
golden duck Here is an example Quest, showing
the sort of script language control required in
each scene so as to deliver the proper dialog as
the player works his or her way through the
quest. The BLUE LETTERS indicate script language
commands which are described, rather than shown
in their actual ugly syntax.
1.) We
hear about the problem, and take on the quest,
gaining token 1
SCENE
1 / CASTLE ANDOVER
IF
WE DON'T HAVE TOKEN 1 (tell player the
problem)
King:
Greetings, Welcome to castle Andover. You
have caught us at a time of great sorrow. Our
lovely golden duck has been stolen by bandits
Queen: Ugly
Bandits
King: Yes
dear, ugly bandits. They snuck in through a
secret cave behind the dungeons and stole the
duck from the library where it was on display
for our 200th anniversary
King: Will
you find our duck?
IF [YES] --> give token 1
to player and continue
King: Thank
you, take this magic flute, perhaps it will
aid you in your quest.
Queen: Oh
yes, and pretty music it makes, too!
EXIT SCENE
ELSE
IF WE DON'T HAVE TOKEN 2 (remind player of the
problem)
King:
mmmmph!
Queen:
Please excuse him, he is asleep, and dreams
only of the return of his precious golden
duck. Have you learned to play the flute yet?
IF [YES] (continue)
Queen: Oh
play me a tune!
[awful music
plays]
Queen: Oh,
that is terrible! Please stop!
EXIT SCENE
ELSE
IF WE DON'T HAVE TOKEN 3 (thank player for doing
it, and reward player)
King: Wow!
This is great! My duck! You are the BEST! You
RULE man! You OWN! Take this 500 bucks with
my thanks! And here is a flying girdle! And
season passes to the 49ers games!
Queen: Oh
yes, my. You da bomb!
Give player
token 3
EXIT SCENE
ELSE
(we
have all 3 tokens) (acknowledge player is all
done with this quest)
King: Oh Hi,
thanks again for the duck thing. Have a nice
day!
Queen: Yes,
um. scat.
EXIT SCENE
2.) We
wander around, and random villagers notice we
have token 1, but not token 2 and give us hints.
SCENE
2 / VILLAGE
IF
WE HAVE TOKEN 1, BUT NOT TOKEN 2 (give us
a hint to solve the quest)
Old Man:
That's a lovely flute you have there, would
you like some flute lessons?
[flute
lessons might be a separate quest which
result in your gaining another token which is
useful in yet another quest]
Child:
Everyone knows the bandits control the caves
to the east
Dog: Woof!
grrrrr. LeChuck!
EXIT SCENE
ELSE
IF WE HAVE TOKEN 2 BUT NOT TOKEN 3 (remind
us to get our reward)
Old Man:
Hey, you should get back to castle Andover.
The King is going bonkers over that duck!
EXIT SCENE
ELSE
IF WE HAVE TOKEN 3 (praise us for completing the
quest)
Old Man:
Hey, aren't you the guy who found the golden
duck? You should have sold it and used the
money to feed the orphans. The king sucks!
EXIT SCENE
3.) We
have found our way to the cave of the bandits and
met the Bandit King
SCENE
3 / BANDIT CAVE
IF
WE DON'T HAVE TOKEN 1 (Bandit refuses to fight
us if we haven't heard about quest yet)
Bandit: Get
out of here! We're having a meeting
EXIT SCENE
IF
WE HAVE TOKEN 1 BUT NOT TOKEN 2 (our shot for glory)
Bandit: So,
you've come for the duck, eh? Well let's see
ow tough you you are!
[FIGHT]
IF WE WIN --> Give Token 2
to player
Bandit: Ah,
you beat me fair and square. I promise I will
be good.
EXIT SCENE
IF
WE HAVE TOKEN 2 (we already fought and beat this
bandit)
Bandit: I'm
still being good, honest
[this could
be the start of a quest initiated by the
bandit]
EXIT SCENE
4.) We
have wandered back to castle andover and pick up
in scene 1 where it notices we have token 2 and
we get token 3 as a result. (see scene 1 above)
I hope that made
a LITTLE sense, but I suspect it didn't... Feel
free to rummage around in the Evergreen script
files and see some real scene examples. You can
cause a scene to run by typing "/scene
X" (where X is the scene number). This will
mark your character as a cheater, so make a
special character just for this purpose.
|
STRUCTURE
OF A WORLD Whether you plan to generate art
assets or not, you might consider doing the
following:
- Draw a
simple map of your world, with important
geographic features
- Name the
major 'scene' locations in your world
(towns, castles, caves, forests, mountain
passes, etc.)
- Think about
the major cast of characters in your
world (kings, queens, wizards, princes,
tailors, lovers). These are the
characters who will be delivering most of
the dialog, and it would be nice if over
the course of the world we learned a
little bit about the characters, beyond
simply the problems they would have us
solve.
- Think about
names. In an environment as sparse as
this game, the very names of characters,
places, and monsters is an important part
of the overall player experience.
- Decide on
the main quest for the world, and the
backstory of events which led to the main
problem. Use this both in your credits
narration, as well as referring to it in
dialogs used in the other quests.
- Make 4 or 5
major quests which must be completed
before setting out on the final quest.
(Collect the six keys to time, the 7
miracle coins, kill the 4 dark princes,
etc.)
- Make as
many minor quests as you have energy for.
These will generally be just for fun, or
will collect armor, weapons, money, or
good-will which is important in dealing
with the major quests. Minor quests
should generally require no serialization
and be achievable in any order.
- Reuse
locations and characters between the
quests. Where serialization is used, let
the character show some growth between
quests.
Presumably it is
more interesting for the player if there are 5 or
so quests which can be worked on at the same time
and the results of each of those quests enable
subsequent quests to take place.
Also, in
addition to the minor quests, each world should
have a few major quests which each depend on the
player having solved multiple minor quests (be in
possession ofmultiple token 3s) (for example
tokens 13, 23, 33, and 43 -- token 3 of quests 1,
2, 3, and 4).
And again,
tokens are just numbers. I propose the quest
numbering just to simplify understanding which
tokens are which without a lot of
cross-referencing.
|
MULTIPLAYER
ASPECTS Players working in groups see the
script played out according to the tokens carried
by the the LEADER of the group. Hence you may be
involved in a more advanced quest if you are
following someone. The tokens need to be
carefully designed so that if I receive an
advanced token by completing a quest with a more
powerful leader, that token does not prevent me
from doing the 'earlier' quests when I
subsequently play on my own.
Each world
should have an official climax quest which solves
the problem stated in the initial piece of
narration which scrolls by during the credits for
the world (the only narration). But even this
does not 'end' the world. The player can then
wander around for as long as he or she likes,
helping weaker players. Though there is feedback
to encourage the powerful player to not 'lead'
since only if a newbie is the leader in a scene
will the quests be doled out again.
I don't expect
that to make too much sense until you have played
with the script engine a little.
|
|
|