1. A Crash Course In Game Design and Production
- Posted by Michael Packard <lgp at EXO.COM> Mar 20, 1997
- 1005 views
- Last edited Mar 21, 1997
A Crash Course in Game Design and Production ========================================================================== Week 6 - A Discourse on Production Values ========================================================================== Welcome back! This is the sixth installment in "A Crash Course in Game Design and Production. This week we're taking a diversion away from the Design Specification to talk about what I call "Production Values." This is a single parter. --------------------------------------------------------------------------- How much you care about your game directly affects people's response to your game. Too often programmers spend nearly ALL of their production time on how their game works, and nearly NONE on how it looks or how it will be perceived by players. In the rush to get a game playable, they neglect the most important aspect of a game, presentation. Presentation is more than just what the player sees when he plays your game, it is his impression of the game and of YOU as a game designer\programmer. It is your reputation on the line as you try to meet the expectations of your players with every game you release. When a player plays your game, he doesn't care about how many hours you put into it, or what great technological breakthroughs you've accomplished, or how far you've pushed the envelope in creating it. He's thinking: 1) Is this a "real" game or something cheesy? 2) Does this programmer know what he is doing, and how committed is he to making a great game? 3) Does this look like it will be fun? In the first ten seconds of play, he determines what he thinks about you and your game, and decides whether or not to keep playing. If what he sees and hears doesn't match the quality of game he's expecting, he will stop playing, delete the program, and very likely disregard any other games you release. "Bob's games? Nah, they suck! I played "SectorBug's Revenge" and it sucked so hard my furniture was piled up all around my computer..." You don't want this kind of advertising. Making a game playable is only half of the battle. The rest is making the game presentable. It's adding the extra touches that encourage your players to give more attention to your game. It's those little things you put in just because the game is cooler with them than without them. The more you care about presentation, the more "perceived value" your players see in your production, and the more credibility they give you as a game developer. I have a saying you should memorize: "If you're gonna go out, you might as well go all out!" Committing yourself to go "all out" on your game project is the heart of what I call "Production Values." -------------------------------------------------------------------------- What are Production Values? Production Values are the set of rules that a serious game developer uses as the standard for every game he produces. Just like a moral person will not do anything against what considers moral or ethical, a game developer WILL NOT release a game that does not adhere to his production values. Anyone who writes games has production values of some kind. You may not realize it, or may not even think about these things, but they are there. If you don't care about your artwork, if anything is "good enough," that is one of your production values. Regardless of whether or not you perceive your production values, your audience perceives them when they see your games. Over the last few months, a good number of games have been written in Euphoria. While all show potential, most seriously suffer from a lack of conscious positive production values. While they are amusing to the Euphoria programmers who pass them around, and are useful as tutorial pieces, they don't stack up to the expectations of players outside the Euphoria community. It's not a limitation of Euphoria or the programmers involved, it's production values. My intent is knock some sense into your heads, and get you to think about what you are doing. If I offend, good. If you want the world to take you, Euphoria, and your games seriously, you need to take you, Euphoria, and your games seriously. You MUST pay attention to details to make your games great. In the rest of this lesson, I will talk about production areas where many developers fail miserably because they give too little thought or attention to them. As a game developer, it is important to address these issues. Rant #1: Programmer Art vs Professional Art ----------------------------------------------------------------------- Nothing sticks in my craw more than sucky art in a cool game. I know MANY programmers that spend 100 hours or more writing code and half an hour on art and say it's good enough. IT ISN'T. OidZone came about because I was so bothered that Kurt Dekker's (a friend of mine, shareware arcade game pioneer and really sucky artist) ROX was the ONLY decent asteroids game for the PC and its "programmer art" sucked so bad that I had to do a better one myself. (He didn't have time to do the refit after I offered to GIVE him new art, so I wrote OidZone instead.) "Programmer Art" is what happens when a programmer spends five minutes drawing a picture to "get something" in the game, then never goes back and refines it to make it better once the game works. Most programmers I know are lousy artists, but ONLY because they don't care. If you care about what you do, what you do is automagically better. "Professional Art" is what happens when the programmer spends a proportionate amount of time producing the art he intends to use in his game. It doesn't matter how bad an artist you are on the computer, the more time you spend doing art, the better your art will be. There is an amazing amount of programs available to make the job of art creation easier. These can take a no-talent boob and make him a brilliant game artist. I typically spend 1/3 of my production time JUST on artwork, and I ALWAYS do my artwork BEFORE I write any code. If you just can't do the art, there are a hundred other people around you who can. There are lots of game artist wannabees who are very good and work cheap, some will do it only for a credit in your game and a free lunch. Another thing to memorize: "There are two ways to do anything: Do it yourself, or Pay someone to do it right." How much you care about your artwork is directly proportional to how long you spend developing it. Rant #2 Cutouts vs Characters ------------------------------ Some programmers have a single static image that they move around in the game and want you to make believe that it is menacing. Maybe its a game object that just sits there and does nothing while waiting for you to get it. It's like a cardboard cutout of the object. It LOOKS like the real thing, but has none of the attributes of the real thing. It's dead and boring. A Cutout is something in your game that doesn't animate and doesn't change appearance in the game, regardless of what its doing. It may be an enemy swooping down to kill your ship, yet it doesn't "do anything" while it's swooping. There's no life displayed in the art, since the art doesn't change. The thing is a corpse flying at you. A Character is something that is "alive." It does things, even when it isn't "doing" anything. Maybe the coins you need to pick up are spinning around in place while they wait for you, maybe your enemies blink their eyes every once in awhile, maybe your game logo spins around during the game. All give your objects character, they are alive. Living characters are always more fun than corpses. ("Dead puppies aren't much fun...") In Euphoria especially, you can have as many animation frames for an object as you want, so there's no excuse not to do it. Every sprite in your game should be a character and not a cutout. Even your Game messages "Game over" or whatever should be animated. I like to color cycle my game messages, its easy to do, and looks way cooler than a cutout. NOTE: If you have many of the same kind of character on the screen doing the same thing, they MUST NOT all be doing it at the same time. It looks REALLY bad if all 10 of your StarThieves blink their eyes at the same time, and looks REALLY cool if they do it at different times. If you have 30 animation frames say, have each one start on a random frame and keep track of where they are in the animation individually. In OidZone, every oid looks different from the others, they are all using the same animation images, 1-30, but every oid can be in a different place in the cycle at any given time. Oid 5 may be doing 26,27,28,29,30,1,2... while oid 6 may be doing 3,4,5,6,7,.... I was playtesting StarTrek: 25th Anniversary, and when the party of five characters beamed to a planet they could look left, right, up, down, flip open their communicator, use their tricorder, etc., so they would look busy while the game waited for you to do something. The first time this was tested, ALL 5 characters went through this cycle at the same time together. My bug report stated that it looked like a Michael Jackson video. I was laughing hysterically. Unless you're Michael Jackson, make sure your characters act individually. Your characters should keep busy while waiting for the player. If the player waits too long, they should do something in response to that. In Sonic the Hedgehog, if the player sits and waits for a minute or so, Sonic turns to face the player and taps his foot repeatedly, looking pretty annoyed until the player does something. This is a VERY good thing to do. Rant #3 Static vs Dynamic Screens --------------------------------- Some game screens look really boring. Aside from the action of the game itself, the player information and feedback screens just sit there in the background. Ideally in a game, something should always be happening on the screen to let the player know the game is running. It could be anything, blinky lights here and there, an animated logo in the corner of the screen, anything. Just break up the monotony of the screen. In OidZone (and Starthief, etc.) I have the logo and the infoBar at the top of the screen animating at all times. These are simple additions, but make a huge difference in how the game feels, a huge difference in production quality. Always have some blinky lights somewhere. Rant #4 Consistency in Presentation From Game to Game ----------------------------------------------------- Many programmers give little thought about consistency in presentation from game to game. What I mean is that there is no common thread tying all their games together, no similarity in presentation to let players know that they are all "their games" Similarly, people play around with controls, move player feedback displays around, and just make things different from game to game. This makes the learning curve a little harder, as the player has to learn new controls or to look in different places to find the information they need. Certainly sometimes this is necessary, depending on the nature of the game, but similar games should have similar presentations. It's a stylistic thing. If you are going to be producing multiple games, some thought should go into making them recognizable as YOUR games. Signature Pieces When you do something the same way in all your games, its like an artist signing his work. If you intend to do more than one game, do something stylistic that you can put in all your games so people recognize your work. It could be anything, your signature in the bottom right corner of the screen, or the way you animate your game logo or maybe all your games have similar titles (like OidZone, SlalomZone, TankZone, CombatZone, etc...), or whatever. Do something, standardize the way you do it, and always do it that way. Then when someone plays your game they'll recognize your "signature piece" and transfer some of the respect he had for the last game to the new one. On the flipside, you don't want all your games to look exactly the same. That gives your player a "been there, done that, got the t-shirt" feeling. You want there to be some familiar consistency without giving them deja-vu. Case in point. All my space games have a pretty nebula background, but I NEVER use the same background in different games, unless the background changes frequently. I have my nebula artist create a new one for every game, in a different color scheme to match the mood of the game. When you see a pretty nebula, you know its one of mine, but its different enough that you don't get tired of it, and you are eager to see what the background of the next game will look like. If you look at ANY of my games, you know right away they are mine. I have spent much time creating a "look" to my games that I intend to be unmistakable. All my games have pretty backgrounds, color cycling logos and game messages, and an animated InfoBar at the top of the screen. Most games have a FeedBack Window on the right side of the screen, with player information and high scores list. My about screens have the same format in colored text. I make a conscious effort to interchange characters between games whenever possible. I recently added the StarThief character to OidZone Registered as a saucer that shoots mines at you. He also appears in SolarQuest and StarRanger (release date 4/15 and 5/15 respectively) My characters taunt you in funny voices, and they all have interesting animated characteristics. When you play one of my new games, you remember how good (I hope) the last one was and you go in with a certain respect I wouldn't have earned if the games were very different. You don't need to go that far if you don't want to, but consistency is a plus in getting repeat players. Rant #5 Sound FX Laziness ------------------------- I can't believe how many shareware game people steal sound effects from TV shows or movies rather than record their own. While having a recognizable sound bite here and there is amusing, there are problems that are raised by using them. First, you can be sued for it. If you are releasing your games to the general public as shareware or whatever, you need to be aware that the people who you created the recording you sampled have rights to it. Generally they won't do anything about it, but they can send you a nasty letter if they wanted to. If you intend to sell your game commercially, they will want a piece of the pie at least. Second, by having all your SFX come from different sources, there is no consistency in theme and tone for your game. I feel the same way here that I do about having too many fonts in a document. It looks like a ransom note. Every sound is different. A similar problem is relying on a SoundFX CD-ROM for all your samples. They are very handy, and I use them frequently as a basis for SOME of my SFX, but there is a danger that your sounds come off as too generic. You definitely don't want someone to play your game and know where you got your SFX! It takes away from their impression of you. Your game is cheapened in their eyes if they know you got your SFX from a $10 CD-ROM. Everyone with a sound card can record and process SFX easily. Take that photon torpedo effect, trim it, add an echo, and raise the pitch a bit to make it your own sound. Plug a microphone and record "You SUCK! TRY AGAIN..." and make it sound funny. Do your own SFX. It's easy and fun to do. Voice Characterization I like to make my characters talk. Either to have them cheer you on, or taunt you relentlessly, it just adds something to the feeling of the game. For StarThief, I have about 12 different voice samples for my characters, from "Ouch! That Hurts!" to "Hello? is anybody home?" to "Are you even trying?" All of them are recorded the same way, and processed to a funny high pitched, slightly sped up sound. ----------------------------------------- Production Values are the standard you try to meet with every game you release, and the standard your players come to expect from you. Sticking to your Production Values earns the respect from your audience to see you standing up for quality. They also make YOU feel better about what you are doing, knowing that you are doing all you can to create the best game you can. My Production Values ==================== 1) Presentation is as important as game play. My screens will be clear, my controls will be easy to figure out, my players will know I care about every game I release. 2) My art the most important part of my presentation, and my audience feels cheated if I skimp out on art. They expect the best, so I'll do my best. 3) If it is important to the game it will animate. If it is alive, it will have character. If it must be cute, it will be cute. 4) If it is cute, it will have a funny voice, and should talk to the player when possible. 5) No two of the same character will show the same characteristic action at the same time if I can avoid it. 6) My information screens will be animated. If a blinky light or other animated object will enhance the presentation I will add it. 7) My games will have familiar consistency without cheating the player by rehashing the same old thing. Similar features will have similar controls across all games, similar games will have similar feedback systems. I will be consistent with my signature pieces. 8) My audience knows where I steal my SFX from, so I will customize them for my needs and create new SFX whenever possible. I Think that about covers it. Next time we'll look at the AI specification. ========================================================================== End of Week 6 - A Discourse on Production Values If you have any questions for group discussion post them to the list server. E-mail any other questions, comments or suggestions to lgp at exo.com Mail monetary donations large or small to Lord Generic Productions 1218 Karen Ave Santa Ana, Ca 92704 A Crash Course in Game Design and Production - Euphoria Edition (C) Copyright 1996,7 Lord Generic Productions - All Rights Reserved ==========================================================================
2. Re: A Crash Course In Game Design and Production
- Posted by Ricardo Niederberger Cabral <rnc at INFOLINK.COM.BR> Aug 01, 1997
- 961 views
... >> palette of your game in a file and then make PSP adapt an image with a >> different palette to this previously saved palette almost without losing >> quality (depending on the difference between the two palettes, off course) >> and you can change each RGB values of a color, etc... >cool, but how does it work with animations? can you load in 50 frames and >have it generate a optimal palette for the animation? I haven't played >with it. >Michael Packard --- Ricardo Niederberger Cabral rnc at infolink.com.br
3. Re: A Crash Course In Game Design and Production
- Posted by Ralf Nieuwenhuijsen <nieuwen at POP.XS4ALL.NL> Jul 04, 1997
- 952 views
- Last edited Jul 05, 1997
Are we actually gonna finish it and code it or not? And what about useing dynamicly created mazes? (My engine could also do that easily, it is very customizable and allows you to have a map where the rest of the maze will be build in) Ralf Nieuwenhuijsen nieuwen at xs4all.nl It would be cool to have a game created by the EU List Server Team or anything like that... ..it could make Euphoria more popular too....
4. Re: A Crash Course In Game Design and Production
- Posted by Michael Packard <lgp at EXO.COM> Jul 04, 1997
- 957 views
On Fri, 4 Jul 1997, Ralf Nieuwenhuijsen wrote: > > Are we actually gonna finish it and code it or not? Yes. We're going from beginning to end. > And what about useing dynamicly created mazes? At this point I don't think so, but it's something we can add later. Michael Packard Lord Generic Productions lgp at exo.com http://exo.com/~lgp A Crash Course in Game Design and Production http://exo.com/~lgp/euphoria
5. A Crash Course In Game Design and Production
- Posted by Michael Packard <lgp at EXO.COM> Jan 18, 1997
- 992 views
- Last edited Jan 19, 1997
A Crash Course in Game Design and Production ======================================================== Week 4 - Basics of Computer Art and Art Specification ======================================================== Welcome back! This is the fourth installment in "A Crash Course in Game Design and Production. Like last time, this lesson is in multiple parts. In PART ONE, we'll discuss computer graphics in general, and what we need to know before we can talk about ART. In PART TWO We'll discuss the ART Specification, what it is and what we need to put in it. In PART THREE we will write the fourth section of the Design Spec for our Course Project, the Art Specification. ---------------------------------------------------------------------------- Part 1 - The Basics of Computer Art. ---------------------------------------------------------------------------- Before we can have any meaningful discussion of computer game art, we need to get some terms defined and some concepts explained. In this section we'll talk briefly about Computer Graphics, Video Modes, Resolution, Aspect Ratio, Pixels, Palettes, Masking, Sprites, Backgrounds, and Anti-aliasing, then briefly about what to look for in a graphics\animation editing program from a game design standpoint. Video Modes The computer is capable of displaying information in many formats: It could be text, a picture, animation, or sound. For our purposes, we are working with images. The Video Mode you use determines what kind of images you can display, how big they can be, and how many colors the image may contain. Video modes can be classified into two groups, Text or Graphics modes. In Text modes, all you can display are letters and words. Not real useful for most games. Language Wars is an example of a game written in Text mode. Graphics modes allow you to display images and animations as well as text in 16 or 256 colors. There are multiple Graphics Modes to choose from, each will allow you to display different amounts of data on the screen. Each datum (singular of data, the smallest displayable chunk of information)is shown on your monitor as a PIXEL (Picture Element - part of a Picture, an image displayed on your screen.) A Full-Screen image in different video modes contains more or less Pixels, and may contain more or less colors than in other video modes. Example: Video Mode 18 can display an image that is 640 pixels wide and 480 pixels high in up to 16 colors. Video Mode 19 can display an image that is 320 pixels wide and 200 pixels high, but in 256 colors. Video Mode 256 can display an image that is 640 pixels wide and 480 pixels high in 256 colors. Note: If you draw a Full-Screen picture in Mode 19 and display it in mode 256, say, the image will be about 1/4 the screen size now! Since the Video Mode can display more Pixels, the Pixels themselves are smaller. Resolution When we discuss Video Modes, it is useful to refer to them by the number of Pixels they can display Width x Height. Instead of saying "Mode 256" or "Mode 18", we'll say "640x480 mode" with the number of colors implied. This is called RESOLUTION. Similarly, Mode 19 is "320x200" and Mode 260 is "1024x768." See graphics.e for a list of valid video mode for Euphoria. When we talk about the Resolution of an IMAGE, we are referring to how wide and how tall it is, not necessarily what Video Mode it was created in or should be displayed in. For instance, in our class project, our characters will be 15 pixels wide and 15 pixels high, so we'll call it a "15x15" image. Aspect Ratio The Aspect Ratio is the ratio of the Pixel Width to Pixel Height for a particular video mode. In 640x480, 800x600, and 1024x768 modes, the aspect ratio is 1:1 or 1, meaning the pixels are square. In 320x200, the aspect ratio is 1.21:1 or .82, meaning the pixels are higher than they are wide. If you create an image in 320x200 mode and display it in 640x480, it will appear slightly squashed, since the pixels are 21% shorter in this mode relative to their height than in 320x200 mode. Pixels and Palettes A picture on the screen is made up of different colored Pixels. The number of colors available to the image is determined by the current Video Mode. For 256 color Modes, there are 256 colors available. These colors are stored in a table called the Color Palette. These 256 colors are chosen from the VGA Palette of 262,144 colors. Each Pixel can have a value from 0-255, which tells the video screen which of the 256 colors in the Color Palette to display at that Pixel location. The pixels themselves have NO COLOR INFORMATION, they just tell where to look in the Color Palette to get the color you want. If you change the colors in the Color Palette, any pixels that were assigned to those colors also change. If you load an image created with one Color Palette and display it using a different Color Palette, the colors will be wrong. All art for your game MUST BE DRAWN USING THE SAME COLOR PALETTE. It's not enough to have the same colors, they MUST be in the same color position in the Color Palette. If you have two images, one with Blue, say in palette position 5 and the other with the EXACT SAME SHADE OF BLUE in color position 18, if you display them together, the second Blue may appear GREEN,ORANGE,or AVOCADO, depending on what is in color position 18 in the current Color Palette. Images and Animation Frames An Image is a rectangular collection of pixels which contains something visually recognizable, like a picture of your mom. An Animation Sequence is a collection of images, which when viewed sequentially expresses an action of the visually recognizable thing, like your mom sticking her tongue out at you for digitizing her. Each individual image in the Animation Sequence is an Animation Frame. When we want to make our Ghosts, say, roll their eyes, or move their feet, we need to draw multiple images of the Ghost, each one making a portion of the whole action. If we want him to roll his eyes in 10 frames, in each frame his eyes roll 1/10 of the way around from the previous frame. Again, all 10 frames MUST use the same Color Palette. Color Cycling Sometimes it is very handy to change a few colors in the Palette over the course of an animation. For many of the display messages in OidZone, I have the letter colors animating from the top to the bottom of the letters then back around. To accomplish this, I made all the moving colors consecutively in the Palette and shifted them to the left for each frame. The last color in the sequence gets shifted to the first color, then moves left on the next frame. This is called Color Cycling, and is a neat effect. Normally this is a programming thing that you do in the game, but you can't do this effectively in Euphoria, so I created an animation of the effect. After I got all the frames with the colors moving, I remapped the palettes to the Game Palette, and went on. Choosing an Art Program When choosing an art program to create game images, you need to make absolutely sure that you have control over what colors appear where in the palette. You need to be able to convert images with different palettes to use your "Game Palette" and\or create an "Optimal Palette" by picking the 256 most representative colors out of your list of images and remapping\adjusting the colors of each image to fit it. I use Autodesk Animator Pro(TM) for doing 256 color images and animations for games. It handles color Palettes very well and I can work with as many animation frames as I want in any resolution Euphoria supports. It also can save sequential images in BMP for easy loading. For these requirements I DO NOT RECOMMEND ANY WINDOWS application. So far, none I've seen handles color palettes consistently or gives you any control on the final color palette. This is ABSOLUTELY ESSENTIAL FOR GAME ART. You must be able to load in a standard palette for your game and save all images in that palette. ---------------------------------------------------------------------------- Masking and Sprite Basics Computer Game Art falls into one of two categories, Backgrounds or Sprites. Backgrounds are things that don't move on the screen, like the Maze in our course project, or the Feedback Window where scores and stuff are drawn during the course of the game. Sprites are things that move around, like Packy and the Ghosts. Sprites can move in front of or behind background objects or each other. Remember that Images and Animation frames are RECTANGULAR, but usually what you want to display is NOT. There is usually a big black (or whatever) box around what you want to display. If we just draw all our sprites on the screen, the big black boxes will screw up our background, and worse, obscure sprites that are moving next to us in the same direction. How do we get around that? It's called MASKING Masking and Key Colors Masking is a programming technique where only the pixels you want to see of your sprite are drawn and the others are disregarded. Generally you pick one color in the Color Palette and use that color for everything you DON'T WANT TO DRAW. This color is called the Masking Color or Key Color. For our course project, we'll write special sprite draw routines that will look at each sprite, skip all Key Colored Pixels and draw the rest of the Sprite. Instead of a big black box around our object, its a big Key Colored Box that isn't drawn when we draw the Sprite. When you draw your sprites, start with the Key Color and draw a box a little bigger than your object. Then draw your object INSIDE the box. Usually I use color 0 as my key color and make it BRIGHT RED or GREEN. Make sure it's a bright color you are not using in the object. The purpose of the bright weird color is so you can see all the edges of your object and how they will look against a high contrast, ugly background. It doesn't matter anyway, since this color is masked out when the sprite is drawn. Aliasing and Anti-Aliasing Aliasing is also called the "jaggies". Because we only have so many pixels to work with in our images and because they are rectangular, all the images we draw will have jagged edges around them when seen against a high contrast background. Get used to it. Anti-Aliasing is a technique of smoothing out the appearance of the Jaggies by picking colors between the object color and the background and making a smoother transition along those edges by putting those colors at each jagged edge (alias). IF YOUR IMAGE EDITING PROGRAM HAS ANTI-ALIASING, TURN IT OFF!!! If you Anti-Alias an object with a bright green background, you get a weird, erratic, ugly line around your Sprite that isn't masked out by your drawing program. If you anti-alias against a black background, you get ugly brown lines that look horrible against any other background. If your objects overlap, the results are usually horrible. If you are rendering 3D animations for your game art (like OidZone, I used Autodesk 3D studio, by far the most useful program on the planet for doing 3D work) Set your background to an ugly color you aren't using (3DS always makes this color 0) and turn Anti-Aliasing OFF. Every once in awhile, (the ship in OidZone, for example) you will want that ugly outline around the object, say if your intended background is of similar colors to your object. In those cases, turn anti-aliasing ON, use a BLACK background, and render the animation. Then load the animation into your image editor, fill the background with an ugly bright color, then edit the ugly brown outline to suit your needs. When you are done REMEMBER TO REMAP YOUR ANIMATION TO YOUR GAME PALETTE, and MAKE SURE THE UGLY BACKGROUND COLOR IS YOUR KEY COLOR. =========================================================================== End of Week 4 - Basics of Computer Art and Art Specification Part 1 - The Basics of Computer Art. If you have any questions for group discussion post them to the list server. E-mail any other questions, comments or suggestions to lgp at exo.com Mail monetary donations large or small to Lord Generic Productions 1218 Karen Ave Santa Ana, Ca 92704 A Crash Course in Game Design and Production - Euphoria Edition (C) Copyright 1996,7 Lord Generic Productions - All Rights Reserved ===========================================================================