• ### Announcements

#### Archived

This topic is now archived and is closed to further replies.

# Write paragraphs with start constraints and end states

## Recommended Posts

Ok, writers, don''t write a story. The player wants to live their own story, not yours. Otherwise, they''d read a book. So, instead, use your best writing skills to write a paragraph (or two, or three). Let that paragraph define an interesting situation you would like to see the player immersed in. The prose isn''t important, except for your own personal visualization. What is important is the content. It should be compelling or fascinating, or perhaps funny, maybe ironic. If you wish, introduce a character in the paragraph. Make that character interesting. Now, define the constraints which require this mini plot to be put into motion. Define the states that this mini plot will leave on the world when it has been enacted. Provide for at least two outcomes of the mini plot. Some should be completely independent of any main story. Think of them as a brief interlude from the real story. Others should follow on what has happened before, and others should attempt to setup states for furthering the story. But each should stand on its own as entertaining. Remove the random cardborad cutout encounter from the game, and instead use your writing abilities and imagination to add depth and subtlety to the player''s experience. But don''t completely constrain the flow of the story with rigid elements. Let there be customizable dynamic elements in each mini plot which can be tailored to the situation at hand. And then flesh out the choices for the slots and roles to be filled, thus creating templates which when dynamically created, seem real. ___________________________________

##### Share on other sites
Hello? I''m talking to all of you would be writers out there. Try to entertain the idea I proposed above. If you feel the game industry doesn''t want you, try approaching it like I have suggested. If you feel you are a very capable writer, then pull out all of the stops, and come up with a good situation as I suggested. If you feel you can''t write a full fledged story, then try and come up with a mini plot.

___________________________________

##### Share on other sites
bishop_pass: I completely agree.
If i were to get a full story, after working on an engine, and found out the story had no defined break points for dialogue and battles, i wouldn''t know what to do. The story should be built for the game, not for being a good stand alone story. The dynamic aspect you are talking about is something many developers have ignored. Without the story being dynamic, your limited to a linear experience unless you branch. Branching doesn''t work because it means you have to create twice as much content or even more.

The better the story integrates into the player actions, the better the story IMHO. Even when I see games that try it, its a simple strcpy to change a few words. I''d like to see it taken a step further like you said.

- Kevin "BaShildy" King
Game Programmer: DigiPen
www.mpogd.com

##### Share on other sites
OK here''s something off the top of my head. Not much of a writer myself so this is going to be painful, but I want to know if this is what you mean:

PAR025

constraints:
main character has killed a member of the slaver gang

The alley suddenly seemed darker. If Seth noticed, he wasn''t showing it. He idly played with his flickknife as they trudged on. Light rain pattered on his plastic hood. How it found a way through the narrow gap left by hundreds of featureless buildings was a mystery to Davey. It was then that a tall figure stepped out in front of them without a sound.

outcomes:
main character has encountered slaver leader

From here the game can one of many turns. Should the character run away, this outcome remains true. Staying brings on one of many immediate paragraphs such as PAR026 below.

PAR026

constraints:
PAR025 played out
main character belongs to the slaver gang

"You aren''t being very careful, O''Toole." The voice was calm, menacing. "We found out about you''re little run in with [insert dead man''s name here]."
CONVERSATION CHOICE HERE?

Is this the kind of thing you''re talking about, bishop_pass?

Trevize

-------------
"a half a billion times
you showed me what this life is for." - Live

##### Share on other sites
I think that is very close to what he meant. The constraints and outcomes help to show where the code can interface with the story. The constraints dictate when that story segment can or will occur, and the outcomes affect which flags or scores are adjusted afterwards. There''s a lot more to it than that, but this is one good way of looking at how it all fits together.

I would say that perhaps "PAR025 played out" is a poor constraint however, as it directly links one story segment to another one, which defeats the object somewhat. By defining the above in terms of actual events and states, you give the player the option to reach that part in a different way, adding some non-linearity to the game. Of course, some things will have to be almost entirely linear in nature.

[ MSVC Fixes | STL | SDL | Game AI | Sockets | C++ Faq Lite | Boost ]

##### Share on other sites
Kylotan pretty much summed it up.

My motivation for starting this thread was not to explain to aspiring game writers how to write for games, but to inspire them to apply their writing skills to game development in a new way. Perhaps this way is the way for game writers to better flex their muscle.

Frankly, I don''t see the value in a linear fixed story, or even a story with branches. The former is, in my opinion, only of value as background information, which is only that, as opposed to elements directly related to the player''s plight. The latter is a contrived attempt at imposing a linear story on the player.

I think situations have potential, as described in my older thread called Situation Creators and also touched upon in Good story vs. connected situations (long but easy) and perhaps in The GM''s Creed Applied To Games and Narrative interpolation.

___________________________________

##### Share on other sites
so is it good to write a story before designing the engine . or after?

SKATEBOARDING IS NOT A CRIME!

##### Share on other sites
I think the code engine and the writing can be developed largely independently, providing that you did some design work beforehand that dictates what needs to be done to both coders and writers. In this case, you would have to decide on an episodic structure in the design phase, and writers would produce their work based on the instructions in the original post while programmers would generate the necessary structures to store the situations.

[ MSVC Fixes | STL | SDL | Game AI | Sockets | C++ Faq Lite | Boost ]

Edited by - Kylotan on February 2, 2002 1:47:11 PM

##### Share on other sites
Condition: Player examines rose

It was autumn, and the garden was mostly fallen leaves and muddy ground, but there were still a few flowers. I crouched down to admire a rose, and [NPC] lounged against a nearby tree, watching me with one eyebrow raised. I love the scent of roses. I read somewhere that rose musk contains a substance like women’s pheromones, so that’s why they’re associated with love, and why they’ve been so popular throughout history, especially with guys.
“Do you like roses?” asked [NPC].
Choose response(s):
1 No response.
2 "I hate roses." (serious/irony)
3 "I love roses." (serious/irony)
4 "Roses are ok."
5 "They say roses are so popular because they smell like
women."
6 "Can I pick these roses?"

AI processes responses.

Results: NPC gains various knowledge and decides if and how to reply.

Is this what you want? Or do you need something that doesn''t require as much AI?

##### Share on other sites
sunandshadow: First of all nice writing I don't think that's what bishop_pass was going for. He said:

quote:
Original post by bishop_pass
...The player wants to live their own story, not yours....

Although what you wrote was incredibly descriptive, i believe you are too focused on the prose. bishop_pass's intentions I believe are to allow these story elements to be created in such a way to allow for non-linear mini-storyline and dialogue sequences. You are presenting the player with a few options, but they are still forced onto the player. I believe using this format you are supposed to write the scenario, triggers, and results. Not a introdution, a list of static player responses, and an A.I. explination of what each response means.

bishop_pass , is that what you mean by this topic or did i stray off?

- Kevin "BaShildy" King
Game Programmer: DigiPen
www.mpogd.com

Edited by - BaShildy on February 2, 2002 8:51:38 PM

##### Share on other sites
quote:
Original post by BaShildy
Although what you wrote was incredibly descriptive, i believe you are too focused on the prose.

There is nothing wrong with focusing on the prose. I am just not certain it would come into play in a game. But that doesn''t mean one can''t write nice prose to better create a visualization for both the writer and any other member of the development team.

___________________________________

##### Share on other sites
sunandshadow: that was excellent! Let''s take a look at it more closely to see if we can better mold it to what I have been envisioning.

quote:
Condition: Player examines rose

It was autumn, and the garden was mostly fallen leaves and muddy ground, but there were still a few flowers. I crouched down to admire a rose, and [NPC] lounged against a nearby tree, watching me with one eyebrow raised.

Ok, what we really have here is a situation waiting to be imposed on the player. That is good, because that is the type of thing we are looking for. Now, we want to generalize this to a template so the program can work with it in various contexts. So, what I see are these initial setup parameters:

• A garden or patio: could be private or public.
• The player is in the garden, and is not an intruder.
• The garden has roses.
• There is at least one convenient tree nearby.
• The day is quiet, there may be other people around, but certainly there is nothing alarming going on at the moment, such as a battle, emergency, or crime.
• An NPC is leaning against the tree.
• The player stoops to examine or smell the roses.

Ok, aside from the player''s choice to smell the roses, everyhting else can be imposed on the player. The program need not wait for these exact circumstances, but can set the stage in preparation for this situation.

Once the player stoops to smell the roses, assuming the situation has been setup in advance, the situation is triggered. At this point, depending on the genre, sophistication, and the way the game chooses to handle dialogue, we have a possible set of outcomes to this situation, which you haven''t eunumerated.

I see this as half of a situation, with no resolution or purpose. Imagine that the AI controlling the game has an agenda, or has something in mind for the player. Is the NPC about to engage in a scam? Is their some trickery about to happen. Is this the opening to a romantic segment.

Better yet, imagine this situation as the setup for any of the above. Call it the preplanned encounter with the charming but mysterious stranger.

___________________________________

##### Share on other sites
Patiently awaiting more situations...

___________________________________

##### Share on other sites
This is a "random encounter". In bold are engine concepts.

Preconditions:
- The player character is entering a dark , deserted and public place, such as an alley or a nearly empty biker bar.

Resolution:

• Add additional population to dark corner of area: A dangerous thief with weed to sell . Play the normal description of the area.
• If the player character has normal senses play:
quote:
There's a shady character lurking in the seediest corner of this dismal place. His/her (choose based on dangerous thief's gender) eyes flash as he/she glances in your direction.

• If the player character has heightened senses play:
quote:
Something's not quite right here... the atmosphere seems oppressive and the hairs on the back of your neck are standing up.

• Wait five seconds, play:
quote:
The shady character approaches you slowly from the corner. He/she seems to have a slight limp. "Hey bro/sis(choose based on Player Character's gender), want some good stuff?". He/she flashes you a bag marked with a green leaf.

• Allow for player action.
• If the player character seems weak , the shady character attempts to mug them, Else the character is offered the opportunity of buying one bag of weed.
• If the player character has a wealthy appearance , does not appear very strong , and at any time turns their back on the shady character while still in their view, the shady character attempts to mug them, regardless of having sold them weed or not.
• If the player character gets out of the dark place unmugged, play:
quote:
You can breathe easier getting out of that bleak place.

I hope the formatting on that works the first time around

Is this the kind of thing you're expecting from writers?

People might not remember what you said, or what you did, but they will always remember how you made them feel.

Edited by - MadKeithV on February 5, 2002 3:47:17 AM

##### Share on other sites
Hey MKV, that was pretty fun. Call it the encounter with the shady unsavory type in a dark alley. It is better than your average random encounter. There is some substance to it. I would then say that such ''encounters'' should only be played out once. To inflict this on the player a second time would remove the realism of it.

However, if the player has not learned his lesson from the above encounter, there should be several more ''situations'' waiting for our player if chooses to enter alleys freqently. But each should be a custom tailored experience.

___________________________________

##### Share on other sites
Thank you BaShildy and Bishop_Pass

Anyway, to formalize things...

I''m thinking that a scene must be set up by the player entering a specific area (with there being an exception for the player travelling with an NPC). So, the area has some stuff and maybe some people in it, depending on how you want to generate areas of the game. The content of the room and the character''s inventory determine the possible interactions. So it would be like in a MMORPG where you enter a room and you get a message: This room is blah blah blah, Contents: X, Y, and Z. The animate objects in the room will have AI instincts that determine how they react to the character, and they will start to do this when the character enters the room (unless he''s invisible or something). So any animate objects in the room are checked to see if they want to take any immediate action upon the player''s entrance. If yes, they do. If this action is agressive it triggers the start of an exchange (e.g. The NPC leans against the tree. This is not agressive, so it is merely reported to the player). If not, the player''s first action (e.g. examining the rose) triggers the start of the situation.

Now the main AI (the writer or DM figure) gets the input: situation start[whatever action triggered it] and decides how to respond so that the player is entertained and the plot is furthered.

[This post is still in progress, I''m going to edit and finish it tomorrow, so you can ignore it until then.]

##### Share on other sites
Just wanted to bring this to the top again, with the note that I started using this in a project I''m working on now, and it helps immensely.

##### Share on other sites
quote:
Original post by ThoughtBubble
Just wanted to bring this to the top again, with the note that I started using this in a project I''m working on now, and it helps immensely.

Well, I am sure we would be interested in the details and how you are making it work.

##### Share on other sites

Each situation (ministory) has a set of things:
type option:
each option has the:
array of probabilities, for each option
array of id''s for each ministory, to move to
end type
Description (string, with the description of the place, ect.)
Options() (type option, each option the player can shose)
Removed() (doubles, shows which ministories cannot be used because of this one)

Player choses an option, say option 3, using optionprob, to determine where they go.
x = int(rnd(50) * 100)do until mvd = truefor y = 0 to ubound(option(pchoics).prob()if x <= option(pchoice).prob(y) then ''move character mvd = true exit forend ifnext yloop