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