Theory - Game Development
Development Process - Making a Video Game - Genres - Art - Engines
Intro to Game Development
The game development process usually begins with a game concept. Among hobbiests and small teams, the concept may be formed in the head or written on a napkin, but in the more serious studios it is written down carefully. This document guides the prototyping phase, low-fidelity paper versions of the game, or very simple digital versions of the game are developed, tested, and explored. If the concept looks promising, more documents are created, such as the art bible the production plan, and eventually leads to the creation of the game design document as well as the technical design document.
At this point, production is begun, a stage that can last from several weeks to a few years. An alpha version of the game is finally produced at which point the game is playable from beginning to end. This is tested and de-bugged until the beta version of the game is developed. The beta version is similar to the alpha version, but should include all final art assets, and be stable enough that a selection of customers can play the game and report problems. The final stage is sometimes called the gold stage, where the game has gone through complete testing and has passed a final review.
The Game Concept
What is the goal or purpose of the game? What is the premise? Is it a tetris-like game where the player arranges geometric forms while they fall? A two-person shooter that takes place under water? A learning-game where the player "becomes" each animal they are studying? The concept should include a short treatment on player motivation, as well as some discussion as to what makes the game unique. This unique factor is sometimes called the Unique Selling Proposition. What are the unique features to the game that would make someone want to buy it? Also key in the game concept document is the genre - how does this game fit within the existing game ranks? Is it an action game, an adventure game, a sports game, a simulation? Some thought should also go into the rating you hope the game will achieve, and what platform the game will be played on (Mac, PC, console, iPhone, etc.). Another very important consideration is the competitive analysis; several current, successful titles should be reviewed and compared to the proposed game, including why the proposed game will compete favorably. Finally, what are the goals of the game? Are you hoping to make the player feel tension, happiness, creative freedom, intellectual acheivement?
The Art Bible
This is a collection of sources, sketches, storyboards, and digital resources to be used in the creation of the game. The art bible keeps the art team focused on how the characters, terrain, environment, pickups, interface, lighting, etc, should look, so that the game has a consistency between artists, scenes, and levels.
Technical Design Document
This document focuses on the game engine, what features it will have, how it will be leveraged to move from concept to finished game. If the game engine is not to be developed from scratch, this document can include an overview of the features to be used in the engine, and any custom features that may need to be added in order to support the game's goals.
Project Plan
This document plans the stages of the development of the game in the form of a schedule, taking into account all of the necessary game design, prototyping, creation of documents and other planning, and goes through actual production of alpha, beta, and gold versions of the game. Here the man-hours to create the game are calculated, as well as all other costs including costs for the software and any other expenses with operating the company.
How to Make a Video Game
This section provides advice and resources to help you plan and create a video game. The steps below are intended for those who are new to game development. A more documentation-rigorous method is standard for game developers who have experience with producing working games.
Step 1: Decide what kind of game you want to make
Do you want to make a 2D game or a 3D game? Adventure game, sports game, or simulation? Should the game be playable on a PC, Mac, Linus, console, iphone, or cellphone? Is it a single-player game or multiplayer? Will you utilize First Person perspective, Third Person perspective, "god" perspective? See the Game Genres page for a breakdown of the different types of games you could develop.
Step 2: Consider your skills, tools, budget, and resources
Now that you have an idea of what kind of game you want to create, take some time and do a reality check; how well do you and your resources measure up to the challenge you have set for yourself? Are you skilled with creating art assets such as a game environment, pickups, skyboxes, characters? Can you animate? Can you program or script a game engine? Do you know anyone who can help? Do you have the budget to hire help? Do you own or can you afford the necessary hardware and software to build the game? Have you decided on a game engine? Get an idea of the different options for Art Asset creation by clicking the Game Dev Art Assets page. Get an overview of the different Game Engines out there by clicking the Game Dev Game Engines page.
Step 3: Revise Plan based upon Reality Check
With your skills and resources clearly in mind, and having read through the sections on Art Asset creation, game engine selection, programming, and game genres, revise your plan so that it and reality coincide. The other aspect to this step is to simplify your plan so that it is doable in a few weeks or months. It is very common in the world of game development to have young, inexperienced artists and programmers with huge, impressive ideas but no real means of getting the game accomplished. Start small and simple, finish something, and build from there. Create a basic game design document that establishes some framework for how the game should play, what the rules are, etc.
Step 4: Make a Paper or Low-Tech Prototype
Take your game idea and test it out as if it were a board game. Work through the game-play with your development team or some friends. If it's not interesting as a board game, it probably won't be interesting as a video game. This is not always possible, of course; a game like asteroids is not easy to simulate as a board game, so in that case you might need a digital prototype that is very simple but generates the "feel" of the gameplay. The bottom line here is to test your game idea out before investing too much time and money into it.
Step 5: Aquire the Hardware and Software
When you feel sure of your objective and have a good idea of the hardware and software options, it is time to buy some equipment. If you don't have much money, you will at minimum need a computer; almost all of the software you will need to create a game can be had for free, but the tradeoff is that you may not be using software that is the best for the job, and it may be hard to find team members who are knowledgeable about that software. Also, if you are hoping to leverage your game development experience into a job, you may want to use, as much as possible, the same software the game studios are using. Please Note: If you are not developing a commercial game, you may be able to use educational versions of software to develop your game. See our Developing Game Art and Choosing a Game Engine pages for more information.
Step 6: Prototype High-Risk Features
Now that you've developed a realistic plan, are convinced that the gameplay is compelling, have acquired the hardware and software you will need, and have acquired the necessary team, you are ready to see if you can actually develop the features you will need for the game.
In any game development, there are going to be those features that are high-risk; perhaps you need to be able to incorporate a special kind of collision detection, or you want your character to be able to fly around in the game environment. What happens if you spend three months developing your game and then discover in-game flight is impossible in the game engine you have selected, or you find that you don't have the coding talent to pull it off properly? Well then you may have just wasted three months of work. Without in-game flight, your levels will need to be redesigned for some kind of land travel, and many of your game mechanics will have to change as well. With that in mind, it makes sense to create rough prototypes for every high-risk feature in your game before you begin full-blown production. It is important to know where you stand with the high-risk features, and to have the ability to accurately estimate how long each phase of development will take.
Step 7: Establish the Game Art Pipeline
Getting the art into the game can be straightforward or mindboggling, depending on the game engine you decide to use, and the 3D modeling and animation software you are developing it in. It is critical at this stage to truly understand exactly how you will get all of the game art, including terrains, skyboxes, pickups, and especially rigged characters, into the game. Develop a system that works, and document it so that everyone necessary knows how it is done, to avoid confusion and time loss down the road.
Step 8: Develop or Acquire the Game Art
The game art can be a massive part of any game development effort. While we go into the process of developing game art at GameDev: Creating Game Art, there is also the option of acquiring the game art. Sites like Turbosquid regularly sell entire 3D cities, fully rigged 3D models, fully animated models, perhaps everything you need, potentially saving you an enormous amount of time. However, depending on how the game art was rigged and animated, you may still need to make changes in order for that art to come successfully into your game engine. Before investing in too much third-party game art, test to see how it is going to work out in the real world.
Step 9: Develop the Alpha Version
The next reasonable phase would be to create a working version of the game, where everything of importance works, though there may still be some rough edges and bugs. At this phase the the game art can still be simplistic or borrowed from stock characters, pickups, and landscapes.
This purpose of the Alpha version is to get the game out there in a playable format for testing. This will be the first time the game as a whole has been playable, from start to finish. This is a time not only for debugging, but to correct any last minute issues with design, playability, and interface.
Step 10: Develop the Beta Version
The beta version is the Alpha version, debugged, with finished game art. This version should be good enough for select members of the general public to play. There will still be bugs in this version, but they should not be so numerous that it is a frustration to test the game out.
Final Version
This version of the game is ready for distribution; it has been tested by numerous end-users, on all intended platforms, in as many situations as reasonably possible. Any significant bug fixes beyond this point can be distributed in either bug patches, or incorporated in subsequent releases.
Game Development Genres
This section addresses how we classify games; the different genres, that define games, and the relationships between them.
Game Genres, Taxonomy, or Classification
It is hard to define a complete list of games since for about ten years now, hybrid game genres have been developing. One we list below is the Action-Adventure, combining elements of both genres. Doubtless other hybrids have formed, but this list should serve as a solid starting point.
- Action Action games include platformers (like Super Mario), shooters (like Quake), racing, and fighting games (like Primal Rage).
- Adventure The key focus of an Adventure game (like Myst) is that the player is an explorer.
- Action-Adventure Combines elements of Action games with Adventure games. As you explore, you engage in action such as fighting. Tomb Raider is somewhat of an Action-Adventure since there is a strong exploration element.
- Casino Usually based on games such as Poker and Roulette, taken directly from real casino games.
- Puzzle Usually fast-paced, where a puzzle (like Tetris) must be solved in a certain amount of time.
- Role-Playing games (RPGs) In RPGs (like Final Fantasy) the character plays a role as fighter, thief, wizard, etc, and engages in some kind of quest, making this genre similar to Action-Adventure.
- Simulations Flight sims (like Microsoft Flight Sim), city development sims (like Sim City), and sports sims (like Madden Football) are all examples of simulations.
- Strategy Strategies include turn-based strategies (like chess), and real-time strategies (like Homeworld), where the strategy happens at a real-world pace.
- Trivia Trivia games challenge the player to recall trivia from different subjects as part of the gameplay.
- Massively Multiplayer Online games (MMOGs) MMOGs are Role-playing games (like Everquest) that allow the player to engage in gameplay and chat with thousands of other players in quests and team tasks that can sometimes take days or weeks to accomplish.
- Virtual Worlds (PSWs) Virtual worlds (like Second Life) typically do not have the strong role-playing component of MMOGs, and focus more on chat, exploration, and creation of user-generated content.
A Game Classification Grid
Some kind of classification grid can help us to better understand the different genres of games, and the relationships between them. In the early days of video game development, classification of games was pretty straightforward. But since the early 2000s, there have been many hybrids of genres, to the point that it is harder and harder to classify a game specifically. One such game taxonomy was developed by Craig Lindley a few years back and has, so far, been the best system of game classification we have seen. On the Flash movie below, click the arrow to see the different aspects to this interesting game-classification system.
What this system does is to use a triangle as a grid, with simulation, ludology, and narrative at the points of the triangle. All games fit somewhere between these points. In Lindley's "unified classification plane", simulation refers to games that are more about simulating reality than anything else. A good example of a game that is strong in simulation is Flight Simulator. Ludology refers to game play. A game that is purely about game play, such as tetris, or a computer-based chess game, would be much stronger in ludology than the other forms.
Finally, narrative refers to games that are strong in storyline content; an extreme example of a narrative is a movie. A movie is purely narrative, purely story. Role-playing games lean more towards narrative than they do towards game-play or simulation.
With this triangular grid as a backdrop, we can better understand how the different games out there relate to one-another, and we can also better understand our own game development ideals. The short animation below depicts Lindley's triangular game taxonomy, and adds another element to it as well. Click the arrow to see the Lindley's original game taxonomy, and then continue to click the arrow to see what happens when you extrude the triangle out, putting pure entertainment at one end of the classification system, and pure learning at the other end.
The small circle placed on the triangle is something every game developer should try to think through; what kind of game are you interested in making, and how would it fit into this taxonomy? How does it relate to the ideas of simulation, ludology, and narrative - in short, where is your sweet spot?
Game Design
How does one go about designing a game? What does the game designer focus on?
Game Design Resource
Some of the contents of this page were paraphrased from
Game Development Essentials: An Introduction
This book is simply the best overall guide to the game development process we know of. Highly recommended.
Game Design
The game designer focuses on gameplay, levels, and interface design. The overall feel of the game, the vision of the game, is the responsibility of the game designer. This includes the story behind the game, and the mechanics of the game.
The Low-Fidelity Prototype
With so much responsibility sitting squarely on the shoulders of the game designer, there has to be a way to test ideas and concepts to see if gameplay and interface design will work, before investing in the costs of building an expensive digital prototype. This is where the low-fidelity prototype comes in. A paper-cutout game, using random board pieces as players and a flat, art enhanced piece of paper or cardboard as the game level, give the design team a chance to test out ideas quickly and easily.
What must the player do to get to survive the level, and what must they achieve to get to the next level? Where are the pickups? What hinderances are there? Where are the enemies or challenges? Where does the score and inventory show up on the screen? What movements can the a.i. players perform? These movements can be performed by a member of the design team during the gameplay. If it is a multiplayer game, the different members of the design team can play against each other. Is the gameplay interesting? Change the rules or the layout and play some more. Don't commit to developing the game art and coding until you have a sound idea for the game, or you will waste many development cycles.
The Story Behind the Game
There's a story behind most video games. Often it is the story behind the game that captures the imagination of the players more than the game itself. Two common story structures are the Hollywood 3-Act, and the Hero's Journey.
The Hollywood 3-Act has (obviously) three acts. The first act introduces the character and the character's problem. Sometimes this first act dives right into the action, waiting till later to explain the details. The second act is comprised of the obstacles the character has to overcoming his/her problem, which creates conflict and dramatic tension. The third act sees the problem solved, after the character has worked through some or all of the supposed obstacles.
The Hero's Journey is a story structure that is seen in many myths and stories throughout history. It's stages are Exposition (introduction of main character), Call (the call to adventure), Refusal (hero initially rejects the call to adventure for some reason or other), Information (hero receives further information about the call that makes him decide to do it), Departure (hero departs into the adventure, leaves the normal world), Testing (hero faces challenges, fears, etc), Reward (hero receives some kind of reward for overcoming the challenges), Ordeal (just as hero seems to have completed the journey, there is a final ordeal of some kind that can be the biggest test yet, hero displays vunerability, and seems likely to fail), Resurrection (when the final ordeal is overcome, the final enemy or challenge resurfaces for a final challenge to the hero), Return (the hero returns, and his transformation is obvious, especially in the context of his/her original surroundings.
Borrow from the Hollywood 3-Act or the Hero's Journey to form your own story ideas, but don't get stuck to their exact formulas or your story will be too predictable.
Gameplay
What separates games from all other media is the interactivity - the sheer number of choices a player has, and that each of those choices can have a consequence on the gameplay. The choices a player makes are directly tied to the challenges specific to each game's landscape. A game usually has rules that govern what a player or an enemy can or cannot do, apparently random happenings that can surprise and influence the player(s), and conditions that are necessary for failure or victory. A game can be Zero Sum (only one clear winner), or Non-Zero Sum (player collaborations are permitted as in some multiplayer games).
Challenges within a game can be for the player to advance, to win a race, to solve a puzzle, pure exploration, to capture a flag (or other item), to escape, to create or build something, etc. With each challenge there is a necessary balance such that new players are able to overcome some of the challenges, yet skilled and experienced players are not bored.
There are two basic ways to create games that work for both new and seasoned players; one is the "amusement park" format where the game is layed out such that some of the "rides" are more advanced, like the roller-coaster, and some of the rides are more like kiddie rides. The player can select which challenges to participate in. The second, and more common method of appealing to different levels is to have distinct game levels in the game, so that only those players skilled enough to complete level 1 are allowed to play level 2. This in some ways protects new players from the more difficult and frustrating gameplay.
Video Game Fun
What makes a game fun? What do we mean by "play"?
What is a Video Game?
A video game is a game that involves user interactions with a user interface to generate visual (usually) feedback on a video device. A game is a structured activity one engages in, usually for the distinct purpose of having fun or enjoyment, but can also be used as an educational tool. The distinctions between games and work are not entirely distinct, though a chief difference is that work is usually carried out in order to receive pay, and games are usually played for enjoyment (or in some cases for learning). Games can involve goals, rules, challenge, adventure, interactivity, rewards, competition, and scores.
What is Fun?
Now that we know that video games are supposed to be fun, what is fun? How do we define "fun" ? Webster says fun is 'someone or something that provides amusement or enjoyment', 'a good time'. Synonyms for fun include amusing, delightful, diverting, enjoyable, entertaining, pleasurable. Anonyms include boring and dull. While this word study gives us a pretty good idea about what the word 'fun' means, there are other perspectives.
Flow in Games
Flow is the feeling of complete and energized focus in an activity, with a high level of enjoyment and fulfillment; components of flow can include that we can handle the activity, we are able to concentrate on the activity, the activity has clear goals, the activity has direct feedback, we feel that we control the activity, our worries and concerns disappear, and our subjective experience of time is altered.
According to Mihaly Csikszentmihalyi, the key to flow is having a high correlation between Challenge and Abilities. If the challenge is not high enough, we are bored. When the challenge is too high, we become anxious. This correlation plays out not only in video game play, but in how we perform art, music, or in our working lives; if we are not challenged in these areas, or are challenged too much, we can experience the same symptoms.
About the flow state, Csikszentmihalyi says that it is "being completely involved in an activity for its own sake. The ego falls away. Time flies. Every action, movement, and thought follows inevitably from the previous one, like playing jazz. Your whole being is involved, and you're using your skills to the utmost.
Flow theory is a part of positive psychology, which focuses on improving human lives and encourages psychologists to focus on building human strengths.
What is Play?
Now that we have an idea of what fun is, what is Play? In looking at the psychology of play and how necessary it is to psychological health, it is hard to miss the work of Dr. Stuart Brown, who studied the play profiles of over 8,000 people, as well as studying play of animals, and how lack of play was a key factor in the lives homicidal young males.
Animals play, even between species. Why didn't the polar bear eat the husky? What about the Kitten and the crow? Play naturally occurs not only between animals but between animals and humans - play signals trust , cooperation, intimacy, creativity, and more.
Games can be made more fun, compelling, and interesting by including Beauty, Immersion, Intellectual Problem Solving, Competition, Social Interaction, Comedy, Thrill of Danger, Physical Activity, Love, Creation, Power, Discovery, Advancement and Completion, and Application of an Activity.
What makes a game fun, finally? That depends on who you ask. For some, the mere act of problem-solving is fun. Others enjoy being able to do things, like drive at incredible speeds, flying jet aircraft, or fight dragons, that they cannot do in real life. The challenge of solving a problem under pressure makes for an exciting experience.
If the game is convincing enough, and often, even if it isn't, the player can be drawn into it and lose track of the world around them. The aspects of beauty, great graphics, realistic sounds, realistic physics, 3d, etc, can improve the immersion of the game so that the player believes they are in a real environment. However this immersion is not absolutely critical; a good game design like asteroids or tetris can hook a player simply by virtue of the game-play.
Video Game Art
Game Art Asset Production Tools and Techniques
Game Art Asset Production
To create the game art you need software. If the game is a 2D game, a 2D paint or vector-based software solution may be adequate, such as Flash, Photoshop, or Illustrator. If the game is a 3D game, you will need modeling and animation software.
2D Game Art
A 2D Flash game can be created with Flash alone, since Flash has the ability to create graphics, and the ability to script those graphics (Actionscript). Graphics for a 2D game using a game engine such as the Unity engine can be created in Photoshop, Flash, Illustrator, or any other graphics package that is able to save a JPG, GIF, or PNG format. While the creation of game art for a 2D game is much easier than for a 3d game, the characters must still be animated to give the illusion of life.
3D Game Art
3D Game Art is first usually sketched, then modeled according to the sketch, then the model is "unwrapped" so that it can be properly painted in a paint package like Photoshop. Then, if the game art needs to be able to move around like a character, the model must be rigged with some kind of skeletal bones-type structure. In this rigging process, the vertices of the model mesh are assigned to one of the many supporting bones, so that when the bones move, the mesh moves as well. Finally, the skeletal structure of the character is animated in various cycles to achieve the illusion of movement and life.
Idle, Walk, and Run Cycles
In both 2D and 3D games, the characters must be animated in some basic ways; the most basic animation cycle is the Idle cycle, where the character is just standing in place, apparently not doing a thing. However, if you look closely, the character usually will appear to be breathing, perhaps shifting weight from foot to foot, and perhaps looking around for a friend or an enemy.
The Walk cycle is a cycle where the character takes a few steps - then that cycle is repeated when the game is scripted, so that the short walk cycle loops, over and over, giving the appearence that the character is walking naturally. The Run cycle is exactly like the Walk cycle, except that the character's movements are more pronounced, and cover more ground. There can be other cycles as well, such as a fall or death cycle that can occur when a character is shot or falls down for some other reason. Jump cycles, side-run cycles, backwards run cycles, attack cycles, and others just add to the possibilities for character movement and are created based on the demands of any given game.
3D Modeling and Animation Solutions
Free Modeling and Animation Software
If you have chosen to go the route of a 3d game, you are going to need a Modeling / Animation package. Milkshape is free, and though it may be a little clumsier and less powerful than the heavyweights like 3ds Max and Maya, it can get the job done on a budget. Read more about (or download) Milkshape here. Milkshape works Also check out this free Milkshape tutorial here.Inexpensive Modeling and Animation Software
Cinema 4D (C4D) has struggled for years to have the same kind of capabilities as the more advanced and established packages out there. Over the years this solution has improved and now has a respectable reputation. Cinema 4D Core is the base package and goes for about $995 in the US. Cinema 4D is made by a company named Maxon; Click here to go to the Cinema 4D page.
3ds Max and Maya are both solutions owned by Autodesk, both of which have very powerful capabilities and strong followings. Both of these are in the range of $3000, depending on where you live. In fact, until Autodesk bought Maya, 3ds Max and Maya led the market in 3d modeling and animation. They competed neck and neck for first and second place in overall worldwide market-share. 3ds Max was always ahead in the field of Game Development, and Maya was winning out in the field of Movie making. In one fell swoop, Autodesk doubled their market penetration by purchasing Alias, the makers of Maya. If you already own or are considering 3ds Max, you should also consider our book Creating Game Art for 3D Engines which goes step-by-step through the process of creating game pickups and characters with 3ds Max.
Click here to go to our Links page and look under the section for 3ds Max, which discusses how to get a student version of 3ds Max, how to get the full version, and more.
Don't forget to factor in your time and potential frustration
You must also throw time and frustration into this balancing act. That is because when you select a package, you are now constrained to its way of doing things. You may find that Milkshape gets the job done, but you can't always find answers to your questions about how to use it. You may wish for the same huge user base and community that Max and Maya have so you can ask questions and follow the trails that others have left, and so that you will have access to tens of books written on modeling, texturing, animating, etc in those packages.
Coding the Game
Scripting
Once the art assets are exported, you need to know where to place them so that the game engine can find them, and how to build or modify existing scripts so that the game engine can find the models and their textures. Many games can be achieved with scripting alone - some simple c-script, python, or javascript modifications can have your art alive and moving in the game in just a few minutes. Of course it takes a while to figure out what those changes should be; the best possible situation is if you have sample scripts you can modify and experiment with.
The Unity 3d engine allows you to use three different scripting languages: a version of Javascript (which is compiled), Boo, or C#. The nice thing here is that you do not need to own a compiler, Unity compiles the code for you - you just change what it says, save the file (.js or .cs) and hit "go" and the changes take place. The Torque engine uses C-scripting for scripts (automatically compiled), and you may also use C++.
Other engines use various languages but most of them have a scripting language that will enable you to do most of what you want fairly easily.
Here are some hints if you are new to scripting in a game engine:
1. Find examples of existing solutions and modify them. Do this carefully, so you can remember what you changed, and note the result. Modifying existing code is one of the very best ways to learn how to program.
2. Make lots of comments in your code. Commenting in Unity's Javascript looks like this // - anything behind the double slash is a comment and will not be compiled by the game engine at run time. Commenting helps you remember what you did, why you did it, and what it does, especially a year later when the code begins to look unfamiliar.
3. Simplify, simplify, simplify. Whenever you cannot solve a complex problem, see if you can throw out anything that is confusing the issue. You want a hovering vehicle that shoots, can take damage, etc, etc? Start with a hovering vehicle. Then see if you can get it to shoot, or see if you can get a simple box to shoot at a target. Solving a mathematical equation with many variables is complex, but solving for one variable is fairly straightforward.
4. Break down complex problems. This is related to the idea of simplification above.
5. Read the documentation; find everything you can that may address the problem you are trying to solve by first checking the game engine documentation, then checking the resources (usually compiled by users of the game engine) and then checking the forums. Usually that will get you your answer, but if you can't find a solution, it's time to get on the game engine forums and ask for help. Most of the time someone will give you that clue you need to solve the problem. If none of this works, you have two choices - change your idea, or trial and error a solution until something works. Again, this will go much faster and easier if you focus on the root issue and leave out any peripheral code / functions.
Programming / Compiling
Some engines are more demanding here than others, and the impact on you as a developer will vary depending on what it is you want to do. For example, if you want to make a game where you can fly around in the game, scripting may or may not be enough to get you through the process. In the Torque engine, you will need to write some C++ code and compile it to create a flying game, since it is not by default flexible enough to create flying games, being at its core more of a first person shooter engine. In the Unity engine, this is not a problem since the engine has no particular bias.
Now there is another side of this, and that is that if you are making a first person shooter, you may find more tools in Torque than you will in Unity for your type of game.
Compiling - does the code compile automatically, or do you need to run a compiler each time you make a change? The Unity engine compiles your code every time you run it, automatically, whether you wrote your code in Javascript or C#. With Torque, C-script will compile automatically, but you will need to use a C++ compiler to compile any C++ code before running it.
Theory - The Game Engine
You can't make a game without a game engine; this is software that allows you to tie your game art (pickups, weapons, characters), some kind of terrain or environment, various triggers and effects together into something that looks like a game.
The Range of Engines Available
The game engine is one of the critical pieces of the puzzle. Some engines are better documented than others, some are more powerful, some more flexible, some have better user communities than others. Give the game engine a fair amount of consideration before spending your time and money on it. Do NOT assume anything - there is a fair amount of hype on some of these game engine sites so be careful.
We suggest you visit the website for the game engines you are interested in, read their free tutorials, check out games that were created with the engine, and read the blogs and forums for each engine. Here you can get some of the inside information coming from the users themselves. Also check out http://www.devmaster.net/ for reviews of game engines and ratings. Whenever possible, try out the 30 day trial version of a game engine to see how usable it is and how hard it is to import art assets.
Free Game Engines
Nothing beats free. But what can you get for free? Genesis 3D, Ogre, Irrlicht, NeoEngine, Crystal Space, Quake, and Ultimate 3D are among the more notable names.
Genesis 3D is used as a foundation for The Reality Factory game development environment. You can see a free tutorial for the Reality Factory here.
Ogre is a rendering engine and not a game engine. There is an engine called RealmForge GDK that makes creating games with Ogre as the rendering agent possible, but the physics, ai, and other componets are separate units and thus integrating all can take much time and effort. If you aren't experienced with C++, and willing to hit the slopes of a steep learning curve, leave this option for another time. Check out the Ogre engine here.
Irrlicht is a simpler engine than Ogre. We will try and get a better perspective on the Irrlicht engine at a later date. Check out the Irrlicht engine here.
The Unity game engine, formerly $200, is now free. Doubtless this was done to increase the user-base and recognition of the engine, and thus increase sales to their iPhone and Pro engines. Unity has made major strides in the just 2009. Formerly only available on the Mac platform, it added the Windows platform for development in May 2009. Based on a new-generation drag-and-drop technology, capable of easy art asset imports, Unity also allows streaming over the Web. Find out more about the Unity engine at www.Unity3d.com.
This means, incredibly, that your game can play in a browser. We performed an eval of Unity in June of 2009 and built a complete game in less than 30 days. Learn more about the Unity3D engine at www.Unity3d.com.
Inexpensive Commercial Game Engines
Before we start this section, let us inform those who aren't aware that the serious, world-class game engines used by your favorite game development studio can cost in the hundreds of thousands or millions of dollars. With that perspective, you can appreciate that the solutions we will be talking about can be had for $1200 or less.
GameMaker is the cheapest "nonfree" method of game making, as long as you're not hoping for something very complex. GameMaker pro costs $20. Click here to go to the GameMaker page at YoYo games.
The Unity Pro engine costs $1500 and includes features you don't get with the free version, such as automatic shadows. Probably the most notable thing about both the free and pro versions are the super-slick, drag-and-drop interface. Unity is, for the most part, just plain fun to work with because of this interface. It should also be mentioned here that Unity has an iPhone game engine as well, that goes for $400 for the regular version, and $1500 for the pro version. Learn more about the Unity engines at www.Unity3d.com.
Another engine to check out is the C4 engine. The last time we checked the C4 engine was $350 for a lifetime license which includes upgrades. Not too much to say about C4 at this time except that it gets strong reviews and has a loyal following. At last check, the C4 engine did not have on-board physics but that is in the works. According to reviews, the C4 engine gets strong marks for its rendering capabilities, is said to be written in very clean code, and is, for better or for worse, the result of a single, gifted individual.
Back in the mid-2000's, the Torque game engine (TGE) was the most powerful game engine you could buy for a mere $150. At the time of this writing (March 2009) the TGE is no longer available and has been replaced by the Torque Game Engine Advanced (TGEA) which goes for $295. Recently Garage Games announced the pricing for the new generation game engine called Torque 3D, which will retail for $1000 (and only this version will stream over the web). With Unity3d coming of age, the game engine landscape has changed; however, Torque is still worth a good look. Check out the Torque TGEA engine and Torque 3D at GarageGames.
Not many people think of Adobe Director as a game engine, but you can create pretty compelling 3d games with it. These games can be made to stream over the web, or play directly off of the users machine. The graphics are decent but not anywhere near what you will get with the Unity3d engine. Games can run on Mac or PC. It currently costs $1000, in the US. Geometry can be imported from 3ds Max among others. Director 11.5 was recently released. Director uses lingo or Javascript for coding, has support for Direct X 9, and can access Flash movies. Click here to read more about Adobe Director 11.
No matter which engine you use, if you are using 3ds Max as your modeling and animation package, and want to learn how to create characters and pickups for your game, take a look at our book on Creating Game Art for 3D Engines.
Want to see some ratings for the various engines listed above (and more)? Go to DevMaster.net for engine comparisons from users.
Warning: Read the Game Engine License Carefully
Want to make a non-game? That is, a simulation, educational game, edutainment, etc? You may be in for a suprise. Think you are qualified to buy the independent version of a game engine? Maybe, maybe not. We give a few examples below as to things to watch out for but don't take it from us, check for yourself - read the license agreement and ask if you're not sure, before you spend your dollars.
The Unity license basically states that you can develop on the independent developer version (free as of this writing) as long as your company did not gross more than $100,000 in the past year. If your company is doing well enough to make $100,000, you must develop on the professional version, which costs $1,499. There are no restrictions if you want to use Unity to make a non-game, ie, you have no extra fees or version stipulations.
With the Torque engines, you will need to pay an additional $3000 fee if you want the ability to make a non-game. This could be important to know before you jump in. We are not sure about the other engines at this moment, but remember it is your responsibility to read the license and ask if you don't know.
Want to get into the industry?
Just as in our section on game art we thought it only right to mention that, if you are planning on a career in game development, you will ideally want to have some experience on the same engines the studios you hope to work for are using - if possible. Cost could be prohibitive, but be smart and do the legwork, find out whos using what and let that be a factor in your decision.
Compatibility with your OS and Modeling / Animation software
This may sound obvious, but reading the forums for different game engines make it clear that developers are often unpleasantly surprised by compatibility issues. Make sure everything is compatible. Up until spring of 2009, you could only develop with the Unity engine on a Mac platform. Now Unity is available for development on a PC, which really changed the landscape of the game development world, at least for independent gamers. Consider also the modeling and animation software - make sure the game engine supports your package or choice; if they are not compatible, you'll either need to choose some other modeling and animation software, or you'll have to pick another game engine.
Exporters and Converters
You've got to test out the exporters that will take the models and animations from your software into the game engine. This is never an easy task; it involves doing some reading. The Unity3D engine natively supports many formats including Cinema 4D and Maya, and supports all the others via FBX export. To use FBX, you need to visit the download site for your software (for example, if you are running 3ds Max, go to Autodesk.com and download the latest FBX exporter for your version of Max.) The Torque engine uses a DTS exporter that you can get from their website.
You need to understand what kind of hierarchical links need to exist between different art assets; you also need to understand how to install and access the exporter (usually these are loaded into the menu system of your modeling/animation software).
When you work with the Torque game engine, you will, for example, want a bounding box to be linked to your models so that they can collide with other things in the game. Even your character will have a bounding box that is placed over the character and linked to it. When your character bumps into an object in the game, it's really your bounding box that is bumping into another object's bounding box. The image below illustrates this concept. Here you can see the bounds box positioned around the character. In this case the character has no mesh, since we are at this point at the animation stage of the game, and the mesh has already been established.
What are all the other boxes around the character? These are helpers - depending on your software, they may be called other things - dummy objects, perhaps - but what they do is give the engine you are using, a way to hook to your game art. For example, the green box near the character's right hand is a weapon's mount. The box near the character's eye is for the eye mount. The box behind the character is the camera mount. More figures on bounds boxes as well as a figure on the hierarchical links between game art objects can be found here.
Study the Engine's User Community
You don't want to take on the task of making a 3d video game on your own. You are going to need help. One of the most proven ways of getting answers is by asking others in a community that uses the same engine. Before you commit to an engine, that is, before you actually buy it, check out how strong the user community is, and how much help they seem to give each other. Visit the websites for any given game engine, see what the community is like, before you commit.
Investigate the Engine Manufacturer's Resources
You are also going to need some learning resources - manuals, pdf files, html pages, whatever you can get your hands on that tells you how the engine works and how to make your ideas a reality. Check out the resources available with the game engine you are considering.
Try Before You Buy
If possible, download a trial version of the game engine. If you can get your hands on a 30-day trial copy of the game engine, you owe it to yourself to clear some time and try before you buy. Attempt to bring your game art in, in fact do some prototyping if you can, so you learn just how much of your game vision is going to be possible with the prospective engine. It definitely helps to have a clear view of what it is you want to do before you jump in, and then it is also helpful to have a clear schedule so you can really give the engine a fair look during those 30 days.
If there is no 30-day trial copy of the engine available, then you need to be extra-cautious before you buy. To "buy a pig in a poke" is a colloquial English expression for making a risky purchase without inspecting the object beforehand. Don't do it unless you've got the money to burn, or you have spent many objective hours on the forums and blogs for that engine and you feel strongly this engine has a good chance of working for your project. You can't always trust the marketing, but you can usually trust what the real users are saying.