As you've probably guessed by now, game programming is one of the most challenging areas of PC programming--you need to master animation, graphics programming, data structures, event-driven programming, sound effects, and much more. But with the right tools, the right strategy, and a little bit of luck, you'll be amazed at what you can do.
In this book, you will find everything you need to create your own action arcade games in C. Together, we'll explore how to develop and use game editing tools, create scrolling levels, add animated sprites and special effects, debug game code, and put all the components together to create a fast-action scrolling arcade game. We'll also take an insider's look at the state of the gaming industry, including tips for working with other gamers, finishing games, packaging and marketing games, what to expect as a game developer, and where to go for more information. Mostly, though, we will concentrate on the process of creating the game--assembling the necessary tools, building the code from the ground up, using a third-party library, selecting and processing artwork, and adding all the finishing touches that make an action arcade game great. But before we embark on our game programming adventure, let's take a look at what action arcade games are all about.
For years, gamers have referred to the type of action arcade game we will be working on as a platform game or side scroller. As shown in Figure 1.1, an action arcade game contains animated sprites that move along a scrolling background. I originally learned to call these games "platform games" because they are based on the concept that sprites walk and jump on platforms. Originally these platforms were blocky-shaped projections extending out of the back wall. Gamers used these platforms as a device to move the player through the level in a two- dimensional manner. Traveling from left to right on the screen in a straight path is rather boring. The platforms added an element of height to the player's path (as compared to depth, which is seen in 3-D games such as Wolfenstein 3D). The platforms eventually evolved into more interesting shapes. Sprites could jump up on rocks, branches and bridges, for example. But the name "platform game" stuck because the platform is a defining element of the game genre. We don't call them that any more, though. Unfortunately, the term "platform" has become such a buzzword in the computer industry that people get confused if we use that term to nail down this genre of games. It is not an adequately descriptive name.
Figure 1.1: An example of an action arcade game: Apogee's Duke Nukem.
But calling these games arcade adventure games isn't the best solution either. The arcade game genre is too broad and describes a number of games that do not resemble the game we will be working on in this book. Arcades are filled with games like Pac Man and Asteroids which do not have scrolling backgrounds, and games like Street Fighter and Mortal Kombat that do not have platforms. We also don't want to call our scrolling games "adventure games" because the adventure game genre is well defined and specific. Here you will find games that are designed around a story that gradually unfolds as the player works through a graphics world. King's Quest is an example of a popular adventure game. In general, adventure games do not involve platforms or much in the way of hand-eye coordination. Rather, they involve problem-solving, similar to that involved in reading a good mystery novel. So an adventure game is not a side scroller, even though sometimes they scroll sideways. Are you getting confused yet?
To make matters worse, side scrollers don't always scroll sideways. Sometimes they scroll vertically or even diagonally! In fact, one of the games I've included on the companion disk, Quickfire, scrolls both horizontally and diagonally. So now you're probably thinking that all the names I've introduced don't really accurately describe the type of games that we will be creating. You are right, and it is a problem, but for lack of a better name, I'll go with the name "side scrollers" throughout the rest of this book.
If the purpose of this chapter was to define the genre of side scrollers, we haven't gotten very far. We can't even find on a good name! Fortunately, there are a few important features that all of these games have in common. The more visible components, such as sprites, tiles, and platforms are labeled in Figure 1.2. Other features, such as fast-action scrolling, are hard to show in a picture, but nevertheless, they are important. So, let's take a closer look.
Figure 1.2: The key components of a side scroller.
Before you get too far into this chapter, you should try out the game Tommy's Adventures provided on the companion disk. (This is not a complete game; it's a template game developed to demonstrate the functions of the game engine.) In fact, if you go play it now, you'll have a much easier time understanding the features I'm about to explain. To start this game, go to the directory where the game is stored on your hard disk and execute this command at the DOS prompt:
If you are running Windows, you should quit Windows before you start the game. Figure 1.3 shows what the game looks like. You can move Tommy around with the arrow keys and make him jump by pressing the Ctrl key. When he encounters the scorpion, press the Ctrl key to make Tommy shoot his gun. You can also make Tommy perform a spin kick by pressing the space bar. If you get tired of playing the first level, press the letter W to "warp" to the next level. To quit the game, press the Esc key and then press the letter Q.
Download tommy.zip from the downloads page.
All side scrollers provide one or more levels. Most games usually provide between five and 30 levels. The level consists of the scene or background art that you scroll through. (The Egyptian scene in Tommy's Adventures is the first level for this game.) You can make your games more interesting and enjoyable by adding different types of levels. For example, if you are creating a side scroller named "Alien Invasion," you might provide a base level that consists of a mountain terrain. Then, you might add a level that takes you through an underwater adventure. To wrap up the game, you might even include a level that takes the player to the home planet of the invading aliens. When it comes to designing levels, anything goes.
The main goal in a side scroller is to navigate your way through a level until you "earn your way" way up to another level. This might involve locating a secret door, rescuing a princess, finding a power crystal, or defeating a boss enemy. This "level hopping" (or warping as gamers call it) is the key feature that makes side scrollers interesting and challenging. The ultimate thrill is to conquer a level and finally see what is waiting for you on the next one.In designing side scrollers, you'll want to make your levels as visually interesting and appealing as possible. For example, Figure 1.4 shows the levels we'll be using to create our game, Tommy's Adventures. Notice here that we start in an Egyptian pyramid and end up in a space station platform--quite a leap, but this should certainly surprise our player and keep him or her interested in playing our game. The more you can catch your player off guard and dazzle him or her with your action-packed levels, the more popular your game is likely to be.
As you'll see shortly, levels are actually constructed from distinct tiles and they are inhabited by animated creatures called sprites.
Figure 1.4: The two levels used in Tommy's Adventures.
Sprites are the characters that appear in the foreground. They interact with each other, the background, and sometimes with other foreground objects. They may run, jump, fly, swim, spin kick, or shoot. Usually, a game provides a single main character sprite controlled by the player. The other sprites could be monsters or creepy insects that chase after the main character. The goal in a situation like this would be to have your main sprite character wipe out as many of the enemy sprites as possible as you work your way up the levels. For example, in Tommy's Adventures our little guy Tommy serves as the main character. As he explores the Egyptian pyramids or the space station platform, he encounters the enemy sprites--the poisonous scorpion and the giant "boy-eating" grasshopper. But one important point to keep in mind is that your sprites can be anything you want them to be. You don't have to create monsters or dangerous villains. You can easily use the side-scroller technology to create educational games. In such a case, you could design a main character sprite to move around and collect "non-threatening" animated sprites such as walking numbers or letters.
In many games, different sprites are introduced at the different levels. This approach can really keep the player of your game on guard at all times. For example, if the first level of your game takes place under the ocean, you might introduce sea monsters or clams that hide hidden jewels. Later, when you take your player to a dark underground cave, you could introduce giant carniverous earthworms or blind newts. When it comes to creating sprites, anything goes.
The challenging part of sprites is animating them. You've got to be able to move them around and have them perform actions as smoothly as possible. This takes a lot of practice. To see what is involved in animating a sprite, let's return to Tommy. When playing Tommy's Adventures, you can press the Spacebar to make Tommy perform a spin kick. This is a tricky maneuver. Figure 1.5 shows how I did it. Here, I've created different versions of Tommy as he progresses through the spin kick. In the game, I simply cycle through these different versions of the sprite to create the appearance of a smooth moving karate expert.
Figure 1.5: Animating sprites--making Tommy do the spin kick.
When designing your sprites, you'll need to map out each character and then create the animated variations needed to bring your sprites to life. This is a tedious process but the sprite editor described in Chapter 7 can help you create new sprites quickly.
I mentioned earlier that levels are created from distinct tiles. So what exactly is a tile? A tile is simply a reusable, visual graphic building block. Side-scroller games have backgrounds that are constructed of reusable tiles. In this way, a small amount of artwork can be used to create huge levels. The background for the level is usually much larger than the size of the screen, often many times larger. Since patterns in the background art are repeated, a single tile can be used over and over. For instance, one tile can be used several times to represent many rows of bricks.
As an example, Figure 1.6 shows how the Egyptian level in Tommy's Adventures is divided into distinct tiles. If you design your levels carefully, you'll be surprised at how few tiles are actually needed to create attractive scenes. In Chapter 4, I'll show you how to create levels using the tile approach. I'll also show you how to create an automated "tile ripper" to reduce screens of level art into tiles.
Figure 1.6: Breaking a level into tiles.
Side scrollers, by their nature, scroll. Usually they scroll in conjunction with the movement of the main sprite. As he or she jumps up, the background scrolls down, so the sprite is roughly (but not exactly) centered. You can scroll a background up, down, left, right, or even diagonally. With some games, you can make the background scroll on its own so that it gives the player the feeling that the game is constantly in motion. The Quickfire game provided on the companion disk uses this technique. The sky background shown in Figure 1.7 continually scrolls to the left giving the player the illusion that the jet fighter sprites are constantly in motion. This is a useful technique to use if you want to create self-playing demos for your games.
Figure 1.7: The Quickfire game with the continuous scrolling background.
Creating fast scrolling backgrounds on the PC is a challenge. We use a tricky method that involves resizing video memory and simulating page flipping. This trick is made possible by setting the video mode to Mode X, an extended or "tweaked" VGA mode first publicized by Micheal Abrash. The screen can be updated very quickly in Mode X, and tiles are used to rebuild the level as it moves around. In Chapter 5 we will discuss the theory behind the scrolling algorithm, and the code for scrolling in the game editor will be presented in Chapter 6. More scrolling code will be found in Chapter 11, where we soup up the scrolling algorithm to handle the high-speed animation we need in our game.
I know, I told you I wasn't going to use the term "platform" anymore, but I can't help it. Platforms are an important part of a side scroller. After all, sprites jump on platforms, and usually they work their way to the end of a level by choosing the right platforms to jump on. Sometimes the platforms move. If you fall off a platform, watch out! You could land in something unpleasant, like a puddle of hot lava. In creating side scrollers, you don't want to limit yourself to just moving your main sprite along the ground level. Most successful side scrollers use all kinds of platforms like rooftops, ladders, bridges, mountain trails, and so on. Figure 1.8 shows an example of a highly popular game called Math Rescue, by Karen Crowther. In this game, the main sprite travels around looking for numbers that were stolen by the troublesome Gruzzles. Notice that in the screens presented in Figure 1.8, a number of platforms are used to enhance the game.
Figure 1.8: Some of the platforms used in Karen Crowther's Math Rescue.
The primary thing that differentiates a side scroller from an adventure game is the hand-eye coordination a player must have. In an adventure game, the player works his way out of a room by finding a key, opening a box, reading a clue, and so on. In this manner a true adventure game is like a puzzle. In a side scroller, the action tends to be fast and furious. The player must move quickly and accurately to avoid hazards and reach his or her destination.
In our game, we will use the keyboard to control the action of the player. It is also possible to use a joystick to control a side-scroller game. The joystick is a somewhat popular input device on a PC. It is not a standard accessory, however, and you should not assume all your users will have one. Of those who do, some will prefer not to use it because the joystick is, in general, less responsive than the low-level keyboard handler. If you decide to use Fastgraph's joystick functions to support the joystick, you should still plan on supporting the keyboard as well.
Side scrollers are most commonly seen on cartridge game systems like Sega and Super Nintendo. Popular cartridge side scrollers include Super Mario Brothers and Sonic the Hedgehog. Side scrollers are one of the most popular type of game on cartridge systems, probably because there are limits on what you can do with that kind of machine.
The PC gives you certain functionality that you don't have on cartridge systems, such as writing a large amount of data to the hard drive. But there are also some hardware limitations on the PC. PCs were not originally designed for high-speed animation, and some of the functionality built into the hardware of a cartridge system must be handled through software on the PC. Still, with clever programming, most of the capabilities of the Sega and Nintendo systems can be duplicated on the PC.
The first side scroller game I remember seeing on the PC was called Captain Comic. It was written by Michael Denio and distributed asshareware. It was a beautiful and popular game, but it was not marketed well and did not make very much money for the author. Michael released a retail upgrade, called Fractured Reality, which was also an outstanding game. Unfortunately, it didn't sell well either, again through no fault of the author. If you find a copy of this game on retail shelves, I highly recommend it; it's a classic.
I consider Captain Comic a side scroller even though it did not employ true four-way scrolling. It was a tile-based game that scrolled in chunks about four pages wide and was written in a 16-color EGA graphics mode.
The first true side scroller I remember seeing in shareware channels was Commander Keen: Invasion of the Vorticons. This game, shown in Figure 1.9, was written by Id Software, the company that later went on to create the incredibly popular 3-D game Doom. The artwork and story in Commander Keen were comparable to Captain Comic, but the marketing method was far superior. Selling this game through shareware channels was the brainstorm of a couple of young entrepreneurs in Texas, Scott Miller and George Broussard of Apogee Software. Scott and George figured out that giving the whole game away for free was not the best way to turn a profit in this business. They came up with a strong registration incentive. They gave away one-third of the game through shareware channels, and required payment to receive the rest of the game. This strategy was as brilliant as it was simple, and Scott and George parlayed the idea into a multi-million dollar company. The viability of side scrollers in shareware channels was established.
Figure 1.9: A sample level from Commander Keen: Invasion of the Vorticons.
Id followed the original Commander Keen series with a charming series of titles, including Goodbye Galaxy, The Armageddon Machine, and Aliens Ate My Babysitter. These beautiful games were also published by Apogee, and set the standard for the side scrollers that followed.
The Commander Keen games were superb, not only because they demonstrated a new technology, but because they were created by top talent. John Carmack, the genius behind the side-scrolling engine, was complemented by the talents of John Romero, who created the tools, and Adrian Carmack, whose artwork brought the game to life. The story and level design were products of Tom Hall's wacky imagination, and the dramatic, emotional music was composed by Bobby Prince. As a team, Id had the unique ability to work together to create a product greater than the sum of its parts, and the personal chemistry to stay together for the years it took to bring the product to fruition.
All the Id side scrollers were 16-color EGA games, which at that time was the industry standard. VGA was just beginning to be popular, but common wisdom was to write for the lowest common hardware denominator. Since then, the marketplace has changed, and VGA hardware is now standard PC equipment. Most modern side scrollers are written in a 256-color VGA mode.
As you can imagine, it's harder to write 256-color side scrollers. You have the same amount of video memory to work with (256K unless you go SuperVGA), but the artwork takes up twice as much room. Where you could get eight pages of graphics in the low-resolution EGA mode, you can only get four pages of graphics in the 256-color modewith the same resolution. Development is bit trickier, but the payoff is worth it. The 256-color games are much prettier than the 16-color games. See figure 1.10 for an example of a 256-color game.
Figure 1.10: Apogee's first 256-color side-scroller: Halloween Harry
One difference between the original Commander Keen and the games later in the series is the view perspective. In Invasion of the Vorticons (see Figure 1.9), the view is straight on. Platforms are seen as two-dimensional blocks. In Goodbye Galaxy, as shown in Figure 1.11, the view is from an angle. This gives the platforms a much more realistic look. You can see the path the character is walking on, and edges of the path are drawn at an angle. This makes it possible to see interesting objects on the path, such as toxic slug droppings. The slugs in Goodbye Galaxy were prolific in this respect.
Figure 1.11: The Goodbye Galaxy game with angled platforms.
Todd Replogle was another pioneer of side-scroller games. He has written several games for Apogee, including my all-time favorite, Cosmo. Cosmo was a relatively non-violent game, featuring a whimsical alien with suction cup hands (see Figure 1.12). His search for his parents leads him through a land of fruits, flowers, and strange spooky trees. In Cosmo, we see an early example of parallax scrolling. In this technique, background graphics are moved at different speeds to give the perception of depth--a really cool effect! The sky stays relatively stationary, while the foreground scrolls with the character.
Figure 1.12: My all-time favorite game, Cosmo.
Cosmo was pretty, but it was outsold by Todd's other classic Apogee game, Duke Nukem. Duke Nukem is a more traditional violent game featuring Duke the war hero blasting his way through post-holocaust Earth. His mission is to stop the evil Dr. Proton and his army of Techbots. This award-winning game remains amazingly popular. Although I'm not a big fan of violence, most of the highly successful games sure have their ample share of it.
Evil mad scientists are a popular theme in Apogee games. In Jim Norwood's Bio Menace, a super agent named Snake Logan must battle the evil Doctor Mangle, who is unleashing hideous mutants upon the world. Another popular Apogee theme is zombies. In Frank Madden's Monster Bash, a small boy, Johnny Dash, runs a gauntlet of zombies and ghouls in an effort to rescue his pets. Armed with a slingshot, Johnny frees dogs and cats from their ghostly prisons, as he dodges through waterfalls, bounces on sofas, encounters strange and wonderful unworldly critters, and generally has a gleeful time on his spooky quest. Check out some of the level art shown in Figure 1.13 and you'll see what I mean.
Figure 1.13: The action packed Monster Bash.
Halloween Harry, by Sub-Zero Software, is another popular zombie game, this time with a twist. Alien invaders have landed in New York City, and are kidnapping people (especially pretty girls) and turning them into mindless zombies. Harry must rescue the girls from the evil alien clutches, and his reward is watching them fall in love with him as he uses tactical nuclear weapons to set them free. (And you thought Steven King had a wild imagination!)
Not all of Apogee's games are violent in nature. Karen Crowther's games, Math Rescue and Word Rescue (see Figure 1.14) are classic "edutainment" titles. The addictive quality of the side scroller genre is used to hook kids into playing a game that is actually good for them. They have so much fun running and jumping their way through different levels, they don't even realize they're learning how to read and do simple arithmetic. These games have been highly successful in a tough market because of the way they were designed. Karen gave the enjoyment factor precedence over the educational element, with the result that kids love them, as do their parents. They are designed to be easy for young fingers, and nobody dies.
Figure 1.14: Scenes from Word Rescue and Math Rescue.
The side scrollers Apogee pioneered would probably have been successful in any marketing channel, but Apogee chose to distribute them through shareware, and in the process expand both the gaming industry and the shareware industry. Others have tried to follow in Apogee's footsteps and develop high- quality, side-scrolling games, but so far nobody has been able to duplicate Apogee's success. In later years, Apogee has moved away from side scrollers, in favor of the wildly popular 3-D games. Wolfenstein 3D, developed by Id and published by Apogee, set another standard, and Apogee continues to move forward into new technologies.
Personally, I'm nostalgic for the glory days of side scrollers. In my opinion, they have more to offer than 3-D games. The artwork is prettier, the story lines are more interesting, the characters are more lovable, and there is more variety in the levels. I find 3-D games to be vaguely repetitive, as if there are only a finite number of new ideas available; and someday soon, all those ideas will have been explored. Side scrollers, on the other hand, hold the keys to infinite new worlds of action and mystery. There will always be a new level to explore, another monster to fight, another puzzle to solve. I like being able to see the character's face, and I like to see other emotions expressed besides bloodlust. When the current craze for 3- D games dies down, I think we'll see a resurgence of side scrollers as gamers recognize the unlimited creative potential of the genre.
What makes side scrollers so successful? Is it the dazzling graphics, the heart thumping music, the engrossing (and sometimes ridiculous) story lines? Not exactly. Other types of games have great music and graphics, but they do not have the playability of side scrollers. There must be something about the design of side-scrolling games themselves that makes them so addicting. What is the objective when we play a side scroller game? Is it to beat all the levels and win the game? I don't think so. After all, once we beat the game, we stop playing it, and the fun is over. So that can't be the primary goal. In fact, if we beat the game right away, we tend to get disappointed. We don't want to stop playing the game, we want to keep playing it for a long time. We want to participate in the imaginary world the game creates for us. We want to be part of that world, and revisit it again and again. So the goal is not to beat the game, but rather to play it over and over to the point of failure.
Why is that fun? It doesn't sound like a logical way to enjoy ourselves. Repeated failure sounds more discouraging than entertaining. Yet we keep going back and doing it again. Perhaps what we're trying to achieve is a personal best. We "win" each time we beat our previous high score. As we improve our skill, we move closer and closer to the end of the game. The game becomes more exciting in the higher levels. The experience of reaching the higher levels gives us a sense of accomplishment.
When we finally do reach the end of the game, the challenge is gone. We'll miss the hours we spent trying to beat the game. We'll miss the character we were playing as well. We got to know the character pretty well over all those hours of playing and failing and dying, and we're not quite ready to let go yet. In fact, we might miss the character so much that we'll shell out more money for another episode, if one is available.
So, what makes a side scroller so addicting? Perhaps it's the element of suspense. Each level is a whole new world. We can't wait to finish a level to see what the next one is going to look like. If the bad guys at the end of a level are especially gruesome, it makes you wonder what the bad guys are going to look like at the next level. Each level introduces new tiles, new enemies, new paths to follow and new plot twists. Like a good book that you can't put down, you find yourself dying to see what is going to happen next. This feeling of anticipation keeps us coming back for more.
So the successful side scroller combines the elements of hand-eye coordination, competition, endless variety, anticipation, and suspense into a formula that perhaps we don't completely understand, but we know it works. Side scrollers are universally popular, and have become a standard among game-playing aficionados around the world.
For the purposes of our discussion, we'll be dissecting a game called Tommy's Adventures. As mentioned previously, this is not a complete game, it's a template game developed to demonstrate the functions of the game engine. Figure 1.15 shows the different components that are provided for this game. Here you get two levels, a collection of sprites, a title screen, and an animated status screen..
Figure 1.15: The elements of Tommy's Adventures.
As you can see, Tommy's Adventures has many of the key elements of a side-scroller game. It has scrolling backgrounds with platforms that are composed of tiles, it has sprites, and it has a main character sprite (Tommy), who you control with the keyboard. It also has enemy sprites that move independently and try to attack Tommy.
Tommy is a young boy about eight years old with a punk haircut and a black leather jacket. He's resourceful beyond his age, however. He's apparently accomplished at martial arts, being able to deck a giant grasshopper with a single well-aimed spin kick. Since he doesn't always want to get close enough to his enemies to deliver a deadly kick, he also packs a gun.
This scenario is typical of side scrollers. Characters are designed to be endearing and empowered. A successful character is not somebody we could be, but somebody we imagine we want to be. A hip youngster strikes a chord in us. Who wouldn't want to dabble with green hair dye and shock the establishment? Tommy does things adults can't do. He has no apparent source of income, no bedtime, and no responsibilities. He dresses like James Dean. He dismisses danger with a shrug and a grin. These elements of the rebel hero appeal to us as game players. For a few minutes, or a few hours, we can play the game and become Tommy.
The paradox of a kid with a gun shouldn't present us with any problems. It gives us the best of both worlds--a character we can love, and the ability to shoot things.
Like it or not, game players love to shoot things. With all the current controversy about violence in video games, it remains an undisputed fact that games containing violence sell well. The public craves them. It apparently satisfies some urge within us to be able to express our aggression against computer-generated foes. Tommy does not negotiate with his enemies. He does not placate them with gifts. He does not wait to see if their intentions are honorable. He sees them and shoots them, and by extension we see our problems and eliminate them swiftly and unambiguously. That simple reality is pretty far removed from the reality of everyday life, where problems must be worked out more carefully, often with less satisfying results.
The prevalence of violence in games is a complex subject. I don't think we can dismiss it by simply saying games teach kids to solve problems with guns. For one thing, it's obvious adults are buying and playing these games. And I think the adults who play them are well aware that guns don't solve problems in real life. But who hasn't had a yearning for simpler solutions? After a hard day at work, and the pressures of daily living, wouldn't it be a relief to go home and just shoot something? Expressing that urge on the computer is preferable to kicking the cat or yelling at the kids. It is also more fun.
I don't want to take sides in the controversy over violent games, because I honestly don't know for sure which side is right. Violent games may not be particularly healthy for children, but the bottom line is money--in the current market, violent games sell. I think there are certain levels of violence that sell better than others. Extremes in either direction do not seem to work as well. A truly gory game will turn off a significant portion of the audience, as will a totally non-violent game. Tommy's Adventures contains a medium level of violence, which is stylized, cartoon-type violence. Tommy is not shooting at other people, and he is not shooting at anything lovable. We wouldn't want Tommy to shoot at koala bears, for example. Tommy is shooting at giant insects, which are perceived to have no human emotions. I think this is key in game violence. You should shoot at things that are inhuman. That's why so many games contain mutants, aliens, robots, and zombies. When you shoot at a non-human enemy, you are not killing a sympathetic character. You are merely eliminating an emotionless hazard, so you do not need to feel remorse. This level of violence seems to be well accepted in the mainstream side scrollers.
Enough said about violence; let's go create our game.
Fastgraph Home Page |
Copyright © 1998 Ted Gruber Software Inc. All Rights Reserved.
Awards | Acknowledgements | Introduction
Chapter 1 | Chapter 2 | Chapter 3 | Chapter 4 | Chapter 5 | Chapter 6
Chapter 7 | Chapter 8 | Chapter 9 | Chapter 10 | Chapter 11 | Chapter 12
Chapter 13 | Chapter 14 | Chapter 15 | Chapter 16 | Chapter 17 | Chapter 18
Appendix | License Agreement | Glossary | Installation Notes | Home Page
So you want to be a Computer Game Developer
Fastgraph Home Page |
Copyright © 1998 Ted Gruber Software Inc. All Rights Reserved.