4002-590-02
Data Enabled Casual Games
Winter 20072 Course Syllabus

The information presented in this syllabus is subject to expansion, change, or adjustment during the quarter.

Instructor:

Name: Christopher A. Egert
Office: Bldg. 70, Room 2515
475 - 4873
cae (*at*) it.rit.edu

Office Hours:

TR 4:00PM - 6:00PM (tentative)
and by appointment

Course Text and Materials

Optional Book
• Text: ActionsScript 3.0 Bible, Roger Braunstein, Mims H. Wright, Joshua J. Noble, Wiley 2008.
Other Resources
• MySQL 5.0 Reference Manual
• PHP 5.2.5 Reference Manual
• Programming ActionScript 3.0, Adobe.
Additional Materials
• Additional readings will be provided as handouts or web URLS.

Important RIT Deadlines

Last day of add/drop is Monday, March 17, 2007. Last day to withdraw with a grade of "W" is Friday, May 2, 2008. he deadline for withdrawing from a course with a W grade is the end of the 8th week of the quarter. The withdraw process must be completed online before the deadline.

NOTE: IT department policy states that a student has one quarter to challenge any grade. After that, grades cannot be challenged

Course Description

Students will design and implement casual game engines that are data enabled. In particular, students will learn how to program game experiences that utilize data from the Internet. The seminar will include topics such as casual game data modeling, data management for casual games, server side programming and scripting, and client side APIs for data storage and retrieval. In addition, the seminar will allow students to examine the protocols and data formats that comprise a casual game experience as well as how choices will impact the game experience. Programming projects will be required.

Prerequisite Courses

4002-360 and ( (4002-330 and 4002-219) or (4002-231 and 4002-414) ) or permission of the instructor.

Course Goals and Objectives

General Course Goals
The goal of this seminar is to expose students to the technologies and processes involved in constructing a casual game system that is data enabled. The seminar will leverage prior knowledge in interactive media programming and database systems. In particular, this seminar will explore casual game data modeling, storage and retrieval techniques for ASCII and binary data, server side programming technologies for data presentation and session management, as well as client side application programming interfaces. Students will also gain an understanding of the underlying data transport mechanisms for casual game systems based upon a number of factors including synchronization, near-real time, and real time applications.

Specific Objectives (Learning Outcomes)
By the end of the course, students should be able to:

identify essential components for the construction of data enabled casual games. Assessed through in-class exercises and projects.

identify the role of communications mechanisms essential for the delivery of data enabled casual game experiences.

create data enabled game experiences that transform text, image, audio, and video content.

create data enabled game experiences that control packaged game content (assets and code).

create data enabled experiences that rely upon advanced topics such as sockets, web services, and AMF services.

Prerequisite Skills
1. 1.Usage of a multimedia development environment, program interactive user control of various media types, including graphics, text, animation, audio, video, and 3D.
2. Application of fundamental programming concepts in a scripting/rapid prototyping environment.
3. Implementation of object-oriented programming strategies that can scale from small to large-scale projects
4. Ability to map a relational model into a DBMS product through SQL DDL statements.
5. Ability to query a relational database implemented with a DBMS product through SQL DDL statements.

Course Organization

Projects
We will have two to three major projects during the quarter. These projects will build upon concepts covered in the class and in exercises, and are your opportunity to expand your understanding and apply creativity to the concepts learned. Due to the experimental nature of this seminar, projects will be completed in groups of two or three students.

Remember, multimedia projects tend to be time-consuming, so plan to get started early!

Exercises
Each week in class, you will be asked to participate in some in-class exercises. These exercises are designed to give you an opportunity to extend the concepts and principles you have encountered in class. They will form a foundation upon which you will develop your projects.

Exams & Practicums
There are no exams or practicums in this course.

Participation & Creativity & Fun
Portions of your grade are based upon classroom participation and creativity in your assignments. Creativity is not defined as artistic or photorealistic work. Instead, creativity addresses unique and novel solutions to the user experience. Since this is also a game course, part of your grade is based upon fun!!!

Website
The course website is located on the RIT myCourses system. You will only be allowed access to the section of the course in which you are registered. You will use myCourses to retrieve class notes, assignments, and supplemental materials. In addition, myCourses will be used as a discussion forum as well as a dropbox.

Course Topics

  • Defining Casual Games
    • What is a casual game?
    • What are the playability dimensions of a casual game?
    • What are the technological dimensions of a casual game?
  • Understanding Data Flow in Data Enabled Games
    • Database
    • Server-Side Technologies
    • Client-Side Technologies
    • Protocols
    • Polled Communication
    • Broadcast Communication
    • Asynchronous / Synchronous / Near Real Time Synchronous / Real Time Synch
  • Data Models for Casual Games
    • Player Information
    • Session Management
    • Persistence
    • Communication
    • Remote Asset Management
  • Data Modeling for Casual Games
    • Database Structure
    • Modeling for consistency
    • Relation Modeling vs. Performance
  • Database
    • Using SQL for data access
    • Data relationships
    • State consistency techniques
    • Binary data encoding and retrieval
  • Server Side
    • Request and Response Handling
    • Server Side to Database interactions
    • Server Side Data Transformation
    • Session Management
  • Client Side
    • HTTP-based communication
    • XML processing
    • Processing binary content
      • Audio
      • Video
      • Bitmap
      • SWF Content
    • Data performance issues
  • Advanced Topics
    • Sockets and XMLSockets
    • Interacting with Web Services
    • AMF-based communication
Grading

The grading scale used along with the grading criteria is as follows:

Component Weight
Projects 60
In Class Exercises 15
Participation, Creativity and Fun! 25
Range Grade
>= 90.0% A
>= 80.0% & < 90% B
>= 70.0 % & < 80.0% C
>= 65.0 % & < 70.0% D
< 65.0% F








Course Schedule (Approximate - will change throughout the quarter!)
  1. Week 1
    1. Introduction to Casual Games
    2. Your Server Environment
    3. Review of AS3.0 Game Programming
    4. Introduction to PHP Scripting
  2. Week 2
    1. Introduction to PHP Scripting
    2. Review of SQL - INSERT, UPDATE, DELETE, and SELECT
    3. The PHP-database pipeline
    4. Simple high score system
  3. Week 3
    1. More PHP
    2. Differences Between GET and POST
    3. Cookies and Sessions
    4. JOINS
    5. Per User Data Persistence in Games
  4. Week 4
    1. Data-Driven Text-Based Game Systems
    2. Text retrieval through pattern matching
  5. Week 5
    1. Image Storage and Retrieval from Flash
    2. Modification of Image on the Client and Server
  6. Week 6
    1. Dynamically storing and retrieving SWFs
  7. Week 7
    1. Aggregating game statistics
  8. Week 8
    1. Web Services
  9. Week 9
    1. Shared state management
  10. Week 10
    1. Advanced topics
  11. Week 11
    1. Project Showcase
Cheating

Academic dishonesty is misrepresenting someone else's work as your own. Academic dishonesty is a serious matter, and can result in an automatic F for the course. Please review the IT department's policy on cheating, located online at http://www.it.rit.edu/policies/dishonesty.html. If, during the quarter, you ever have any questions about what does or does not constitute academic dishonesty, please come and talk to me.

Finally...

Any or all of the previous information is subject to change or adjustment during the quarter.

bunny by Asa Tse turtle by Asa Tse flowers by Asa Tse psp guy by Asa Tse blow fish by Asa Tse shapes to cat by Asa Tse dinosaur by Asa Tse cute girl by Asa Tse bee by Asa Tse frog by Asa Tse dog by Asa Tse cat by Asa Tse canvas face by Asa Tse duck face by Asa Tse