Requirements
Final Requirements:
The ultimate
goal of the Green Project is to create a game development system that
allows very novice but passionate programmers to create their own games
and, along the way, learn some useful things about real life
programming. The system will minimize the frustrating tedious aspects
of game creation and allow the novice user to learn and be exposed to
programming while being motivated by their own accomplishments. In
addition, it will
be set up such that it will be easy for an instructor to gradually
introduce the system to students as a way to teach
basic programming skills. Given a complete or partially complete
example
game, students should be able to easily edit a small part of it,
without first understanding the entire system. Using a simple to use
scripting language within an integrated development environment or
"IDE", users create games by defining game objects or "entities" and
their behaviors, setting up a game scene with these objects, adding any
custom graphic files or "sprites," and letting it run. They can also
take an existing sample game (of which a number of sample games will be
provided) and change a portion of it to create a new game. The engine
also provides many tools for the user, such as a library of behaviors,
sounds and graphics that they can add to their game.
The
system also uses open software and will be licensed under the GPL. It
will run under both Windows, Linux, and Mac OS X and require a machine
with hardware accelerated graphics. The system comes with an IDE
program to simplify program writing; a language interpreter and game
engine to run the program; a sample library of sounds, music, artwork,
models and such; and a data handling system for things like background
maps and gameplay object statistics.
Version
1 (first complete, useful package):
The goal of the first version is to enable users to
create games such as pong, asteroids, space invaders, and others. This
requires a number of features. First of all, the system should support
multiple, moving objects on a static background. Objects such as
bullets or asteroids may be dynamically added or removed from the
scene. The system should also allow users to define autonomous behavior
which may depend on an "awareness" of other objects in the scene.
Finally, games will be written in an interpreted stack-machine based
language.
Development Version 0.1 (first
milestone leading up to Version 1):
In the first development version leading up to
version 1.0, it will be possible to create simple scenes. These scenes
will have a set number of moving objects, and these objects may have a
number of behaviors defined for them. The concept of a message will be
introduced, such that behaviors may respond to messages and send their
own. In addition, the system will send messages to inform objects of
keyboard input events.
This version will have some limitations. For
example, each object in the scene will be drawn using the same graphic,
or one of a limited set of graphics, and because the scripting
language will not yet be implemented, these scenes are defined directly
in C++ code. In addition, user defined messages will be fairly limited,
both in what they can contain and how they are sent. However, given
these limitations it should still be possible to create simple games
such as pong.
(subsequent version 1 milestones to follow)