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

View
 

Programming For Play Syllabus (W 2014)

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

EDPX 3100 Programming for Play - Physical Games


Bill Depper
wdepper@du.edu
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.

Texts:
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.

Grading
Attendance:
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:
     Grading
          Exercises from class, and homework  - 30%
    
          Game: 40%
          Quarter long project: 10%

          Class preparation, Work Ethic and Participation  - 20%

Schedule


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
Sprites

Triggers


Week1 Files

 

Exercises:
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

Vectors

Rotation and motion

Spawning

Managing Input
Changing Mapping

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

Creating a control class

States and enum

GUI

Timers

Basic scoring

Levels
Persistent Game Control objects

 

Controller Mappings Page

 

Week 2 Files

 

Exercises:
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
Animation

Proximity
Collisions
Physics – Box2d implementation in Unity

Tiling
Background Tiling

Health systems

Sound

 

Week 3 Files

Week 3b Files

 

Exercise:
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
Levels
Scores
Time
Inventory
Animations
Storing states
Sound
Input options
End Conditions
Replayability

Writing instructions

 

 

Exercise:
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

 

Kinect
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

 

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

 

Exercise:
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

 

Exercise:
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.