[comp.sys.amiga.programmer] 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?"
 

stevek@amiglynx.UUCP (Steve K) (06/05/91)

In the same thought as the GAS, why not an adventure game that allowed the
player to create his own adventuers?  The player would define all his
mosters, spells, characters, and objects following the GAS format.  Then he
would create a map, put objets in thier place, script them (mabey a
programming language called GASBasic or GASP <P> for program, or mabey GASS
<S> for script).  And then you would have a whole new adventure - and this GAS
Modules (all aspects of the adventure minus the main program to interpret the
file, and, of cource, a .GAS extention :) ) would be released into the PD. 
The GAS Interpreter would HAVE to be either PD/Free/Shareware, because the
greatest audience for such a program would be people who have the ability to
share the GAS modules would be people with modems.

The GAS format just for characters itself is an excellent idea, and if
exsiting adventue game do not/will not support it, why not a pair of
translators which would convert (Your favorite AD&D game)--->GAS format, and
the other GAS--->(Your favorite Bards Tale), much like The Art Depo does with
pictures.

Just my $.02 worth...

 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|| Steve Krulewitz - <stevek@amiglynx.nj.us> - High School Junior Seeking||
|| Fair Lawn, NJ   -  ^^Is This Correct??^^  - College... Inquire Within ||
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-

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

Sound thinking, Steve.  However, my G.A.S. concept was not meant to
meander over into the realm of adventure-MAKING.  Not only are there
several systems out there already, but I created one myself for
SunRize Industries back a couple of years ago (which was never published,
go figure), so I'm afraid they wouldn't enjoy me taking that hard work
(which they DID pay for) and using that experience to create a competing 
product, even if it was PD.

The concept I am proposing would not let players become programmers, but
would simultaniously give more programmers the tools with which to create
games and give players more choices.

If you want to run with the adventure-language idea, go right ahead.  However,
G.A.S. as I see it is just a file spec, really, plus some code to
manipulate it...

Thom Robertson

mcr@Sandelman.OCUnix.on.ca (Michael Richardson) (06/08/91)

In article <16968@helios.TAMU.EDU> ttr1415@helios.TAMU.EDU (Thom Robertson) writes:
>Sound thinking, Steve.  However, my G.A.S. concept was not meant to
>meander over into the realm of adventure-MAKING.  Not only are there
  
  The best bet for that, IMHO, is MOO (telnet lambda.parc.xerox.com
8888 from the Internet). MOO is an Object Oriented MUD. Very nice,
very extensible. Wish it had a chance of running under AmigaDOS... (or
maybe AmigaDOS had a chance of running it.)

>The concept I am proposing would not let players become programmers, but
>would simultaniously give more programmers the tools with which to create
>games and give players more choices.

  MOO doesn't require that everyone be able to play. 

>If you want to run with the adventure-language idea, go right ahead.  However,
>G.A.S. as I see it is just a file spec, really, plus some code to
>manipulate it...

  Do the spec, and then write the code. I might to it in ARexx (see
Perihelion (sp?), which runs under Steve Tibbett's BBX on Mystic BBS),
or Perl. 
  I would suggest that you go either free format ASCII, or IFF. The
real job is NOT the code, but the documentation of what each attribute
means, and what may be assumed if an attribute is missing. You might
also want to have some sort of security or version/program tracking.
(Provide some means to authenticate the fact that `Joe' really is a
1134th level SuperElf --- some way to make his deeds tractable. This
is still breakable, but not by the casual user with a text or binary editor)


-- 
   :!mcr!:            |  The postmaster never | So much mail, 
   Michael Richardson |    resolves twice.    |  so little time.
HOME: mcr@sandelman.ocunix.on.ca 	Bell: (613) 237-5629
    Small Ottawa nodes contact me about joining ocunix.on.ca!