From: lasner@watsun.cc.columbia.edu (Charles Lasner)
Subject: Re: QUESTION: What was the 1st computer game?
Keywords: game
Reply-To: lasner@watsun.cc.columbia.edu (Charles Lasner)
Organization: Columbia University
Date: Tue, 10 Nov 1992 09:18:41 GMT

In article <1992Nov9.131928.4633@athena.mit.edu> dmsilev@athena.mit.edu (Daniel M Silevitch) writes:
>In article <BxF44y.9Kr@acsu.buffalo.edu>, dudek@acsu.buffalo.edu (The Cybard=) writes:
>|> What was the very first computer game?  When I say computer game, I mean a
>|> game that would not exist without the computer. (ex: ZORK, Adventure,
>|> Pac-Man, but not computer Tic-Tac-Toe or computer chess.)
>|> 
>I'm pretty sure that the first game written for computers was Spacewar, written
>for one of the early PDPs from DEC (PDP-1, -3 ?), a two-player game in which the
>goal is to kill the other player without being killed :). Spacewar is still
>around, someone wrote a version which runs under X.

All of this is likely true on the surface, but to address another topic:

You *can't* play *real* spacewar on a video-based interface:

Years before there ever were video games, we all wrote/played/whatever
visual computer games based on x-y coordinates displayed by D-A convertors on
an oscilloscope.  Assuming 12-bit DAC's, (a reasonable assumption; the early
PDP-8 imitation of the PDP-1 game certainly did) you have a 4096 x 4096
random access display, with no jaggies possible, not even little ones, since
the essentially infinite resolution phosphor characteristic smooths out any
possible directional movement of the electon beam.  The goal of the display
portion of the game is to merely go through the entire "list" of things
to display at least 25-30 times a second to avoid flicker, and that assumes
the phosphor is "short".  If you didn't mind the "fading ghost" phenomenom,
then you could use a long-phosphor tube (such as is found on a LINC-8) and
refresh less often worse-case.  (Notice that it isn't necessary to limit
the MAX rate of refresh, just the minimum to avoid persistance-of-vision 
breakdown.)

The interface usually consisted of calculating the displayed point into
an absolute coordinate space of 4096 x 4096 as an integer, and doing
a trivial output instruction to load the DAC, then do the same for the
other channel (if necessary.  Often, only one co-ordinate is changed while
holding the other constant.)  Then, in some cases, you load an "intensify"
pulse register, often combined with the DAC load instruction.  (The PDP-8
AX08 has the following instructions:

DXC	Clear X register
DXL	OR AC into X register
DINT	Intensify

DYC	Clear Y register
DYL	OR AC into Y register
DINT	Intensify

The First three or second three were always combinable as a group, so you
would often use DXC!DXL and DYC!DYL to load either X or Y as necessary, 
and if appropriate, either would get !DINT.  Thus, if a box is to be drawn,
you load the constant coordinate with say DXC!DXL, and then the starting point
for the Y coordinate with DYC!DYL!DINT and then increment the AC and loop
back.  That draws one vertical line through the desired area.  Reversing
roles makes a horizontal line, etc.

Individual points are done with load-Y, then load-X-Int instructions, and
again, the roles of X and Y are reversible where required.

The three operations are part of one instruction each, and take the same
CPU time regardless of how many actual operations are presented (1,2,3).

So, if the active portion of a display amounts to 300 points, you need to
output DAC changes about 9,000/Second to avoid flicker.  

Incidentally, watching most 'scope displays in darkness effectively raises
the phosphor recovery time, since you lower the average brightness, and
raise the "afterglow" effect, so more points before the point of flicker
can be tolerated.

Also, you can deliberately "refresh" at different rates on purpose.  This
makes certain objects "twinkle" because they start interfering with the
eye's ability to do the P-O-V stuff.  This is how the rocket engines
are made to have a "flame", etc. and how to display a twinkling sun.  The
ship outlines and torpedoes are displayed as rapidly as possible to avoid 
flicker there, unless the ship goes into hyper-space, in which case it
is displayed to deliberately and grossly flicker as it fades out.

So, how does a video version of any of this do justice to the original
features?

cjl