CPS 108 : adventure Specification Addendum
Spring 1999
In order to emphasize specific design issues (and to make your final
project more interesting :), you are to add additional functionality to
your program to make it a networked, graphical game. You will also
be making an additional program that allows users to build and test their
artificial life characters before adding them to their adventure game.
Interface
You must supply at least two interfaces for your adventure game: one text
based and one graphical. There is no restriction on how you implement
your interface; just that you make some effort to separate it sufficiently
from your game. For example, your text interface might be something
like the following:
-
an applet that consists simply of a text area
-
a series of HTML pages (see remote
control of netscape)
-
display to a terminal window
Likewise, there are a variety of options available for your graphical interface:
-
a static image and a compass-like control panel
-
a 2-D overhead view of the maze with markers for items and characters that
is dynamically updated
-
a 3-D player's eye view
Note this restricts your game to be somewhat stylized. In other words,
it is possible (though difficult) to make a text interface for highly interactive
games (like pac-man or doom).
Networking
You must make your game networked so that any number of people can play
simultaneously. Making your game respond to network messages is not
difficult (Java provides a number of classes to help this); but you will
need to worry about several issues when distributing your game across multiple
machines.
-
what part of the program will run on each machine
-
how will the programs communicate
-
how will each program stay consistent with each other program
-
how will new players join your game
Get-A-Life
You are to build an artificial life simulator based on the description
given here. You should follow
the specification given in the paper as closely as possible (but in Java
instead of C++). In addition to the specification given in the paper,
you should build at least two example simulations.
Extra Credit
There is ample room for creativity in this project. In general, your
group should strive to set itself apart from other groups. For those
that are still unsure about how to expand on the basic assignment, consider
the following two options:
-
allow users to build and save mazes
-
allow users to dynamically build and save artificial life creatures
-
push for standard maze and character formats so that different groups can
share data between projects!
Comments?