From: dmb@wam.umd.edu (David M. Baggett)
Subject: Re: Game library...
Organization: University of Maryland, College Park
Date: Wed, 22 Jul 1992 13:14:18 GMT

psteffn@hal.gnu.ai.mit.edu (Paul Steffen) writes:
>Well, to me, programming is a learning experience where I not only learn
>how to code increasingly efficient algorithms, but whatever tricks
>(software/hardware, orthodox/unorthodox, etc) I can use to get the task
>down faster.  This may include using register save opcodes for block
>moving memory, delaying video DMA for smooth scrolling, or writing
>fully background interrupt-driven disk routines.  I gauge my success
>in machine cycles.

OK, but all I'm saying is this:  not everyone views programming the same
way you do; for those people that don't care about the hardware, a library
makes perfect sense.  So it's not "ridiculous" (and not something
restricted to the PC world either).  That's all.

You're trying to convince me that hardware programming has merit,
which is not what I'm arguing against.  I do think that hardware-oriented
techniques have merit provided one of the following things holds:

	1. the techniques work on all "100% compatible" hardware
	2. the application that uses them is one where you don't care
	   about #1

>I have to admit that the thought of seeing some actual 2600 code is 
>mildly erotic.

Uh... :)  Anyway, check out comp.sys.atari.8bit; a doc file loaded
with info about the 2600 was posted there.  It includes a disassembly
of Combat and of some demos.

>The difference being is that the non-professionals
>I talk of are programming code  many levels above the norm for 
>professionals.

You're trying to incite me aren't you?  :)  We've discussed this into
the ground elsewhere, so I won't go into it at great length again.
Suffice it to say that I think your group(s) are genuine masters of
their art (demo writing; i.e., abusing the hardware to do achieve
otherwise impossible effects).  I think it's a subsantially different
activity than programming in general, however.  But if you were to
write a C++ compiler you'd find similarly difficult challenges there,
not to mention similar opportunities for clever optimization.  GCC/G++
was 100,000 lines of code, last I checked.  At least one game library I
know of has a similar amount of code.  Part of your task as a
programmer on such a system is just to keep everything in order so you
know what the heck is where.  The larger a system gets, the more
difficult this becomes.  So it's a different set of challenges.

>The quality of even the artists and musicians who work with the
>programmers far exceed the norm.

Part of being a professional is *endurance*.  While the art for something
like Dungeon Master or Ultima Underworld may look simple enough, realize
that it consists of literally thousands of shapes.  It's not just a matter
of "can you draw this at all," but rather, "can you draw this quickly, and
do the same quality of work 1000 more times?"  If you have a PC, load
up Commander Keen IV and count how many different shapes you see.  It's
a staggering job to do art for even a simple game like that.  Game artists
don't get enough credit.

Just like it takes endurance and perseverance not to quit in the middle
of your 100,000 line C++ compiler, so does it take endurance and
perseverance to actually put together and fine-tune a couple hundred or
thousand game shapes.

What I see missing from most demos (on the Atari at least) is polish.
They look like the programers got their awesome hack working and then
lost interest without bothering to really make the thing look
professional.  This is not really a criticism so much as an observation;
demo programmers really *aren't* interested in making something shine
as much as showing off their latest and greatest hack, right?  I mean,
once you kill yourself to get 262,000 colors on the screen at once
without flicker, are you really going to bother making sure your text
font is nice?

Again, demo programmers aren't doing the same thing better; they're doing
a different thing masterfully.

>Don't get me wrong.  I don't have anything against game libraries as
>long as the programmer is supplied with source and the right to 
>make improvements on them [and an incentive to make them available
>as updates].

So you *would* be opposed to such a library without source available?
I'm not sure how using a library without source code would make any
difference to you, since you write everything yourself now anyway.  If
you didn't like some feature of the library you could (in theory) write
your own routines and use only those parts of the library that you
found acceptable.  How could it be *worse* to have a library?

>But, the argument for game libraries is that people want to do just the
>fun stuff [*-i.e. design-*] and none of the hard stuff [*-programming-*]
>where-as, here are demos where the programmer[s] did all the hard
>programming and very little game design.

You're assuming that programming a game is harder than designing one.
I think you've got it backwards.  Sure, you can crank out yet another
Chop Socky move-to-the-right-and-kill-things game, and in that case the
art and programming might take a lot longer than the design.  But a
truly good game design can only be cultivated and refined with a lot of
work (which might be why we hardly see any good designs in arcades
these days -- designing is not cost-effective).  I think most
profesional game programmers would say that the coding is the easy
part.  Perhaps some of them would like to comment?  (We might ask the
Atari and Williams folks in rec.games.video as well).

>Do you think people would go to all this work if hardware programming
>wasn't fun?  esp. for no pay?

Nope; obviously some people find it fun.  No argument there.  I'm not
going to try to tell you you're not having fun!

>I'm not aware of that game but I am aware of Thalion.  They were a very early
>demo group and the first to use that technique in a Neochrome slideshow
>[which had people at Atari boggled].

It probably had Atari *pissed*, if you want to know the truth.  "Yet
another applcation that won't run on the <STe, Mega, TT, Falcon>"  But
for a NEOchrome slideshow, who cares?  Like I said, a game is a
different matter.  I think they did us a disservice by using that
technique in commerical software.

>How does it contradict my opening statement?  I'm confused.

Simply in that your opening statement was that game libraries are
ridiculous, and that you couldn't imagine anyone using one.  Maybe
I was reading more into that comment than was intended.

Dave Baggett
dmb@wam.umd.edu
Newsgroups: rec.games.programmer