Refactoring
- From: Jason James House <jasonhouse comcast net>
- To: games-list gnome org
- Subject: Refactoring
- Date: Thu, 01 Jan 2004 14:10:41 -0500
I personally think that the "right" approach would require sitting
down and thinking about as many game variations and (G)UI variations as
possible... And as lame as it might sound, create ven diagrams...
Where do which features overlap where? Which features are subset of
other features? The proper approach would have several high level
coding interfaces/libraries, and even more specializations (and probably
specializations of specializations). Each additional layer should
provide ease for the coder.
I generally also feel strongly about preserving partitions between
dissimilar functionalities. The better preserved they are, the more a
user can pick and choose exactly what they want.
Here are some points that I consider to be important in differentiating
a "game." I am sure that I left a lot out, but I hope to bring up good
points.
Timing
* Are you playing against a clock? Does the environment change while
you wait? Can the rate of change be adjusted? (this can be more than
one parameter, not just overall game speed) What timer variations can
exist? How do they get updated? (chess has many variants. Go has "Byo
Yomi") What happens when a timer runs out? (An interesting chess
variant - one of your pieces is removed as penalty, and the timer
resets) Is the game turn based? Does it have to be? or are there ways
to make it more simulaneous? (for example the civilazation 3 play the
world expansion)
Players
* How many players are there? Has the functionality of each distinct
player/AI been seperated from each other? (scorched earth is rather
interesting in this way. Roundhouse chess might offer surprises with
both players and timng. Local verses net should be invisible to the
coding of the players) What possibilities for human control can exist?
(why can't your friend play the level boss?) What limitations do each
kind of player impose? (A relativistic dog fight can only be from the
perspective of someone in the cockpit when there is only one human
involved. Some controls are just too complex for people) What support
for scripting can be done? (Imagine warcraft, where you can write your
own battle strategies) How well parameterized are the AI's? Can
non-gnu-games AI's/players be used?
Rules
* Can different rulesets be used for the same setup? What flexibility
for rule variations exist? Can rules be hot swapped? Can AI's handle
it? (Consider Nightmare Chess)
Board Rendering + Connecting Players
* I think these are already in discussion. I would hope that the two
topics (board rendering, and connecting players) would be independent of
each other. Can non-gnu-games coded versions be used?
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]