emblem

APPM 1710
Introduction to Game Development 1
(Fall 2009)

Lecturer:John Flynt

email: john.flynt@colorado.edu

Page Contents

Class Times and Location

Monday 3:00 - 4:40
Wednesday 3:00 - 4:40
Location: ECCR 143

Office Hours

M W, ECOT 242 11:00-11:50, 2:00 - 300

Description

This class is not intended to be heavily demanding. Rather, it is set up so that you can work in a relaxed setting to refine capabilities that you might be able to apply to the subjects you are studying in other courses. In this respect, development of the artifacts this course features involves refining a set of skills that might be included under the heading of "digital composition." You explore how to develop artifacts, as games or otherwise, that allow you to communicate ideas to others. This is the general focus of this course.

In this course, you explore topics that introduce you to developing artifacts with Flash. Among these are simulations, animations, and games, in addition to "analogical" applications. The topics include object-oriented programming, algorithms useful in game, simulation, and animation projects, and mathematical topics. This course involves many short but progressively more involved labs.


Textbooks

You can complete the class without using the any of the textbooks, so purchasing them is optional. However, it is highly recommended that if you are a beginning programmer, you do purchase them. The Shupe book is especially helpful for those who are completely new to programming. Several of the games in the course are drawn from the Rosenzweig book, but at this point, difference exist between items presented in textbooks and those featured in the labs.

Rosenzweig, Gary. ActionScript 3.0 Game Programming University. Indianapolis: Que, 2007.

Shupe, Rich and Zevan Rosser. Learning ActionScript 3.0: A Beginner's Guide. Cambridge: O'Reilly, 2008.

Flynt, John. In the Mind of a Game.

Weekly Projects (August 24 – December 11)

 Week and Day  Monday  Wednesday
 Week 1: M, 8/24; W, 8/26  Conceptual Topics.  Flash interface. (Bug apps 1 & 2)
 Week 2: M, 8/31; W, 9/2  Flash interface. (Bug apps 1 & 2)  Flash interface. (Bug apps 1 & 2)
 Week 3: M, 9/7; W, 9/9  Labor Day  Using the Bone Tool
 Week 4: M, 9/14; W, 9/16  Types and Components
 Types and Components
 Week 5: M, 9/21; W, 9/23  Types and Components
 MovieClip Objects and Functions with Classes
 Week 6: M, 9/28; W, 9/30  MovieClip Objects and Functions with Classes  View Framework and Document Classes
 Week 7: M, 10/5; W, 10/7  View Framework and Document Classes  View Framework and Document Classes
 Week 8: M, 10/12; W, 10/14  View Framework and Document Classes  View Framework and Document Classes
 Week 9: M, 10/19; W, 10/21  HTML Publication
 Fishbowl
 Week 10: M, 10/26; W, 10/28  Balloon Flight  Drag and Drop
 Week 11: M, 11/2; W,11/4  XML Data Display  XML Hanging Words
 Week 12: M, 11/9; W,11/11  Monty Hall  Monty Hall
 Week 14: M, 11/16; W, 11/18  Baskets Bitmaps  Jigsaw Puzzle
 Week 13: M, 11/23; W, 11/25  Fall Break  Fall Break
 Week 15: M, 11/30; W, 12/2  Crowded Spaces  Crowded Spaces
 Week 16: M, 12/7; W,12/9  Final Project Description  Final Project

Strategies, Policies, Grades

It might be helpful, if you have a labtop, to purchase the academic version of CS3/CS4 or just Flash alone. CS3/CS4 is useful because it provides Photoshop, Illustrator, and Dreamweaver, all of which are extremely useful tools in any number of contexts. If you are interested in creating a large number of standalone illustrations, you might also consider SmartDraw.

To complete this class successfully, daily attendance is recommended, along with completion of each of the labs and the worksheets that accompany the labs. It is suggested that you work during class and for a few hours outside of class each week. The classroom provides a lab you can use if you do not have Flash on your own computer. Hours during which the lab is open are posted.

The university provides a solid set of policies regarding the conduct of classes. If you have any concerns at all that fall into this area, please stop by after class or during office hours.

 Area  Percent  Description
 Term Project  20% The term project is a project you complete on your own and show to the class on the last day of class, more or less as a final. You can use a few approaches to this. One is to work with one of the projects you have completed during the term and change it so that it provides new features. Another approach is to combine features from different projects. The goal here is to see how you understand, assimilate, and extend, culturally and technically, the work the class provides.
 Lab Work  30% The bulk of the work for the class involves completing labs. The labs provide, in some cases, step-by-step procedures for completing the work, but in other cases, you fill in the blanks and in other ways provide innovations. The purpose of the labs is not to have you create things from scratch but rather to allow you to learn what you are leaning in a way that is not highly stressful and to provide you with a set of exercises that you can use as the foundation for your final project.
 Class Participation  20% Yes, you get credit for being here! Your participation involves being here for others. Many situations arise in which your expertise on a given topic might prove helpful to others, and on such occasions, you will be called upon to help out. Helping out might involve sharing on a one-on-one basis or taking a few minutes to talk about something you have done are are doing as you have worked through the labs or other work.
 Quizzes or worksheets  30%  Most of the labs are accompanied by worksheets. The worksheets are extremely difficult to complete if you do not complete them as you work on the lab, but on the other hand, they are fairly easy to complete when you do complete them as you work on the labs. In most cases, you are asked to explain features of the code. In a few instances, you are asked to show how changes or functionality might be implemented.

Resource Documents and Links

Other or Previous Courses

  • ATLAS 3020.  This is an alternative version of 1710. This course is an excellent preparation for 1720, and all the applications are in CS4.

Projects by Students

Projects representing independent work or work that draws from several topics presented in this course can be accessed on a separate page.

Weekly Labs, Worksheets, Resources, and Other Assets

Labs and other material are posted on this site as the course progresses. The assignments for each day appear the day the assignment is announced and reviewed in class.

The lectures require you to access the class website, so when you show up for class, access your browser and then the class web page. The components for the class are as follows:

Conceptual Topics

Flash Introductory Topics 1

Flash Introductory Topics 2

Animation, Using the Bone Tool, Application Development

          Dancing Bones Application.

Data Types and Components

Basic Game Architecture: Smile/Frown

          The Smile/Frown Demo.

DisplayObject, Functions, MovieClip, and Events

This lab explores using MovieClip Objects and the class hierarchy of ActionScript.

          Demonstration of MovieClip and events.

          Demonstration TextField and events.

Viewer Framework - Document Classes

The Viewer Framework feartures a button panel and an associated set of frames. It does not use XML, but the file you create closely resembles an XML file and with accompanying changes in the code can be converted into XML. By the end of the course, you are shown how to implement the code needed to read XML files.

           Explore the application.

Publishing a Flash Project to the Web

This lab allows you to create an HTML page for your application. The instructor will provide detailed instructions about how to name the files and folders in which you save your project. You must provide your *.fla file along with the other files needed for web display.

          Sample of Published SWF.

Timer Explorations

This lab deals extensively with collision detection, use of a timer, and different approaches to manipulating Sprites and MovieClips. It begins with code in the Actions Panel and then moves it to an document file. An algorithm to detect isolated collisions is detected using Boolean values generated from individual pixel readings.

          Try the application.

Timer Explorations

This lab includes several projects that explore different ways of implementing timing controls. It is the first of two labs that explore the Timer class.

          Try the application.

Balloon Flight

This lab provides a context in which to explore how to add collision detection and other features to a previously developed application. The balloon now shows a flame as it rises, the tower blinks, and balloon navigation can be put on autopilot.

          Try the application.

Introduction to XML

         

XML Data Display Application

This is the first of two labs that uses XML to create a game.

          XML Data Display application.

Drag and Drop

This lab allows you to explore simple ways of picking up and dropping objects onto targets.

          Try the application.

XML Hanging Words Game

This lab allows to you load XML data to be used in a game scenario.

          Try the Hanging Words game.

Monty Hall

This lab allows you to explore probability.

          Try the application.

Baskets and Bitmaps

          Try the application.

Jigsaw Puzzle

This lab explores ways to use bitmaps in conjunction with mouse actions.

          Try the application.

Rising Tides

This lab allows you to explore conversion of units using melting polar icecaps and rising sea levels.

          Try the application.

Debt for Life

This lab allows you to explore how interest rates translate to lifetime earnings and lifetime debt.

          Try the application.

Sending Messages Between SWF Files

This lab explores how it is possible to send messages between different SWF's in a given page.

          Try the application.

Using the Date Class

This application explores use of the Date class to investigate how change can be shown as successions of activities.

          Try the application.

Database Connections

Final Project Description

Supplemental Material: Object Oriented Programming, Math, Physics Lab Resources

Here you can obtain a substantial set of *.fla and *.as files that can help you in your development efforts. See the Resources folders for the files. They are listed in the lab document.

Object-Oriented Programming - Document Classes

          View the Document (Walker) application.

Crowded Spaces - Systems of Composed Classes

Supplemental Material: XML, Sound, and Video

This lab provides you with opportunities to explore use of sound and video in your projects. It also provides you with an introduction to XML, which you can employ to load complex sets of of information into your projects.