------------------------
SPACED 2.2 Documentation
------------------------
LEGAL STUFF
___________
Before we get into the goodies I have to blabber some legal stuff so that
I don't get sued by some genius that was playing the game in the bathtub
during a lightning storm. So here we go:
I am not responsible for any effects (except euphoria) that this software
has on you, your computer, your family, your friends, your pets, or
anything else related to you or anyone else or anything in the world.
In this document, the phrase "this software" shall refer to the game
"SPACED 2.2" and its associated files.
BUG FIXES FROM VERSION 2.1
__________________________
A) The digital sound mixing is fixed! Now it doesn't make those ugly
clicking sounds anymore. I finally found out how to do double-
buffering and auto-init DMA transfers. However, it won't work with
any DMA or DSP chips that don't support auto-initialization. Most do
though.
WARNING!!! Task switching (such as in Alt+tab in Windows) will cause
the sound mixing engine to lose track of which buffer it should be
writing to. Upon continuation, 50% of the time this will cause it to
write to the wrong buffer, causing a clicking sound. To fix this,
switch tasks again until you get clear sound. The best solution is
to disable the hot keys for the program in Windows, if possible.
B) The robot-sucking sound shuts off when the robot's sucker does, not
after.
BUG FIXES FROM VERSION 2.0
__________________________
A) Not having a mouse driver loaded will NO longer cause the main menu
to "flash" and disappear (essentially crashing the game.) This
cheesy bug was caused by me forgetting to remove the mouse code from
my menu object, since I had used the menu object in making some
drawing utilities. Oops!
B) Firing a whole bunch of lasers as a level change comes into effect
will no longer cause a "laser shortage" in the next level
(characterized being unable to fire very often) The game engine
usually knows how many lasers are "out there" on the screen, but the
nuke_everything() function, which is called at the end of every
level, forgot to remove them. This caused the number-of-lasers
variable to become maxed out too quickly, but now the function
remembers...
DISTRIBUTION
____________
You are free to distribute and copy this software wherever and to whomever
you like with no obligations AS LONG AS:
a. You distribute ALL of the files (including this one) that constitute
this software. These include:
SPACED.EXE
SETUP.EXE
SPACED.BIG
README.DOC
b. You don't modify any of the files that constitute this software,
except for that modification which occurs as a result of running
SPACED.EXE or SETUP.EXE.
SYSTEM REQUIREMENTS
___________________
Required:
80386 or better microprocessor
400K of conventional memory
1M of hard disk space
VGA or compatible video card
Recommended:
Sound Blaster or compatible
1 megabyte of expanded memory (EMS)
Not Supported:
joystick
mouse
multiplayer games
VR helmets (aww, too bad!)
INSTRUCTIONS
____________
KEYS AND WHAT THEY DO
_____________________
To skip out of the introduction/story sequence or a demo, press ESC.
Arrow keys (up, down, left, right):
These move the spaceship around the screen.
If you are lost, go back to KEYS AND WHAT THEY DO and try reading this
section again.
Ins:
This changes how fast your spaceship moves. The indicator at the
right of the screen will tell you what speed you are currently on:
Slow, Normal, Turbo, or Fast. If you have problems controlling
yourself, you may want to leave it on Slow or Normal.
Alt:
Fires your laser(s). You have unlimited ammo, so don't hold back!
Spacebar:
Releases a bomb that inflicts damage to everything on the screen.
You get three of these with each new ship. Use them frugally!
F1:
Pauses the game and displays a help screen.
S:
Toggles the sound effects.
M:
Toggles the music.
ESC:
Offers you a change to quit the level.
Important: Pressing ESC is equivalent to killing all of your
remaining ships at once, and costs you a continue if
you suddenly change your mind and want to keep
playing. So be careful with it!
GAME PLAY
_________
YOUR MISSION:
Get the crystal back from the geeks so your fellow countrymen of
Atlantis will stop drooling on their shirts and return to their
normal state.
YOUR MISSION PLAN:
Fire lots of lasers; drop lots of bombs; kill lots of enemies.
Every so often a power-up orb will go floating by. Here's what they do:
RED: INCREASES SHOT POWER
ORANGE: GIVES YOU ANOTHER BOMB
BLUE: GIVES YOU ANOTHER LIFE
The complex and intriguing story will tell itself as you go along.
Good luck!
PARAMETERS
__________
/playdemo [name] Run a previously recorded demo.
/record [name] Record a demo.
/fast Allows the game to run as fast as the computer will allow.
It is kind of fun to watch demos this way, but doesn't help
much when you're playing normally - especially if you own a
Pentium.
/buffer [size] This sets the length (in bytes) of the digital sound mixing
buffers. The default is 128. Smaller buffer lengths will
result less delay between the digital sound request and the
actual playing of the sound, but increase the CPU time used
to process the interrupts. Larger buffer lengths will
increase the delay, but lessen the CPU time used.
/no jokes Turns off the silly wordage at the bottom of the screen.
/i suck Resets the high score list.
Parameters may be stacked on the command line as needed, in any order.
For instance, the entry:
spaced /playdemo mydemo.rec /buffer 64 /no jokes /i suck [ENTER]
Will erase the high score file, disable the text, set the mixing buffer to
64 bytes, and play back the demo file MYDEMO.REC (that would have to have
been previously recorded by someone.) Keep in mind that the text will
remain disabled and the mixing buffer will remain at 64 bytes until you
quit the game, even if you were to exit the demo and start up a new game.
TROUBLESHOOTING
_______________
PWBFAQ's - Probably will be frequently-asked questions.
"When I run SPACED with digital sound, it tells me that I need to set up
EMS for the sound to work. How do I do that?"
-> You will need to include the following lines in your CONFIG.SYS
file:
DEVICE=C:\dos\HIMEM.SYS
device=c:\dos\emm386.exe 1024
-> If you are running Windows 95 (and SPACED doesn't work), you
have two choices:
a. Click once on the icon representing SPACED. Then go to the FILE
menu and click on PROPERTIES. Click on the MEMORY tab, and
specify that you want 1024k of EMS.
b. Click on SPACED, then FILE menu, then PROPERTIES, like above.
Next click on the PROGRAM tab, click on ADVANCED, click in the
box marked MS-DOS MODE, click in the box marked SPECIFY NEW MS-
DOS CONFIGURATION, and click on the CONFIGURATION button. A
list of boxes will pop up. Make sure the EXPANDED MEMORY box is
checked, then click on OK.
The first way is quicker, because it doesn't require a reboot to
play the game. The second way gives you a bit better
performance because Windows 95 isn't in there stealing CPU
cycles, but you must reboot to play. You can increase
performance while playing it the first way by picking PROPERTIES
under the FILE menu and turning down the idle sensitivity to
low.
"The digital sound won't work, but I have a Sound Blaster."
Spaced only works with cards that use auto-initialized DMA transfers.
If either the DMA chip or Sound Blaster card is really old, then that
is the problem.
"I get an OUT OF CONVENTIONAL MEMORY error when I try to run SPACED."
DOS users:
You need to run fewer TSR's upon bootup. Things like Doskey,
mouse drivers, CD-ROM drivers, and pop-up menu programs all use
up conventional memory. Try remarking these lines out of your
AUTOEXEC.BAT (by typing "REM" and a space in front of them.)
Windows 95 users:
Make sure your conventional memory is set to "AUTO." If that
doesn't work, you may need to run the program in MS-DOS mode
with a special AUTOEXEC.BAT and CONFIG.SYS configured. Please
refer to part B of the digital sound PWBFAQ two questions ago.
"I played for 40 hours straight and got 999,999 points, and then I got
this error message saying that I can't save my high score! I am very
angry."
This usually will happen on a network. Network Administrators
usually put games in places where everyone can read the game files
but no one can write to them. This is good because it keeps idiots
from going in and wiping stuff out. It is bad because no one can
write to the high score file. The solution is to have a big
important network person change the access rights to the file
GOODGUYS.DAT so that everyone can read and write to it. If that is
not possible, then write/create access should be given to the entire
directory. The worst that could happen is that some insignificant
grunt could wipe out the game. However, this risk is a small
sacrifice for the fun of competing for a high score.
"When I was in the 'wanna continue?' menu, none of the keys work. I had
to reset."
The way out of this is to remember if you were holding a key (like
Alt) down during a level change, and then press and release that key
again. If this doesn't work, then just hit a whole bunch of keys.
The explanation? Between each level, the keyboard interrupt is
released and re-captured. If a key is held down during this time,
sometimes this will mess up some flags or something in the DOS
keyboard handler, which is used by the menu system (but not the
gameplay system) Sorry, but this is a difficult bug to track down
and fix.
STORY BEHIND THE GAME
_____________________
So who says that one guy can't make a game? I notice that lots of people
are studying the different aspects of game-making, but few people actually
have time to complete a game. Fortunately, most of these people make
their code and knowledge available to the public so that others may learn
from it. To those individuals - I thank you, and I'm sure most other
designers/coders feel the same.
When I first started SPACED, (during my junior year in high school,) I had
no idea about how to code for the Sound Blaster, mix sounds, use EMS
memory, and a lot of other important stuff. when I "finished" it up, it
had PC speaker sound and music, and plenty of bugs. It was also called
"Crusade for the Crystal," and had even cheesier text than it does now.
It was in that state that I entered it in "Tech Challenge '94" at the
Oregon Institute of Technology. Fortunately none of the bugs popped up
during the presentation and I got first in my category.
After that, I sort of let the project sit during my senior year, while I
got into some 3-D Studio work. Then during summer, I got ahold of some
Sound Blaster information, which allowed me to write an FM synthesis
sequencer and digital sound mixer. I only use the sequencer for the
ending song, however, and the other songs are converted at run-time from
the PC speaker music format to FM music. So it sounds a bit cheesy, but I
didn't have time to write all-new songs for the levels. Anyway, I redrew
a lot of the graphics, and basically prettied up the game real good for
its release.
SPACED was a game made just to see if I could make a game. I didn't
attempt anything spectacular, but I wanted to make it enjoyable and fun.
I think that I succeeded there. The control feels good, people who aren't
playing can read the text, the sounds are satisfying, and there are some
fun options. Another thing that I think adds to the fun is that each of
the level backgrounds is distinctly unique. Too many games have levels
that all look pretty much the same. And the game will run on any '386 and
up, and at 35 frames per second if you use a '386/33 or better. Since
every bit of real-time graphics is assembly language, and the sprite
drawing routines use run-length-encoded files, this makes the game run
pretty fast.
Interesting facts about SPACED
______________________________
SPACED was coded on a 486SX/25 with 4 Megs of RAM. For the past six
months it has had a bug that causes it to wait an average of three
minutes before it boots. The clock (but not the date) resets to an
arbitrary time following each reboot. The old box, however, is still
limping along.
The rainfall sound (outside the buildings) in level 3 was actually
made by crinkling a plastic bag in front of a microphone at a high
frequency and then slowing it down a bit.
SPACED is composed of over 50 C++ modules, and 19 assembly language
routines. The final build included over 16,000 lines of (used) C++
code, and over 3,000 lines of assembly code.
So you be asking, is there going to be another game? The answer is yes, I
already am working on the design for my next one. I am really excited
about the engine I have planned for it, but I can not release any details
right now because as a single developer who can not spew out games at the
rate of large game companies, it would mean that someone could take the
ideas and make a crummy clone before the real game was halfway done. When
mine is done though, it will do things that have never been done before in
PC games. AND IT WILL NOT BE A DOOM CLONE! Doom is a great game, and
there are many good clones. But the genre is overpopulated. My next game
will, of course, be much better than SPACED, and have a more serious tone
to it. It will not be a side-scrolling spaceship game like SPACED either.
No more non-interactive-watch-the-background-scroll-by-and-shoot-things
theme. And most important of all, it will be FUN to play. It will
probably be optimized for the dual instruction pipelines and other neat
features of Pentium processors, and my estimated (emphasis on ESTIMATED -
no guarantees here!) release date is Winter 1997. But enough said. I
will post an announcement on my home page, newsgroups, etc. when enough of
it is finished so that I won't have to worry about companies whipping out
clones.
PLEA FOR MONEY
______________
I won't deny at all that I had a lot of fun creating SPACED. But I also
like to do lots of other things like running, skiing, writing poetry, etc.
And when I'm doing sports I don't have a whole lot of time to earn extra
money, except during the summer, and that is mostly spent on college
expenses. Game developers are always in need of money - to buy faster
computer systems, better compilers, and more powerful utilities, to name a
few things. College isn't very cheap either!
So I would appreciate it very much, if you are not in financial
difficulty, and you have the time, if you could send $2 to my mailing
address below. I figure that if enough people do this, it may help pay
for the new computer that I need, and take care of some college expenses.
HOWEVER, YOU HAVE ABSOLUTELY NO OBLIGATION TO DO THIS even if you've
played SPACED for 30 million hours and made $1,000 selling computer time
to the neighborhood kids. If you don't send anything, I am still glad
that you enjoyed the game. It is really a thrill to know that someone
appreciates my work, so I wouldn't mind any letters or e-mails telling me
what you think. Remember, SPACED is FREEWARE to be distributed *freely*
WITHOUT ANY FINANCIAL OBLIGATION. Have fun with it!
SPECIAL THANKS
______________
Josh Stevens:
Programming Advice
Mark Betz:
Timing Routines
David Durham:
Sound Mixing Info
Trevor Robinson:
Sound Blaster Info
Draeden/VLA:
DMA Info
Mark Feldman:
Author of the Game Programmers' Encyclopedia
MY ADDRESSES
____________
EMAIL ADDRESS:
Omnibus777@hotmail.com
WEB PAGE URL:
http://www.danielhaffner.com
FINAL WORDS
___________
So now I will leave you with a little poem I wrote. Although SPACED is
freeware, there is plenty of commercial software out there that is written
by game developers (and other programmers) whose living depends on
software sales. These people are hurt by software piracy, and so are the
consumers who have to pay more for the software. So play fair!
The Piracy Police
by
Daniel Haffner
So you're copying licensed data off of someone else's disk!
You'd better bolt your doors up if you're gonna take that risk.
There's nasty little demons out there waiting just to feast
On users who don't know about the Piracy Police.
They come at night while you're asleep and seek out your computer,
They plug her in, they find the switch, and last of all they boot 'er,
And if your source disks can't be found, they smile their evil smiles,
And go to work in rabid droves, deleting all your files.
Their teeth are made of silicon, their claws of leathermans.
They jump on you, in vicious wrath, and cut off both your hands.
"If you can't type, then you can't swipe!" they chant throughout your home,
And make you truly wish that you had left those files alone!
So little boys and little girls, when software comes your way,
Resist the urge to stick it in your drive for just today.
And maybe you'll avoid being mauled by grimy little beasts,
Known only to the user as "THE PIRACY POLICE..."