• If you are citizen of an European Union member nation, you may not use this service unless you are at least 16 years old.

  • You already know Dokkio is an AI-powered assistant to organize & manage your digital files & messages. Very soon, Dokkio will support Outlook as well as One Drive. Check it out today!


Programming For Play Syllabus (W 2014)

Page history last edited by Bill Depper 8 years, 3 months ago

EDPX 3100 Programming for Play - Physical Games

Bill Depper
Class: T and TH 9-11:50 in The Lab

Office Hours: W 12-2 or by appt.

Course Description
This course is an introduction to creating interactive games within physical space and the principles and processes involved in creating interaction in these projects. The class will focus upon animation, information design, interaction design and interfaces as well as structural design within these contexts. We will discuss the preproduction processes as well as production practices using the Unity game engine as our main tool. It is assumed you will have an introductory knowledge of basic programming approaches as well as rudimentary programming problem solving. This includes working with classes and libraries within Processing. Although we are using C# and Unity many of the concept and structures from Processing will be applicable.
Additionally we will discuss game design, balancing, prototyping/iterative design and play testing. Projects and exercises will investigate working collaboratively,  natural interfaces, differences between games and playthings, socially conscious games and art games. Particular issues related to game coding will be investigated including physics, timers, scoring, levels, and time-based animation.


Course Objectives
     Students will work on a series of exercises and projects to gain an understanding of the principles associated with programming games. Upon completing the class students should feel comfortable with the      following:
          Analyzing potential projects and creating solutions with clear goals and outcomes.
          Identifying and utilizing effective structures, information design and navigation for interaction in a physical gaming space.
          Creating compelling interaction and interfaces that respond to the needs of the established users.
          Establishing effective game play that balances challenge and fun.
          Using games to confront, illuminate and deepen a player’s understanding of the surrounding physical space through game play.
          Problem solving and developing solutions to programming tasks related to games in a confined physical space.

No text is required for the course although here are some suggested resources that may be extremely helpful.

    www.unity3d.com/learn - tutorial section and documentation
    Packt Publishing has a number of books on Unity
    www.digitaltutors.com - pay site with very good software tutorials
    Myriads of other sites. I will post on wiki when appropriate.

Attendance is mandatory. This class is heavily dependent upon group participation and interaction.
If you miss more than two classes your final grade for the course will be reduced by ten percent per absence. If you miss more than fifteen minutes of class without prior notification and approval you will be considered absent for the entire class period. If you are repeatedly late for class you may not be allowed to enter and participate in the class period you are coming late to. It is up to you to make arrangements to make up any missed work by the next class you attend. Missing project presentations will result in a loss of a full letter grade for that project. If you are participating in University sponsored events that will require your absence, please make sure you provide notice and paperwork prior to the event. Notification for absences due to religious beliefs should be given two weeks prior to the intended absence.

Student Illness
If you are sick please avoid contact with others and refrain from coming to class. Please contact me or have someone contact me on your behalf if you are going to be absent. For more information on the flu visit http://www.du.edu/duhealth/flu/

You may complete your in class exercises and assignments by submitting them via email to make up for class absences.  You will be responsible for completing all missed assignments, but additional time can be arranged.

If you are too ill to return to class and miss more than three classes, this may be sufficient grounds to assign a grade of “I”/incomplete. Please contact me and keep me updated to your status and expectations for attending class.

If you are absent for a prolonged period, refer to information regarding the following: course withdrawals/incompletes, medical stop-outs, tuition refund policy/appeal, and academic exceptions at http://www.du.edu/registrar/


Undergraduate Requirements:

     Exercises from class, and homework  - 30%

     The projects will be weighted as follows:
     Game: 50%

     Class preparation, Work Ethic and Participation  - 20%


Graduate Requirements:

All graduate students taking this course for credit will need to produce an additional project in addition to the requirements stated above. The additional project will encapsulate their advanced level of conceptual and technical expertise as acquired through extensive independent research and conversations with the instructor. The student will need to undertake further research in game design, ludology, and critical game studies to further their understanding of these areas. This knowledge should be used to create a compelling and unique humane or art game or plaything that engages with a subject that is important in their life. This should be an independent project from the group project. The project will be developed during the entire quarter in consultation with the instructor with a complete proposal, materials and all necessary research completed by week five. The following five weeks will be spent on the creation of the game.

The grade balance for the Graduate students will change as follows:
          Exercises from class, and homework  - 30%
          Game: 40%
          Quarter long project: 10%

          Class preparation, Work Ethic and Participation  - 20%


Week 1
Play and Fun
Types of interaction
Playthings require interaction

The ludic approach to design
How can we make coding playful
Iterative design and the role of play testing

Interfaces and feedback loops
Types of controls – “Natural” interfaces, controllers, mouse and keyboard input

Introduction to the Unity Game Engine
Introduction to C# and the MonoDevelop IDE.

Game loops
Awake, Start, Update, FixedUpdate, LateUpdate

Unity 2D


Week1 Files


Create a basic game structure by re-skinning and repurposing the example file. Make this playable in the sense that there is one simple goal to be achieved.
Select a partner and create a remixed game that includes both of your goals. If your goals are too similar, please create a new goal and implement it in the game.


Week 2
Types of play


Rotation and motion


Managing Input
Changing Mapping

Controller support -PS3, XBox 360, Wii(?)

Creating a control class

States and enum



Basic scoring

Persistent Game Control objects


Controller Mappings Page


Week 2 Files


Create a new game that supports some sense of social play, creative play, narrative play or imaginative play that will allow for two players to play at the same time. You must create this sketch with a partner. You must start this game by passing the keyboard between the two of you every five minutes.
Use timers to create reoccurring events within the first game that alter the game experience. This can include explicit countdown timers or implicit event timers that create events.

Week 3

Physics – Box2d implementation in Unity

Background Tiling

Health systems



Week 3 Files

Week 3b Files


Work with a partner to create a sketch that investigates the one or all of the following ideas: Proximity and repulsion, Collisions that do no include projectiles, Physics acting on non player objects.

Week 4
Simple games
Don’t be too ambitious

Integrating the pieces
Game Control
Storing states
Input options
End Conditions

Writing instructions



Work with two partners to create two sketches that communcate with one anther using OSC to pass information that will cause a change in the receiving sketch.

Week 5

Osculator and Wii Controls


OSC and tablets using Touch OSC
QR codes as input using OSC
Processing front end for QR codes


Week 5 files

UnityOSC files


ZXing QR code generator


Week 5b files

Week 6

Leap Motion contoller


KinectA and OSC communication

Kinect examples


Kinect and skeletons
Hypercube introduction and planning.


OpenNI Downloads for using KinectA on Windows


SensorKinect for Windows


KinectA software


KinectA Read Me


Create a sketch that uses the Kinect to sense a hand to control the position of another  object on the screen.


Create a sketch that will detect a user and track the user's skeleton. Use this information to alter a sketch running on another computer.

Week 7
Light Control with DMX
Processing and DMX
Simple AI


Week 7 files


Choose one of the following

Create a sketch that controls the lights in the hypercube using a DMX library.
Create a connection between the Kinect and Unity that alters a Unity scene.


Week 8
Work on final projects
First glimpse prototype


Week 8 - OSC Alternative


Week 9
Work on final projects


Week 10
Presentations on final day of class.

Comments (0)

You don't have permission to comment on this page.