Index: [thread] [date] [subject] [author]
  From: Garrett Mitchener <wgm2@duke.edu>
  To  : 
  Date: 21 Apr 1999 20:05:50 -0400

About Adventure and Graphs (THIS IS IMPORTANT)

I met with some groups who were having problems with their graph
classes not being general enough.  After the UTA meeting Tuesday
night, we decided that we will weight the design pretty heavily in
grading Adventure.  This means you should make it a high priority to

                FIX UP YOUR GRAPH CLASS!

Having the game finished and spiffy looking will not be as important
as having a good design.  Here are some things to think about if you
are doing design surgery and major re-writes of stuff.  We won't ask
you to actually do these things, but you might want to think about
making your design support them:

* Add new objects to the game (new weapons, new spells, new flavors of
  beer)

* Have objects that are represented by something other than an image
  file, as in animations or perhaps a puzzle that has buttons or other
  controls.

* You should be able to create a new plot line.  Think of this
  assignment as writing a library of gaming classes and your actualy
  game is a demo of the library.

* You should be able to write a maze construction kit.  That way,
  people can build mazes that aren't random, save them, and restore
  them.  Think of different kinds of randomizers, too.

* Have a special game master (GM) client.  This is so someone could
  come in and fix a game that has become unplayable somehow, or make
  it easier or harder to match the level of the people playing it.

* Support some kind of artificially intelligent non-player characters.
  You don't have to write any, just leave room for someone to write
  them.

* Consider using design patterns:  Command, Singleton, Flyweight,
  Bridge, Composite, Iterator, Abstract Factory, Prototype, etc.  If
  you don't have the gang-of-four book, I STRONGLY RECOMMEND IT!!! All
  this object-oriented stuff makes a lot more sense if you read the
  gang-of-four book.

* A communication or "talk" interface, so people playing across the
  network can send messages to each other and team up.

* It would be really cool if a couple of groups could get together and
  agree on a communication interface between their servers so that you
  could warp from one game to another.  That introduces a lot of
  complexity and it's probably very hard, but it would be really cool
  if someone could make it happen.

* Use UML or simplified UML, something to diagram out your design.
  Include this in your submission if you can.  Try using xfig.

Like I said, we don't require you to actually do any of these things,
but if you're having trouble improving your design, consider sketching
out a design for these kinds of things and see if that helps.
Remember the coffee machine exercise.

	-- "Freddy Kreuger"



Index: [thread] [date] [subject] [author]