[comp.sys.misc] Generic Adventure System

ttr1415@helios.TAMU.EDU (Thom Robertson) (06/04/91)

For quite a while it has been clear to me that, in the area of adventure
games, it can be quite fun to transport adventure characters from one whole
adventure to another.  The commercial games Wizardry and Bard's Tale come
readily to mind.  I also had the pleasure of playing a set of public-domain
text adventures on the Apple II many moons ago which let you use the same
character in all (mainly because the author published his code, which
everyone else just gutted and re-worked for thier own adventures).
 
This phenomenon of share-ability, if you will, is not currently embraced by
the popular public-domain games (such as Moria, Hack, or the various
Multi-User Dungeon Systems that are out there) and I must ask,
why not?
 
This post is intended to express my views on such a system for the express
purpose of generating creative thought and productive debate on the subject.
Down the road, I would love for the resultant adventure definition to become
a standard, with enough ready-made code and utilities that public-domain and
share-ware adventure games become easier to write and thus more prolific.
 
No Flame-wars, people, please.  I realise that we are all an individualistic
bunch, using different computers, languages, and operating systems.  I also
realise that any standard, by definition, will be limiting to somebody.
However, take a moment to consider my points, and if you can think of a
better way (which you can, I'm nobody's genius), post it.
 
For want of a better name, I propose to call this standard G.A.S.
for Generic Adventure System (again, if you can do better, please post and
say so).
 
First off, this standard is mainly concerned with the file format of an
adventure character.  The format will be intimately tied to the combat
system, money system, and other facets of adventure gaming, BUT I'm sure
people can create very different adventure games using the same underlying
code dealing with how a character interacts w/ the environment.
 
So,
 
	Stats:
We could go with a standard D&D-like system:
Strength	3-18
Intelligence	3-18
Dexterity	3-18
Wisdom	 	3-18
Constitution	3-18
Charisma	3-18
 
However, I have several gripes.  First, it's been done to death.  Second,
I don't think it's a very good definition of what is basically a reality-
simulation.  Any D&D player will admit that the system is not only time-
worn, but also extremely arbitrary.
 
We could do the bit of defining some simple, encompassing stats, like:
 
Strength	1-100
Intelligence	1-100
Dexterity	1-100
 
and also defining 20-40 skills, such as:
 
Archery
Knife fighting	1-100
Sword fighting	1-100
Lock picking	1-100   
Praying		1-100
Fast talking	1-100
etc.
 
This would result in a bigger character file, and it too is arbitrary.  What
if we finalize the standard, and then someone wants to write an adventure
with motorcycles in it, and we didn't define a motorcycle skill?  What is
the programmer to do?  Use the Horseback-Riding skill?
 
IMHO, we should go with the simple basic stats, like:
 
Strength	1-100
Intelligence	1-100
Dexterity	1-100
 
but confine our skill definitions to combat and possibly magic and thieving
skills.  All other circumstances would be left up to the individual
adventure.
 
	Advancement:
I accept as an axiom that most of the fun of adventure games is in gaining
levels, and then goin' out and killing that monster who kicked your ass
when you were lowly first level.  The G.A.S. standard should definitely
have rigid rules about how a character advances, at what rate, with changes
in what stats.  This is, of course, so that someone doesn't inadvertantly
create an adventure into which players can shove a first-level character,
and Zappo! Two hours later they're 23rd level!  There's not really any way
to protect against this if someone wants to do it, of course, but peer
pressure can keep such instances to a minimum, and it's no fun anyway...
 
Also, most adventure games do what I will call Character Maintenance in the
town or city.  This is good, because we can write a generic piece of town
code which advances the character, lets him or her buy and sell stuff, and
do loads and saves.  This code would be one of the first generic, freely-
used pieces of code which would need to be written, and it should probably
be written as both a stand-alone program, and as a routine which programmers
can insert into their adventure code.
 
	Combat:
I figure the G.A.S. standard can tell programmers what damage a character
does to an armored orc with a broadsword, but it can't get much more
specific.  After all, what about combat between parties of characters and
monsters?  Where does magic come in?  Encumbrance?  Speed?
 
I don't have any hard and fast ideas for the combat system, but the
brain-work I've done on it so far tells me that it is quite complex, and
though it will be tough to hammer out, the resultant generic code will
be a god-send to prospective adventure programmers.
 
	Monsters:
Should be simple, until we get into the issue of monsters w/ projectile
weapons and/or magic spells.
 
In fact, I think the magic system is going to be the toughest part of
G.A.S. to hammer out.  Should we have a Magician class?  Let every character
use magic to some degree?  Different schools of magic?  Spells?  Should we
let characters carry spells from one adventure to another?  How would this
be done?
 
The issue of magic is a thorny one, and I admit I don't have very many good
ideas on this subject.
 
	Money:
Simple enough.  We just establish guidelines, and hope nobody steps outside
of them.
 
Object		Suggested Retail Value (in Gold Pieces?  Credits?  What?)
dagger		10
sword		100
Platemail	1000
magic +1 sword	5000
healing potion	100
etc.
 
Ya know, one game system I came across didn't let characters keep weapons
and armor they possessed.  You were forced to sell everything at the end
of an adventure, and buy what you needed at the beginning of the next.  I
don't think much of this, but if it's the only way...
 
	Object Language:
Here's a wacky idea.  Magical and special purpose items and spells could
be defined by a fragment of interpreted code, which would be saved in the
character file.  This would be tough to do, but could potentially be the
most powerful way of defining objects, allowing a character to transport
almost anything between adventures.  I like this idea, but it wouldn't be
easy.
 
	Portability:
I think of G.A.S. as being completely platform-independant, and I don't
see why we can't have it that way.  I would love (in the future) to transfer
my character from my Amiga to an IBM just so I can play the latest, greatest
G.A.S.-compatible IBM adventure, which isn't available for the Amiga, or
vice-versa.  Taking it even farther, why can't someone make a MUD (multi-
user dungeon) which is G.A.S. compatible?  How about versions of Moria, Hack,
etc. that are G.A.S. compatible?
 
One small problem: how should we handle the fact that some will create
Science Fiction adventures, others will do Fantasy?  Do we let a character
bring a phaser into Middle Earth?  Should we leave this up to the individual
adventure?  Perhaps every object could have a flag, marking it as
appropriate for one style or the other, and then filtering objectionable
objects out at load-time.
 
	Legalistics:
I lay no proprietary claims to this G.A.S. concept.  However, I would like
to see the concept, standard, and basic code remain in the public domain.
HOWEVER, I don't see any problem with share-ware or even commercial code
which uses the standard (and thus the code, or a version of it), as long
as the person or company selling the product doesn't lay claim to the
G.A.S. concept or generic code.
 
Think of it.  There could, in the future, be tons of public domain G.A.S.
adventures out there, capped off by several professionally-done commercial
games, all sharing the same characters.  What a happy camper I would be!
 
 
Thanks for taking the time to read this overly long post.  I am open to
responses by posting or by E-mailing directly to me at:
 
ttr1415@helios.tamu.edu
 
Hoping to hear from everyone,
 
Thom Robertson
"I'm just this guy, you know?"