This weeks blogpost takes you through some basic steps of 3D modeling for games. We talk about how our 3D-modellers participate in creating the Shadow Puppeteer world and some of the challenges to be mindful of. The post has been written by our 3D-artist @annabananalena (in New Norwegian) and translated by CEO @CathInShadow.
I was asked to write this weeks blogpost, so I wanted to take the opportunity to tell you about the very basics of creating 3D graphics for games. Creating graphics for games can be both great and challenging, but also characterized by routine. The models need to work both as part of the visual expression of the game, and they need to work together with the flow of the gameplay. The game needs to have a consistent feel and the different worlds need to work as a whole. A challenge you may have, working on a 3D game is making it all look good and detailed, without having models blocking the fluent movement of the character.
The process we have had in our development, has been an open one where every member of the team can share their ideas for the different gameplay elements. The ideas have been sketched on paper and then quickly boxed up in our editor (Unity), to see if the gameplay would actually work. If the tests do well, the boxed up level will be used as a template for what kind of sizes and shapes can be used during modeling of the 3D-elements.
The lead designer is the one that has the main responsibility for the graphic design. In the beginning of our development, we would strictly follow detailed blueprints for every model. When this proved to be very inefficient, we changed our process to only making some concept drawings for every world. With these illustrations, and close communication with the lead designer, we were sufficiently able to understand the mood and feel of each world.
This change made our proccess more efficient. At the same time, it also became a lot more interesting to create these 3D-models when we got more creative freedom. It is exciting to work out how the people living in the Shadow Puppeteer world build their world, based on the conditions they live in.
Another important factor in producing models for games lies in the polygon count. I would reccomend always keeping the amount of polygons as low as possible. Even if you may believe it’s not a big problem for your type of game.
Try to think of different ways of cutting down on your polygons. As long as you use smoothing groups and utilize the few plygons you have in a sensible way, it is possible to keep it low without it affecting your results. Try it out in your game engine and see how much you can cut without hurting the visuals. As you add a lot of new elements in the game engine, your scene will start to get heavy and you will have to cut wherever you can. No one likes a slow- running or stuttering game!
Another part of the process are the UVW models. The sensible thing to do here is to find different ways of saving texturing time. Some times you can use tilable textures on certain models. Of course then you have to make sure your uv’ is optimized for that kind of use. Save the uv so that it can be used for other, similar models. Try planning ahead for most of your models and you will save a lot of time.
There are different ways of animating your models. One way is to use bones. Here you need to skin and export the model with bones. It is also fine to animate models without bones. I have done this quite a lot since there are many things that move around in our game. You do this in the same way as you animate with bones, except that you put keyframes directly on the model. For simple movements of an object, you can very easily also have them animated (moved/ rotated etc.) inside the engine.
When you have made models, uv-mapped it and animated it, the routine sets in. You don’t really need to use your head much for this one: You create boxes in the model that can be used in the game engine to give the model the properties it needs, like collsion. The reason to make extra shapes for this is to keep the calculations down. The models are just for show and you can give the machine something even simpler to work with when it calculates the points that the character is to interact with. If the models are really simple, you could just go into the engine and make the collision boxes there. You always want to make sure to think about how the collision boxes will affect the flow of the game.
When you model, it’s conventient to put all your models in one scene in your 3D program. It might then be tempting to export everything together, but there are many reasons why this is not a good idea. You want each of your models to have a center of 0, 0, 0 or it might become a real pain for the level designers. Also you will want to change your models at some point for various reasons, and then you want to avoid having to export all the models again just because of that one little model.
If you see that your models are too high-poly, you can without problems optimize and re-export this. The best thing is to do this manually instead of using automatic proccesses. One of the reasons for this is that you get to keep the uv, another reason is that you get to keep a cleaner model that you keep controll over. To optimize a model manually and quickly, you remove edges as far as you can without destroying the model.
In the end, just remember: If you can simplify your model, you should. Try as much as you can to avoid creating details in 3D. You can get nice and “detailed” models using a good combination of textures and bump maps.
Sure, your game might run fine on PC, but you never know when you suddenly need to get it ported to a console, or even a mobile device and at that point you are going to have to go back through the game and optimize.