Developing Game-Themed Applications with XNA
Foundation of Digital Games: Pre-Conference Workshop
April 25, 2009
Abstract and Bio: Here is the
abstract of the workshop and brief bio
of Kelvin Sung.
Download: This zip-compressed file contains all of the documents
referenced by this index file (including this file).
Schedule:
-
Section-1: 1:00 - 1:55 Overview and Introduction.
-
Introduction:
slides on background and overview.
-
Simple Example:
construct and analyze the source code of a bare
bone XNA project.
-
Drawing
with XNA: draw a simple image with XNA*.
-
Interactive control:
interactively control the location of the
image*.
- The
XNACS1Lib library:
-
Working with the Library:
draw and control a circle with the library.
- Working with media:
include file textures and audio effects.
- Section-2: 2:00 - 3:25. Build a BlockBreaker game.
-
BolckBreaker:
Design
and
implementation strategy.
-
Simple circle again:
Trying out the coordinate system and simple circle drawing.
-
The Ball
Class: Extending the library to encapsulate hero appearance and
behavior.
-
The
Block and Paddle Classes: Extending the library to encapsulate
supporting objects (appearance and behavior).
-
The BlockSet
Class: Abstracting of hero and supporting objects interaction!
-
BlockBreaker
with textures: Cosmetic: include a some file textures to make the game
slightly more interesting.
-
BlockBreaker with
audio effects: Cosmetic: include audio effects to make the game (I hope)
whole lot more interesting.
-
Improving the
game: in-game logic and interactive graphics (to
be done at the very last)!
- Unbreakable blocks
- Fix the "ball getting stuck" problem
- Support for multiple balls
- Including some winning conditions for the game
- Section-3: 3:30 - 4:00. Sample XNA based teaching materials.
- Examples for teaching CS1. (Complete material
on-line).
- Strategy: implement a "game" based on the concept, e.g.:
examples for decision
structure
- Simple
set up.
The
program
(does not work).
- Simple
If statement.
The
program
(only one bound).
- Simple
If-then-else.
The
program
(all bound, but not paddle).
- Multiple
nested conditionals.
The
program
(paddles with barriers).
- Logical
AND operator.
The
program
(paddle, modes, and winning condition).
- Logical
OR operator.
The
program
(optimize paddle check).
- Assignments for CS1/2 courses. (Complete materials
on-line.).
- Strategy: faculty-centric!!, support students: e.g., assignment on binary search tree:
- For faculty:
- For students:
- Your own game-themed applications:
approach
and
guide.
- Your own game-themed examples:
approach and
guide.
- Your own game-themed assignments:
guide.
Acknowledgement: *Thanks to Mitch Walker for the
excellent idea of using sprite to introduce basic drawing with XNA.
References:
- This work is based on the results from the "Games-Themed
Introductory Programming Project":
-
Here is a comprehensive
guide to working
with the XNACS1Lib Library: this guide includes the links to a series of
tutorials and implementation guides that show you how to develop game-themed
applications based on the XNACS1Lib library.
- Here is the
source code to the
XNACS1Lib library.
Warning: this source code is work in progress, we apologize for
the general lack of comments and/or structure. We expect/hope, in
general, people will use the library, rather than work on
the library.
Comments and Feedbacks? Thank you for reading this document. We'd appreciate it very much if you can take another minute or two and
fill out this feedback form (this is a word document)
and send it to
ksung@u.washington.edu. We sincerely appreciate your interests.
This document and the related materials are developed with support from
Microsoft Research Computer Gaming Initiative under the Computer Gaming
Curriculum in Computer Science RFP, Award Numbers 15871, and 16531.