1;2c Practical Scripting for Games | Spring 2013

Practical Scripting for Games

DePaul University
GAM 340-901
Spring 2013
Tuesday 5:45pm - 9pm
Room: 634
Instructor: Jake Elliott - jake@dai5ychain.net

This workshop introduces game scripting to artists and game designers. A game script is a short list of commands that control something in a game, such as how a character moves, or an enemy's behavior. Students will learn to read, modify, and author scripts that generate and affect a variety of game elements over the course of weekly projects.

Students will learn to craft scripts to create gameplay moments that capture an intended experience.

PREREQUISITE(S): GAM 2xx Playgramming OR CSC 241 Introduction to Computer Science I


Textbook

'Game Feel' by Steve Swink. Order on Amazon.

Resources

"Game Feel" companion website: http://www.game-feel.com/
Unity 3.5.7 download page: http://unity3d.com/unity/download/archive
Official Unity tutorials (designed for Unity 4, but most of it still applies) http://unity3d.com/learn/tutorials/modules
Unity Answers: http://answers.unity3d.com/
Unity Forum: http://forum.unity3d.com/

We'll be using Unity 3.5.7 exclusively this quarter, not Unity 4. Projects cannot be moved back and forth between the two versions, so please ensure that you are running Unity 3.5.7 to complete the homework. The documentation for version 4 mostly applies to 3.5.7, but there are a few differences. For this reason, it's best to follow the documentation bundled with your install of Unity rather than the documentation online.

You can open the installed Unity documentation from within Unity under the "Help" menu. The most useful part of the documentation will be the "Scripting Reference."


Grading/Assignments

10% 10 reading responses (1 point each)
30% 6 one-week assignments (5 points each)
20% Mid-term project
30% Final project
10% Attendance, yours to lose upon your first unexcused absence

Further unexcused absences (after the first) incur an additional 10% penalty each.

There will be no extra credit, make-up work, or late work accepted.

All homework is due the Monday before each class, by 5pm.

Submit homework assignments by uploading them to the individual Dropbox folder to which you've been invited.

Group projects are allowed for the mid-term and final projects, but not for weekly assignments.


Lesson Plan Overview

Weeks 1-2: Intro to Unity
Weeks 3-6: Input and player physics
Weeks 7-11: NPC behaviors


Weekly Lesson Plans

Unit 1: Intro to Unity

Week 1 (4/2): The Unity interface & concepts

Assignment #1: Make some alterations to the assignment's project file (emailed to you), make a webplayer build, and upload the files to the "Week One" folder, in a subfolder with your name. Read and respond to chapter 1 of "Game Feel" for next week.

Week 2 (4/9): Intro to Unity scripting, motion

Assignment #2: Using the provided project file as a starting point, add a few triggers to the environment that react to the player moving through them.

Download project file. Read and respond to chapter 2 of "Game Feel" for next week.

Unit 2: Input and player physics

Week 3 (4/16): Input

Assignment #3: Using the provided project file as a starting point, create an input schema to put the ball through the hoop. Try to come up with something surprising! Include instructions in a separate text file, but don't include any hints or instructions on-screen in the game itself.
Download project file. Read and respond to chapters 3 & 4 of "Game Feel" for next week.

Week 4 (4/23): Interpolation

Assignment #4: Based on the "AssignmentFourStarting" scene in the project file, make a non-linear drawing toy. Try to get really weird. Like the weirder the better. Try to make your classmates dizzy.
Download project file.
Read and respond to chapter 5 of "Game Feel" for next week.

Week 5 (4/30): Unity's 'Application' module, 2D graphics with textures

Sample code for level switching and 2D sprite animation, from in class.

Mid-term assignment (two weeks): Pick a (real) animal, and make a game or "game-poem" with that animal as its starring character. Focus on capturing the "feel" of that animal in the controls, physical behavior, and play mechanics of the game. You can bring in 3D models or 2D art if you like.
Include a "Game Feel Bibliography" with your game.
For next week: Come into class with a formalized plan for how to approach capturing the feel of the animal in your game. Use Swink's 6-part structure, or your own. I recommend bringing in a prototype for your peers to test and give you feedback on.
Read and respond to chapters 6 & 7 of "Game Feel" for next week.

Week 6 (5/7): Open

Read and respond to chapters 8 & 9 of "Game Feel" for next week.

Week 7 (5/14): Midterm project critiques

Assignment #5: Choose an NPC/enemy from a videogame and analyze its behavior. What is the behavioral logic of this NPC meant to communicate to the player? Break it down in terms of timing, decision-making, mechanical characteristics (speed, health, etc), sound design, and visual treatment.
Read and respond to chapter 10 of "Game Feel" for next week.

Unit 3: NPC behaviors

Week 8 (5/21): Behavior state machine, following the player

In-class starting project file
In-class completed project file
Final assignment (three weeks):
Choose a piece of music and make a game about it. Try to think about how you can capture or respond to multiple aspects of the music: things like mood, texture, rhythm, and lyrical or thematic content.
Guideline: Check out the soundplay.pitchfork.com games for a few examples.
Guideline: Don't bring in unfinished work to the final presentation. If you have a problem or something isn't working, solve the problem. Google it, send me an email, ask your peers, come to my office hours, etc. Or cut the feature and come up with something else that sells your idea -- editing is an important part of any creative practice, like game development.
For next week, bring in the piece of music you'll be working from. I want to meet individually with each of you next week and talk about what your approach will be, so be ready to talk about that.

Read and respond to chapters 11 and 12 of "Game Feel" for next week.

Week 9 (5/28): Randomness & emergent behavior

Choose one of chapters 13-16 of "Game Feel" to read and respond to for next week.

Week 10 (6/4): Navigating with waypoints

Read and respond to chapters 17-19 of "Game Feel"

Week 11 (6/11): Final projects due.