Low-poly Tips 3 – Game Art Asset optimization

These are 3D art asset modeling, rigging, uv-mapping and texturing tips. And not only for low-poly though it is where they are needed the most. See also other tip collections, the first and second set.

Minimize number of Draw Calls the Asset generates

Draw Calls are for game engine the number of separate objects, materials and textures that are loaded.  The less draw calls the better the game can run. Here are some ways to lower the number:
Multi-object texture optimizing art assets

  • Have each character as one single mesh. Characters that are made from pieces in-game cost in draw calls.
  • Combine separate static meshes to one. If you can have a collection of objects as one object, one file(the meshes can be unconnected), it is better than as several files.  But don’t combine a whole village to one object as the whole thing would get loaded to memory even though you may not need it. This trick is best for moderate collection of objects, say all items inside a shop interior.
  • Use only one material and texture per object. Or even..
  • Have several objects all use same texture and material. This means each has the same uv-map but uses only a portion of the whole – uv-map collects all textures together. See picture. Even though not shown in picture(for clarity) the sections different objects use can well overlap.
[divider_line]

Optimize character rig, use 2 rigs – one for animation and one for export

The less bones your character has the lighter it is to run.  And less resources used for one character means more to use elsewhere – maybe even allowing more characters.

But very few bones makes animating difficult and prevents many motions. Of course we rather animate with the optimum amount – and with control objects as well to make work easier. Sure you can have control object in your game rig and just make sure not to export them to game, but having bones in a rig that you don’t export, like between one bone and another? That is asking for trouble.

Solution is two rigs, one for animation and one for exporting to game. Game-rig is linked to follow animation rig – you animate only with animation-rig and export only with the game-rig.
[clearboth] Character Rig optimization
[clearboth] [one_half]Animation Rig is the rig you build first. It has the bones and control objects you want to animate with. The rig can even have details, like fingers, which you can animate and later decide to use or not(via the game rig). Build your animation rig and then consider what parts of it are essential for moving the character. Every bone in a character only supporting other bones and not really affecting the mesh itself is a bone the game character does not need. So, do you really need the neck-bone if head and chest bone playing together can offer the same result or close enough?

[/one_half] [one_half_last]Game Rig is collection of helper objects(any type, also called nulls), one per every important part of character. The reason to use nulls instead of bones is that creating bones is intended to build hierarcies you don’t need and should not have, here. Create these objects, then align and parent them to follow the relevant bones of Animation Rig. They should relocate to pivot-points of the animation-rig-bones. Then skin your character mesh to these helper objects(nulls). In the end you animate with Animation Rig and the Game Rig follows and deforms the mesh.[/one_half_last] [clearboth]

That was the 3rd set of little tips for improving 3D (game) art assets. Cheers!

Low-poly Tips 2 – Game Art Asset Optimization


These modeling, uv-mapping and texturing tips apply to 3D art asset work for games and similiar media. While they are best matched with low-poly 3D, they are definitely not limited to it. See also the previous collection here and the 3rd one here.

Middle edgeloop optimization & UV-mapping a character

It is common to model an edgeloop running around the middle of a character. It allows mirror copying the torso – you uv-map and texture only half and duplicate to get both halves with same detail (see Low-poly Tips vol. 1 for futher explanation). However there are number of reasons why full middle loop and mirroring everything is often not the best choice.

Mirror-uv-mapping everything on a character mirrored makes it look more generic. For visual interest you want variation in at least the texture if not the shape and for this you can’t mirror everything. In a humanoid figure the places seen the most are where you want variation, usually top half of character torso, shoulders and face.

A middle cut running all through your character model means more polygons. There are places where you have to have it, namely the crotch/hips area for humanoids because this area receives lot of stretching – you need to separate the legs. But there are also many places where you don’t need it. See the image for example of middle edgeloop use.

For four (or more)-legged characters like dogs you can often forgo the middle loop at hips, too. Sure the area will bend and break in animation, but if it doesn’t show then does it matter?

Fake roundness with just 4 polygons – optimize asset polycount

A square can be made to look rounded in game. The trick is to use one smoothing group and turn a square so that polygons are not aligned to world axis, rather angular to them. This places the corners closer to where round objects would be and away from where square objects corners were. That and the smoothing group fools your eye. It is mostly the smoothing group – I don’t know the technicalities of this. Just that it works. See same tricks also with character legs.

Of course this only applies to the sides, the 4 polygons we are talking about. Looking at the top and bottom the objects square nature shows, but when you hide them it is another story.

Fake complex shapes with bitmap and alpha channel – optimize polycount

Any object with a mostly flat top, especially shapes like barrel and similiar where top is equally proportioned or larger than parts below it, can have a faked top: a single polygon and the shape of the top mapped on it with bitmap and alpha channel. This can save numerous polygons. However the top with alpha does take space from your UV-map since it needs some size to have enough detail to not blur and reveal its faked nature. So judge for yourself which one is more important with your object: texture/uv-space or lower number of polygons.

Texturing with seamless textures – re-using textures

Re-using textures is a core part of low-poly work. Characters don’t allow that too much, but props such as houses do. Say for a medieval building you might just have a texture with 1/4 stone, 1/4 wood, 1/4 roof, 1/4 window – see image used to texture a well, the idea is the same.

The trick is to place almost every polygon in your uv-map separately so that they grab the maximum texture area – AND also change polygon sizes, rotation and mirroring to add variation to the way it is displayed on your model.

Unlike ‘standard’ uv-mapping, where you map first and texture after, for this you better do the reverse. Make the texture – lay out the different material areas(preferably each tileable). Think what you need and what shapes you need, like longer varied strips of material, and add those bits to your texture. Then uv-map polygon by polygon, or few at a time, to get all you can out of it.

Texturing by re-using textures does become a balancing act: Do you use more uv-space for one particular area or more polygons? Say you have a long continuous wall. To cover it all with a single unique texture would take a large amount of uv-space. On the other hand repeating one seamless texture over and over would require more polygons. So you weight the pros and cons and perhaps go middle way. Usually my take is that few polygons does less harm than needing to use larger textures or more textures.

Remember MipMapping and Antialiasing when texturing – stop texture bleed

When the game creates a MipMap from your texture, or when the texture gets antialiased, it gets blurred. This is a problem at edges of the uv-island in your uv-map. Either the background color of your texture bleeds in or the alpha channel does(usually as black colour). As result the uv-edges become visible on your model in game.
To prevent texture bleeding problem, push the textures themselves well over the uv-seams. Then, when the blurring happens, you still have the correct colors at uv-seams.
http://en.wikipedia.org/wiki/Mipmapping

Acknowledge uv-area repeating – optimize texturing

If a part of your uv-map goes over the uv-area, it will come out at the opposite end. This is not displayed visually in your program(not in Max or Modo at least), but knowing it you can use it to texture uv-parts that do not fit in your uv-space. Mind you this works only with seamless texture.

Have less seams in UV-map

Models that have their UV-map slipt to numerous parts count as having more vertexes as far as game engine is concerned – each split means more vertexes and so heavier to load. To minimize vertex count you should have your uv-map as continuous as possible – say a character skin could be one big open pelt like an animal skin. Of course uv-mapping and texturing poly-by-poly, like written above on seamless texturing, does the exact opposite.
Do note that going for less UV-seams is a fine-tuning type of optimizing – it is best used in addition to other tricks, where possible, and not to replace them.

Make textures details to fit size displayed in-game – optimize textures

The size that the objects appear in game, be it because of optimum camera distance or whatever, defines maximum texture detail you need. Say you have a character face that is 85×85 pixels on screen in game. You need no more than that for it in the texture map. Of course if your game offers free camera, modifiable resolutions and such tools for player, things get more complicated. But even in free camera games there has to an optimum to aim for – what is the size of texture detail at camera distance where the game is Designed to be played at?

This ends second collection of art asset tips, especially useful when working with low-poly 3D assets. I hope some of these come handy in your projects.

Game Industry change


Game Industry changes. How, Why and What it means for game developers? Leaning on resources and personal experience I tell it how I see it. This comes from a more traditional gamer and developer who is fascinated about the change.

What has changed?

Lots of things, some main points in short:

  1. First is old news but worth repeating: Game industry moves more money than films.
  2. New and possibly now most popular game types draw from games of the past – Arcadeish casual aka quick-to-play games are doing incredibly well.
  3. Gaming is more social hobby than before with a new and growing audience.
  4. Games and game platforms are more readily available. Now everyone with a modern smart phone/pad or a cheap personal computer and internet-connection has a solid gaming platform and access to a portable game library.

Why the change?

The following is info compressed from several sources. I will follow it with my take.

My take on the change-statistics

I don’t see any type of gaming to be more innovative than some other, nor do I see social and/or casual games replacing others. Also I don’t think rising PC will kill off any consoles. I believe the change is simply that there are lots of new gamers and new ways to play games which allows ever wider variety of games and platforms to flourish. That doesn’t mean traditional game types, platforms or players are going anywhere.

What does the industry change mean for game developers?

  • New options are available for delivery(Steam, Xbox Live, online marketplaces, Appstore…) removing or reducing the costs of getting the game out and selling it.
  • New game creation software lower the barrier of entry both in price and time invested in learning and ease developing for several platforms at once(check out Unity).
  • Older established game creation softwares also lower prices or otherwise do their best to compete with newcomers.
  • Range of topics found profitable is wider than ever.
  • Small ‘bitesize’ games are (again) a very valid recipe.
  • All of the above mean indie developers(individuals and small companies) have better changes to succeed.
  • Due to the above large companies too are creating small flexible teams and targeting new markets.

How to get a position in New game industry

Mostly requirements are the same; To get into creating games you need to be very good at what you do, to know the right people and to be persistent. Also likely you will need to work as a trainee in a game company or on indie/non-profit game releases to get experience and recognition. Other route is of course raise enough capital to start your own or shared business.

Difference is in that generalists may now have more work than narrow specialists. Specialist jobs are not going anywhere but are hard to land since only big companies can hire a specialist long-term. Smaller companies now blooming hire people that can wear many hats – for mass production of any one thing they usually outsource (just like the big firms). Also since small companies make small team productions, that is games for online/mobile, it means optimization in everything, art stylization and carefully managed resources. If you aim for this area better make sure you know what is expected, like relevant coding languages or art style.

That’s my take on the change. Agree, disagree?

Sources

I link to many articles above but refer to 2 following more than anything else. I’m also adding others that may be of interest to you.

Gunshine.net Beta release, Supercell insider and articles


Today marks the release of Gunshine.net Beta, a free browser action roleplaying game, and publishing of the company behind the game, Supercell, and investors behind it. This post tells about the above, about my involvement, and links to other articles.

Gunshine.net Beta

The game is technically special, perhaps even amongst the first in a new wave of browser gaming. Why? Scores of other current browser games(MMOs included) are static and slow-paced. Gunshine brakes the mold: It is a fast real-time strategic action with friends – that’s the special bit. Also it is all free and easy to get into and play. I know it sounds like marketing spiel but that really is an accurate description. Fans of online roleplaying games and/or fast action, or those bored with old generation of online social games, will likely enjoy it. Other developers may follow with more fast paced browser games.

Gunshine runs in browser without special things to install. Game does require Flash-plugin but then again 90%+ people who use browser have it already. Ipad and Iphone-users though are out of luck without Flash-support (for now).

Gunshine.net is still in early Beta meaning it has bugs and the content is in progress. But worry not – there is plenty to play at the present. Currently we invite Beta testers to play and give feedback so we can improve and build what we have. The game is built to grow step by step.

Supercell and my part

In short Supercell is a promising startup with strong backing and a great creative team. I can say some well known game industry veterans have seen Gunshine.net and Supercell worth investing in. Supercell-site and the articles linked below will tell you more about the company and about our backers. I’m more on solid ground writing about our creative process.

My work at Supercell is why this blog has been quiet-like since December 2010. I’m happy to be part of a team of professional game developers. We have a flexible pipeline on the art-side, each can and do juggle many tasks. However quite naturally the majority of certain type of tasks go to people who spezialise in them. I create 3D and 2D assets, weighing on the former, and lots of animations. To me it feels quite sweet a role – so far getting to model and animate many of the coolest creatures in game. Regardless mine is just a small part of the whole, the team together make it all happen.

I hope to share more inside info about our creative process later.

Articles

Here are some articles about Gunshine.net and about Supercell. I will keep adding links for a while to this list.

So, what do you think? Is Gunshine a hit or a miss? If games like Gunshine are not the future of browser gaming then what is?

Ultima 6 Project review

Ultima 6 Project was released in July 2010.  Now I’d like to tell you how it has been received. This is not about blog topics but a personal thing – but important enough as such that I want to share.

What is U6P?

Ultima 6 Project is a massive free role-playing game for PC and Mac.  It is an old game classic Ultima VI re-made and improved – our version of it.  Us here is we, the Team Archon.  You can see my part of the project  here, and read my take on the benefits of project like this.  I’m attaching some images from the game(click to view in full).

Ultima 6 Project screenshotUltima 6 Project screenshotUltima 6 Project screenshotUltima 6 Project

After the summer release U6P has been reviewed in a number of places and with quite positive results, too.  I’m linking to the official online reviews below (those that I know of).

Ultima 6 Project Reviews online

Ultima 6 Project Magazine reviews

Pelit-magazine(Finnish) gave U6P score of 90/100.  I’m translating some of the final bullet-points from the review for you, below.  I won’t show any scans from the magazine as that is usually frowned upon.  If you know Finnish, get the mag and check out the full one-spread review. And if you know some other magazine that has reviewed U6P, please write below – let me know.

  • Feels like a real Ultima.
  • Plot takes hold and takes you away.
  • Lots to do.
  • Realtime combat is tricky.
  • Camera plays tricks on you.

Pelit-magazine final words are:  “Ambitious fan-project is a mind-opening experience”.  They also gave the game Pelit Magazine Recommends-stamp of approval.

[box type=”note” size=”large”] If you know of any more U6P reviews, please let me know and I will add them to the list.  Comments are also welcome.[/box]

Hobby Project Benefits

Oftentimes people have hobbies that either offer a fun challenge they can’t get at work or help them learn new things. Some take on hobbies to learn and to grow resume – to find a work in the field of their hobby. In my article Stay motivated one thing I suggested taking on a project together with others.  It is what I did, and now I wish to tell you how it was for me – the benefits and the costs.

I joided Ultima 6 Project in December 2005. I’ve written more about the project and what I did here. The game was released in July 2010, after 9-10 years of production.
My motivation to join was to learn more about game production and low-poly work and because I like old Ultima games.  And I did indeed learn by doing – within year or two it became easy, like a fun part-time job.  Being in production meant working with others, meeting common goals, having deadlines and management reminding of things to be done – you know, all the stuff that makes team projects addictive, rewarding and at times stressful.

Now before going to the cons and pros, please note U6P is unique and a seriously long venture, way beyond anything sensible. So the ups and downs of more reasonable project are probably different.

What project as a hobby cost me

  • Oodles of free time – poof, gone. I don’t care to think what else fun or useful I could have done with that time. Especially after noticing I was no longer learning, just working, I couldn’t help but wonder what other game project would give me a tougher challenge and more current generation work samples or even, you know, pay.  I did consider several times if continueing was sensible.
  • Some dark brown hair – gone grey.   A serious hobby is at times tough like any job.
  • Some paid work. Sometimes it has been so intense, I have let freelance opportunity(nothing big) slide past to meet project goals first.

Having said the above costs, dealing with them or not was completely up to me.

What I gained

  • I soon learned what I had wanted to learn.
  • Motivating and encouraging enviroment and a fun part-time job, though no pay.
  • Friends.  Project drew together some great people.
  • Credit of being an important part of a game project like no other(very large in scope and in work years) – probably certifies all main team members as insane.
  • An Intel-interview about my work.
  • Loads of work samples from the field of low-poly 3D.  And I am happy to say that despite my initial worries about the usefulness of such skills, they are very good to know and low-poly 3D is anything but dead as a field of work.
  • Tutorials. Made a few to assist our team members and, later, for anyone interested. assist new folks wanting to join our project.  Sort of got me started with the whole learning blog thing.
  • [highlight type=”light”]6 months after this article:[/highlight] A job in game industry. Having released a big well rated game was a very important factor in landing a job.

So yes it was worth it.  Especially now that the game is out the good things come rolling in.  It is possible some other project might have given more and in less time, but that is not a way to think about these things. If a person is always looking for something better and moving on, they may not finish anything. Committing is important.

Will I join another freeware project?  No, I will no longer work without payment. Don’t have the time.

What about you – have you considered taking on a hobby project or have you already done something like that – and how did it go?

Interview for Intel

I was interviewed on INTEL’s ISNTV Digital Arts-show. (voice only for my part)

2013 UPDATE: Intel’s Digital Arts Show-pages have been closed for a good time now and this page had broken links, until now. I found the video interviews elsewhere on Intel’s site so the links should work, for now.

Digital Arts does many things, including interviews of people in the field of Arts.  One good example is musician Justin Lassen’s interview (from Intel booth at GDC).  Justin is an exceptional artist and a does well before the camera, too.
Reason why I got on Intel’s radar was winning their Digital Art Tutorial Challenge a few times in a row.  Other than that I’m guessing my blog and big projects raised a few eyebrows.

See the interview at ISNTV Digital Arts show.  Host of the show is man of many titles, including Intel Artist and Animator Community Manager, Steve Pitzel – a terrific guy.  We had a good chat, both on record and off.  I manage to sound reasonably sane most of the time, so I call it a success.

Go see and listen and leave some feedback below, if you like.

Ultima 6 Project Released

I’m happy to announce that our massive freeware role-playing game for PC and Mac is now released!
Go explore the huge living world, meet curious individuals, go on grand adventures, sail the seas, delve into massive caves and forest and try to make it out alive.  And if you happen to remember the main quest, try to help Britannia deal with the mysterious gargoyle race and the war.  For more info and the download go to http://www.u6project.com

U6P has been my part-time job for well over 4 years and many on our team have worked on it harder and longer than I have.  You can read about my part here.  I’m very happy for the release, positively glowing, and hope old Ultima fans enjoy our take on the classic and that the game captures new fans as well.  Go take a look!

Got a comment on our game or on freeware game projects in general? Feel free to write.

Low-poly Tips

These are basic tips for optimizing and improving low-polygon work in the areas of modeling and texturing.

Core of low-polygon work is to do a lot with little; Do something good with limited number of polygons and with small textures. Limitations are set by the game engine and platform the content is for – these days low-poly is usually for mobiles and other handheld devices. One very good way of getting the most out of your limited resources is doing stylised designs. I recommend this: Start by designing for low-poly. One of the best examples of such styling is the look of World of Warcraft.

I learned low-poly working on the Ultima 6 Project.  U6P uses Dungeon Siege(1) game engine and creates a large world filled with low-poly models. You can view some of my U6P work here.

  • Using  edges in low-poly, exampleMake use of every triangle. Sounds simple but is easy to overlook when people are used to modeling with quads or n-gons(more than 4 sided-polys). Since every polygon is triangulated(divided to triangles) anyway when exported to game engine(or rendered), you could just as well divide the polygons yourself. That gives you one more edge to define the shape with. The example shows how shape is created by placing edges dividing the quad polygons and what the result would be if the edges were misaligned – something you may get if you let the software triangulate for you.
  • model volume on joint outside, knee exampleModel volume on the outside of the joints. This way, when the limb bends, the outside preserves shape even when bent ‘open’. The example shows setup you could use for knee or elbow and some others for fingers.model volume on joint outside, finger examplemodel  volume on joint outside, finger example
  • Model for profile and main shapes, exampleFocus in modeling the profile and the main shape landmarks. Polygons not used for better joint deformation or for defining general shape are extra – something you can do without. Create that extra detail with texture-map, instead.
  • detailing with texture, exampleAdd shape with texture by drawing some shadows&highlights into textures. But do it sparingly. Strong always present shadows or highlights look false.
  • Make holes with texture. Say you need a grate with lots of holes. Modeling them would mean a lot of polygons. Why not make plane and texture that with a transparent texture (if your game engine supports it)?  You could even have two planes, one see-through grate above and other below it with a well/whatever deeper place painted on it.  Simplest solution is of course ‘holes’ painted in the main texture.
  • Multiple textures exampleUse multiple textures on your object. Game engines(and other software) allow textures only up to a certain size. But if they allow multiple textures, you can get around the limitation. Of course don’t go adding textures beyond what the target device can comfortably handle. One main reason to use multiple textures is when your game engine allows replacing parts of geometry in game. Say you have a character with skin(texture1) and clothes(texture2). The latter texture(2) and the geometry it covers could be interchanged in-game to another version when character changes set of clothes or armor. Even if your engine doesn’t allow interchanging parts, using multiple textures is a good way to do many variations of one model.
  • UVW-map exampleFor more texture detail somewhere on your model make that part bigger in your UV-map. Sure this leaves less space for other parts, but some areas are more important than others (character face for one). Example has the gargoyle skin-texture with uvw-map overlayed.
  • Paint your texture in 3D-painting software and detail futher in 2D-software. Sure you could paint all in 2D-software like Photoshop but there is no comparison to 3D-painting. Simple thing like making a straight line around a character becomes a pain if you have only 2D-paint to work with. Here are several 3D-paint softwares listed. Tattoo for one is free for personal non-commercial use.
  • Colour your textures by hand. Painting in shades of grey, black’n white, and then overlaying colour on might be easier, but if you instead both choose and paint the colours by hand, the end result is more vibrant and alive. Same applies to gradients. They tend to be too mechanical, too perfect. Paint the colour-shift yourself.
  • Use duplicate-parts in your character/object. Hands can often be mirror-copies of each other, same with legs. This is how you can save in UV-space and hence make all parts bigger in the UV-map and so more detailed. This is ever more true with objects like buildings where you can use same textures over and over. Clever and creative UV-worker can create many variations from just one texture-map.

Low-poly 3D for Ultima 6 Project

I’ve finally compiled a video about my low-poly 3D work for Ultima 6 Project.  You can watch it below or in HD at Vimeo.  All shown in the video is low-poly to fit the game engine limitations and overall design.  These days low-polygon 3D, the likes of what I’ve made for U6P, is used more on mobiles and portable gaming decives than on PC.  Funny how fast things change.

Ultima 6 Project is  a soon to be published freeware role-playing game for PC(works on Mac, too, with some tricks.)  For me the project was first like a training ground for low-poly 3D game assets, though without a teacher, and later became a job just like any other.  I’ve been working on U6P part-time, on and off, since early 2006.

My contributions are items, creatures, characters and structures – most notable being the gargoyle race.  I’ve also done one cinematic and some 2D-stuff like the ingame-journal graphics(actual content, incl.images, is by our great team).

Ultima 6 Project is a remake of an old classic game, Ultima VI(by Origin).  Like U5 Lazarus, a remake of Ultima V, we bring a classic to modern computers – with a lot more than just visual improvements.  1.0 release is coming.  U6P is free to play, but you do need the game Dungeon Siege(1) to run it.  DS is an old game and should be available at a very affordable price.

Any comments or questions regarding low-poly 3D or Ultima 6 Project are welcome.