The Getting Started Guide to Game Development FAQ

Published July 16, 1999 by Ben Sawyer, posted by GameDev.net
Do you see issues with this article? Let us know.
Advertisement
The Getting Started Guide to Game Development FAQ
A FAQ by Ben Sawyer
Version 2.0

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.3

Fixed erratta
New and Improved Book Section
New and Improved Magazine Section
New and Improved Internet Resources Section
New and Improved Online Services Section
Now Featuring Karen Crowther's Shareware Gamers FAQ!
Now Featuring Ron Gilbert's Design Document and Game Design Advice!
Added Section on Rating and the RSAC
Added Section on Macromedia Director

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 2500 I know of with the first version.

News Announcements

THE ULTIMATE GAME DEVELOPERS SOURCEBOOK

Coming this fall from Coriolis Group Books.

Yours truly is teaming up with The Coriolis Group, publishers of PC-Techniques Magazine, Michael Abrash's Zen of Grpahics Programming, Diana Grubers Action Arcade Adventure Set and Lary Myers 3D Games Action Adventure Set among others to bring you the most comprehensive guide and sourcebook ever seen in the history of Game Development Texts.

I have spent countless hours researching and writing about how to do game development, who to call, what to use, how to design, produce and market. I have and still am interviewing dozens of top game industry producers, designers, marketers and analysts to bring out a book which covers the entire realm of the industry.

Look for it this fall from The Coriolis Group.

And...

Keep looking for Game Devlepors FAQ updates which will supplement and compliment the book!

CompuServe Game Developers Forum Becomes Official Launching for Game Developers FAQ Updates!

I have recently taken on the role of Assistant Sysop in Compuserve's Game Developers Forum. Please drop by for the latest release of the FAQ which goes through Quarterly Updates.

Announcing Game Developers Conferences on CompuServe's GAMDEV Forum

Starting in August of 1995 I will be hosting regular conferences with industry proffessionals on Compuserve's Game Developers Forum. These will be regular Bi-Weekly sessions complete with a speaker or speakers a topic and a Q&A roundtable. Join Compuserve and GO GAMDEV for more information on this program.

World Wide Web Version of the Game Developers FAQ From the Coriolis Group

In conjunction with the Ultimate Game Developers FAQ The Coriolis Group is publishing the WWW version of The Game Developers FAQ. In addition to all the information contained here are live links to all the coolest sites for game developers to check out and much much more.

For more information point your web browser towards http:\\www.coriolis.com

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).

Ron Gilbert

Ron is the co-founder of Humongous Entertainment which produces Childrens games for a wide vareity of platforms. He posted on Compuserve's Game Development Forum some great information about design documents and computer game design in general and I asked if I could include a revised version in this new update and he said sure. Ron's advice is excellent and I am glad to make it more widely available as part of the ongoing GameDev FAQ Update!

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.

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.

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 developer.

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 Meier (Pirates, F-15 Strike Eagle)
and Bill Williams (Sinbad, Alley Cat, Necromancer)

OK! What Do I Do Before Starting to Write a 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.

  2. You will be eating in a lot.

  3. Flesh Out Your Design.

  4. 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.

  5. Line Up Your Resources.

  6. 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.

  7. Preparing a design document

  8. A design document is an overall catch-phrase for a complete written account of what you intend your game to be. Games require planning and the design document is the formal instance of your plans. What follows here is an edited and revised version of a post Ron Gilbert of Humongous Entertainment placed in Compuserve's Game Developers forum. Humongous is a fast growing children's entertainment company based in Woodinville, Washington and makes awesomely animated games like Putt Putt Joins the Parade and Freddi Fish!

The most difficult part of designing and writing interactive stories is the form of the script. You will find that everyone does it differently, so basically the choice is up to you. Over the course of the last 10 years, I have designed and written many interactive stories and adventure games and have never kept the same format.

First, don't prototype your project. Prototyping is for people who don't understand the medium. If you (and your prospective company) understand the medium, you both will be able to understand it in a linear, written form. I suggest you produce the following documents:

Story treatment

This is exactly like the ones for movies. It briefly describes the story and major characters. Don't worry about it being interactive and having branches, just write the main branch or the most important ending. Other endings can be mentioned but don't spend time flushing them out in the treatment. The treatment is for a quick overview.

Design

This is a document the describes the interactive design of the products. It includes sample descriptions of what the play will do such as:

What form is the interaction is taking?

Are they making story choices in a branch story composed on scenes, or are they roaming an environment as in a adventure game?

Do they pick up items?

How do they talk to people they meet?

What does the interface look like?

These are all VERY important issues that must be talked about in the design document.

The best way to get this information across is by comparison to other products. "It's just like Myst, but underwater". "It's just like Monkey Island, but with talking cars". Don't be afraid to draw these comparisons, it's not a sign of a lack of imaginations, just the opposite, it shows that you're well versed in what other designers have done successfully.

The design document is where all the interactive design goes. If you are creating a adventure game style world, make a map. Show where all the charters are, and where everything can be found. If your story is branching, then make a flow chart with little boxes for each scene and a once sentence description of what happens.

Scripts

The script resembles a movie script, but each represents each box, or location or interaction in the design. The great thing about an interactive script is that you can throw it up in the air, gather the papers up and it DOESN'T MATTER.

Advice on submitting design documents to companies.

If you are trying to sell this to a company, do step 1 and step 2, don't bother with step 3 until you get an OK (or you just don't have anything else to do!). Any company that knows what it's doing (which are very few), won't need to see a script to understand what's going on. Unlike film and TV, the script is not early as important as the design. There are thousands of people out there that can write, but very few who can design.

There is also something else very important to remember when selling your design and/or script. Unless you're just interested in just soaking someone for a bunch of up-front money, pick a company that has done something you like. [editor - I would ad that selling a game design is very tough as I talk about later, this isn't to say don't try just be aware it's tough!]

There are hundreds of multimedia companies that hove no idea what they're doing and you have a good chance of getting hooked up with one of them. Don't sell it to "movie" studio that happens to have an interactive division. They are notorious for not knowing what there doing. This is a brand new art form that is understood by very few people. You may have a great story and design that get ruined by the implementation, and unfortunately you're reputation as a designer goes along with it.

I don't know if any of this is helpful or not, and just remember...everyone does it different, so there is really no right or wrong.

Good luck

Ron Gilbert
Humongous Entertainment




My advice has more to do with how I organize my work as a part time game maker:

For organizing my game, I get 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.

It's 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 Reusable 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:

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. This journal process has always served many other creative types as well and it works well for game design similarly well. A small tip here is to avoid the massive carry of a pad, I purchase reporters notebooks which fit perfectly into a jacket pocket or pants pocket as well.

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 materials. Because 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 Microsoft's 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.

There 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: +1 415 948-CGDA
fax: +1 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 +1 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, let's 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.

Delphi allows you to do a lot of things VB can't like write your own DLLs and .VBXs and of course it compiles. A tip here is check out The Coriolis Groups web page at http://www.coriolis.com they've constructed a complete index to Internet resources for Delphi programmers.

One note it does require 6mb of memory.

And Don't Forget Director...

Many multimedia developers have been using this product for quite a while and some have even shipped games with it. I believe Journey Project (the original not Turbo) was done in Director as was Myst on the Mac and HellCab.

With the current release, Director is true cross platform. It's amazing how a product of this kind can create binary compatible files for both Mac and Windows. Basically, you take your multimedia app, create it all on a Mac, copy everything to Windows, and it runs without a hitch, identical to the Mac version. OR THE OTHER WAY ROUND. There are some exceptions, but they are mostly minor, like remembering (on the Mac) to stick to the stupid 8.3 file name conventions, etc.

Creating things in Director is really fast feedback is immediate. I've seen several programmers who have problems adapting to the Director paradigm, but I myself didn't experience this. It's fun, powerful, easy, and you (almost) automatically get both a Mac and a Windows final product. A 3DO player is in beta. A Director player engine is also being integrated into Netscape Navigator.

The programming language, Lingo, is a complete language, and fully OO. You can even switch ancestors on the fly! Tech support here on CompuServe is grrrrrrrreat (they won an award for it). So is the user community, both here and on Internet.

On the downside. Director has to move a lot of stuff around. It's too slow for arcade games. Lingo is an interpreted language, which means that it's in the Visual Basic performance class. Definitely not C. But if your goal is to develop something than can convey an aesthetic experience, and you expect your audience to have time to enjoy a development of character and narrative quality, it seems to me that Director is a good choice.

If you're not intending to produce arcade games, I think Director warrents a look. Understand also that the package is somewhat pricy by beginners standards but still you get a lot for your money and Macromedia often sells bundle deals with Director and ton of other cool multimedia products like Premiere from Adobe or sound editors, so shop around.

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. the new PNG, 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 seen their most useful twists and applications by game programmers. Bullfrog the makers of such games as Populas and Magic Carpet has especially embarked on a mission to bring more innovative AI to computer games, check out their newer titles for the results as they develop.

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.

Windows 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.

The Windows Game Developer SDK

I really can't comment much on this but if you're serious about Windows 95 game development either get in on the Beta and Beta Forum or wait for the bugs and final version to ship and get in on the developers program then. Understand for beginners that you don't have to have this kit to do the development.

WinG And WaveMix

Even though Microsoft is readying the new Windows SDK these may still be useful in that they are available now (the SDK as I said is still in BETA) and for Win 16 3.1 development the still are useful.

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.

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.

Level II CD-ROM

If you're even somewhat serious about Windows Development save up the $500 and join as a level II developer with Microsoft. It'll be the best $500 you ever spent and will get you a number of tools, operating system updates, documentation and much much more. For those on a little more of a budget there's a $200 jumpstart development but, it's not nearly as extensive still there are some useful things like Video for Windows stuff here you might find useful.

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 ...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. I'll 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

MidPAK/DigPAK

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

DiamondWares Sound Tool Kit


+1 914 638 4615

This package has been out for several months now in a real mode version and has been getting good reviews. Called Diamondwares Soundkit, it offers the same functionality of the stalwart MidPak/DigPak, and, according to the company, has a much cheaper and better royalty arrangement. In addition a protected mode version is just about shipping check with Diamondware for more info.

On the high, high end there are pacakges like HMIs Sound Operating System, but I suspect most of the readers of the FAQ will find all they need in the above two solutions or will be using Windows API or Direct Sound libraries.

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 exist

Cancel Save
0 Likes 0 Comments

Comments

Nobody has left a comment. You can be the first!
You must log in to join the conversation.
Don't have a GameDev.net account? Sign up!
Advertisement