THE GETTING STARTED GUIDE TO GAME DEVELOPMENT FAQ.

A FAQ by Ben Sawyer                          Version 1.3

Please feel free to distribute this document electronically as
much as possible for non-profit use only.  This document may not
be printed and/or distributed in any fashion in any for-profit
manner whether for a newsletter, online zine, or professional
publication without the written permission of Benjamin G. Sawyer.

(c) 1995 Benjamin G. Sawyer
===============================================================

Improvements from Version 1.0

- Fixed file format
- Fixed some erratta
- Added better explanation of DOS/Windows C/C++ Compilers
- Improved book listings with more explanations - Added some new
game types to game categories - Improved On-Line resource
sections
===============================================================
Contributors:  The following people have assisted in the creation
of this document.  Dave Snyder/MVP Games, Bruce Lewis CyberSims,
Gregg Seelhoff, Jim Bucher, Akiva Atwood, Chris Crawford, Kevin
Gliner/CGDA, John Eichelberger, and Chris Newland.

Plus anyone I forgot and thanks to all my downloaders over 500 I
know of with the first version.

PREFACE

Thanks for reading this document. Just this week I answered
several calls for help from fellow developers looking to create
games. In fact like many of you, I'm now working on a game which
hopefully won't see as many delays as this FAQ did.

Starting out I had a lot of questions; being someone who hates
unanswered questions, I set out to answer them myself.  The
result is this document.

While I'm sure there is useful information here for every game
designer, it is really meant to be the first stop on a long, and
hopefully rewarding
journey.  I'm not trying to give you programming howto's or even
tips on creating art.  Instead, what I have tried to do is create
a simple and fun overview.  This FAQ details what steps you will
take, what books you need to read, and what tools you will use en
route to game-creation.

There's my Chinese food at the door, so as you read on, rmember
that this is only the beginning, and frankly, there is no end to
the learning or to your imagination from this point on...


                                   Ben Sawyer January 30, 1995

Special Thanks:

Everyone who frequents CompuServe's GamDev forum, especially...

Karen Crowther

Without Karen initially persuading, (suckering) me into this, I
would not have thought I could be helpful. Her advice is always
available and always good.  Anyone else wishing to thank her
should purchase her games: Rescue the Scientists (Retail from
Comptons), Pickle Wars (shareware from MVP), Math Rescue, and
Word Rescue (Shareware from Apogee).

Keith Weiskamp

Keith is the publisher of the Coriolis Group, which has recently
brought out such books as Visual Basic Multimedia Adventure Set,
Arcade Action Adventure Set, and PC Game Programming Explorer, to
name just a few.  I cannot thank him enough.  Keith spotted my
work early on and has served as an excellent resource, editor and
all around cheerleader.  Anyone else wishing to thank him should
buy his books and even if you didn't initially want to thank him,
you will probably want to do ultimately, anyway since they are
among the best books published.

Swen Vincke

Swen came all the way from Belgium to help me to explain some DOS
Specifics like DOS Extenders and Midpak that programmers should
learn.  Anyone else wishing to thank Swen should either
contribute to his collaborative game project titled Chronicles
(visit the CompuServe Gamdev forum for more info) or buy his
upcoming Adventure RPG Ragnarok.

The following developers\producers for their divine inspiration
to me, I've never met them, but their games have always inspired
me to become a game programmer.

Bill Budge (Pinball Construction Set)
Danielle Bunten (Seven Cities of Gold, M.U.L.E.)
Chris Crawford (Balance of Power, Excaliber)
Don Daglow (Producer of many EA Hits)
Richard Garriot (Lord British)
Sid Meir (Pirates, F-15 Strike Eagle)

and Bill Williams (Sinbad, Alley Cat, Necromancer)


OK! WHAT DO I DO BEFORE STARTING TO WRITE OUR GAME?

A lot more work than you will do once you start coding!

HOW DO I PREPARE?

1. First find a good Chinese food take-out place. You will be
eating at-home a lot.

2. Flesh Out Your Design.

Try to really flesh out your idea as much as possible.  Put your
ideas on paper first.  Diving in might seem like the quickest way
but sooner or later, you are going to hit design and programming
snags.  Why? Because you have not completely thought through your
idea.  Always remember: designing and coding are two separate
tasks that deserve equal attention.

3. Line Up Your Resources.

Like a cook preparing ingredients, during the design process I
line up lists of the graphics, sounds, and music I will need.
Remember, creating a game requires a lot of non-code items.  Make
sure you have a good idea of what those will be and how you will
acquire or create them.

"I'm Going To Do It My Way"-- Frank Sinatra

For organizing my game, I got a loose leaf binder. In the binder,
I have three sections:  To Do, Design and Resources.

TO DO

The To Do section is a running list with notes about stuff I want
to work on to make my game.  For example I might have an entry
titled Movement Scheme For Enemies, and below it some notes
concerning how I might do it.

At the beginning of the section is a running Top Ten list.  Not
my list of the best David Letterman lists, but a list of the next
ten features or things I am going to do when I sit down to work.
I do this because, like you I pursue this craft in my spare time.
I find that good design notes and a To Do work list helps me make
the most of that time.

I also always carry a printout of my code so I can edit it on the
road.  By using lots of pen and paper, I turn what spare time I
have away from my computer into productive time.

DESIGN

This is simply a running set of sketches, short
essays and notes about the overall design like storyline and
interface design, etc.  I am constantly adding to it until I have
a complete picture of what the game will be, always being careful
not to do too much.

RESOURCES

Just as I said before, your game will have many elements besides
programming code.  This section is a running list of the artwork,
sounds, data files, etc. which will need to created.

WHAT ARE SOME OTHER ISSUES AND QUESTIONS THAT DEAL WITH DESIGN?

DECIDING ON A PLATFORM.

Windows or DOS: that is the question.

Lately, there has been a huge shift toward the Windows market for
games.  Windows has been used mostly for applications. Recent
developments for Windows.  The new WinG graphics library and the
upcoming release of Windows '95, means Windows is becoming more
and more the dominant form of PC Game development. Bill Gates
wins again.

On the other hand, many computers which do not use Windows still
exist.  Some people refuse to give in to Microsoft.  These people
remind me of people who say they can ride out hurricanes.

In addition to this major decision come secondary decisions.  For
example, like hardware requirements, if your game is multi-
player, what networks will you support?  Will your game will
require a printer?

A great deal of game development does not happen on the computer.
It is very important to design, document and plan your program.
I cannot stress this enough.

AM I UP TO IT?

Remember Not Everyone is Ray Tobey.

Discovered by the inventor of the Apple Computer, Steve Wozniak,
Tobey programmed his first commercial game, SkyFox, at the age of
16! Rumor has it, Bill Budge in his 30's at the time - author of
Pinball Construction Kit, quit the game business when he saw
Tobey's amazing game.

Its Important To Finish. Always walk before you compile!

The most important thing to consider when developing games is to
finish them.  I must have started at least three projects which
were beyond my means before I got smart and scaled back my
ambitions. It may seem neat to make a DOOM style game right away.
That level of programming takes a lot of work and experience  (Id
had been creating games for several years prior to DOOM).  Start
simple, learn, read, and build your skills.

A finished game with less flash and dazzle is better than no
game.  In short, learn to work within your skills and learn to
finish.

WHAT IF I WANT TO SELL MY GAME WHEN IT IS DONE?

What you mean you don't want to slave for seven to twelve months
and then give it away?

IS IT UNIQUE?

Either by storyline, game dynamics, graphics or whatever, your
game in order to have any chance at success has to have a
discernible difference from everything else out there.  Remaking
a clone of Asteroids is not a good way to go about making money
because it already exists.

Remember: not every game need be a best seller. Just understand
the level of sophistication, polish, and uniqueness that such a
product requires.  Even if you feel your game is not up to these
standards, press on, and you will see that there are many outlets
beyond the retail realm for showcasing and receiving credit for
your work.

IS IT BETTER?

One way to be unique that is it just simply better. Many games
are newer versions of older ideas.  For example, NASCAR by
Papyrus-now certainly car racing simulations are nothing new-but
NASCAR is absolutely amazing.  It is simply better, so not only
will it sell outright, but anyone with a love for car racing
simulations will want this game too.

Being unique is a general code word for simply offering the
consumer of your game a specific reason to choose that game when
they compare it to verses other available options.

WHAT SHOULD I DO ONCE CODING BEGINS?

Order that chinese food, lots of it.

All of the steps in the design stage above apply while coding
too.  I just want to add a few things to this.

TAKE BREAKS.

Even God took a day off!

Breaks help a lot remember to rest. Try to take breaks from time
to time.  My trick is to take regular breaks, sometimes
programming a second project, a more mundane small application
utility. This keeps me programming, just not in the same manner.

COMMENT YOUR CODE.

Reedabilllity es gooing 2 b impertant.

Remember to comment your code.  A typical mistake of many
programmers, game or otherwise is not placing comments in your
code.  Game programming requires a lot of clever work arounds,
much more so than other forms of programming, and requires
serious optimization many times late in the work.  This means
commenting is even more important for games.

WRITE REUSEABLE CODE!

As you write your game try to make sure you create code that can
be applied to other games later.  For example my RPG game, which
features a tiled multiple
scrolling map.  Now certainly the map can be used for other
games, so I made sure it was wellcommented and very open ended to
apply to future projects I have in mind.

BRAINSTORMING TECHNIQUES

Everyone has ideas that need development.

Games are perhaps on of the most creative mediums ever.  They
require music, sound, art, storytelling, writing, programming,
and more!  This requires a lot of brainstorming!!!

If Leonardo or Michaelangelo were alive today, there is no doubt
they would be game developers.  Also, if Leonardo were alive
today he wouldn't have paid 30 million dollars for his book at
auction which Bill Gates did.

Every creative person needs to come up with ideas, and with games
even more so, as this medium has perhaps the most fickle
customers.  So lets talk a little about brainstorming.

I don't have anything special to say here, but I always think of
two things I have read or heard from two great programmers when
dreaming up ideas:

DANI BUNTEN
Ozark Softscape:  Author Seven Cities of Gold, Heart of Africa,
M.U.L.E. and other classics.

I read that Dani starts by listing every game idea she has in her
head in very simple terms like Columbus Game, Robot Game,
Exploration, etc.  She just goes and goes, not really thinking
much more than a quick thought about the games.  She especially
tries to think of things not exactly closely associated with
traditional computer games.

When she is done he goes back and reviews all her ideas.  Dani
starts by thinking about the uniqueness, feasibility etc,
constantly narrowing his choices until she arrives at her final
idea that she then develops further.

The trick is to be very open and write down whatever comes to
mind.  Try to focus on different things, such as adventures you
have had, non-game things you like, movies you have seen, books
you have read. Try not to think about other games.

LORD BRITISH a.k.a. RICHARD GARRIOT
Origin Systems: Author of Ultima I-VIII and Worlds of Ultima and
for trivia buffs, Akalebeth!

I always emulate Richard Garriot in that he constantly carries a
pad of paper around to work ideas out immediately.  You never
know when an idea can come to mind.  I also try to make little
notes about books I've read and movies I've seen.  I use these
notes later when considering actual game ideas like I described
above.

I would add only the following comments of my own:

PLAY LOTS OF GAMES

The Worlds Best Excuse.

Spend a lot of time reading about and playing other games.  A lot
of great ideas exist which are merely new twists on existing
themes.  Again, remember the unique rule-attempt to
differentiate!

I'm lucky I have a few friends who play lots of games-so every
once and a while I take a trip over to their house and play all
their games. I spend several minutes with each, evaluating the
way they play, the documentation etc.

Become a Comparison Developer!!!

I am constantly in stores reading backs of the boxes, and
evaluating demos.  In a creative medium like this, ripping off
someone else's ideas is how we create.  When a new game is
written, it attempts to incorporate (read: rip off) all of the
current ideas out there and then move beyond them (only to create
new features which themselves are incorporated).  This is how
games evolve.  So, being as much of a player as creator has a lot
of merit.

READ READ READ

And did I say Read?

Spend a lot of time reading non-technical materialsbecause I
enjoy Adventure/RPG games, I draw a lot of my ideas from
mythology, science fiction, etc.  You have to read.  A programmer
of games is a new-age Renaissance person.  They must have an
understanding of many different elements of the arts, technology,
and the general world around them.  How are you going to write a
game about geopolitics if you haven't read about the world around
you?  What are you going to do-just make it up?  Read Read Read.

NEVER

Never brainstorm on your computer. Use paper and a pen or pencil.
Always brainstorm in a relaxed atmosphere, and set aside time to
do so every week.

WHEN IN DOUBT, WRITE WHAT YOU KNOW.

If you can't seem to generate what you feel is an original idea,
consider what many writers simply do, write what you know.  I am
an RPG nut, so I am writing what else, an RPG!  Of course, I have
some innovative ideas for that RPG, but starting with an idea
based on what I know got me going initially.

BRAINSTORMING BOOKS

For other reading on creative brainstorming, check out the
writing section of your favorite bookstore. There are usually
several good books about creative idea development to be found
there.

WHAT IS GAME DESIGN?

"The answer my friends is blowing in the wind." Bob Dylan

The answer is infinity.  Well, sort of, game design is an endless
process which we could talk about forever, but you and I don't
have forever, so here is a "Reader's Digest" essay about game
design to help you understand the thought process about creating
games.

Game design concerns one thing tantamount to all else and that is
Interaction.  What separates games from similar creative mediums
like, art, movies, music, and books, is that the player interacts
with the medium.

You don't stare at, or just listen to a game-YOU CONTROL IT!  So
as designers, we have to create a product which entices people to
play, and at the same time, provide the storyline, the emotional
feel, the realistic tone, and the other qualities all other
creative mediums give us.  A tall order, but this is what makes
creating games so much fun!!!

Playing means making decisions.  Therefore our games need to
create situations where the player has to decide what to do, and
then to perform that action, which our game then reacts to.  This
can be as simple as PAC MAN where the player has to decide
whether to go UP, DOWN, LEFT, or RIGHT, or as complex as Balance
of Power; should I or shouldn't I arm the rebels in this country?

This is what makes games appealing:  A set of decisions which the
player controls and, based on their skill and intelligence, by
which they ultimately decide the outcome of their game.

So when sitting down to design a game, attempt to create
entertaining interaction, try to provide an easy way for the
player to make decisions about the situation you put them in.
Then return interesting outcomes which in turn lead to new
situations and the whole process starts over until there is a
final outcome.

KEEP IN MIND:

As you sit down to design your games try to keep the following
things in mind as you decide on what it will be:

Am I creating Interaction?  Does my design create a decision
dilemma for the player or not?

Are clear situations provided to the player?  Is there enough
information in the game (graphical/sound/text) to illustrate to
the player what situation they are in.

Am I providing them with the proper information to make
decisions? Is the interface by which the player commands the game
clear and easy to use? Does it provide the proper information to
them to help them input desured actions?

Do the outcomes of the player's decisions end or continue the
game?

Does skill and intelligence of the player produce the outcome?
Random outcomes not based on the skills of the players decisions
are not games. Players must know they are controlling the
outcome.

Is it entertaining?  If it isn't fun, they won't play it.

In short, concentrate on providing interaction, creating player
control of their outcomes based on their skills and intelligence,
and make it fun.

WHAT TYPES OF GAMES DO WELL?

Good ones.

The are many types of games which do well.  Game players come in
many shapes and sizes. Here is a list of game categories which
seem to dominate the shelves.  Remember that GOOD GAMES will do
well regardless of the category, but by evaluating these
categories you can find a niche to write a GOOD GAME in.  The
following not in any order of importance.

3D Games - Now commonly referred to as "Doom Style" games, these
games feature texture mapped 3D environments and usually a lot of
action and shooting.  Already several books have come out which
show you how to write games like this.

RPG - Role-Playing-Games are like Dungeons and Dragons, though
they might be about space, postapocalyptic, sci-fi oriented, they
still share the statistical characteristics and strategic
features of games like D&D.

Adventure - Not to be confused with RPG's these programs, such as
Sierra's King/Police/Space Quest series or Lucas Arts Indiana
Jones games, are more puzzle based games, and are not based on
building up a character, or statistics like an RPG.

Edutainment - This is a hot hot category right now. Games like
Carmen Sandiego and Rescue the Scientists are traditional
educational games with exciting game elements melded in.  Games
which become "learning experiences" so to speak, rather than the
first generation of "flash card" like products.

Retro Games - This is a relativly new category of games.  What
the term refers to is the recreation for a new platform of an old
classic like say Microsofts Arcade Pack which features 4 original
coin-op Atari classics.

Simulation - Computer Simulations like Flight Simulator, F-15
Strike Eagle, and Comanche have been excellent sellers.  There is
nothing like a detailed simulation to entertain gamers.  However,
be careful, trying to put together a complex simulation game can
take a lot of work.  Gamers in this category are extremely picky.

Sports Games - EA probably tripled the size of their company on
its sports titles alone.  Prior to the release of their first
classic, Earl Weaver Baseball, sports games tended to be
simplistic arcadish games or dry statistical models.  Earl Weaver
brought both of those approaches together and gave birth to the
statistical/simulation model.  One note here:  Check out FIFA
Soccer for the 3DO an amazing look at the where this type of game
is going.

God Games - God games refer to those simulations where you
essentially simulate an environment and give the player control
over factors which affect it.  SimCity and Sim Earth as well as
Populus by Bull Frog/EA are great examples of this game type.

Shooters:  Usually viewed from above, the screen scrolls as the
player -you guessed it- shoots everything.  Examples might be
Raptor from Cygnus/Apogee or  Space Invaders and Asteroids.

Fighting games:  Fighting games like Mortal Kombat and Virtua
Fighter have become so popular they really do warrent their own
category.  Most of these game involve heavy arcade action as
players either vs. the computer or their friend duke it out in
some for of hand-to-hand combat with special moves and sometimes
hand weapons like swords or flails.  Other games in this category
are things like Street Fighter, and One Must Fall.

Platform games:  Ever since the original Donkey Kong, 2D
side/verticle scrolling screen, jump n' shoot games have been
amongst the most popular form or arcade games made.  In the PC
world the role of shareware alone has brought side scrolling
games like Commander Keen, Jazz Jackrabbit, and Duke Nukem to
much prominance.

Overall, though many games tend to have 80% of themselves firmly
rooted in one of these categories, great games always tend to
overlap into other game types as well.  Magic Carpet, a huge hit
right now (Bull Frog/EA) is both a flight simulation, an
adventure game.

It's always good to keep track of new and interesting gaming
types, there are more than what I've touched on, and new hybrids
emerging every day. Keep track and you might just create a game
that is either a benchmark for its category, or the newest game
for the next great game type!

Oh and did I say GOOD GAMES sell well?

HOW DO I GET A JOB AS A GAME DESIGNER?

Jobs are tough write your own game!

JOBS

AS A PROGRAMMER/DESIGNER

As for an actual job, a good article appeared in the February 95
issue of Computer Gaming World.  Without going into detail I will
summarize the key points.


1. Getting hired is tough.  There is a lot of competition,
programming and/or art skills are a must.


2. Having a good demo or a good game already completed is a big,
big plus.


3. College graduates are the choice of company recruiters, and a
non game specific background is also important.


In short, go to college-this isn't a simple job-and write
something on your own.  It will give you at a big advantage.


THEY'RE ARE OTHER OPTIONS


As the game industry evolves from single designers who did
everything to team oriented multimedia megagames, there are many
other job types which have opened up.


Artists 2D & 3D.  Musicians, Writers, Level Designers, Marketing
etc.


If you feel you have a special talent - like Art for instance -
and you feel you understand Game Development as it relates to Art
(or writing or ...) then you might want to put together examples
of your work and send them to the human resources departments of
companies.


Remember, though: As with any creative medium - or any job for
that matter, getting one will be tough. It won't happen
overnight.  Also, if you are approaching the Game Development
field for a job in one of these support positions, it is
important to really understand the process and the difference
that the notion of interactivity presents to the product.
Writing your own game might develop that!


If you're really interested in the industry, check out:

THE CGDA

The Computer Game Developers Association.

What is the CGDA?

The CGDA is an association of interactive entertainment
professionals dedicated to serving the careers and interests of
its members. It's not a trade association or a union. The
purposes of the CGDA are:


To foster information exchange among professionals in the
industry


To represent the community of interactive entertainment
developers when policy issues arise in industry or government

To increase artistic and financial recognition for developers

To enhance the quality of interactive entertainment and
educational software


Why should I join the CGDA?

The most important reason for joining the CGDA is that it lets
you participate in a community of people with similar interests
and concerns. The CGDA will take an active role in helping to set
government and industry policy on important issues such as
software ratings. In addition, the CGDA will offer a variety of
services to its members, designed to assist them in their
careers.

They also have a newsletter which has all kinds of good info too.

What does it cost?

Membership will cost $75 for 1995. (Foreign memberships will be
somewhat more!)

How do I get in touch with them?

Computer Game Developers' Association
555 Bryant Street Suite 330
Palo Alto, CA

voice:    (415) 948-CGDA
fax: (415) 948-2744

Please note: In order to keep costs down, this phone line is not
staffed by a live person. Leave a message and someone from the
CGDA will return your call as soon as possible.

CONFERENCES

All right Deductible Junkets!!!!!

Several conferences exist.  The major one to attend is:

The Computer Game Developers Conference (What else did you expect
it to be named,)

This is held every year in the spring.  In 1995 it is being held
at the Westin Hotel in Santa Clara, CA, April 22-24. Contact the
CGDA, an affiliate of the producer of the conference for more
information.

There is also an East Coast Developers Conference.

This is held in the fall.

Call Alexander Associates in New York (212)-684-2333 for more
info.

What About The Consumer Electronics Show?

CES is a good place to go too, but it is mainly a
show for retailers and vendors to hook up, so while you'll have
fun playing all the games and looking at the latest gadgets, the
amount of networking you can do isn't as good as the Computer
Game Developers Conference.

What About Comdex/Windows World?

These are business-oriented shows, I've never seen much in the
way of games at either show.

CAN I SELL MY IDEAS?

Write your own game, everybody has ideas.

The fact is, just like in any other creative medium, ideas are
plentiful.  This means it is unlikely a publisher would be
interested in your idea alone. In fact, the way copyright laws
work, they probably won't even look at it because it could open
them up to a lawsuit if you later claim they 'took' your idea.

In order to attract the talent to make the game you will need to
have capital, or some very friendly developers.  However, if
you're reading this, you probably now know that you need to
develop your ideas yourself and that is probably what you had in
mind to begin with.  So, read on!

OK! Enough talk about ideas and getting employed, lets find out
how to turn our ideas into finished games and our finished games
into products!!!!


WHICH LANGUAGE SHOULD I USE?

C/C++

The dominant language of game development is C/C++ for both
Windows and DOS.

Almost every game you see is written in this language originally
developed at AT&T Bell Labs.  C is the original version of the
language and C++ is a newer version, geared toward a system of
programming known as object oriented programming (OOP for short).
C++ programming is not much different from C, so I use the two
together since even most C compilers you can buy will allow for
both flavors of C programming. C is also a great language to
write in because it is easy to move a hit games C/C++ code from
one platform to the other - more so than any other language.
Even though "easier" hybrid languages exist for Windows (which we
will discuss below) C/C++ is the dominant Windows development
language too.

What more can I say - it's the dominant language of game
development.

ASSEMBLY

The Road Runner of languages.

Since it is the fastest language, some Assembly
Language is used.  Assembly is usually used to create subroutines
to call from C/C++ for sections requiring intensive speed.
Assembly language is the most difficult to understand.  The
general law of computer languages states: The lower level the
language, the faster it is, and the harder it is to program in
it.  Don't be discouraged though, learning Assembly is a great
tool; DOOM would not have had it's blazing speed without some
programming in Assembly, and people who know it can accomplish
amazing things.

With its portability and easier learning curve, C/C++ is much
easier than Assembly.  C/C++ like assembly "compiles" to
standalone executable files.

However no one said programming in C/C++ was easy either, just
easier than Assembly, and many people are a little intimidated by
all of the coding required and such.  First, with a little work
and some good books, programming in C/C++ is not as hard as it
seems. Hell - even I know how to program a little in C!  There
are, however, some alternatives to programming in C.

VISUAL BASIC

You mean I can create great Windows products and actually get
some sleep too?

Visual Basic from Microsoft is a hybrid form of Basic written
especially for Windows. VB works in the Windows environment so
you can create neat interfaces and professional looking products.

Visual Basic also has a much easier learning curve. In addition
by learning how to access the Windows API, a special slew of
calls to the Windows Operating System, you can do some nifty
animation and sound effects!

There are also third-party add-on products that extend its VB's
features which are referred to as VBX's.  VB skills can
eventually be used in C/C++, especially concerning API calls.
This makes your skills here transferable to the next level of
Windows programming with C/C++.

However, you should know that VB has its drawbacks. C/C++ is much
faster, and speed in games can be crucial.

I don't think you'll see Doom being created with VB any time
soon.

VB also does not create stand-alone executables like C/C++.  VB
is what we call an interpretive language it doesn't actually
compile.  While you can create "executable stand-alone" versions
of your VB programs (royalty free), your user must also have the
VBRUN300.DLL file in order to use the program. While you can
distribute this DLL (and many users already have it on their
systems) this is an extra burden for VB to carry.

More and more, though I am amazed at the stuff
possible with VB.  I wholeheartedly recommend it to beginners,
and even pro's, to create games.   If you find it too limited or
slow, than just move on to C/C++

ARE THERE ANY OTHER CHOICES?

Yeah! DELPHI!

The other language is Delphi, a recently released hybrid Windows
programming language, from Borland. Delphi is a hybrid Windows
version of Pascal.  It allows you to create full .exe files with
no additional files needed (as opposed to VB) and its very fast.

One note it does require 6mb of memory.


SUMMARY

C/C++ is the leading development language of game creation,
Visual Basic by Microsoft has some merit, especially for non-
action intensive products, and Delphi, a new language for
Windows, by Borland shows promise.  For beginners I recommend
Visual Basic, perhaps Delphi if they know some programming
already.  For people already familiar with VB or other flavors of
Basic or Pascal, go for C/C++ and some Assembly.

ANYTHING ELSE?

It pays to be multilingual.

While you may have chosen one language to become proficient in,
take the time to learn about some of the other languages I've
mentioned.

While you may not want to program in C or Assembly, having a
basic knowledge can help you look at code examples, and gain
ideas for whatever language you're using.  I'm drawing on my
rudimentary knowledge of C to read books about Windows
programming to learn more about controlling Windows from Visual
Basic.  While I can't write a program in C, I can dissect code,
understand so I can learn from it.

Concentrate on one, but pay attention to the others.

WHAT ARE SOME PROGRAMMING BASICS and DESIGN BASICS?

If you're absolutely brand new to programming, you have a lot of
work to do.  Order some more Chinese food and maybe a lot of Jolt
Cola.

One trick: Build your game-developing skills by designing new
levels\scenarios with games that have built-in editors.

For example, learn about wargame design by developing neat
scenarios with Empire Deluxe's scenario editor, or how about a
new level for Doom, using many of the public domain and shareware
WAD file editors?  A list of some of the better
'Designable Games' can be found in the Resources Section.

Learning The Ropes.

What I've provided here is a list of basics specific to game
development that assumes you know programming basics.   If you
don't know basics, like variables, looping conditions, etc. skip
this and come back when you do.  If you've already mastered some
of the basics, here is a rundown of the type of game specific
programming abilities you will want to learn about.  Not all will
be needed depending on your game, but that is for you to
determine.

GRAPHICS

Graphics files can come in many shapes and sizes. You should be
somewhat familiar (if not thoroughly familiar) with the various
formats and how to load them into your program for later use in
animation and such. PCX and BMP are Examples of these formats.

Another point to be made about graphics is that 320 * 200 used to
be the dominant form of games, but with most things progress has
raised that level. Right now the dominant resolution is 640*480
which is also the default Windows resolution.

ANIMATION

Animation in games involves copying sections of the screen to and
from sections of memory that contain the graphics information.
Widely referred to as a BitBlit, it is one of the most basic
graphics programming skills you will need to master.

ARTIFICIAL INTELLIGENCE

AI or Artificial Intelligence concerns the creation of
intelligent reactions by the game's of the situation and the
player's decisions.  Most commonly used to create computer
opponents assessment.  It is not an arcane art and many
established methods have been developed, mostly by game
programmers.

DOS SPECIFIC

Here is a list of the specific items you need to understand which
concern are involved in games for DOS.

SOUND

In DOS, programmers mainly use MidPak and DigPak to create music
and data files and to control their playback.  These programs
allow a developer to write sound routines for multiple sound
board types with one set of code, saving an extensive amount of
programming.

MODE_X

Mode_X is a special VGA graphics mode which displays 256 colors
on the screen at once.  Every game programmer for DOS, needs to
be familiar with
working in this special graphics mode.

Much has been written about it in the books listed in the Book
Section of this FAQ.

FASTGRAPH

FastGraph from Ted Gruber Software is a library of graphics
routines and software which helps with displaying graphics on the
screen in Mode_X, as well as many other useful game-oriented
tools, like joystick reading.  Many programmers use it and the
company offers excellent support.  While it is not necessary to
have this product to make games, many hours will be saved by
using it.   A shareware version of the program, called FastGraph
Lite, is available on the GamDev forum on CompuServe, as well as
on a disk included with Action Arcade Adventure Set, by Diana
Gruber, from Coriolis Books (See Book Section).

DOS EXTENDER

Without going into a dissertation on how DOS memory works, let me
explain what this is.  A DOS Extender allows you to program your
DOS based game without the memory restrictions placed on
traditional DOS programs.  Before DOS extenders came along, games
were limited how much memory, they could use to store graphics,
sound, etc. in the computers RAM. Today's games require 256 color
graphics and sound; this means you will need to use as much of
the computers memory as possible, and thus you will probably need
a DOS Extender.  So, investigate these programs and choose one to
use.  One of the more popular is a product called DOS4GW.

WINDOW SPECIFIC

Here are specific Windows items you should familiarize yourself
with.

THE WINDOWS API

The main component that Windows programmers need to learn about
is the Windows API or Application Programmers Interface.  The API
is a pre-defined set of routines that the programmer can use to
do many things in Windows, from the basic displaying of text in a
window, to the more complex playback of full motion video.
Several good books exist which detail the multitude of API calls.
Even if you plan on using a much higher level language like VB,
you can still make use of the Windows API.  In fact for VB game
development it is absolutely necessary!

Of special interest to Windows programmers are three special new
products that were created specifically to help with the
construction of games in Windows.

WING.DLL

WinG (Win-Gee) is a new version of the Windows API which includes
many new and redesigned API calls specifically geared toward the
intensive graphic and sound requirements of games. Game
programmers for
Windows are especially advised to familiarize themselves with
this new API.

WAVEMIX

This special additional API for Windows allows you to manipulate
multiple .WAV files in real-time for your games.  Windows as it
is does not allow for simultaneous playback of multiple .WAV
files.  With WaveMix this problem is solved.  However, be warned:
WAVEMIX has started life as a non-supported program from within
the ranks of Microsoft.  Recently, problems and bugs have cropped
up.  Microsoft has announced new support for the product, but it
is uncertain at this time when the bugs will be fixed.
Investigate thoroughly if WAVEMIX can work in your program--it
might, it might not.


WINTOON

While not as necessary for Game Development as other products,
WinToon can be a great tool for animationintensive products.

WinToon is a utility whereby you can create animated cartoons
which are stored in the Video For Windows format, making later
playback very easy because of Video For Windows wide acceptance
and extensive existing API.

All three of these items can be found in the WINMM forum on
CompuServe and Via Anonymous FTP at ftp.microsoft.com

WHAT TOOLS WILL I NEED?

As we have already said, creating a game is far more than knowing
how to program.  Games include music, sound, and of course,
graphics.  Therefore there are many other tools and products you
will need to collect before creating your game.  Let's briefly
discuss some of these.

COMPILERS

Let's take a brief moment to discuss 'C/C++' compilers.  You'll
remember C/C++ is the dominant language of game development.  C
however, unlike VB and Delphi, has many different implementations
to choose from.  Here is a run down with the pro's and cons of
the major packages.

Everyone has their favorites, but the most popular version of
C/C++ seems to be Watcom, followed by Borland, and then
Microsoft.

All of the products above have a Linker option which will let you
produce DOS EXEs even while developing in Windows.

Here is a more specific rundown contributed by Chris Newland (so
blame him if you disagree -- actually I think its overall well
done)

Borland C++ 4.5    $495 Retail

If you can afford it ($495 retail, probably more if you are
ordering from another country) this is a really good package.

Some things to be aware of are:

The size of the box is huge!...some people have expressed
difficulty installing it...a resident DPMI extender is used
instead of DOS4GW....However, 6070% of the libraries out there
are Borland Compatible.

Turbo C++ 3.0 DOS    $99 Retail

This is the last great compiler.  From what I hear, Borland will
no longer be supporting their DOS package any longer.  It's got
powerful tools and just about every library on the market
supports it. And once you get a feel for using it, you can easily
zip up a file that has the command line compiler, basic library
files for all memory models, all include files and even one or
two 3rd party libraries in it and still be able to fit it on a
single disk to take with you when you program on another machine.

Be aware of the following:

You don't get a library reference so you will probably have to
buy a TurboC++ specific one....The BGI is slow and limited.... It
comes with NO Windows tools, so if you ever decide to write
Windows games, you will have to get another compiler.

Turbo C++ 3.1 WIN    $89

Hmmm, this is cheaper than the DOS package and it comes with many
more tools...I wonder what Borland is trying to tell us?  This is
a good solid package with lot's of features.  It comes with an
application wizard, written by a 3rd party outfit, that will
develop the shell for your applications totally...leaving you to
do the boring tedium of actual programming.

For your consideration:

This compiler will not link to a DOS EXE....If you develop in it,
make sure you run Windows in High Res SVGA Mode or you'll be ALT-
TABing back and forth.

Microsoft Visual C++ PRO    $229 Retail

Forget the Standard Edition if you want to program games, it
doesn't allow you to compile to a DOS EXE, but the PRO version
does.

As a general Game compiler, I can't say I would recommend this
one and from what I hear, no one uses it for DOS Game programming
either, however, on the Window's game programming front, WING and
the latest CARTOON graphics packages work seamlessly with it. And
of course, they are both by Microsoft.

Symantec C++ 6.1 Standard  $99 Retail/ Pro  $199
Retail

The interface is great.  You have a TAB type interface where each
note tab is a seperate programming function, i.e. EDIT, DEBUG,
etc.. Either version will compile a DOS EXE in Windows, but the
Pro version comes with a DOS Command Line version that allows you
to develop solely in DOS if you want.

However:

Most stores are selling the 6.0 version.  If you buy it,
immediately upgrade to 6.1.  If you don't you will find that
Windows will start crashing in your house and I know you don't
want to step on all of that glass <g>...On the same note, I have
WFWG and if you run 6.0 or 6.1 in it and you have 32bit File
Access turned on, you will TRASH your system.  I had to reinstall
WFWG twice before I figured out what it was. My system ran
slower, but it ran happier.

Watcom C++ 9.0     $199 Retail

This is a good package and most of the games you see that bring
up the DOS\4GW message are using this compiler for development.
I only had 1 oppurtunity to use the compiler and I found that it
was different but still excellent for developing games.

However:

Inline assembly is declared differently in Watcom....DOS Extender
programming requires you to access memory differently as well...a
reference to the screen at address A000 will have to be extended
out to 00A000 to account for the extended memory addressing.
This probably will be changed once in a #DEFINE statement in your
code and you will never think about it again......From what I
hear, Borland libraries won't work with it.

Be careful to make sure that the package you buy has everything
you need, including Windows support. Windows is, as we have said,
the emerging dominant game platform, so you will need Windows
support.

A PAINT PROGRAM

You will definitely need a paint program to create or edit
graphics for your game.  Behind every good programmer even ones
who aren't artists is a good paint program.  My personal
recommendation is:

Deluxe Paint IIe

This program, from Electronic Arts, allows for editing images in
256 colors in many different resolutions.  Also included is a
good conversion program to output your graphics in many different
variations of size and graphic formats.  It also is fairly cheap,
costing less than $100.

Whatever paint program you use, make sure it can output to
different sizes and formats, and additionally be able to paint in
256 colors in
multiple resolutions (especially 320*200 and 640*400).

As I write this update EA has officially discontinued Deluxe
Paint -- however if you act fast you may still locate a copy at
some of the larger mail-order places.  There is also a chance EA
may sell the product to people who want to continue updating it.
Stay tuned.

SCANNING

You may also wish to use a scanner or digital camera to
incorporate drawings on paper.  Just remember: If this is your
desired process, scanned artwork looks like scanned artwork.

Many artists sketch out their artwork in line drawings, then scan
it in and from there add color and other embellishments.

Any developer worth their salt may scan, but they always touch it
up in a paint program to clear up color distortions and imperfect
scans.

Just an additional note here, I was visiting a friend who is an
excellent critic of games -- in fact he is called upon by
distributors when he returns from CES to get his opinion which
they use to decide how much of which games to order.  Anyways we
were talking about game art and looking at his SONY
PSX/PLAYSTATION!!! - the new gamebox from Japan.  He made a point
that I thought is very relevant here -- GAMERS LIKE ARTWORK --
scanned pictures may look more real or whatever but, the fact is
people enjoy art and animation created by artists its part of the
enjoyment factor.  It may seem obvious but it really hits home
when you actually state it.  Ill say it again people like art.

GRAPHIC CONVERSION

You will also need to get a conversion utility to convert a
graphic file to different formats.  As I said, Dpaint comes with
a very good one.

Debabbelizer, a commercial product is a very powerful and popular
stand-alone graphic conversion utility.

ANIMATION CREATION

Many programmers create animation by programming it directly with

individual frames of animation they've drawn.  However-there are,

some programs which help you create stand alone animated files

which can be used for more intensive animation.

WINTOON

We've already discussed this above.

AUTODESK ANIMATOR

Autodesk Animator is an excellent 2-D program for
creating animation, Autodesk has published several Windows and
DOS programming tools for people interested in creating products
which use these animation programs.

DELUXE ANIMATOR

This product uses the Dpaint engine, but only works in 320x200
mode and creates animation.  Go to the GamePubA forum and
download EA's C source code for controlling playback with your
own routines.

VIDEO CAPTURE SYSTEMS

In addition there are several Video Capture Cards and Programs on
the market which allow you to create digitized video.  The two
major formats for these video files are QuickTime, which was
created by Apple but exists for Windows (and possibly DOS, but
not yet), and VFW (Video For Windows), which was created by
Microsoft and Intel.  Also, look for the book How To Digitize
Video for more information about creating animation of this kind.

3-D CREATION

Looking to create neat 3-D scenes or programs like 7th Guest?
Then you will need a 3-D modeler.

Two of the better DOS-based 3-D programs are:

CALIGARI TRUESPACE

This program was originally created for the Amiga PC more than 5
years ago and is now steadily finding users among DOS-based
machines.

AUTODESK 3-D STUDIO

This was the main 3-D modeling program used by many program
houses before they could afford Silicon Graphics Workstations.

GRAPHICS PROGRAMMING Libraries

Several programming aids are available to help you with creating
graphics from the programmer standpoint, as opposed to the
creator.  We have discussed two of these: FastGraph, from Ted
Gruber Software, and WinG.DLL from Microsoft.

For VB, there is one really popular package called MediaKnife.VBX
It helps VB programmers create really wild graphics by bypassing
VB's internally slow routines.  $349 from Media Architects, (503)
639-2505.


SOUND and MUSIC

The most important feature of doing your own sounds is having a
good sound board and a GREAT MICROPHONE!!!  A key fact, sound
recording, is no matter what the format is, is a good microphone.
Any sound engineer will tell you the same.

SOUND EDITOR

GoldWave

This is a great shareware sound editor I have recently found.
It's available in the WinFun Forum, among other places on
CompuServe.

MUSIC CREATION

Music is the hardest thing to get if you're going it alone and
don't have a lot of money.

A tip here is to use public domain MIDI files, though always
check with the author of the Midi file before including it to
make sure the song is actually public domain.  While a song may
be public domain, the actual arrangement created by the author
may not be.

As for professional composition, post messages on the MIDI or
GAMDEV forums on CompuServe but be prepared to provide proper
compensation: Just like any other worker,  musicians expect to be
compensated.

EDITING MIDI FILES

WinJammerPro

This is an excellent shareware MIDI program I have used a couple
of times.  You can find it in the WinFun forum among other
places.

Music Programming

We've already talked about MidPak and DigPak a little.
DigPak/Midpak costs a one time $1000 fee for use in commercial
programming and free for noncommercial programs.  You can contact
the creators of DigPak/MidPak at there BBS:

The Audio Solution
747 Napa Lane
St. Charles, MO 63304
BBS: (314) 939-0200

There is a new package coming out from MVP Software, a leading
Shareware developer.  Called Diamondwares Soundkit, it will offer
the same functionality of the stalwart MidPak/DigPak, and,
according to the company, have a better royalty arrangement.
Check it out when it becomes available.  I am told that a
shareware version will be made available.

WHAT ABOUT DEVELOPING GAMES FOR OTHER PLATFORMS?

At this point I'll take some time to discuss some issues and
tools concerning game-developing for platforms other than MS-
DOS/Windows.

Much of what we've talked about conceptually applies to any
conceivable platform. Since we've now discussed some of the
specifics concerning MSDOS/Windows development, I will discuss
specifics for Video Game machines, like 3DO, Sony PlayStation
and SEGA, as well as the Mac.

APPLE MACINTOSH

While it has never achieved the success of the IBM\Clone world,
Apple's Macintosh still has a sizable installed base of users who
want to play games.  Indeed, some major products saw their first
version created for the Mac, (Myst, Balance of Power and SimCity,
to name a few.)  However, the Mac, in all seriousness, is best
viewed as a good platform to port wildly successful games from
the IBM/Clone world.

As for languages to use, Mac game development doesn't feature
some of the Hybrid languages like Delphi and Visual Basic.  The
two major development languages on the Macintosh are 'C/C++' and
Pascal. Think C and Zortech C seem to be the most popular brands
of C/C++ and Think Pascal seems to be the dominant brand of
Pascal used.

As for tools, the Mac perhaps has better graphic, and music tools
than the IBM/Clone world.

VIDEO GAME CONSOLES

Without going into much detail, let's talk about developing games
for such platforms like 3DO and SEGA.  These systems were
traditionally, cartridge based and are now becoming solely CD-ROM
based. These platforms are developed to play only interactive
entertainment, and are not computers. Yet now, many are even more
powerful than computers you and I are using, especially
concerning graphical output and sound, which is of course the
basis for games.

Video Game development is accomplished using what is commonly
known as a cross-development-system. A cross-development-system
is one in which a game is programmed on one machine but written
for another one.  For example, I might use a Mac-based cross
development system to create a game for the SEGA. These systems
are sold as "Development Kits" and sometimes are available not
only from the Company but other sources as well.  They can be
very costly.

The best way to find out more is to write directly to the
particular company about what the contents of their development
kits and what hardware they work with.

Keep in mind though that writing a game for a Video Game machine
is expensive; if you can't find a publisher, chances are you
won't be able to publish the game, given the methods of
distribution associated with Video Game systems and the royalties
the manufacturers collect in licensing fees.

If you are successful at creating a computer game, you might,
however--like in Id's case--want to move it to other platforms to
reach a wider audience. Chances are though, if you are in this
situation, You're already working as or with an established
developer.

SUMMARY

Non MS-DOS/Windows development consists of Macintosh and Video
Game System platforms.  Macintosh is a viable, yet less-developed
option because of a smaller installed base, and while Video Game
Systems have a large installed base, development via Cross
Development-Systems can be costly and generally is not
recommended to beginners as an initial foray.


I KNOW A LOT MORE BUT, STILL NOT ENOUGH TO WRITE A GAME.

Well, say no more. I've compiled below one of the best lists
around (if you find a better one, send it to me!!!).  If you
can't learn game development after reading this stuff, then I
don't think anyone can help you.

EDITABLE GAMES

For beginners and pros alike, designing scenarios/variations for
existing games with level/scenario/environmental editors is, as
said above, a great way to build skills.  Many of the online
services maintain sections where you can upload your creations
for others to play and enjoy. Now what follows is not a complete
list by any means, look through your existing software collection
and through new products on the shelves for other interesting
editable games.

DOOM 1.666 Registered and Doom II - Id Software

In order to edit and experiment with levels in Doom, you might
want to check out CyTech CodeHouses, DOOMWARE developers network
CD.  This is packed with WADS, Editors, Sounds, and Graphics.
Sold for $34.95 Call 1-800-382-5656

These products are available at your local reseller or favorite
mail order resource.  All include builtin editors.

Klik and Play: Maxis

This is a game construction kit which helps you make neat
arcadish products, which can be distributed free-of-charge when
you're done.  Example creations exist on CompuServe GamDev forum.

SimCity/SimCity 2000 - Maxis

Another great product from Maxis contains excellent scenarios
editors.

Empire Deluxe - New World Computing

Empire is one of the all-time greatest computer wargames.  It
includes an excellent scenario editor and many examples already
exist on the Net.

Flight Sim Toolkit - DoMark

This product allows you to create your own 3D flight simulators.

Lode Runner - Sierra-OnLine

This is a remake of an all-time great platform game which
includes an excellent editor that can be used to create your own
puzzling platforms.

WHAT TO READ

MAGAZINES

Game Industry/Reviews    Computer Gaming World, PC Gamer
                         Computer Strategy+, GameFan, Edge
                         Wired

General Programming      Dr. Dobbs Journal, CD-ROM Developer
                         Visual Basic Programmers Journal
                         Software Development,  PC Techniques

Multimedia               New Media, Morphs Digital Outpost,                 
                         Multimedia World

Artwork                  Computer Artist, Computer Graphics World

Game Dev Specific        The Journal of Interactive Entertainment     
                         Game Developer, Game Hack Mag - 
                         (available online) and CGDA Newsletter

Others                   Ziffnet Threads (For Ziffnet Subscribers)
                         Zshare (Available On-line GO SHAREWARE)
                         Lots of Shareware Development Coverage

Note: The Journal of Interactive Entertainment Design, published
by Chris Crawford is not available in stores or on line:  Send a
check for $36 to:

Journal of Interactive Entertainment
5251 Sierra Road
San Jose, CA 95132

BOOKS

I've tried to provide as much information as possible to locate
these books at your local bookstore.  I've also tried to give a
brief synopsis of what the book covers and what language you need
to know to understand the source code.  If you can't find them,
or you live far from a bookstore, call the Coriolis Group 1-800-
410-0192.  They not only publish their own books but they also
carry the majority of titles listed here from other publishers.


GAME SPECIFIC
Action Arcade Set by Diana Gruber Coriolis: ISBN 1-883577-06-3
Covers the basics of arcade game creation.  Includes information
about FastGraph, Mode_X.  The accompanying disk includes
FastGraph Lite, the shareware version of FastGraph.  Requires
basic knowledge of C.  Includes some good info on shareware
marketing.
Flights of Fantasy and
Gardens of Imagination by Chris Lampton
Waite Group Press:   ISBN:1-878739-18-2(FoF) 
                          1-878739-59-X(Gardens)
                
Flights of Fantasy, covers the basics of creating 3D flight sims.
It starts with some of the most basic 2d graphics programming
routines and ends up with basics of 3D programming.  Disk
Includes all the source code, and again a basic knowledge of C is
needed.

Gardens of Imagination is Chris's second book and shows you how
to create 3-D games like Wolfenstein and Doom.  It comes with a
disk full of source code and requires a good knowledge of C.

The Black Art of Windows Game Programming by Eric Lyons
Waite Group Press:

Tricks of the Game Programming Gurus by LaMothe, Ratcliff,
Seinatore and Tyler
Sams: ISBN 0-672-30507-0

CD-ROM included

This book dives into the creation of 3D raycasters, sound, midi,
game AI and more.

The CD-ROM includes source code, graphics and more.

Visual C++ Multimedia Adventure Set by Peter Aiken and Scott
Jarol
Coriolis: ISBN 1-883577-19-5.

CD-ROM included.

This book covers WinG and WinToon and other Windows programming
stuff for gamers and multimedia developers.  Topics covered are
full-motion video, animation, music, image manifpulation and
special effects.

PC Game Programming Explorer by Dave Roberts. Coriolis: ISBN 1-
883577-07-1

Dave Roberts has created an excellent introductory book to using
C/C++ to create DOS games.  Explaining ModeX, MidPAK, Keyboard
and Joystick handlers.  The book also goes step by step through
the creation of a shootem up game including collision detection,
scrolling screens, memory management and design.

Includes disk of source code.

Teach Yourself Game Programming In 21 Days by Andre LaMothe
Sams: ISBN 0-671-30562-3

Amazing 3D Adventure Set by Lary Myers
Coriolis: ISBN 1-883577-15-2

Includes CD-ROM

This book offers the latest and greatest version of Lary Myers
ACK 3D raycasting engine including graphics, source code and map
editors.  Covers both DOS and WinG versions.  Just a note here if
you've seen versions of ACK before they may be derivatives of the
original 2 year old version this book is the official source code
guide to the latest version.

Programming Windows Games with Borland C++
ISBN 0-672-30292-6

Netwarriors In C: Programming 3-D Multiplayer Games in C by Joe
Gradecki
Wiley: ISBN 0-471-11064-7

Includes CD-ROM.

Netwarrior in C++:Programming 3-D Multiplayer Games For Windows
by Mark Andrews
Wiley: ISBN 0-471-11337-9

Includes CD-ROM.

VISUAL BASIC SPECIFIC

Visual Basic Multimedia Adventure Set by Scott Jarol Coriolis
Group: ISBN 1-883577-01

Covers many aspects of VB useful for game development like Sprite
Animation, WaveMix and Video For Windows.

The Visual Basic Guide To The Windows API by Daniel Appleman.
Ziff Davis Press:

Includes Disk.

This is an extensive book, covers how to call the Windows API
with VB code.

Visual Basic -- Game Programming for Windows
ISBN: 1-55615-503-4

Programming Games for Beginners: Visual Basic for Fun and Profit
by Chris Howard
Published by SAMS
ISBN: 0-672-30313-2

GRAPHICS PROGRAMMING

Encyclopedia of Graphic File Formats. by James D. Murray and
William VanRyper
O'Reily Associates.  ISBN 1-56592-058-9

CD-ROM Included

There have been guides to graphics file formats and then there is
this.  All others pale in comparison. Just some of the formats
included are BMP, TIFF, GIF, Kodak Photo CD, Dore raster file,
Pixar and Rayshade to name a few.

The CD-ROM includes all kinds of source code and vendor tech
documents.


Zen of Graphics Programming by Michael Abrash. Coriolis: ISBN 1-
883577-08-X

Includes Disk.

The Zen master himself Michael Abrash weighs in with all his
ModeX expertise and then some.  Over 1000 pages of awesome
graphics programming power.  The disk includes the latest version
of his Xsharp graphics programming routines.

Bitmapped Graphics by Steve Rimmer
Windcrest: ISBN 0-8306-3558-0

DESIGN TECHNIQUES

The Art of Computer Game Design by Chris Crawford

Originally published by McGraw Hill. This is available in unbound
form.  To order send a $25 check made payable to "Chris Crawford
Games", PO Box 360872, Milpitas, CA 95036.

Balance of Power by Chris Crawford
Microsoft Press: ISBN 0-914845-97-7

This book covers the design concerns, strategies and thoughts
about this classic game of international diplomacy.

Computer Gamesmanship, Elements of Intelligent Game Design, David
Levy.
Simon & Schuster.  ISBN  0-67149-532-1

Focuses on chess, checkers, and poker algorithms.

Artificial Intelligence 2nd edition by Rich and Knight.
ISBN 0-07-052263-4

The Complete Wargame Handbook by James Dunnigan. William Morrow
and Co., ISBN 0-688-10368-5

Game Plan: The Game Inventor's Handbook by Stephen Peek.
Betterway Publications, ISBN 1-55870-315-2

The Art of Wargaming by Peter Perla.
Naval Institute Press, ISBN 0-87021-050-5

Games Programming by Eric Solomon.
Cambridge University Press 1984. ISBN 0-521-27110-X

General theory.

MARKETING

Software People by Doug Carlston. Simon & Schuster ISBN 0-671-
50971-3

This a great book, albeit a little dated, about the early days of
the computer biz and the computer game biz specifically.  Doug
Carlston is president and one of the original founders of
Broderbund Software, makers of such hits as Karateka, Print Shop,
Lode Runner, Living Books and of course Myst!

The Macintosh Way by Guy Kawaski.
Scott Foresman ISBN 0-673-4615-0

Guy was one of Apple's first Evangelists. No not Apples answer to
Jimmy Swaggert. He spent time trying to get companies to produce
products for the Macintosh when it first shipped.  He later went
on to become president of Acius which makes 4th Dimension, a
powerful database product for the Mac. This book is sort of a
neat hybrid of marketing advice and anecdotes from the computer
business.  It is also a laugh riot, Guy is somewhat of a comic.

Managing Software Maniacs by Ken Whitiker

Covers lots of stuff concerning managing software development and
marketing, including some stuff about shareware.

Making Money Selling Your Shareware by Steven C. Hudgik.
Windcrest/McGraw Hill: ISBN 0-07-030865-9

How To Sell Your Software by Bob Schenot.
John Wiley & Sons: ISBN 0-471-06399-1

ONLINE DOCUMENTS

PCGPE.Txt and PCGPE.HLP - The Game Programmers Encyclopedia

This is a document compiled together by a group of regulars from
the Rec.Games.Programmer newsgroup on the Internet and is
available in DOS based (.TXT) and Windows based (.HLP) flavors.
It is a hodgepodge of many different game-oriented programming
articles, like starfield creations, reading joysticks, graphics,
etc.


You can find this on the CompuServe GAMDEV forum among other
places.

Define.zip - A general glossary of game programming terms
available in the CompuServe GameDev forum.

Design Theory Thread - The ongoing discussion on Design Theory in
the GamDev forum which is sort of moderated by game development
master Chris Crawford is now being archived for all of you who
arent daily visitors to the forum.

ONLINE SITES FOR GAME DEVELOPERS

COMMERCIAL NETWORKS

America On-Line

AoL has several good things for game programmers.

It is an excellent site for uploads for shareware authors.

In addition AoL has a lot of content stuff like newspapers and
magazines, plus an extensive search engine for wire feeds.

I use this to search for news on Game Development to see press
releases and stories about the industry its an excellent place to
keep up on the business until I start a weekly or find one that
covers it already.

Compuserve

CompuServe has perhaps the best single service for Game
Developers and that is the GAMDEV forum which if you have read
this far is a personal favorite hangout.

In addition here are some other interesting places on CompuServe
to go to.

Go GAMDEV  - The Game Dev Forum

Go GAMERS - Good place to read about what people are playing and
what they like

Go SDFORUM - The sdforum is the hangout for all the major
programming journals including Game Developer

Go SHAREWARE - The official forum of the Association of Shareware
Proffessionals.

Go VBPJ/MSBASIC - These two forums are useful for VB programmers.

Go WinMM - The official Microsoft forum for multimedia/game
development with Windows.

Finnally you might want to GO ZIFFNET.  Ziffnet is a section of
CompuServe which is extra -- $2.95 a month I believe.  It offers
access to many Ziff magazine forums including Computer Gaming
World and you also receive ZiffNet Threads every quarter which
has lots of Shareware entertainment coverage.

INTERNET

These are sites on the Internet from which you can download
various development oriented stuff from via FTP (File Transfer
Protocol).  For more about USENET NewsGroups and FTP in
conjunction with CompuServe GO INTERNET.


USENET NewsGroups

Rec.Games.Programmer
Rec.Games.Announce
Rec.Games.Design
Rec.Games.Video.Programmer
Rec.Games.Video.Sega
Rec.Games.frp.misc
comp.sys.ibm.pc.games.misc


ANONYMOUS FTP SITES CONCERNING GAME DEVELOPMENT

x2ftp.oula.fi
ftp.uml.edu
Ftp.Microsoft.Com

WEB SITES CONCERNING GAME DEVELOPMENT

http://www.coriolis.com/coriolis

The Coriolis group is developing this Web site not only for
selling their awesome books, but they are also turning it into a
great overall resource for Game Developers.  Sooner or later this
document may end up in an attached Web Document on the site.
Check it out and stay tuned.

Bulletin Board Systems

Software Creations BBS--The Home of the Authors.

508-368-7036
508-368-7139

A Division of Linton Enterprises
26 Harris Street, Clinton, MA 01510
Telephone: (508) 368-8654
Fax: (508)-365-7214

O.K. I'M NOW AN EXPERT.  I CAN PROGRAM DOOM III NOW WHAT?

You aren't done yet, its time to order some more Chinese food!
You're far from done.

BETA TESTING

Before you start showing the world your game, you might want to
make sure there are no bugs or problems.

Even with many promised solutions with Windows 95, there are many
slight differences among machines out there.  Even moderate Beta
Testing will let you know if there are any problems.   Beginners:
don't make the mistake of not asking some friends, online or
across the street, to check out your game prior to releasing it,
to make sure it runs properly.

Posting a solicitation on CompuServe for Beta Testers always
seems to bring a response.

If you're really concerned about problems with unknown beta
testers, and if you plan on using use the shareware method
contact the ASP, The Association of Shareware Professionals.
They have a Mentor program setup to help with things like beta
testing.

MANUALS AND DOCUMENTATION

In rushing to create games, many beginners fail to understand it
is important to create documentation for your game.

Either by good Help Files, via a Readme.Doc, or a full fledged
printed manual, at some point your player will have questions.
Remember before you ship, via shareware or even send out a demo
to a company create some good documentation concerning
installation, how to play, storyline etc.  I have seen many games
where the documentation really helps, (e.g. the superb
documentation for Ultima) Poor documentation even if written by a
professional writer can be traced back to the programmer/designer
many times.  Keep notes and include docs.  It is that simple.

I'M WORRIED ABOUT PROTECTING MY IDEAS.  HOW DO I COPYRIGHT MY
GAME?

(Editors Note: Some of this was edited and outright lifted from a
nice earlier piece on game design by Travis S. Casey titled
Design.153, last updated in Nov. 94.   It is available on the
Internet and may be referred to as the Rec.Games.Design FAQ)

If you're in the U.S., England, any Western European Country,
Canada, or Australia, anything you write is considered to be
copyrighted under the terms of the Berne convention that all
these countries adhere to.

A copyright does NOT protect your ideas.   All a copyright does
is protect the expression of an idea. Thus, it's perfectly legal
for someone to take all the rules of, say, Advanced Dungeons &
Dragons, paraphrase them, and eliminate references to Dungeon
Master and a few other terms TSR has trademarked, and sell the
resulting product.

That said, including a copyright notice in your work does give
you one benefit:  it makes it easier to collect damages if
someone does copy your material. If there is no copyright notice,
the copier can claim "innocent infringement" (that is, "I didn't
know I couldn't copy it") and get off with a slap on the wrist.
In addition, you may want to look into registering your
copyright.  In the U.S., at least, this provides definite proof
that you wrote your material first, and allows you to collect
money from copiers beyond simple damages.

OVERALL REMEMBER: YOU CAN'T EXPECT TO HIDE YOUR EVERY IDEA IN
SECRECY OR BEHIND LEGAL FIREWALLS. YOU SHOULDN'T GIVE AWAY ALL
YOUR IDEAS OR SHARE HUGE AMOUNTS OF SOURCE CODE, AND COPYRIGHTING
HELPS. JUST REMEMBER, IN A CREATIVE MEDIUM SOME SHARING MUST
HAPPEN BEFORE YOU WILL GET FEEDBACK.  DON'T BE TOO AFRAID TO
SHARE.

If you only create games for your own play, then stop reading.  I
suspect, however, you want some tips on how to let others enjoy
your work and maybe even make some $$$.

HOW DO I PUBLISH MY GAME?

You can pursue two routes.  The first is submitting it to a
publisher who will then distribute the game. Or you can consider
or self publishing.

I THINK I'LL SUBMIT.HOW DO I CONTACT A MAJOR PUBLISHER?

First off, before you do, you need to realistically ask yourself:
Do I think this is a game a publisher will want.  If not, see
self publishing.

If it is, then here are some tips:

RESEARCH

Do some research, think about which publishers might be best for
your product.  For example, Microprose is well-known as a leading
publisher of Simulation software.  Picking a logical match will
help.

REQUEST AUTHOR INFORMATION

When you have decided on the company, contact them either by
letter or phone, and ask them to send you information about their
guidelines for unsolicited submissions.  Read this and give it to
your lawyer to read it over.

Most likely, the guidelines will include a nondisclosure
agreement which bars you and them from discussing the product
publicly and requires that you submit a demo version for
evaluation.

NEVER SUBMIT SOURCE CODE OF ANY KIND WITHOUT SPECIFICALLY BEING
ASKED FOR IT AND EVEN THEN CONSULT YOUR LAWYER.

GET A LAWYER

I am not a lawyer and I don't play one on TV.  If you plan to
submit a game professionally to a publisher, get a lawyer first--
preferably one with a good background in contract law and
copyright law and, if you can, find one in the computer games
industry.

Now before you go getting the wrong idea, let me explain.  I
refer you to a lawyer not to have you march in a bunch of suits
to do your negoiating for you.  That's a fast way to
nowheresville.

I refer you to them for use as a personal resource, on your end.
A lawyer may never be needed for a face-to-face meeting with your
publisher, but always run contracts and legal documents of any
kind by an attorney.  I had a friend who was once burned in the
GamDev biz becuase he had failed to understand a clause which
held his company responsible for conversion costs and sales.
This actually reduced his overall compensation for their product
which went from good to poor because they were required to port
it to poor selling machines.

Most game companies are on the up and up.  That, however, is no
excuse not to have a lawyer handy to check things out.  Lawyers,
fortunately or unfortunately are a necessary part of the
business.

BE PROFESSIONAL

"Ma'am, we're professionals" - Jake Ellwood

Just remember that submitting your product to a publisher
requires a professional outlook on your part.  Always remind
yourself that this is a serious business.  At times fun, at times
serious.

Type all correspondence.

Send multiple disks, in case of damage.

Make sure you include all background details, manuals and other
necessary materials and be patient-if your game is truly good, a
publisher will eventually take interest.


WHAT IS SELF PUBLISHING?

Self publishing is either Shareware or the commercial creation of
your own company to publish it.  (I won't go into much depth
about this.  If you've got the money to create a retail software
company you don't need my advice!)  Mostly though, self
publishing is SHAREWARE.

WHAT IS SHAREWARE?

Shareware is the hottest software marketing concept since the
album package.

Shareware is the process of giving away a portion of your game,
say 1/3 and from within the product, soliciting, a purchase of
the final 2/3 or full version of the game.

Note:  Some people--including the ASP--hold that the shareware
version can be no different than the full version.  There is no
1/3-2/3 concept.

This is derived from the practive of some Shareware authors who
were shipping products with essential features disabled from
their products.  The technique, known as crippling, is outlawed
by the ASP because it hurts the notion of a full-workingversion
and discourages people from using shareware to begin with.

I would say that this is a very plausible view. However, much
research has shown that without strong incentives, registrations
suffer.  This is a debate that will rage for a long time.

My general rule is that your game should offer a complete
experience in the Shareware version: That it have a beginning, a
middle, and an end, and all the features required for it are
available.  For the registered version, offer an enhanced
version.  Just be careful not to offer an unplayable shareware
version, you will be doing yourself and every other shareware
author a great disservice.

Shareware authors write their game, then after deciding on what
features/levels etc. of the product they will include in their
"shareware" version, give away that portion.  Via uploading to
online networks, BBS's, and the Internet shareware authors make
their game available to millions of computer users (who
subsequently may copy versions and give them to their non-online
friends) for next-tonothing.  Then users download or acquire the
shareware version and if they like it, and feel enough incentive
to upgrade, will usually send a check or credit card order(if you
can accept them), directly purchasing the full version from the
author.

Shareware has been noted recently with the success of DOOM and
other products from companies like APOGEE, EPIC and MVP which
have used the Shareware method.

Shareware's main attraction is the low cost for marketing and the
high margins of direct orders (cutting out the publisher, the
distributor and the retailer means more money per copy for the
creator). It's other attraction is the ability to publish special
interest stuff for example: a sailing, simulator--that otherwise
might not sell in a crowded retail environment.

However, there are downsides to Shareware.  Selfpublishing is a
lot of work, and not every consumer has the means to acquire
shareware versions, and recently it is getting crowded with tough
competition.  On the bright side, the business is still growing
by leaps and bounds.

There is too much to be said about Shareware beyond the simple
stuff I've touched on.

FOR MORE INFORMATION ABOUT SHAREWARE

If you are truly interested in the Shareware method, I implore
you to do the following two things:

JOIN THE ASP

The Association of Shareware Professionals.  This organization,
accessible on CompuServe (GO SHAREWARE), is the best resource for
budding Shareware authors.  There is a ton of information
available about Shareware marketing in their libraries, so fire
up your modem and check them out.

READ

There has been a lot written about Shareware recently, much
concerning its viability, tips on how to be successful at it,
etc.  Most of this is available from the ASP but there are
articles showing up in traditional business publications,
mainstream computer magazines and books.  Shareware is more than
just simply labeling your software SHAREWARE and waiting for the
checks to arrive, so a
few days reading about it will go a long, long way towards being
a successful shareware publisher.

TALK TO OTHER SHAREWARE PUBLISHERS.

As I mentioned before, there are also several successful
shareware publishers, many of whom you can find in both the
GamDev forum and the Shareware forum.  They can offer tips and
perhaps even aid you in publishing your product.  While you will
split your profit, the shareware method they use still provides
higher margins and many will tell you that their established
expertise and distribution networks will result in more sales of
the full version then going it alone.  In addition, they may help
with the development by finding you artists and musicians and
other resources.  However, that is not for me to corroborate and
if you are interested in what these companies have to offer, you
need to contact them directly.


WHAT IS THE BEST WAY TO PUBLISH?

There is no easy answer.

Shareware is all the rage right now, because Id hit it big time
with Doom and Wolfenstein and MVP, Epic and Apogee have created
excellent businesses and the margins are higher.  Remember,
though: Successes of any kind are exceptions to the rule.  The
fact is most shareware products don't make the millions that Id
made.  Don't get discouraged, you may be the next exception, just
be prepared to be happy for a mere trickle of orders.  Shareware
success is about good products and great effort--read the stuff
about shareware I referred you to, and you'll see.

Self-pblishing requires a lot leg work.  Processing orders,
technical support, and so on are going to be big requirements on
your time.  Even if you sell only 10 to 20 copies a month after 2
years, you may have some 500 users.  That is why many people
submit to publishers.  In addition to helping with programming,
publishers can market your game much better than you yourself.


QUICK RULES

In short: Just as in many things in life, there are tradeoffs.
My advice is to follow these rules:

Self-publish via freeware if: (That is, simply give the complete
product away for free)

1.You don't think your product will generate enough sales to be
viable.

2. You don't have a desire for the money you might make.

Self-Publish via shareware if:

1. Your product is good--not good enough for a publisher--but you
still think people will pay for it.

2. If you really are someone who enjoys the idea of creating the
next successful publisher, not just the next great game, and
you're seeking a potentially higher profit margin.

Use a Retail-oriented publisher if:
     1. Your product is good enough.
     2. You want to concentrate on nothing other than making games.
     3. You want a traditional Retail distribution of your product.

Use a Shareware-oriented Publisher if:
     1. Your product is good enough.
     2. You want to concentrate on nothing other than making games.
     3. You want to still use the Shareware method.

WHAT's THE PUBLISHER'S PRESPECTIVE?

We've talked a lot from the developers prespective but the other
side of the equation is equally if not more important.  I asked
Dave Snyder of MVP GAMES to write up a little something about
what goes through his mind as a publisher when he approaches game
development and submissions.  Here's what he had to say:

I cannot give you any general rules on submitting products to
other publishers.  Nor can I give you any general rules on what
publishers look for or what they expect in a submission.

The only general rule is to contact the publisher directly before
submitting a product to find out what is of interest.

Moreover, while every publisher will tell you that they will
consider any type of game, the fact is that most publishers
specialize in certain types of games.  Familiarize yourself with
what types of games a publisher has done well before submitting
anything.

Here's another thing not to expect from publishers these days: an
advance, unless you are an established developer with at least
one hit under your belt.

Advances are big risks for publishers.  All of us, MVP included,
have paid advances at some point in the past and have not gotten
a product in return. Since these days there are more good games
than can possibly sell or even be published, you are selling in a
buyer's market.  Consider that lots of publishers, including
major ones, have faced recent financial difficulties, with more
to come, and you will see that publishers must be very careful how 
they spend their money.

Having said what I cannot tell you, I will say what MVP expects.

First, we want to see at least a demo.  While we don't care
whether the artwork, music or sound effects are polished (we have
professionals to do that), we do want to see a good
implementation of an interesting idea.

And we want to see enough of it to be in a position to make a
decent evaluation.  We are not interested in seeing mere ideas,
generally speaking, because everyone has ideas.  We want to see
some sort of implementation of that idea.

Frankly, we are much more concerned about your commitment to the
project, your ability to pull it off, and your ability to take
direction and criticism, than we are interested in seeing a
polished product.  When a publisher invests in a product, even
without paying an advance, that represents a substantial
commitment of resources.  A publisher is buying you, not just
your product.

You have to convince the publisher that the investment is worth
it.  You should have ideas on how to complete a cool game, but
you had better be willing to listen to direction.  MVP, and, I
suspect, most other publishers, are not interested in prima
donnas.

The world of computer games is as competitive a business as there
is these days.  Unless you are committed to working 80-hour
weeks, for as long as two years or more, don't kid yourself about
trying to break into it.  Most of those who are developing games
full-time have done that.  Lots of others are willing to do that.
That is the norm in any extremely competitive business.  Since
getting an advance will be tough to do, you must be committed to
working your day job, and putting in at least 4 hours a day,
every day, on your game.

No taking Saturdays off.  No parties, no social life-no kidding.
Just a few years ago, people could make it in this business
without making that kind of sacrifice, but that is not possible
any longer.

Finally, consider a small publisher for your first game.  Usually
a small publisher will give you more attention and help than a
large publisher can. Consider shareware, but work with a
shareware publisher.

Even if you hope someday to release shareware games on your own,
work with an established publisher first.  Your game will be
better, you will learn from their experience, and you may find
that you don't especially want to run a business, you want to
just write games.  If you do find that, working with a publisher
will spare you from getting into something you later discover
prevents you from doing what you want.

IS DEVELOPING GAMES THAT BRUTUAL?

Yes and no. Dave certainly conveys the seriousness of the
business and the time it takes and the
competition.

The life of a Game Designer is brutal for beginners, just as any
similar competitive industry is. However as Chris Crawford
pointed out in an Email to me while discussing finishing touches,
approaching it as a hobby much like  photography can be fun!  If
you do something and you think it's really good or you find your
skills are developing to a professional level then maybe the next
step takes you to that level.

Overall, have fun.  Just don't get stary-eyed ideas that your
work will make you a millionaire.  Work hard, regardless of your
goals.

CONCLUSION

Well, I hope you've found the above informing.  I've found Game
Developing to be a big trial-and-error process.

Why?  Because not enough of the know-how has been disseminated
and that makes it difficult to learn, let alone even start.

Game development, unlike a lot of other programming, is at the
forefront of the technology curve.  That is why you see games
pushing the hardware limits of your machine more so than, say, a
Wordprocessor.  So much of what you see done today was figured
out by someone only yesterday.  Thus, it takes time to filter
out.

It is frustrating to have all these ideas in your head and no way
of knowing how to accomplish them. If that is your case, I hope I
have enlightened you enough to motivate you to go out and learn.

Only now have enough books, experts, and tools come together that
give people the power to create their own products.  There are
not too many businesses like that left--surely no one can go out
and make a hit movie with a camcorder.  But even with a 4 meg 386
that, maybe even millions will want to play. Hopefully, with some
devotion, hard work, skill and a little help from (this FAQ)
above, it will be your game.   GOOD LUCK!!!

NOTES

Any one wishing to correct, object or update information in this
file E-mail Corrections to:  Ben Sawyer@AOL.Com or at my
CompuServe Address: 73522,1470 This FAQ will be updated once
every two three months.

Please be sure to include non-email contact information and your
full real name if you are using a screen name and, how you would
like to be named in the donors column.

Submitters remember that this FAQ is a general purpose FAQ aimed
at general game development issues.  Please stick to the basics.
Thanks.

DISCLAIMER!!!!!

ANY ADVICE GIVEN HERE IS NOT LEGAL IN ANY WAY, I AM NOT A LAWYER.
ALL OF THIS ADVICE IS GIVEN TO YOU AS IS AND IS NOT MEANT TO
COVER EVERY ISSUE AND THEREFORE USE IT AT YOUR OWN RISK.  I TAKE
NO PERSONAL RESPONSIBILITY FOR ITS CONTENTS.  I DO NOT TAKE ANY
RESPONSIBILITY FOR ANY OF THE PRODUCTS MENTIONED ABOVE AND HAVE
NOT RECEIVED COMPENSATION FOR LISTING THEM AND TAKE NO
RESPONSIBILITY FOR THERE USE.  HAVE A NICE DAY ;-)


