Game Types and Game Kits
[Documents/02.2-GameKits.txt]
Don Yacktman, 28 Sep 93

Well, here's goes a few of my random comments...

The possible game types listed are quite broad, and many would
benefit from different types of top level design.  For example,
the board-style games (Risk and Splat are NEXTSTEP examples)
need an engine that understands "rules" about how the pieces
move and a board object to hold them.  On the other hand, the
more complex simulation wargames (xconq comes to mind, as do
many of the others listed) require a simulation engine in there
to act as a sort of server, but this engine does much more than
hold the location of the pieces.  Luckily, this is just a subclass
which extends the first case, in most respects.  Now, the SimCity
types of games, while not zero-sum games, would need the same
basic simulation engine underneath, even though the goals and
resources in the game are quite different.  Thus, I think that
those should still fit in with the definition.  Doing the role
playing stuff in many ways can fit into the framework, but I
would suggest that it's another subclass, one which is almost
complex enough to warrant another list... :-)  By the way, there
are no NEXTSTEP native adventures.  Wow, this needs fixing. :-)

Anyway, I think that the games listed already are a good
representation of what I'd consider to be a WarGame...

I agree with Joe's post, as long as SimCity types are included,
because although they aren't zero sum games, the underlying
implementation details end up being remarkably similar.
Before we set forth any designs, though, I _highly_ recommend
looking over the Splat source code, which is interesting because
it attempts to be a generic board game with a "Rule" protocol
that controls game play.  You'll notice that the Splat rules
are encapsulated into a single class which implements this
protocol.  This protocol is too limited for what we want to do,
but I think it would be a good springboard into the full
system, especially if we pick it apart for it's good points
and then determine it's deficiencies.

>From Joe's post:

> [The following inspiration may be superfluous if Don Yacktman's kits already
> cover this area.  I would love to read an overview of the Don's kits, if one
> is readily available!  In any case, my attempt at inspiration follows!]

Well, try ftp.byu.edu:/pub/next/gamekit and /pub/next/misckit for starters.
There is a lot in there!  Since I was mentioned a few times in
the initial messages that went out, I think it might be fair
if I give a little background about these kits and what's going
on with them, as well as a summary of some of the things I've
discussed with Ernie P.

As many of you know, the MiscKit was originally a bunch of objects
and stuff that I found I used a lot in my projects, and have now
released to the public.  The misckit is now also open for others

to contribute their pet objects, so it should grow into a sort of
public object repository of free objects.  Almost, but not quite,
public domain stuff.  Many of these objects will be useful in
speeding along the WarKit implementation, and some won't be of any
use at all.  If you're not on the mailing list and want to be, you
can ask me to put you on and I will.

GameKit.  This one is the core of all my games right now.  It's
specific to games and provides the interface glue and many subsystems
that would be useful in a game.  The subsystems are designed to
be independent of each other, and thus useable in other systems,
but can also work well together, and have more features available
when used in GameKit projects.  Subsystems for things like overall
top-level game logic, score tracking, high score recording and a net
high score server, and a full sprite-based animation system are all
part of it, but the subsystems can operate independently.  You'll
notice that most of the services, minus the sprite could be of use
here; and depending on the game, you might want to use the animation
subsystem, too, to make things spiffy.  (BattleChess, etc...)
The GameKit at the moment has one restriction, though, which is
a problem.  That is that if used in a _commercial_ app, you owe me
a license fee.  (In a PD app, it is free, though.)  Well, I'm
considering lifting that, and making it always free.  (Comments
on whether or not I should do this should go directly to me, and
not to any mailing list, please.)  Also, the GameKit will NOT be
opened up for public contributions like the MiscKit.  That's getting
really complex, and I don't want the attendant hassles there,
since I know where I want the GameKit to go.  However, suggestions
are still welcome, and I plan to mold the kit into what the public
wants to see in it.

Now, my "special" offer was this...to make sure that the GameKit
provides hooks and necessary bits to allow the WarKit to be another
sub-system that fits into the kit, just like the current animation
system and such; they can all co-exist quite nicely...  So, as
the WarKit requires the GameKit to provide a hook or implement a
protocol, I'll make sure it does.  That way, the top level junk,
like interface code is taken care of already.  Here in the WarKit,
all that's needed is the design of good core engines, rule sets,
and so on.  In other words, I hope I can help us get to the meat
of things by providing the glue that every game would need.

I should also mention that the GameKit was originally designed with
the idea in mind of eventually supporting every type of game thought
possible, by the use of different sub-systems which implement the
needed frameworks for a given genre.  Right now, I'm refining the
arcade-style stuff.  The next was to be role playing games, and
then this...war games, and from there, whatever is left.  Since this
is happening now, well, I won't have to do this one by myself. :-)
That's good, because Kris Magnusson is aching for an NX_Defender,
so I'd best take some time out for that...he knows where I live. :-)
Well, the subsystems are autonomous enough that you could always
plug in a new one for any purpose anyway, and I provide ample hooks
to do this with.

And, if we don't use anything in the GameKit, I won't be offended,
either.  I offer it as a way to save some time, and I'm quite
willing to work to make it useful for what we're doing in the
WarKit.  (Can't do much better than that.)  And, as noted, who
knows how long this will all take?  I've got to get my paying work
done, and this sure won't put food on my table.  I do it because
it's fun and I really enjoy it a lot.

Well, that's a lot of spewing, I think I'll call it a night.
Hopefully I'll be able to make a meaningful contribution here.
(I'd really like to see an xconq-like thing and a SimCity style
game for the NeXT, too, and have long considered doing something
like these.)  As an overlap, I _love_ xpilot (which has arcade
action in a war like setting), so I'll be sure that both kits
can function well together.

Well, grab the stuff off ftp.byu.edu and play!  Remember that
the GameKit is incomplete and thus you can mold it to what you
need it to be via bugging me.  I welcome this.

Later,
Don_Yacktman@byu.edu