ObjectiveMain objective of this blog post is to give you an idea on how and when to Optimize Game Assets
Step 1 Quick Review
This article is intended for intermediate game artists who have just started or going to start their career in the game design industry. However anyone who wants to know about game optimization from artist side of job, this article will give you a good insight. We will focus more on 3d games, but 2d game artists can also benefit by reading this article.
1.1.1 what is optimization?
In general, optimization in computer program (any game is also a computer program which takes input and gives an output) is the process of making a program work more efficiently. So after doing an optimization, a program may run with fewer resources or will use low memory in order to work properly.
When we are talking about gaming, games can be optimized in two ways
- Optimization by Programmers
- Optimization by Designers
Programmers generally check for any piece of bad code which might consume more time to execute or in general any code optimization technique which would help the faster execution.
But most of the games are graphically intensive, so optimization from designer would be very necessary in order to assure smooth running of the game. And in gaming, graphics designer has to think about optimization from the starting of the game since once assets are created it becomes difficult to optimize them later and it might consume more time.
1.2 Assets Creation
1.2.1 Creating Assets For Game
What artists need to know when creating assets for game?
Artist must know two things before starting the work for any game
- The platform on which the game would be ported
- Game Engine in which game would be created
Programmers do most of the work on game engine, but artist must have knowledge of game engine’s rendering pipeline and its graphical limitation for any particular platform.
1.2.2 Optimize Better
So, how you can optimize better if you know about the game engine?
Knowledge of platform and game engine gives artist an advantage of creating their assets in more optimized way.
Let we need to create a 3d model of a tree for a high end PC game. You can go for 2000 - 3000 polygons and you can use multiple high resolutions map (diffuse, normal, specular etc.) for detailing. As tree is created for PC, it will be shown on big screen so faking details won’t work here.
But now let say you need create a tree for any hand held devices such as smart phone or PSP. You will have to make the tree within 200-300 polygons with 1 or 2 maps maximum and since tree would be shown on smaller screen you can fake some details. For example, instead of modelling branches you can simply use transparent texture mimicking branches.
1.2.3 Maintain Quality
Do not sacrifice quality for sake of optimization
Graphics create a lasting impression on a player who is playing the game. It connects a player to the game world. If you sacrifice quality over optimization than there are chances that player won’t find your game world as immersive as you intended. Instead artist should collaborate with programmer in order to understand what can be done in order to optimize the game without sacrificing quality.
For example, using optimized shader for specific asset. Like diffuse detail shader which is useful for close camera shots.
You can see how this shader work here (http://docs.unity3d.com/Manual/shader-NormalDiffuseDetail.html)
Most of game engines provide very useful techniques to optimize graphics. For example mipmaps, lightmap baking, occlusion culling etc. Consider investing your time in learning those optimization techniques.
1.2.4 Cycle of Optimization
There is always more optimization to do
The cycle of optimization is metaphorically endless. You can always optimize in an already optimized game.
You might have played the game which were not running smooth at the time of launch, and later on developer of that game have release a patch which makes everything run smooth. Sometimes and issue happens just because of some faulty little piece of code or some bad (read un-optimized) game asset.
Now as far as bad piece of code is concerned, let programmers worry about that. As designers, we need to make sure that after we have created any asset; we put it in the game engine and make sure it works good and fit flawlessly.
Optimization, whether it is from artist side or programing side need constant learning from your own mistakes. If you look at the recent titles released on Xbox 360 or PS3 have far better graphics compared to games released few years ago despite having same configuration. But this didn’t happen just like that, it took time before developers learned to optimize their way of work and used every bit of processing power out of consoles.
I hope this blog is helpful to you while Optimizing Game Assets or Optimizing Game Graphics. Let me know in comments below if you have any questions regarding Game Assets Optimization or Unity 3D. I will try my best to reply.