Writing game script: baby steps.

[Image upload blocked by company policy :)]

I’m sure back in grade school, when myelf and a group of cohorts were working on a game using Logo Writer, that we wrote some sort of script for it. Memories are foggy, but I do recall a trap door in the floor of one room, and the grade-school Monty Python styled “AAAaaaaahhhh!” that floated behind that falling character.

So now, as an aspiring level designer, working on a big final project I am faced with having to write my first real game script. I’ve worked on plays before, I’ve read scripts… I’m no writer, but it’s not the content that bothers me, it’s simpler than that: How do you structure a game script?

I’m lucky in that we aren’t giving any conversation options to the user, they say what I want them to say when they decide to say it. So branching converstaion paths aren’t my problem… my problem came when I sat down with a head full of plot and character, a decently complete LDD, and a blank word document titled Dexter_Script_v1.doc. Where (and how) to begin?

Fortunately I found a good starting point, a lecture that Clint Hocking did that featured some comments on script structure in the game Splinter Cell: Chaos Theory. I found it interesting and proceeded as if it was representative of some kind of industry standard. (I also used his brief comments on LDD structure to similar ends).

In order to think more clearly about a game’s script divide the ‘words you want said in your game’ into 3 distinct types:
-Barks (love this term)
-In-Game script
-Cinematics

Barks are part of what Alexander Galloway might call diegetic machine actions. Quasi-Atmospherics. These are, for the most part, things that NPCs ‘bark’ out without direct user input. They are, however, game state dependent. Hocking gives the example of a guard in splinter cell who says “must have been the wind” to inform the user that this particular opponent has stopped looking for the source of a disturbance (noise, motion-detector etc…). Without these states existing (Guard in “alerted” state, guard in “default” state, user caused disturbance, user in “safe” state) then the bark would make no sense. The barks I am dealing with are much less causal, they depend on the user walking within earshot of a given NPC, that NPC having not yet said their bark, and the user staying within earshot during the bark. There are a few scripting moves I hope to implement to give certain NPCs a second layer of barks that are dependent on game states changing, specifically to give the user puzzle hints if the puzzles have been attempted and failed… we’ll see how I end up working in a hint mechanic, I may have to just make the hints come to the user in the form of the second script sub-type:

In-Game script. Much more akin to a play’s script, “‘[it] is all of the ‘scripted dialogue of the script’ that takes place in the interactive portion of the game.” When you are Playing your Character against NPCs you end up with In-Game script. In a case like mine, with no conversation branches, these script sections will read very much like a play’s. What’s even closer to a play though are the Cinematic scripts.

Cinematic Scripts: For the most part Cinematic segments do not feature conversation branches, though there may be a set of branching cinematics where some are played and others not based on the user’s state. In my case these cinematic portions of script allow me to write a bit more like a director, adding camera cues to the animation and sound effect descriptions that all game script types contain.

Breaking the script down into these three distinct types and then writing a script page for each section of my level made getting the first draft of my script much easier than I expected. Now all I have to do is re-read, re-write and re-peat… I’ll post it up once it’s pretty and presentable.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: