Hey everyone,
Wanted to post a quick little guide on how i created the art for my new game ‘End Night’ www.endnightgame.com Since towards the end of production got a really fast system for art creation, however it took a lot of trial and error and really wish i had read something like this post before starting. So hopefully someone finds this useful.
I’m coming at unity from a visual effects artist point of view, where i worked on films like Tron Legacy and 300, so my approach may be a little different than a game artist would be. Also, some idea’s posted here are due to wanting a specific look and for an open world game with no loading and small file size, so this may not be helpful to everyone.
Here’s a shot of my game showing some of the lighting/texture details, it runs at 60fps on iPad 2 with full AA. The games trailer can be viewed at: http://youtu.be/L6t1HSaiQ6Y
Model Detail:
The iPad/iPhone4 can handle way more geometry than i could throw at it. The last few assets i created were soda cans and kitchen plates, for these i used Smooth cylinders. (not the jagged game looking cylinders we normally see in games) For my main character i took my low res model and Poly smoothed it before re-sculpting his shape with Blender2.5 paint tools. For a game that runs on iphone4/ipad and up i couldnt actually find the limit for model detail. I wish i was starting from scratch now since my entire game would be higher detail everything. The unity optimizing guides on the main site seem to be aimed only at the lower end devices without much mention of just how much stuff these newer devices can handle.
Texture Detail:
At first i thought i had to texture everything, however my approach towards the end in order to get high resolution textures and fast asset creation was to simply group objects by material, instead of painting a desk texture, a cabinet texture, etc, i just created a bunch of tileable textures which can be really small(64x64) which add only fine detail to my different materials, such as wood, metal, etc
This approach was used on all assets. A Whiteboard in my games lab is a high resolution texture since it needs to show some specific texture detail, however things like the flat grey desk in that same lab take up only 1pixel of texture detail since the desk surface material is a smooth grey plastic, with the rest of the look coming from the lighting. This approach also Masively speeds up content creation, since very few things actually need specific texture details. For my game’s fabric material i used a handful of different fabric textures (all really tiny) tiled to look high resolution, letting the lighting and the models detail dictate the look.
Lighting:
I found using the lightmapper really slow, I found it hard to control and that i would have to bake the entire scene at once which when developing on a mac mini was painfully slow. Also, since my game is open world i found i was running into lots of issues with organizing and dealing with lightmaps, having to select objects all at once etc, and the lightmap files being named things like LightmapFar-0 which meant i wouldnt be able to see which objects the light maps were on easily. I also wanted more control on resolution of the light maps, some things could be really really low res, like some of my outdoor lightmaps which only add lighting and dont require shadows, where as for indoors i wanted sharp clean shadow lines and lots of details since the light sources were going to be very close.
The approach i ended up using was to Bake selected, and once i had a lightmap for a single object, rename that lightmap and manually put it into a shader (at first i used the legacy/lightmap/lightmap only shader, but later switched to a more optimized one)
You then have to manually set the shader tiling and offset to match the tiling and offset in the lightmapping window/atlas section.
Doing this let me work on specific sections of my open world game, such as a convenience store at the edge of town, without the lightmap bake affecting the other areas of town, and instead of taking hours to complete, took a couple minutes. The advantage to this is mostly in scene organization and baking speed. I’m able to have a floor that works on every floor i bring into my game world, and can have control over the naming of the different lightmaps, so i can select my floor and adjust it’s lightmap settings easily.
Using lightmaps this way also alows for animated lightmaps which can be cool for things like a tv flickering or changing channels and the light affecting the living room, or in my game, my lab has a flouresent light which flickers on and off using this technique.
Be great to hear any thoughts on these approaches, am really interested in how others approach things like texture/model creation and game lighting
End Night is currently waiting for review and will hopefully be out in a week or two, for more info check out our facebook page at Redirecting...