Chris Pollett > Students >

    ( Print View )


    [Project Blog]

    [CS297 Proposal]

    [Del 1]

    [Del 2]

    [Del 3]

    [Del 4]


    [CS298 Proposal]


CS298 Proposal

XML for Video Games

Ru Chen (

Advisor: Dr. Chris Pollett

Committee Members: Dr. Stamp, Dr. Teoh


Today, the video game industry attracts ever more game designers and developers. Creating a video game involves a large amount of complex programming. My project is to define a XML language that will be helpful in creating and developing video games. When putting together a video game, there are some key elements a game designer focuses on, such as the logic of the game, play mode, graphics, sound, and input devices. This XML language will allow one to define a video game by writing an XML file and to modify the game by editing the XML file. My XML language will define properties and attributes of a game object such as the shape, size, location, color of the objects it contains, what kind of physical forces (gravity, spring, friction) apply to it, and what game rules its AI uses. The XML language will also specify what kind of input devices (for instance, mouse, keyboard or joystick), what kind of sound card features, and what kind of media play features are needed for the game.

A game engine is a set of programs that performs tasks common to games. Its tasks include properly setting up the game, runs it and shut it down. To demonstrate how my XML language makes game creating, developing and testing easy and fun, I will write a game engine that can read in a game XML file and play the game. Tests will be written to show how efficient various simple video games on my engine are compared to other engines.

CS297 Results

  • Developed a new game called Gauntlet using Rudy Rucker's pop framework. This deliverable helped me understand the Pop framework and get the feeling of how a game engine works.
  • Described a family tree using XML language and wrote a parser in Java to display the family tree. While working on this deliverable, I studied the XML schema and a Java XML parser - SAX.
  • Defined the Centipede game using XML language.
  • Wrote a simple game engine to parse the XML file for the Centipede game and show all the game objects on the screen.

Proposed Schedule

Week 1, 2: 01/25/04 - 02/10/04 Implement software deliverable 1
Week 3,4,5: 02/13/04 - 03/04/04Implement software deliverable 2
Week 6, 7: 03/05/04 - 03/18/04 Implement software deliverable 3
Week 8, 9: 03/19/04 - 04/01/04Implement software deliverable 4
Week 10: 04/02/04 - 04/08/04Final testing and debugging
Week 11: 04/09/04 - 04/15/04Write the report
Week 12: 04/16/04 - 04/22/04Submit draft to committee, clean up code
Week 13: 04/23/04 - 04/28/04Prepare final presentation
Week 14: 04/29/04 - 05/06/04Finalize the final report
Week 15: 05/07/04 - 05/13/04Finish the final report
Week 16: 05/14/04 - 05/18/04Oral defense

Key Deliverables:

  • Software
    • A complete schema of my XML language for games.
    • A new Java game engine built from scratch that can initialize itself based on an XML document describing tags for game logic, tags for players and game objects detailing the shape, color, size, location and graphics used by these objects, and tags for game setup and shutdown.
    • A completed game engine that can, in addition to the above, support tags for animation, movement of game objects, sound, input devices, game rules, levels of games and physical forces.
    • A metric for measuring development time of my game engine versus other common game engines and game script languages like Lua and Python.
  • Report
    • Detailed documentation for my game engine.
    • CS298 Report

Innovations and Challenges

  • To define a complete XML schema for video games as opposed to an XML schema for scripting certain components of games.
  • To come up with a good metrics for game development time.
  • To develop any complete game engine is quite challenging.


[RR03] Rudy Rucker. Software engineering and computer games / Rudy Rucker. Addison-Wesley, 2003.

[HM02] Harold, R. E., & Means, S.W. . XML in a Nutshell (2nd ed.). O'Reilly. 2002

[MM05] Mike McShaffry. Game Coding Complete, Second Edition. Paraglyph press. 2005

[MD00] Mark Deloura. Game Programming Gems. Delmar Thomson Learning. 2000

[MD01] Mark Deloura. Game Programming Gems 2. Delmar Thomson Learning. 2001

[BS04] Brian Schwab. AI Game Engine Programming. Delmar Thomson Learning. 2004

[D01] Patrick Dickinson. Building a Game Engine with Reproducible Behavior. 2001

[OL04] Oli Wilkinson. Creating Moddable Games with XML and Scripting. 2004