Interaction and Collaboration Syllabus


DMST 3230 Interaction and Collaboration

Bill Depper


wdepper@du.edu

 

Class: M and W 12-1:50 in Sturm 434
Office Hours: T and TH 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 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.

 

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:

  1. Analyzing potential projects and creating user-centered solutions with clear goals and outcomes.

  2. Identifying and utilizing effective structures, information design and navigation for interactive projects.

  3. Creating compelling interaction and interfaces that respond to the needs of the established users.

  4. Establishing effective game play that balances challenge and fun.

  5. Using games to confront, illuminate and deepen a player’s understanding of the surrounding physical space through game play.

  6. 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 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/

 

 

Grading

Attendance:

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.

 

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.

 

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 - 40%

 

The projects will be weighted as follows:

 

Game: 40%

 

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

Grading

Exercises from class, and homework - 30%

 

Game: 30%

Quarter long project: 20%

 

Class preparation, Work Ethic and Participation - 20%

 

Schedule

 

Week 1

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:

  1. 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.

  2. 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

Vectors

Law of Sines and Cosines

Rotation and motion

Controller support

Managing Input

Input queues

Timers

 

Exercises:

  1. 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.

  2. 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

Proximity

Collisions

Physics – Box2d

 

Exercise:

  1. 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

 

Week 4

Kinect

SimpleOpenNI

Persistent tracking

Kinect examples

 

Exercises:

  1. Create a sketch that uses the SimpleOpenNI library to display the depth and rgb images from the Kinect.

  2. 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.

 

Week 5

3d Hot Spots

SimpleOpenNI and skeletons

Hypercube introduction and planning.

 

Exercise:

  1. 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 6

Alternet

OSC Basics

OSC and Processing

 

Exercise:

  1. 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.

 

Week 7

Light Control with DMX

OpenTsps

OSC and Unity

 

Exercise:

Choose one of the following

 

  1. Create a sketch that uses the OpenTsps app as a source of input.

  2. Create a sketch that controls the lights in the hypercube using a DMX library.

  3. Create a connection between the Kinect and Unity that alters a Unity scene.

 

Week 8

Work on final projects

First glimpse prototype

 

Week 9

Work on final projects

 

Week 10

Presentations on final day of class.