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