Course Schedule

Week 1

  1. Installing Unity
  2. Navigating the Unity Scene view
  3. Creating Projects
  4. Manipulating Objects in scenes
    1. Quick explanation of 3D game geometry
    2. Transforms
    3. Rotations
  5. Importing Objects and Packages
  6. Asset Store
  7. GitHub
    1. Installation
    2. Creating an account
    3. Repositories
    4. Creating a repo
    5. .gitignore
    6. First commit / README.md
    7. Pushing/pulling

Homework 1 – Getting Started

  1. Create github account
  2. Create unity project
  3. Initialize project as git repo
  4. Push to github
  5. Deliver to Adam: Link to Repo via email
    Homework 1 Instructions

Reading Response  – “Artifact” by Olli Sotamaa

In ~250 words, very briefly summarize Sotamaa’s argument that digital games are artifacts. What does this status as “artifact” signify? Does this affect your perceptions of the games you play? The games you make? Submit via DropItToMe on submission page.


 

Week 2

  1. Terrains
    1. Deforming
    2. Texturing
    3. Details
      1. Trees
      2. Grass
      3. Mesh details
      4. Terrain rendering optimization
  2. Lights
    1. Dynamic lights
    2. Baked lights
  3. Cameras
    1. Placement, FOV
    2. Rendering Effects
  4. Object Primitives
  5. Materials
    1. Textures
    2. Shaders

Homework 2 – Forest Scene (10 pts)

  1. Using a formed terrain, lighting, nature elements (grass and trees), and object primitives (cubes, spheres, cylinders, etc), compose a static woodland scene. Ideas could include:
    1. A secluded stone outcrop
    2. Stonehenge in a forest
    3. A rundown cabin
  2. Composition is important here, you can use any elements from the Unity Store and any textures you can from CGTextures
  3. Camera placement, lighting, and attention to materials are important

Reading Response  – “Being a Game” by Miguel Sicart

In ~250 words, briefly summarize Sicart’s general thesis in this chapter. In addition, respond to his notion of the “semiotic domain” by thinking about how it applies to your ideas about making (or playing) video games. Be sure to refer back to specific passages in your response. Submit via DropItToMe.


 

Week 3

  1. Particles
  2. Colliders
  3. Physics
  4. Importing Meshes
  5. Instantiators (creating and destroying prefabricated objects)

Homework 3 – Introduce a campsite (10 pts)

  1. Add in a campfire using particles
  2. Add in some physics-enabled props
  3. In-game elements should be set up in the project folder as prefabs

Reading Response  – “Game Design as Narrative Architecture” by Henry Jenkins

In ~250, briefly summarize the article. Then, reflect on the ways that you might exemplify narrative architecture in your campsite homework. Be sure to use Jenkins’ terminology in your response.  Submit via DropItToMe.


 

Week 4

  1. Characters
    1. Movement
    2. Animation
  2. Interactivity
    1. Collisions causing responses
      1. Start with physics interactions (knocking over boxes with movement)
      2. Move to script-based interactions (here is where we want to introduce programming)

Homework 4 – Interacting with the Scene (10 pts)

  1. Add a first-person character into the campfire scene
  2. Give the character the ability to throw rocks (script can be imported from sandbox project)
  3. Create an interaction wherein the action of the character (throwing rocks, running into objects) creates a domino-effect/rube goldberg machine series of consequential effects

Reading Response  – “Defining Game Feel” by Steve Swink

In ~250 words, briefly describe “game feel” in your own words in a sentence or two. Next, discuss a game of your choosing in terms of its game feel, using Swink’s 3 building blocks and 5 player experiences as a guide. How does the game satisfy each? What could be improved upon? What aspects would you like to borrow for your own games?


Week 5 – Planning the Project

  1. Revisit top-down design
  2. We should spend a significant amount of time discussing how to take a project from the broad vision of what we want to create and breaking that down into all the needed steps and components needed to see a project to completion
  3. How to write up the plan in phases to keep moving the very complex project through it’s paces to completion
  4. Students will be soon approaching an enormous space in the programming section, so they should have a good basis on how to tackle it without panicking

Homework 5 – Project Proposal (or proposal rough draft)

With your group, draft a plan for your final project. Follow the tenets of top-down design, and consider things like scope, resources needed, and member responsibilities. This should be a team effort, so we suggest using Google Docs or similar applications.

See Project Overview for more information on the Final Project.

Reading Response  – “Game Mechanics Must Be In Balance” – Jesse Schell

In ~250 words, consider how the first 4 types of game balance mentioned in the reading might fit into the design your game. In addition, choose 2 more relevant types of the remaining 8. Remember, of course, that the scope of the project precludes certain possibilities, such as multiplayer or a 100+ hour game, so #6 & #7 aren’t particularly relevant to this project. But you could consider how rewards and punishments are relevant, for instance. Keep in mind, too, that part of the project is reflecting on your design choices, so engaging with these ideas early on in the design process will be extremely beneficial.

 

Be prepared to discuss your responses in class.


Week 6 – Programming beginning

  1. Overview of Programming
    1. Introduce terminology
    2. Very brief explanation as to how computers process
      1. Hard drive to RAM to Cache to ALU
    3. Levels of programming languages
      1. Machine
      2. Assembly
      3. Low-level
      4. High-level
    4. Interpreted and Compiled languages
  2. Three fundamentals
    1. Sequence, (line-by-line processing)
    2. Conditional structures, (if this then that)
    3. Looping structures, (instructions to do more than once)
  3. Algorithmic thinking
    1. What specific steps do we need to take to accomplish our tasks?
    2. Top-down design
    3. Pseudocode

Homework 6 – Interpreting Scripts (10 pts)

  1. Students will be presented with a simple scene, with several primitive objects with some basic scripts attached to them.
  2. They will need to add comments to the scripts in each line explaining what each line does.
  3. Example: a ball will roll back and forth when the user presses the left or right keys. Students will need to reverse engineer how the code works.

Reading Response – “Designing Interactive Tangible Games for Diverse Forms of Play” by Tilde Bekker, et al.

No written assignment.


Week 7 – Applying Programming

  1. Attaching a script to a gameObject
    1. Start() actions
    2. Update() actions
  2. Introduce variables and functions
    1. Datatypes
      1. Integers
      2. Floats
      3. Strings
      4. Complex types
    2. Classes
      1. Methods (code that changes something)
      2. Properties (code that can be changed)
  3. Performing simple functions
    1. Making on object become inactive on start
    2. Making an object move on input
    3. Changing an object’s color on input
    4. Making an object move slightly on update()

Homework 7 – Writing Their Own Scripts (10 pts)

  1. Using their previous campfire scenes, students will attach scripts to the objects within their scene that demonstrate each of the week’s programming concepts
    1. Proper use of Start() and Update()
    2. Declaring public ints, floats, strings, and use them in code
    3. Declaring changes to object properties
    4. Adding input to an object
    5. Moving an object on input
  2. As a group, use the MDA Model to analyze a game that shares a similar Aesthetic with your project.
    1. Choose a game with an Aesthetic similar to your desired one.
    2. Pinpoint a Dynamic from that game that contributes to the desired Aesthetic.
    3. Analyze that Dynamic for the core Mechanics that comprise it.
    4. Submit via Dropittome, and be prepared to report your analysis in class next week.

Week 8 – Loops and Conditionals

These should include group activities, they’re hard concepts for most people

  1. Conditional Operators
    1. And &&
    2. Or ||
    3. Not !
  2. If/Else
  3. For loops
  4. While loops
  5. Arrays
    1. Indexes
    2. Iteration

Homework 8 – Further application (10 pts)

  1. Using the scene from their previous week, students should add more interactivity to their scripts.
  2. These programming concepts should enable students to add some objectives to their scene. Not every single concept needs to be used (while loops can be tricky in Unity and aren’t usually needed,) but a complex conditional should be created and a for loop should be used.

Reading Response – “Task Deployment in Three Types of Game Spatial Structures” by Chuen-Tsai Sun & Sheng-yi Hsu

In ~250 words, consider which of the spatial structures mentioned in the article (ladder, maze, grid, or hybrid) best suits the intended experience (or aesthetic) of your project and, perhaps more importantly, how these spaces will guide players through the intended experience. Submit via DropItToMe by 2:10 on Friday, March 10th.


 Week 9 – Fleshing out interactivity

  1. Handling input
    1. Creating basic character input
    2. Adopting pre-written standard inputs
  2. Responding to collisions
    1. Script on object that does something when collided WITH (light comes on when character touches it)
    2. Getting the object you’ve collided with by tag
    3. Sending messages to receiving objects
  1. Raycasting
    1. Getting collisions from object
    2. Getting collisions from center of screen
    3. Getting collisions from screen clicks

Homework 9 – Sending damage to objects (10 pts)

  1. While not all games are about destruction (nor should all be), it’s a common enough task within games to apply damage progressively to objects, and demonstrates most concepts up to this point.
  2. Using your rock thrower, set a life amount for certain objects in your scene and a damage amount to your rock. When your rock collides with an object, apply damage to the object up to it’s life amount, then destroy it when its life is up.

Reading Response – “Mechanics of Game Feel” & “Metrics for Game Feel” by Steve Swink

In ~250 words, reflect on your rock thrower project through the lens of Swink’s ‘game feel’. Choosing 1 or 2 of the metrics (Input, Response, Context, Polish, Metaphor, or Rules), discuss how you could improve the feel of this game. Feel free to tie this into your main project, too.

 


Week 10 *Spring Break*

 


Week 11 – Audio and Animation

  1. Animating in Unity (keyframing)
  2. Importing maya animations
  3. Scripting animations
  4. Audio zones
  5. Playing audio clips with code on actions

Homework 11 – Bringing the scene to life (10 pts)

  1. Add sounds to our campfire scene. The fire should crackle, brushing past foliage should play sounds, knocking objects over should play sounds, and hitting things with rocks and destroying them should make sounds.
  2. Add in some fireflies to our scene, and animate them with keyframes
  3. Install Android Studio / XCode

Reading Response – “Sound in Game Spaces” by Michael Nitsche & “Bleeps, Blops, Clicks, & Pops” – Steve Horowitz

 

Focus on Michael Nitsche’s “Sound in Game Spaces” for this response (but feel free to bring up anything from Horowitz that you think is helpful). In ~250 words, consider how you can employ sound as a way to create a “sense of place”. This may involve discussing atmospheric music, recorded speech as a method of characterization, and/or dynamic soundscapes.


 

Week 12 – Deployment

  1. Device Testing
  2. Compiling for desired platform (PC/Mac/Android/iOS/HTML5)
  3. Optimizing rendering
  4. Working through app publishing (iTunes, Google Play, Windows Store)

Week 12 – Packaging the scene

  1. This is simple – deploy an app, turn in the complete debug version. It will need to run, and that’s it.

Week 13 — Workshop

Come prepared to work on your project.


Week 14 — Workshop

Come prepared to work on your project.


Week 15 — Workshop

Come prepared to work on your project.


Week 16 — Presentations and Class Wrap-up

Show off your work to the class.