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 Processing and a variety of additional libraries as our main tools. 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.
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 collision checking, timers, scoring, levels, and time-based animation.
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 user-centered solutions with clear goals and outcomes.
Identifying and utilizing effective structures, information design and navigation for interactive projects.
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 texts that may be extremely helpful.
Processing: A Programming Handbook for Visual Designers and Artists – Reas and Fry
https://www.kickstarter.com/projects/shiffman/the-nature-of-code-book-project
Making Things See – Borenstein
Daniel Shiffman's Nature of Code site. - http://www.shiffman.net/teaching/nature/
Attendance is mandatory. 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. 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.
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.
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/
Exercises from class, and homework - 40%
The projects will be weighted as follows:
Game: 40%
Class preparation, Work Ethic and Participation - 20%
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 independent humane or art game that engages with a subject that is important in their life. 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: 30%
Quarter long project: 20%
Class preparation, Work Ethic and Participation - 20%
Review of classes and libraries
Processing and games
Game loops
Creating a control class
Play and Fun – the ludic approach to design
Types of interaction
Interfaces and feedback loops
Types of controls – Natural interfaces, controllers, mouse and keyboard input
Exercises:
Create a basic game structure by re-skinning and repurposing the example file. Make this playable in the sense that there is a 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.
Vectors
Law of Sines and Cosines
Rotation and motion
Controller support
Managing Input
Input queues
Timers
Exercises:
Create a new game using vectors for movement 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.
Proximity
Collisions
Physics – Box2d
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, Simulated physics
Kinect
SimpleOpenNI
Persistent tracking
Kinect examples
Exercises:
Create a sketch that uses the SimpleOpenNI library to display the depth and rgb images from the Kinect.
Work with a partner or partners to create a two person game or a game that uses an user and a prop employing the Kinect to sense the prop or user that will control the position of another object on the screen.
3d Hot Spots
SimpleOpenNI and skeletons
Hypercube introduction and planning.
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.
Alternet
OSC Basics
OSC and Processing
Exercise:
Work with a partner to create two sketches that communcate with one anther using either Alternet or OSC to pass information that will cause a change in the receiving sketch.
Light Control with DMX
OpenTsps
OSC and Unity
Exercise:
Choose one of the following
Create a sketch that uses the OpenTsps app as a source of input.
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.
Work on final projects
First glimpse prototype
Work on final projects
Presentations on final day of class.