I've always thought game developers were born, not made. True greatness comes from within. If it isn't there, it can't be learned, and if it is there, it can't help but be discovered. To be a game developer, you must truly love games. Not just playing games, but understanding games. You must love the whole concept of dissecting a game, breaking it down to its smallest parts, and visualizing how the pieces fit into the whole.
The chapters in this web site deal with the programming aspects of game development. It should be noted, there are other careers in game development besides that of programmer. A typical game passes through many hands on its way to final release. But the programmer is the critical element. Without the programmer, there is no game. Period. And since I am a programmer, this site will focus on game development from the point of view of the programmer, with all other related occupations considered ancillary.
As the game programmer, it is good to keep in mind that the more of the other game development roles you can fill, the better. That is, if you can do some of the other jobs involved in game development, then you will own more of the final product. Let's consider what other jobs game developers do.
The Things Game Developers Do
Programmer The whole world revolves around the programmer. The programmer is the one who takes the unrealistic expectations of everybody else and finds a way to make them work. If the producer wants to change the user interface at the last minute, it's the programmer who stays up all night making the change. If the artist can't figure out how SVGA palettes work, it's the programmer who writes a color-reducing and palette-matching utility. Without the programmer, there would be no computer games.
Artist Artists are important too. In some games, such as Myst, I will grudgingly admit the artists played a more critical role than the programmer. This is the exception however, not the rule. The rule is, the programmer is the pivotal element in all game development.
These days, many artists prefer to be called "animators". Many garbagemen prefer to be called "sanitation engineers" too, but it doesn't make a bit of difference in what they actually do.
Musician They make music. They can make sound effects too. There are a lot of them, and there is barely enough work to go around. Most of them are starving.
Producer The producer oversees game development and makes sure all the elements of the development are in place. A producer may, for example, acquire resources for programmers and artists, may hand out money, and may give orders. Sometimes a programmer or an artist may play the role of producer, which often works well. Sometimes a producer is a low-level manager with no particular game development talent, who nonetheless involves himself in micro-managing the development process. This occasionally spells disaster.
Designer This is a nebulous term. Sometimes the producer thinks he is the designer, when actually the programmer is the designer. The artist should be the designer, being that he has the creative talent, but nobody pays attention to the artist. Sometimes a person comes out of nowhere and declares himself to be designer, and asks for millions of dollars for selling a title and a story line. Ha! Fat chance.
If you are a programmer and you need design help, look to an experienced designer with a track record in the type of game you want to develop. There are people who actually excel at designing levels, puzzles, likeable characters and entertaining story lines. Tom Hall, formerly of id Software, comes to mind as a successful and well-loved game designer. Really good designers like Tom are rare.
Play Tester Play testers sometimes also act as beta testers. Technically speaking, the beta tester tests for bugs and the play tester tests for playability. But since most games are under-funded and behind schedule, both functions are generally ignored more often than they should be. If you want to break into game development, and you live in the Silicon Valley area, you may be able to get a job as a play tester. It's kind of like breaking into rock 'n roll by being a roadie. Sure you're there, but you'll never be the star.
Publisher This is the guy in the suit who smokes a cigar and blows the smoke in your face. He is very good at telling you why his part of the job is really the hard part, and since he is taking all the risks, he should keep 95% of the profits and you should be grateful for your 5%. Less deductions. Paid 6 months after he gets paid. Which is 9 months after the game hits the shelves.
It's a good job, if you can get it.
This is me. At some point in my career, I have performed all of the above roles and more. Now I have learned where my strengths lie, and I find other people to give me artwork, music, design help and publishing help. But I still take over each job when I need to. If the artwork isn't perfect, I fire up my paint program and make adjustments myself. If I can't reach a deal with a publisher, I self publish on the web (see my latest effort, Diana Gruber's 3D Casino Las Vegas). Sometimes I even make my own sound effects by hooking a cheap microphone up to my Sound Blaster card. The point is, I don't take a salary, I am not dependent on anybody else, and I have the freedom to choose and abandon my own projects, and to move on when I feel like it. Being a lone wolf isn't for everybody, but to me it is the best of all possible worlds.
Minimum Requirements to be a Game Programmer
To begin with, you need to know how to program in some language. The preferred languages for game programmers are C and C++. I have no opinion on which is better, either one will take you far. If you are just getting started, and you haven't learned C or C++ yet, you can write games in another language. Lots of perfectly good games have been written in BASIC, Pascal, and Delphi. Years ago I wrote some pretty games in Fortran. It doesn't matter that much what language you use, as long as you have mastered it.
Some knowledge of assembly language programming is important if you are planning on writing your own low-level graphics routines. If you not ready to tackle assembly language yet, don't worry about it. You can use a commercial graphics library, such as Fastgraph to accomplish the desired result.
You will need a (legal, not borrowed copy of a) compiler. If you don't have a compiler, click here for some suggestions.
You will need some way to generate artwork for your program. A paint program is good. A rendering program is better. A talented artist is better yet. Whether you create your pictures yourself, scan them, use clip art, or pay big bucks to a professional artist, plan on having some source of artwork.
That's it! That's all you really need to get started. If you are reading this online, then I will assume you also have a good, fast computer, a modem, and some form of online communication. These are valuable and will help you a lot.
Of course, there is one other element which I haven't discussed, and that is talent. You have to be a good programmer, with creative problem-solving skills. I assume you think you have that, because otherwise you wouldn't still be reading.
Now I suggest you give your eyes a little break, go to the fridge and get yourself a can of vorticon cola, and come back in a few minutes and read .
In the last chapter, we discussed some of the different jobs available in the game development industry. We we will look at them again in the next chapter when we talk about putting a team together. In the meantime, let's assume, for this chapter, that you are a rank beginner, an absolute newbie, one of those scorned and much-flamed wanna-be's. Lets assume your prior accomplishments are none, your skills, such as they are, are untested, and nobody knows for sure whether you have a future or not. Let's assume, for the sake of this chapter, that nobody but you really believes you have a chance in the game development field, and even you are not too sure. In fact, let's consider today to be day one, and you are embarking on your new career by taking your first toddling baby-steps, still clinging to the sofa with one hand.
So, what do you do now?
There is really only one thing you can do. And deep down inside, I think you know it. There is only one way to really get off to a good start in game development. The thing you need to do, if you have not done so already, is write a game.
That's right. Put a game in your head, and from there put the game in your computer. Make it work. It doesn't have to be a great game. It doesn't even have to be a fun game. It can be tic-tac-toe or hangman. It can be ugly and hard to play. As long as it is a game, and as long as you wrote it.
In fact, as I will discuss in Chapter 5, I strongly suggest your first game is not a very hard game. You should not spend a lot of time on it and you should not plan on making a lot of money from it. Your first game should be a learning experience. It should be a lesson you start, and finish, and move on from. Try to do the best you can, but don't try to make Doom your first game.
So, what kind of game should you write? That's up to you, of course, but we can brainstorm together a bit. Let's take a look at some of the game genres, and see if any of them jump out and bite you.
Some Popular Types of Games
3D shooting Games You know, like Doom or Quake. You're not ready for this yet.
Side Scrollers A genre that is close to my heart. These are games like Sonic the Hedgehog and Super Mario Brothers. On the PC, these are games like Commander Keen and Jazz Jackrabbit. These games are fun to play, but deceptively difficult to develop. These games require a huge investment in not only programming, but artwork and level design. This is not a good choice for a first game, but perhaps a second or third game. If you are interested in side-scroller games, you may want to check out my book Action Arcade Adventure Set.
Adventure Games These are games like Monkey Island and Myst, which tend to be graphics intensive, but often do not involve intensive animation. Unlike twitch games (games which rely upon hand-eye coordination), adventure games tend to involve thinking puzzles. Often they have complex story lines and lead the player through the solution to some kind of mystery. One of my favorite adventure games is I Have No Mouth And I Must Scream which features a storyline by well-known science fiction writer (and potty-mouthed crank) Harlan Ellison. Again, this type of game requires a huge investment in artwork.
Parlor Games This a catch-all category, including card games, board games, word games, and classic games like cribbage and Chinese checkers. For our purposes, I'm going to include gambling games in this category too, although most people give them a category by themselves.
Games in this category are usually a good pick for a first game. Be careful about trademarks, though. I wouldn't write Monopoly or Risk, unless you have a good lawyer.
Puzzle Games Another catch-all category. Jigsaw puzzles and crossword puzzles go here, along with token-shifting games like Cargo Bay or Rings of the Magi from MVP Software. Games such as Pipe Dream and Tetris may fit here, or in Arcade games. This is another excellent place to start.
Arcade games Games like Asteroids, Breakout, Centepede, overhead shooters, or any game relying heavily on hand-eye coordination. These games can be simple or difficult. If your taste moves in this direction, it is a good place to start, but I recommend choosing a simple concept for your first game.
Don't let the concept of intensive animation throw you. Even beginners can master animation techniques with a good graphics library like Fastgraph. A simple arcade game with fast animation will be easier and cheaper to produce than a graphics-intensive adventure game, for example.
Edutainment Games that teach you something, or try to teach something to children. These days, the emphasis is on the 'tainment. If you want to make sales, the game better be fun. A spelling test just isn't going to do it.
Give your first game some thought. Think about your options and weigh the costs and benefits. Remember, the goal is not to make your first game an award winner, or even a money maker. The goal is to prove to yourself and to the world that you can be a game developer. Once you have a complete game, finished and ready to show to the world, then you have a calling card. You have a way to get your foot in the door, so to speak. You can take your game to trade shows and introduce yourself to publishers. Depending on your goals, you can find a job or find funding for your next project. You can attract a higher level of team members to your team, or you can join another team. And don't forget, the code you use in your first game will be reuseable in your second game. So let me repeat, for emphasis, in case you missed it the first time:
Your first step in becoming a game developer is to write a game.
Are you prepared to work alone on your first game, or do you already have some buddies who want to work on it with you? If you are thinking of putting together a team, read on. Tips for teamwork can be found in chapter 3.
Volume in drive C is ID_SOFTWARE
Volume Serial Number is 216F-560F
Directory of C:\QUAKE
In Chapter 1 we discussed some of the roles game developers must play in order to bring a game to market. The fact is, very few people are capable of playing all of those roles. So how many people does it take to develop a game?
According to an ad for the Computer Game Developers Conference (Miller Freeman):
At last count, it takes about 217 people to design, produce and market a killer game.
I asked noted industry commentator Mark Shander about this, and his response was:
Yeah, they're right... It takes up to 20 or so to do a game (depending on the time frame and the complexity of the programming, artwork, etc.), 10 or so to market, publish and sell it, and 187 to stand around, collect salaries and bitch about the stock dropping. Yes, that's correct.
So clearly, the experts agree it takes a lot of people to build a game.
But what if you are not a lot of people? What if you are just starting out, don't know anybody, can't get a job, and you still want to be a game developer? What then?
I think you can go a long way on a game project without bringing other people into it. You can design a game, you can write a game, you can even market and sell a game, all by yourself. The only problem is, it probably won't be a very good game. Even brilliant, artistic people who spend years working on a game will have trouble producing a game that can compete with a game developed by a team. Therefore, if you want to be successful as a game developer, you should plan on eventually working with other people.
Typical Game Development Relationships
Employee You work for them. They pay you. They deduct taxes from your paycheck. You own no part of the game, and you get paid the same whether the game succeeds or fails.
Contractor You work for them. They pay you. You pay your own taxes. If the game succeeds, you might receive royalties, and if it fails, you may have trouble finding work next year.
Partnership Partnerships are good. Scott Miller and George Broussard have a long-standing and successful partnership in Apogee Software . If you can make a partnership work, you are in good shape. Problems occur when you get sick and tired of your partner goofing off and sticking you with all the work.
Sole Proprietership You take all the risks. You own all the rights to the game. You try to hire people but can't pay them so you promise them royalties which may or may not actually accrue.
Actually, this model works well when you do have enough money to hire an artist and a musician, and pay them on a work-for-hire basis, as I did on Diana Gruber's 3D Casino Las Vegas.
Loosely-woven team of high-school buddies all working on spec. Nobody gets paid. Nobody has any money. You live with your mom. When your mom complains, you tell her she should be glad you didn't decide to start a rock band in her garage.
This model, believe it or not, actually works well for some people. Low-budget, low-risk games produced by high-talent (though sometimes inexperienced) teams can be very successful. Just be careful. Remember you are swimming with sharks. Somebody should be in charge of watching the business end of game development.
However you choose to work as a team, it is important to understand who owns what part of the game. Don't let legal issues bog you down, but do have a clear understanding as to what each team member is expected to do, and what each team member expects to receive.
A good source for self-help books on such things as software copyrights, trademarks, and intellectual property ownership issues is the Nolo Press . A cynical and opinionated source of information on the business of game development can be found in Chapter 4.
By now you have probably convinced yourself that one way or another you are capable of writing a game. The question is, why should you?
There are two main reasons to write a game: personal satisfaction, and money. There are lots of auxilliary reasons, such as fame, glory, resume padding, and impressing girls, but these usually translate at some level to either personal satisfaction or money.
Since personal satisfaction is a personal thing, let's talk about money. Getting money for games is a good trick. If you think all you have to do is write the game and you will get rich, then you are laboring under a misconception. Very few game developers are getting rich right now. Most of them are still working hard, hoping their next game will be the one that hits big.
There are things you can do to maximize your profits from a game. the first, and most important, thing you can do is think about your market before you write your game. If you already know what kind of game you want to write, ask yourself questions:
* Do I want to self publish or find a commercial publisher?
* Can I fund development myself?
* Can I convince somebody else to fund it?
* Is there a market for this game?
* What games compete with this game, and how are they doing?
If you don't already know what kind of game you are going to write, here are some even better questions you can ask yourself:
* Are there any niches or gaping holes in the market I can fill?
* Are there any marketing channels I can exploit?
* What opportunities for guerilla marketing are available to me?
Self-publishing Through shareware
Many game developers start their careers by becoming shareware authors. This is how I became a game developer, and I think it is not only a good place to start, it is also a good market to fall back on when opportunities in the commercial marketplace are scarce. If you can get a high-paying job as a commercial game developer, that's great. If you aren't quite there yet, you might as well give shareware a try. You can always use shareware as a stepping stone to enter the commercial marketplace, and you may find shareware marketing can be very profitable and satisfying.
But what is shareware?
People argue about this all the time. My feeling is, it doesn't matter. If you give your customers something to try, and they send you money, then you are successfully marketing software, and you can label it anything you want. What you give people to try, and what you give them in return for their money, is up to you. Ideally, you want to give them a taste of your game (hopefully an addicting taste), and also give them a desire for more. Then you get the money. That's how it works.
Once you've figured this part out, the fun begins. You see, there are opportunities for shareware authors that have nothing to do with shareware. You can get your software on CD-ROM collections, on store shelves as "budget" software, on online services as pay-per-download offerings, and in books as value-added disks. You can get in distributor collections at swap meets, in catalog collections, in magazines, even on shopping networks on television. Once you own the rights to a game, there is no limit as to how you can sell it.
I suggest you look around you and see what opportunities are available. They change all the time. A few years ago, royalty paying low-cost retail (LCR) racks were common. Those have all but disappeared. But now new ideas for software distribution are springing up on the internet. Track down those sites and study them. Is this an opportunity waiting for you to exploit it?
High-end games vs. low-end games
If you spend four months writing a game and you make $20,000 from it, then you are in better shape than if you spend two years writing a game that earns you $100,000. This is a truth that goes right over the heads of a lot of game developers. Having a portfolio of small, fun, playable games that you can shop around is better than being a minor member of an ambitious team that has done one hit game in the past decade. Think about where you want your career to go, and what you want to be doing (and what you want to own) several years from now.
What is the shelf life of a typical high-budget retail game? Not long. Somewhere between two weeks and six months. Long-running games like Myst and Doom are the exception. A typical game will make most of its sales during the first quarter, a few more sales during the second quarter, and end up in the bargain bin in the third quarter. Expect to get one good royalty check, if you are lucky, and if your publisher is honest. Additional royalties will trickle in for the next year, then your game is done. Its life span has ended. If you want an income after that, you have to write another game.
Low-budget, value-priced games (those selling in the $6-$15 range) seem to have a longer shelf-life than the big budget games. I'm not sure why. The per-game profit is lower, of course, but the development and distribution costs are also much lower. This can be a good market for lone-wolf developers, especially since it is possible to simultaneously market a game as shareware and budget retail. If you go this route, try for after-sales of your retail game. Sell levels 1-10 on the shelf, and have the customer send you money for levels 11-20. Can you see how planning your marketing strategy can affect how you develop your game?
To find publishers who sell high-end or low-end games, go to a software store and look around. Ask the sales clerk what titles are moving. Look at the CD-ROM collections and budget titles. Try to visualize where your game would fit in. Then look at the fine print on the back of the package. Who is packaging and distributing games that are similar to the game you want to write? Get the name of the publisher. Then try to find their web page. Email them. Tell them your concept and ask them if they would be interested. Ask them what plans they have for marketing software next year. Plan your game to fit into next year's market.
Remember, these ideas are primarily for people getting started in game development. If you are already an established game developer, you may want to move past the shareware and budget software markets. While these may not be the most lucrative markets, they are viable and tend to be a good place to start.
Now that you have a pretty good idea of what kind of game you want to write, let's get down to the business of writing it. Proceed to Chapter 5 for some tips on writing your first game.
Writing Your First Game
Ready... Set... Compile!
In this chapter we will discuss some of the necessary elements of a game. Some of these ideas are going to seem very obvious to you, but you would be surprised at how often the obvious is overlooked. I'll start by listing the elements of a good game, and then I want you to get to work. When you have your game up and running, come back and look at this check list. Make sure you didn't miss anything important.
Necessary Elements of a Game
Title The title should say something about the game, and should also jump out and grab the player. It should make your game stand out from the 16 billion other games. Choosing a title is difficult. Good luck.
Title Screen Believe it or not, the first game I wrote (back in 1987) didn't have one of these. I don't know why, I just forgot it. Put a title screen on your game. Title screens are important, because they set the mood for the whole game. This is where you make your first impression. Make it nice.
If you don't know where to begin working on your game, this is a good place to start. If you can display a title screen, that means you have leaped over some major hurdles. You have created your first piece of artwork, using some kind of paint or art program. You have set the video mode to a graphics mode. You have displayed the graphic in the chosen video mode. Congratulations, you have accomplished something.
If you need help setting the video mode and displaying the graphic file, don't panic. Grab a copy of Fastgraph to make this first step very easy.
Credits ALWAYS ALWAYS ALWAYS give yourself credit. Do it even if you are humble. Do it because I am telling you to do it.
You may put credits wherever it artistically suits your fancy. Credits can go on a screen by themselves, or on the title screen, or on an exit screen, or on all three places. They should go in the manual too. More about this in Chapter 8.
Give everybody who worked on your game credit, within reason. Your artist and musician should definitely get credit. If a beta tester is particularly helpful, you might mention him with a "special thanks to". It is not necessary to give your tools credit, unless you feel they are especially wonderful. Some people give Fastgraph credit in their games, but most people do not. If you use a particularly good rendering program to create your artwork, you can mention it if you like. It is not customary to give credit to Microsoft for the operating system, or to Borland or Watcom for the compiler. But otherwise, giving credit where it is due generates goodwill, and tends to come back to you.
Intro Some kind of intro sequence greatly helps many types of games. Whether the intro involves elaborate cinematics, a text narration of the storyline, or just a static screen that sets the mood, your game will benefit from an introduction.
Be careful when using elaborate introductions, though. They tend to get old. Allow the user to press a key to bypass the intro sequence if it is long. Also, you may want to give the player the option of viewing the intro again, perhaps by selecting a menu item. Give the user a chance to impress his friends by running through the intro sequence again.
Control Panel Put some thought into how the player will control the game. The player should be able to pause and resume the game, start a new game, turn the music off and on, display high scores and instructions, and perhaps even print the order form if the game is shareware. An attractive, innovative control panel is more interesting than a plain Windows menu, but the Windows menu is more familiar and will be easier for novice users to navigate. Experiment with this.
User Interface The user interface is not the same as the control panel. A control panel may pop up as needed, but a user interface is necessary to control the game play and exists throughout the execution of the game. Elements of the user interface include keyboard, mouse and joystick control as well as menus and score panels.
Help Screens Help screens need to be designed carefully. They should be helpful. They should also be easy to get to. Try to anticipate where your users are going to have trouble, and give them the help they need.
Mouse Cursor Why would you want to stick with a boring old arrow-shaped mouse cursor when a whole world of images is available to you? Some developers like to change the shape of the mouse cursor when the mouse moves over an active area of the screen, or "hot spot".
Music and sound Modern games are expected to support sound cards. Windows makes this task a bit easier, although there are DOS sound and music toolkits available. The irony is, most people turn off the music when they play a game. People like to listen to their own music on their home stereo system. But if music is not available, your game will be considered substandard and unprofessional. Go figure.
Art You need art. Don't try to do all the art and programming yourself. Make friends with a good artist. Treat your artist well. If your artist has trouble with things like VGA palettes, write palette matching utilities and work around him. For articles on palette matching utilities, refer to my other web page.
Storyline Not all games need a storyline. Usually adventure games and action games have storylines. But even a puzzle game can benefit from a good storyline. Consider Rings of the Magi. It's a simple puzzle game where you push tokens around and clear the board by matching pairs. The game would play the same with or without a storyline, but the author chose to include a story about magicians and their apprentices, and a mythical land graphically displayed in the opening cinematics. This simple game won Computer Gaming World's puzzle game of the year award .
Playability A game needs to capture the imagination of the player. It needs to be fun. It needs to be easy enough that even a novice can start playing and challenging enough that it can't be beat in the first hour. Desiging a game with excellent playability is the essence of game development. Good luck with this.
Levels Many types of games have levels. Put the easy levels first, to hook the user in and convince him he is capable of mastering the game. Then put in some hard levels to keep the user from getting bored.
Games with levels lend themselves well to many kinds of marketing strategies, including shareware distribution, add-ons, sequels, and demos.
Utilities If you are going to have levels, you will need a level editor. Similarly, if you are going to use sprites, you will need to acquire (or write) a sprite editor. You will also probably need things like palette matching programs, and programs to organize and compress your data files.
Utilities tend to be specific to the game you are working on. In other words, plan on writing some utilities yourself, because chances are you will not be able to find, buy or download all the utilities you need.
Demo Mode Demo modes have various functions. They can be used as selling tools, tutorials, cheats, or screen savers. Not all games lend themselves to demo modes, but those that do benefit greatly from their inclusion.
God Mode Cheat mode that allows the game developer, his best friend, and all the hackers on the internet to obtain all the power, wealth, energy and weapons. This game element is usually dispensable.
Exit Screens Think about your goals when designing your exit screen. In a shareware game, this is an excellent place to ask for the order. In other games, this is a good place to invite the user to come back and play again later. Personally, I don't care for insulting exit screens ("giving up, wimp?" but some people use them, and perhaps they fit in some games.
Documentation The game isn't finished until the paperwork is done. You need to describe how to start the game, how to play the game, common problems, how to order the game (if it is shareware) and where to go for more information and technical support. Also, in an effort to make your documentation interesting, try putting a bit of the storyline in your documentation, or a bit of humor.
Proof-read your documentation for accuracy and readibility. Then proof-read it again. Be professional. If you have trouble with this, get help. Ask your beta-testers to look over your documentation, or ask your girlfriend or your mom. Do whatever it takes, but don't skimp on the documentation.
Copyright Put a copyright notice on everything. Put it on the documentation, on the artwork, on the game, and on your web page. Consider registering your copyright. It isn't expensive (around $25) and the benefits usually outweigh the inconvenience. If you have questions about check the U.S. Copyright Office web page , or read a good book on the subject. Better yet, consult an attorney.
Setup Program Just when you thought you were done, you get to start all over again on a whole new program! Isn't game development wonderful?
I remember the old days when all your users expected out of you was a GO.BAT. Now they want you to unarchive their files for them, put them in a subdirectory, and add an icon to their Windows desktop. What fun.
In addition to the game elements listed above, you will need to keep your marketing strategy in mind if you are writing a shareware game. In particular, remember the user will generally see the software without written instructions, and will often need some help getting started. Also remember the role you are assuming: you are self-publishing software. That means you need to handle the marketing elements as well as the design and development aspects.
READ.ME This would be a good place put instructions on how to download and unzip the file, except that your users will never see it unless they have already downloaded and unzipped the file. Think about it.
File description Most people put the file description in a file called FILE_ID.DIZ This helps sysops (webmasters?) describe your game on bulletin boards or in internet archives. There is a particular format for these files, left over from the days when BBS file descriptions were 40-something characters wide. Whatever.
License Agreement The license agreement states under what circumstances a user can play your game. In the case of a shareware game, this includes how long a user may "evaluate" the game before they must "register" it. Look at other license agreements to see what is standard for games in the market you are targeting. Also read books on the subject. If you are not sure, consult with an attorney, but beware -- not all attorneys understand the nuances of software distribution. Try to find a good, knowledgeable attorney.
Vendor Instructions Take control of how your software is distributed! Your copyright means exactly what it sounds like -- you have the right to determine under what conditions your software may be copied. Take steps to retain and exert that right. At the very least, require that vendors get written permission from you before putting your shareware versions on their CD-ROMs or selling them in retail stores. If your game is in demand, consider requiring royalties from vendors.
Order Form It's not enough just to tell people to register your shareware. You have to tell them how to regester it. Put an order form in your shareware distribution, and make sure it contains all the necessary fields: name, address, title, cost, shipping, and method of payment. Don't make the order form difficult to find. If possible, print it as a menu option in your game, or better yet put it on your exit screen: "Print order form now? Y/N".
Registration Incentives This is vitally important to the success or failure of your shareware business. Give the users a good reason to send you money. Don't just nag them. Give them something of value in return for sending in the order form along with their check. You can give them more levels, another game, printed documentation, or a key that unlocks certain features.
Time limits An unregistered shareware game doesn't have to work forever. After a while, start nagging the user. After another while, your program can stop working. If you want, you can embed the date of first use into the high scores file. Your users can reset the program by deleting the high scores file, but a majority of your users will not be that sophisticated. You might as well keep your security measures simple, because anything can be hacked, and people who are clever enough to hack a sophisticated system will likely not buy your program anyway.
File integrity checks By this I mean something as simple as a CRC check to ensure the integrity of the high scores file. You may want to do this even when there seems to be no obvious need for it. At some time in the future you may want to run a contest as marketing promotion. Your users can email their high scores files to you, and you can check them for integrity. That way you will know if the user is cheating or if he legitimately beat the boss enemy in less than 13 seconds.
Packaging It is not necessary to spend a lot of money on packaging a shareware program. Unlike a product sold in a retail store, the customer will not see the packaging until he has already bought the product. An expensive box with glossy graphics will not increase your sales.
On the other hand, you will be showing your game to people, including magazine reviewers and potential publishing partners. You want your packaging to look clean and professional. Put some effort into making a nice disk label and printed manual.
Web Page Virtually all games, shareware and retail, have web pages. Some authors start their web pages before the game is finished, and provide blow-by-blow progress reports as the game is developed. Some authors are better at making web pages than they are at making games. Regardless, you should plan on having at least some kind of web page for your game. It will serve as a marketing tool, as well as a place to refer potential customers, team members, investors and publishers.
Other Marketing You will need to send out press releases and review copies. You will need an attractive web banner to draw users to your site from other sites. You may want to design advertising for magazines or newsletters. Some authors even have brochures. Be clever, and do what you can on a low budget.
So you probably thought all you needed to write a game was a fast game engine that did a few tricks like z-buffering and flicker-free scrolling, didn't you? Admit it, you did a few fast blits and you thought you were well on your way to being a game developer. Well study this list again. There is a long way to go between making a game engine and making a game.
But don't get discouraged. You can do it. It may take you a little longer than you expected, but your goal is achievable. Lots of other people have done it, and you can do it too. And guess what? It gets easier with practice. Many of the above elements are reuseable, as is much of the code you write. That's why I recommend your first game be something simple. Get a feel for what kind of effort it takes to put the whole package together, and try not to get bogged down in any single aspect of development.
After you write your first game, don't stop. It is already time to get started on your second game. For some tips on that, consult Chapter 6.
Writing Your Next Game
Fame, glory, money, caffeine, caffeine, caffeine.
Okay, let's assume you have finished your first game. Congratulations! You are well on your way. The question is, what do you do next?
The time has come to make some decisions about your career. Do you want to be a full-time game developer, or do you want to do this as an income supplement or a hobby? Do you want a secure job where you get regular paychecks, or do you want to experience the risks and benefits of being self-employed? The answers to these questions will affect the types of games you will write in the future.
Let's examine some of the strategies you may want to consider as your career advances. Again, I am going to focus on the career of the lone wolf, because let's face it -- being an employee is a no-brainer. You do what you're told and you get paid for it. Not much room for strategic choices there. The lone wolf, on the other hand, has to be smart to survive, and that means weighing your options and making intelligent choices.
Career Strategies of the Lone Wolf Developer
Growing Remember how I told you to make your first game a simple game? You can make your second game an easy game, too, but you don't want to keep doing simple games forever. Now is time to flex your muscles. Every game you make from now on should teach you something. If you were a BASIC programmer before, it is time to learn C. If you were a DOS programmer, it is time to learn Windows. Don't take on too much all at once. Learning should be an incremental activity. But it should be a lifetime activity. All game programmers must learn new skills all the time. It is the only way to keep up with technology.
Every game programmer begins their career far behind the "cutting edge" of technology. Every game programmer's goal should be to catch up with technology. It is an unreachable goal. Technology is a moving target. As soon as you get close to it, it changes again. But that is what makes this industry so dynamic, and so full of opportunities. Choose some aspect of technology that interests you, and aim for it.
Choosing a Genre What kind of games do you like? Do you like multi-player games? How about 3D games? Strategy games? Let your personal interests guide your career. If you are a sports game fan, don't try to write an RPG. It will only result in an inferior game.
Think about time constraints. Do you want to spend two years writing your next game? What if it meant you could write two games in three years?
Try to guess where technology will be next year. Will a Windows 3.1 program sell in a Windows 95 world? Is mode X too primitive? Are hardware-accelerator cards too non-standard?
These are hard questions. But think about what you are doing. Writing a game is a huge investment. Don't just clone your favorite game. Try to write something that will provide you with some long-term benefit.
Finding a Niche The really successful lone-wolf developers are the ones who have recognized a niche and exploited it. A good niche will have a large audience, and little competition. It will have avenues of communication available so you can reach your audience. It will lend itself to addicting (or educational) games, and it will allow plenty of add-ons.
My most successful niche is gambling games. Millions of people love to gamble, and there are lots of way to write new slot machines and card games. I can sell new software to the same people over and over. I can also sell software in non-traditional markets -- gambling magazines, for example. Instead of being the 500th shareware game in a collection of shareware games, my game will stand out as the only gambling software in a collection of books and videos. This niche works well for me.
I know authors who have been successful in the educational market, in fonts, in fortune telling and the occult, and in jigsaw puzzles. If you can spot a niche and fill it, you are in good shape. You can make money for years that way.
Untapped Markets The computer game market is so flooded, just getting a new game noticed is a challenge. But with cleverness, you can put your game where there are no games. I have games running on seat-back computers on America West Airlines airplanes. This is an interesting market. Consider that it is a captive audience, relatively bored, that is staring at my games (and my name) for the duration of a flight.
As technology advances, look for opportunities. They don't always pay off, but consider them anyway. I have seen games sold in vending machines, on television, in books, in bookstores, in gift shops, and in non-software magazines.
If you write bowling games, advertise in bowling magazines. You might be surprised at how cheap such advertising can be, and how well it can pay off. If you write a sports simulation, try to get your software in a sports memorabilia/cards store.
Look around you, and try to come up with an idea nobody else has thought of yet.
Recycling Think in terms of your current game evolving into your next game. While very few game engines are actually reuseable, a great deal of game code is used over and over. You can write a "new" game engine incorporating a lot of functions of your last game engine.
Always, always always keep your code clean. Indent carefully, pay attention to comments, organize your functions thoughtfully in source code files and libraries. Think of it in terms of being kind to your future self. The future you will be grateful to the past you for leaving such a clean, useful legacy.
Hired Codeslinger As you gain a reputation for being a hot-shot game developer, you may find yourself presented with opportunities to work on other people's projects. Again, choose carefully which ones you will accept. If the money is good, the genre is one you are familiar with, and the title will look good in your portfolio, then by all means take the job. If, on the other hand, the work is in an area that is completely unfamiliar to you, the only compensation is a promise of future royalties, and it looks like you could get bogged down in the project for months or years, then walk away. You will be better off starting and completing your own game than to get sucked into a loser project like this.
Form Alliances As mentioned before, programmers need artists, and artists need programmers. Publishers need developers and developers need publishers. The whole game development industry is an interconnected fabric. It is absolutely essential to have positive, professional relationships with others in the industry.
Always be ethical in your dealings with others. Do not make promises you can not keep. Do not give away secrets. Be reliable in financial matters.
Do not flame people you don't know in a public forum. Only amateurs do that. Professionals in the industry know they will run into each other over and over. The person you flame this year may the person you want to do business with next year. Don't burn your bridges.
Look for new ways to work together with the people you already know. This may be something as simple as a web page link or as sophisticated as a marketing co-op. If you happen upon an excellent opportunity, share it with your friends. They, in turn, will share valuable information with you.
Encourage your peers in their careers. The threat of competition is not nearly as damaging as the threat of isolation. You want the industry five years from now to be filled with people you know well. Form long-term relationships.
Portfolio Building Lone wolf developers generally don't have resumes. They have portfolios. A portfolio is a collection of titles that you have worked on and completed.
Pay attention to your portfolio. Try to choose projects that will look good on your record. Having one best-seller, or half a dozen completed and released titles, will earn you respect in the game developer community. This translates to better projects and job offers.
Distractions Distractions are a trap. You may find yourself offered work that has nothing to do with game development. Maybe for some quick cash you agree to write the database program for an auto repair company. Be careful. You will be expected to support and maintain this program for years. Meanwhile, your portfolio is not growing, technology is advancing without you, and the new skills you are learning have nothing to do with game development.
Distractions trade a short-term gain (quick cash) for a long-term asset (career advancement). Be careful.
Courage Being a game developer is hard. It is a long-term commitment involving considerable risks. It means working long hours and making hard choices. Sometimes it means throwing out months (or years) of work and starting over from scratch. Game development is not for the faint-hearted
Fame -- makes a man take things over
Lets him loose and hard to swallow
Puts you there, where things are hollow
Fame, fame, fame, fame...
David Bowie / John Lennon (1975)
Humility is not a prerequisite for success in the game development industry. In fact, while being humble may endear you to family members, it will do very little to further your career. In this industry, the illusion of greatness is nearly as important as true greatness.
Have you ever heard of a guy by the name of Michael Abrash? Have you ever stopped to wonder why you have heard of Michael Abrash? Is it because there are no other programmers in the world of Michael's caliber? Or is it because Michael is a master of self-promotion?
Think about it. Maybe Michael has something more to teach us than just how to be a great programmer. Maybe by observing Michael, we can pick up a few tips on becoming famous as well.
Increasing Your Name Recognition
Put Your Name On It Put your name on everything! Use big letters. Use bright colors. Carry it to extremes. Make your name the first thing people see.
If listing yourself as the author of a game isn't satisfying enough for you, you can also incorporate your name as part of the title. My casino game is not called 3D Casino Las Vegas , it is called Diana Gruber's 3D Casino Las Vegas. Similarly, experts may advise against naming your company after yourself, but Ted and I have never regretted calling our company Ted Gruber Software, Inc. I don't suppose Peter Norton regrets founding Peter Norton Computing, either.
Put Your Picture On It People respond to human faces. If they see your picture in a magazine, on a box, or on a web page, they will pause a moment longer than they might have otherwise. They may even stop long enough to see what you have to say. They will have an urge to get to know the person associated with the face.
You can carry this to extremes as well. Once I wrote an article for Visual Developer magazine. The article was about color reduction. I color-reduced my own face. The result was 7 pictures of Diana in one magazine. Not bad.
Another thing I did was trade web banners with the Link Exchange. I put my picture on the banner. Then I bought 120,000 more banners. Just think, 120,000 people will see my name and my face on the Internet. Even if they don't buy my software, they will remember me. If they see one of my games in the future, they will assume because they have heard of me before, my software must be good.
Get Publicity This means, get reviews. Submit your game, along with press releases, to everybody and everything you can think of. The web is a fabulous resource for this. Poke around on the web, and find anybody who who appears to be the least bit interested, and tell them about your game. If it looks like they can help you, send them a review copy.
Don't neglect traditional media either. Send press releases and disks to magazine editors.
Awards Awards are an excellent source of publicity. Nominate your software for as many awards as possible. Some suggestions: The Ziff Davis Shareware Awards, Computer Gaming World's Game of the Year Awards, The shareware industry's SAIC awards, and awards presented at CGDC and E3.
Be a Writer If you can't get people to write about you, then you can always write something yourself. There must be some area of expertise where you have some information you can share. Pitch your ideas to your favorite editor. If you don't get a nibble, write for newsletters. Even writing web page reviews helps. Whatever you write, be sure your name is on it. Try to get paid for it, too.
Public Speaking Personally, I hate this. I find standing before an audience terribly intimidating. But I do it, occasionally. I know it is good for me.
To speak at a convention or trade show, you need to submit a proposal to the proper committee at the proper time. Don't wait for an invitation. Seek out opportunities, and promote yourself.
Be sure you have something interesting to say. Be well prepared. Try not to be nervous. Good luck.
Make Web Pages See this? This is a web page. Notice my name at the bottom of the page. Do you think this web site is going to help me in my quest for increased name recognition? Well, it isn't going to hurt me much, that's for sure.
The trick to making web pages is to come up with something people are actually interested in. Another collection of links isn't going to impress very many people. But the web is hungry for original content. If you have something to say, then by all means create a web page to say it.
And don't forget, every game you write needs a web page. Make it a good web page, with colors and graphics and screen shots. Put a little pizzazz into your web page. And be sure to put your name on it.
Get Involved If you are having trouble getting to know people in the game development community, then try joining one of the several organizations that have been formed. My personal favorite is IGDN, but there are others that may suit you. Don't be afraid to do more than just join. Volunteer to help. Work on committees. Propose ideas. Write for the newsletter. Run for office.
Keep your goals in mind There are two kinds of name recognition which will benefit you, name recognition within the industry, and name recognition among the general public. Your goal is to achieve both. You want your customers to recognize your name and buy your games. You want publishers, producers, and peers to recognize your name and offer you opportunities. Plan your self-promotion campaign with both audiences in mind.
Be Creative Opportunities present themselves to game developers constantly. Look for opportunities to further your career, and also increase your name recognition. Don't be shy about taking advantage of opportunities that are presented to you. If anybody accuses you of being a glory hog, tell them bp made you do it.
Don't get too wrapped up in yourself.
One of the problems I have noticed with truly successful game developers is they become so focused on what they are doing, they lose sight of everything else. The risk here is that you will lose touch with reality. Eventually you will become obsolete. Your skills will become finely honed and totally irrelevant.
The reality is, there are more young game developers than old game developers. The young people are closely in touch with the state of the art in computer games. They play games, they have friends who play games, they are involved in discussions, debates, and flame wars on such things as algorithms and platforms.
The older developers are closely in touch with the state of the art too. They have to be. Those who didn't keep up are already gone. Clearly the lesson is this: keep up or fade away.
Keeping Current With the Craft
Play Games This may seem obvious, but you would be surprised at how many game developers are so busy writing games they don't take time to play games. Force yourself. It's good for you.
Attend Conferences There are many excellent conferences and trade shows put on every year. I suggest E3, the Computer Game Developers' Conference and the Shareware Industry Conference.
Communicate Get online and talk to other game developers. Don't work in a vacuum. Find other people who are doing what you do, and talk to them.
Join Up There are several organizations which game developers can join. Look around, or start your own.
Read Up Read books, read magazines, read everything you can get your hands on. Stay informed.
Surf the Web You already know this. You found my page, didn't you?
I know that you are busy, and game development can be an all-consuming task, but it is important to allocate time to keep up with the state of the industry. You must keep learning and growing. It is the only way to succeed.
That's about all the advice I have to give you. You can check the links and references for more sources of information, and check back here some time in the future.
I want to wish you good luck with your game programming career. If you ever become rich and famous, and you feel like I was the one who launched your game development career, then by all means send me a check. Any amount will be accepted.
Now stop reading, refill your vorticon Cola, and get back to work. Games don't just write themselves, you know.
Bye for now!
posted by: bp on 03.18.05
posted by: grafix5000 on 06.04.05
Nice copy-paste job. :P
posted by: Fordka on 12.31.05
Too long, not wastin' my time readin this... Next time tri making article a little bit shorter