Building a game from scratch

This is a small guide meant mostly for students who are taking their first steps in game development. It focuses on the efficient design approach and explains how to avoid most common mistakes. Although it uses 3ds Max and Unreal Engine/UDK as an example, it can be applied to any game engine or pipeline that is available out there.



Resource Management

It is a good idea to start only those projects that you have the resources for. Meaning, if you don't have a character animator, make a game that doesn't involve any character animation, like for example, a racing game. And if you don't have a track designer either, then go for a 'space dog fight simulation', in the vein of 'Freelancer' and 'Wing Commander' games.



Building Blocks

Focus on the gameplay and testing first. Common mistake is to start off by doing bunch of content like art, animation and audio. It would be much better to start your game, as I like to call it, 'in dull gray'. That means, having only essential building blocks for your game world, such as:

-Couple of materials; 'Texture Guide' being the most important.

-Basic Static Mesh shapes: pillar, staircase and platform.




Of course, you can throw in anything you think may be relevant to your gameplay like wall, ladder, doorway or even some characters and weapons to test your ideas. But spend very little time on doing such content, because it doesn't matter at this stage. It is perfectly fine if your water surface looks like a giant, blue slab or your characters look like blocky, faceless, 200 polygon humanoids.


During that process, the goal would be to test your game and see what works well and what has to be changed. So, if you are building a vehicle shooter with huge terrain setting, spend some time testing things like character's movement and how well does it work with the terrain shape & overall world size. For example, if player character sprints at a turtle pace, the game will be boring. And if he sprints faster than a vehicle, then vehicles will be pretty much useless.



Maps

Once the core mechanic of your game is established you can start making some maps. At this stage, your goal is to design fun moments for the player and fiddle with scripting and gameflow of each map. Treat your maps as 'playgrounds' or 'theme parks' for visitors (players) to enjoy. Again, you can build majority of your maps by using the base building blocks (pillar, staircase and platform).




Just to note that in most studios, the 'environments & maps' pipeline is very much like this:

-All maps start off as blocky structures; a 'BSP shells' covered with basic shapes used more as an indication than as a final solution. This stage is known as 'shelling'.


-Map is then being tested, making sure that all works as planned; things like 'sightlines', 'running and sniping' distances, 'vantage points' accessibility & usage etc. In this phase, it is really easy to edit the map and add new paths with a few quick BSP operations.


-Once happy with how map plays, studio usually hires concept artists to create cool looking environments. Those concepts are then being analyzed by lead artists and broken down into a environment art lists. They are organized per level set (or kit), like 'Volcano World Set', 'Alien Jungles Set' etc.


-As soon as those environment pieces become available, level designers will start covering their maps with decorative meshes. This stage is known as 'decorating' or 'polishing'.


-Finally, art director or level lead will take each map and tweak post-processing, lighting and effects (particles, volumetrics, fog volumes) to give the map it's final look.



Scale & Compare

When constructing your game world, it is always a good idea to adopt an already established world scale from other games, because that scale has been tried and tested. If you are using UDK/Unreal, take look at 'Gears of War' or 'Unreal Tournament 3'. You can find more on this in my 'Texture Tips' tutorial.


One thing I always do is to have the player character exported as 3 Static Meshes; one mesh for each pose (stand, crouch and prone). I store them in my 'building blocks' package and place them all around the map. They help me to visualize the gameplay and 'run' a Deathmatch in my mind. So, if you place such character mesh next to your cover structure, say a dumpster, and then look at it from nearby vantage points, you can see exactly how much cover will that dumpster provide. That way, you are not only adjusting the cover, but also your vantage points that interact with that cover. And that is level design at it's core.



Game Design Language

It is very important to have a well-written Game Design Document (GDD) that contains vital game information, things like game mechanics, core gameplay, world scale, list of planned content, naming convention and so on.


Usually, startups and smaller indie teams are thinking: "Well, why would I bother with such documents and set any standards when it's just me and my best buddies who are working on this game". True. But, it may happen that out of the blue your team gets approached by someone who will offer publisher deals and production budgets.


Then you get in the process of hiring professionals who may be coming from India, Brazil, Japan or Sweden. And since all professionals speak the same language, 'the language of game design', the first thing they will be asking is: "How big is your character?", "How high can he jump?", "How high is your cover?" and so on. Having all those things planned and well documented in advance will help you immensely.