Everyone wants something of quality that is easy to use. Game assets are no different, yet many people mistakenly forget this. Understanding how to build game assets that work great in an actual game environment can be vastly different from claiming that your asset is "game ready". For those looking to understand how to properly create game assets, whether for your own enjoyment or even to sell online through a digital marketplace, this article is for you.
What is "Game Ready"?
This is one of those phrases that gets tossed around a lot, especially when authors want to appeal to a larger market. A low poly model set is suddenly "game ready". Lower poly doesn't necessarily mean this asset can be easily dropped into Unity or Unreal Engine. The same is true for other asset types like sprite sheets, audio clips, or animations. Each of these should be tailored specifically for the game engines they plan to support.
I've seen my fair share of "game ready" assets that made me realize that the author didn't really understand the nuances of how this asset could and should be used in a game environment.
The idea behind this article came from a recent live stream about Blender Market, the biggest digital market place for Blender related assets. In the live stream, some expressed interest in seeing more game-ready assets. The question was then asked about how game assets should be created for those looking for them. After all, you can't just drop a film-ready asset into a game engine.
If an asset is too high poly, performance is affected, and if it's using custom shaders, they may not transfer over at all to your game engine of choice. Now, we've covered the process of creating game assets through a few courses to include our Game Asset Creation learning flow on CG Cookie, along with the Tower Defense learning flow and our most recent Robot Modeling course which is currently being used in an actual game.
The techniques you'll learn in those courses will vary, so I wanted to lay out some general guidelines and get you thinking about the process of what an actual "game ready" asset should look like. While you can go to older models and modify them to be game ready it may make more sense to start with this design methodology.
Following along with the above, let's discuss some common issues I've seen with various models that people provide. These issues can oftentimes be time-consuming for those using your assets to fix and/or understand. I've personally dealt with a lot of these issues myself. Below are the most common I've seen:
Many meshes with no proper naming or groups. Don't make a vehicle that has every nut, bolt, door, window, etc. as a loose part unless it's vital to making it function properly. This also includes naming these what they are. I've downloaded a number of assets with 20 planes and spheres of differing shapes and sizes. Make it easy to understand.
Many materials with weird names. This goes hand-in-hand with the above. Naming and organization are king, especially when dealing with complex assets. The more meshes and materials, the more crucial it is to keep them organized and easy to navigate through. One recent model I've purchased had material names like "wire_138008110" and there were seven materials for this relatively small mesh that has similar names. I had to go through each one to determine what part of the mesh they were utilized on.
Messy topology. This is one that Matthew Muldoon, our Blender Market guru, stomps on quite a bit. Clean topology should be a given for any model, but oftentimes this is not the case. Bad topology can not only affect how a model will look but could be quite expensive to use in a game. From a performance perspective, I'm looking for the best quality mesh with the smallest amount of vertices. Learn about retopology for dense meshes from this Introduction to Retopology course, This also goes in hand with the first point of having too many meshes. Combine meshes when possible and make sure the topology flows nicely.
Active modifiers. I've frequently downloaded files that don't contain an export of the model I want to use, which leads me to export it myself. Sometimes certain parts of a model have a mirror modifier or an array modifier that was left active. While this may be ideal to make changes, it can also be frustrating trying to export out something and getting many individual pieces of a model exported out because modifiers were not applied.
I would also add to this, having parts of the mesh in different layers. All this is fine to keep in a working file, but if you expect your members to play around with the file and start exporting make sure they are aware of any and all modifiers that are still active and what layers contain what parts of the mesh.
Bad UV unwrapping. Improper UV unwrapping can cause models to show seams in areas were seams should not be visible. It can also make it difficult to customize this object with different textures, if needed. I've personally encountered this recently when trying to texture a model I purchased. The default textures it came with were not the best quality so I decided to pop it into Substance Painter and ran into a number of issues due to how this object was unwrapped. Painting one part of the mesh meant that another part of the mesh was also covered.
Improper textures. This one isn't as common, but it happens from time to time. Textures can be a tricky thing, because they can also impact the performance of a game. Someone may be using your model in a mobile game, so performance is vital. A texture in the 1024 size would be fine, maybe even 512, but there's no reason why a 4k map should be used. What if I wanted to make it a mobile AND a PC game?
Well if I only had a 1024 map I'd be out of luck, but if I had multiple versions of these textures for these types of uses I'd be elated. I'd highly recommend giving customers the option to have multiple resolutions, even better if you have Substance Painter—you can provide the Substance file and they can upgrade or downgrade the textures themselves.
On the same note, be intimately familiar with the various maps that would be used in games. For example, understand the difference between a Normal Map and Displacement Map. Also understand things like how compression can affect normal maps. Should you use a Specular map or a Metallic map? Will this be used in a PBR environment? Understand how these textures are used in a game environment and how they are used in specific game engines. Don't provide texture maps that need to be converted and/or have no use within the engine you're targeting.
In general, I would also add that a lot of times I've seen "personal workflows" show through in these assets. What I mean by that is that people have a certain way of working, some are neat and organized and others are not. Some have specific naming conventions they follow, and others will let the software pick. Understand these assets will be used by others, and that they should be incredibly easy to pick up and use. Keep things tidy and organized with familiar groups and naming conventions.
Before you start building anything, whether it's an addon, 3D model, animation, or anything you claim will be a game asset, you need to know how your game asset will be used. I would highly recommend you fully grasp how this asset will be used within the game engine you're aiming to support. If it's Unity, understand the importing process and any special instructions someone will need to follow in order to properly set up this asset.
If it's a 3D model, it's quite simple, drag and drop. Does this asset have textures that need to be imported separately? What about materials? I often find 3D models where someone created something amazing in Blender or Maya, only to find it's a mess when I try to use it in a game engine. Where are the textures? What are these weird names for materials? Why does this object have missing pieces when I try to export?
Let's take an example of a rigged character. Rigged characters can be quite popular, and animations in general are sought after as they tend to require quite a bit of skill and great animations are worth their weight in gold.
Kevin decides he wants to sell his rigged character pack on the Blender Market. He's fairly experienced in creating characters, rigs and even animations in Blender. He creates a suitable mesh for the rig to properly deform the mesh as needed and he even spruces it up a bit with some nice textures and additional props like clothing and accessories. He builds a fancy rig that makes it easy to create custom animations if needed, and he creates separate layers to organize everything. This works great in Blender and he's ready to publish to the Blender Market.
It works great and it seems to be a success, Blender users really like using this rig and it's great for short films. He decides to take it up a notch and appeal to game developers so he marks it as "game ready" without much else added in. Afterward a handful of questions arise, how can I export just the humanoid rig? Where do the textures appear? Why is my character so big? Is there a demo scene available? Why does this character fail to import into Unity? Kevin not being experienced in Unity runs into a problem as he doesn't fully understand how to answer these questions.
Does this sound familiar? In this hypothetical situation, had Kevin actually tested this in a game engine he would have been familiar with all the possible issues that could arise from importing this asset. Maybe you need two versions of the character rig, one that is lower poly and just contains the rig and the character mesh. He could include a demo scene to make it easy to see how this works in-game, properly set up.
There are a number of things that can change the way an asset appears when importing into something like Unity. I've written an article on the various gotchas you may encounter when Importing and Exporting Game Assets. I'd highly recommend downloading Unity–it's free and you'll become well acquainted with what others will expect to use your assets for.
The whole point of this story is to get you to think about what you're creating. You won't know what issues you'll have with your asset until you actually use it in a game engine. Maybe it appears too big, or too small. Maybe the orientation is off. If it has multiple sub-meshes do they keep their offset or do they "explode". It becomes an even bigger challenge the more complex the asset. Using our rig example, does this rig conform to the rig formats needed for these engines? If so, does it work well with its animation system?
Thinking of these things early on will help you avoid the headache of going back and forth and making major revisions. We here at CGCookie have gone through similar struggles when building our Robot character. Initially, the character was not a full humanoid rig, which limited us in how we could use it within the Unity Mecanim system for IK which we needed to control the upper body aiming.
So that was changed to a full skeleton, but then we had issues with certain bones twisting and turning in opposite directions. Had we not been testing this out early on we'd be pulling our hair out later.
Outside of the technical aspects of testing your game assets, you also need to think about why someone would use this game asset. This is definitely important if you're trying to sell these assets. Find enough people to value your asset, fill a need or want and you'll make a tidy profit. Which leads me to my next point.
Build Generic but Great Assets
One obvious thing I find that a lot of authors do is that they create very unique and specific case assets. Sure, that magical space Dragon looks amazing, but who is going to use that? I see so many unique assets online that make me think "Why did they create that?". I've purchased many hundreds of assets over the years, and most of those are going to be assets I see being reused in multiple projects.
The above image contains a variety of 3d models that someone looking to creating realistic architectural renders might find useful. They're expensive, but well worth it due to their quality and the ability to reuse them in multiple projects without standing out for being too unique. Lets take a look at another story:
Joe is browsing Blender Market, he wants to create a crowd of people with some generic animations as a background for his game. He's not skilled in creating characters or animations and has some money to spend to help him resolve this issue. The first pack he finds looks good initially. It's made in Blender, comes with 3 characters, a rig for each of them and also some fancy shaders.
Upon closer inspection it looks like each character has a unique rig, which will be fine for generic rigs in Unity but not ideal. Also the shaders are only usable in Blender so that isn't of much use. The animations are motion capture animations but require further cleanup. He's not sure if it's been tested in Unity as it doesn't include any Unity demo scenes.
He decides to continue shopping. He finds another, this one is much more expensive but provides 4 characters; 2 male and 2 female. It also includes the Blend file, a Substance Painter file for customizing the textures, and modular clothes/accessories for each character. It includes a Unity demo scene with each of the characters properly setup with Mecanim, and he included prefabs of each of the characters to be easily placed into any scene with no additional work needed. While it is more expensive, he decides to purchase this pack as it is highly reusable due to its customization options and its ease of use within Unity, which is the game engine he is using.
While it can be fun to really get creating with your assets, think about what the end-user will use this for. 99% of the time when I'm shopping around for assets, I already have the creative design process in mind; I don't want to shoehorn a specific design into my game that doesn't fit. Give people the freedom to use your asset in a variety of ways and it'll become far more valuable.
Think about these questions if you were building a vehicle game asset:
- Does this car have multiple parts or is it one big mesh?
- Does this car have an interior?
- Can the head/tail lights be used with in-game lights?
- Can I customize the paint/rims/windows of the car?
- Do the wheels rotate freely?
- If I use this in multiple games, will people instantly recognize what asset this is?
The dreaded "asset flip" is what a lot of game developers would cringe to be called. This is when people purchase assets to build a game around, versus building a game with carefully selected assets. Make your assets great, but easy to use in multiple projects.
On the flip side of that, there are instances where creating a very unique set of assets can be a great thing. If you build a "world" of assets it becomes far more valuable, not just because of the quantity of assets, but because they all share the same style. It's much harder to justify buying that unique looking weapon asset if it clashes with the rest of your game. If you had a collection of weapons that shared the same style, it's much easier to use them without it feeling out of place.
This Simple Apocalypse asset pack was used in a live stream series on creating a Top Down Shooter. If these characters or building props were used separately it may look very apparent, but with the entire pack you can build a full game using these assets alone without having to worry about consistency in style or the technical aspects of getting these assets to work together.
Also take note of the price—quite hefty, but well worth it. You can charge higher prices for bigger asset packs of that sort, and they can be reused over and over for similar style games. Which leads me to my last point, one aimed at those looking to make money selling assets.
Charge for Quality
I'm not alone in equating low cost with low quality. Most of my asset purchases tend to be $30-150 as I'm usually looking for something that will solve most, if not all, of my problems. If I spend $1-10 on an asset, it's usually a "throw away" asset that I'm looking to purchase to use something very specific from. If I'm looking for a quality animation pack, I'm looking for one that looks professional. Ideally, someone who really understands animations, and just as importantly knows how these properly work in a game engine.
I spent $80 for a fighting animation pack that I wanted to use in a game. On a similar note, I spent $150 for a physics-based addon that ended up being a failure for what I wanted. I ended up spending $60 for a similar asset that did everything I needed and then some. The thing that irked me the most was the support and lack of organization. Support for the $60 addon was superb—in fact, the author responded within a day and actually built exactly what I needed using his asset, whereas the support for the $150 asset was non-existent, and files and folders were a mess with tutorial videos that were 6 years old, leading me to leave a bad review.
Quality isn't just in the asset alone, it's in the presentation, the documentation, the support and the overall vibe you give to customers. This means cleaning up your files and ensuring that everything is organized as needed. This means providing ample tutorials and/or documentation on how exactly to use your product (if needed). Provide demo scenes of your asset in use. Should I need to reach out to you in need of support or how to do something, respond in a timely manner.
Don't charge too little for your assets either. Do you want to be known as the author who makes cheap assets? Or the author who makes amazing assets that people gawk over? Think of all the asset authors out there who are quite popular. Are they known for making dirt cheap assets, or are they known for their high quality work? Hopefully, this article has given you some insight into how to become a better game asset creator, and possibly make it into a money making endeavor.