For an experienced, or even a novice programmer with some meaningful code in his repertoire, transitioning into game-making is easier than ever. I can remember as recently as a decade ago scratching my head at simple problems such as collision detection, ray-casting and terrain following, partly because I was unfamiliar with the concepts, and partly because the kinds of tools we have today were either unavailable or too expensive for my limited resources.
Now, highly sophisticated engines, feature-packed to the point that you could very nearly make a “game” with no script whatsoever, are available relatively cheaply or even free. My transition into making actual, meaningful (as in functional, not necessarily as in “Good”) games was achieved using the Unity Engine. For that reason, I’m going to target that engine in this article, but the principles will apply in any similar engine.
Unity takes some of the boilerplate features, such as physics, collision detection (physics, triggers and terrain), raycasting, advanced rendering, etc, and moves them out of the code layer and into the visual design layer. That’s not to say you can’t roll this stuff your own way (which, for some bits, I certainly have), but for a newbie like me, it was a godsend. This meant that I could enter the game-maker’s domain with more of a business logic frame of mind: I don’t have to worry about the low-level stuff, at least at first. I can focus on the rules of the game.
That only solves part of the problem, though. If you’re a software developer like me, your creativity doesn’t depend on a visual artistic sense. You build small worlds in code, but to look at them would be like looking at the Game of Life. Time has proven that the gamer has at least a minimum expectation of interesting visuals while playing a game; at the very least, your game should graphically represent what the gamer is doing. That means, if you’re zipping around in 3D space blasting Aliens to reach Mt. Doom (or whatever), you’d probably better have some 3d models. But, uh oh, you’re not a 3D artist!
You have two options as an independent, intelligent, capable hobbyist:
1. Find a 3d modeler (actually, you’d better find a CGI generalist, which seems premature, since you’re a newbie who hasn’t made a game yet)
2. Try it yourself.
Option 2 is, of course, superior. Unless you already have a friend or kindred spirit lined up, there’s no harm whatsoever in building some graphics yourself. Look at it this way: you need models to test your game. Even if they’re just placeholders, you need them, and you probably want them to look at least a little bit like your artistic vision. This means spheres, cubes and cylinders aren’t necessarily going to cut it.
Here’s how anyone can do Option 2, in three steps:
1. Box modelling
2. Smoothing, touch-ups, and detail (Optional!)
3. Texturing and UV (Necessary!)
As you can see, guided by the arrow above, Box Modelling is the process of creating a 3d Model by shaping, cutting and manipulating a simple primitive. There is no very good reason that I should run a complete tutorial on this, when it’s been done so successfully so many times. In short, Box Modelling is the easiest way for anyone to create a basic 3d model, and I’ve seen people continue the process to highly detailed, beautiful models with reasonably low polygons. The nice thing about Box Modelling is that you’re more or less away of how many times you’ve subdivided and created new surfaces throughout the process.
Here is my favorite tutorial, which demonstrates the method for creating a symmetrical model:
I was able to use this tutorial to start creating passable game assets that I was even able to 3d-print for rather dramatic visual presentations.The best thing about this technique is that it’s fast: For the programmer who’s rapid prototyping a game, it’s kind of a pace-breaker to take half a day to meticulously design a 3d model, and that time multiplies out based on how little experience we have with 3D design applications.
Don’t be deterred. Box modelling is also nearly instantly rewarding: somewhat like clay, you’ll get instant feedback on how your model is looking in toto.
Blender is free and open, get it here.
In the next post, I’ll conclude the topic by addressing detail touch-ups and UV (probably in greater hands-on detail, since this was the topic that gave me the most grief when researching), which is the necessary step allow your model to look like it’s made of something other than monotone plastic.