Welcome to part 2 of this series. Check out part 1 if you haven’t already and are curious about how important money is. Today I want to talk about how I’m managing content for Mech Armada. But first, a story.
Game engines are Good
In the summer of 2004 I was working at Pyro Studios on a game for “next-generation” – back then that meant Xbox 360 and PS3. The plan was to start early and build an engine that would support all the bells and whistles for the new platforms. Another team in the company was finishing a PS2 game using RenderWare and they were trying to convince us to use it for future projects too. Then EA bought the studio that created RenderWare. Let’s say RenderWare wasn’t an option anymore.
For years there was resistance to using third party game engines and that anecdote is just one example of the arguments used against them. However, there are some pretty obvious downsides to doing everything yourself. Stories of studios struggling to build game engines are abundant and we didn’t do any better. After several years and a few reboots, that first game for next generation never shipped.
Back then Unity and Unreal were not nearly as widespread as they are today. Unity didn’t even launch until 2005 and only became popular years later. Unreal goes back further, but only started being used for something other than shooters with Unreal Engine 3, which came out on 2006. Today you still want to build your own engine if, say, you’re procedurally generating entire galaxies but, by and large, using third party technology has become accepted as the most reasonable option. Heck, even No Man’s Sky uses middleware for things like physics.
The power of Unity and Unreal has made it possible not only for more people to make games than ever before, but also to make bigger games more quickly. This is a good thing. When I was dreaming about making my own games, knowing I could fire up Unreal, start coding and I could get a basic game up and running right away gave me confidence I could handle the technology aspect.
Game content is Expensive
So back to content.
In the previous post I was talking about lowering staff costs and using freelancers to produce content. Even with these considerations, creating all the content a modern game needs is a lot of money. Let’s see for example how long it would take to build an 3D enemy character with modern tools. This includes:
- Concept: this is an image or series of images used to figure out the look (shapes, colors)
- Model and texture: the character is sculpted in 3D and all the detail of the surfaces is drawn
- Rigging: this is equivalent to attaching the strings to a puppet, but they have to be attached just right or the puppet will move funny
- Animation: basic animations needed typically include idling, walking, attacking, taking hits, dying, maybe roaring
- Visual Effects (VFX): footsteps, impacts, status effects, all require some visuals
- Sound Effects (SFX): footsteps, impacts, status effects, all require some sounds
- Behavior: this can be almost anything, any skills the enemy has, AI, etc
To get all of this done for a single character would take anywhere between 1-4 man-months for a medium-sized indie team, depending on the quality bar they’re trying to hit. And this is just looking at a character, you need to do similar calculations for environments, UI, etc. No wonder even indie games take years to produce.
As of this writing Mech Armada has 5 different environments, 25 creatures and 70 mech parts. With more to come. Even using optimistic estimates it would take a long time, a large team or both to create all that content. Is there a solution?
Not reinventing the wheel
In a way, creating your own game’s content is comparable to building your own game engine: you get exactly what you want, but it’s expensive. Can we also stand on the shoulders of giants for content like we do for engines?
Well, let me tell you about the Wilhelm scream. Let’s hear it first:
Did you recognize it? Since 1951 it’s been used in hundreds of movies and games, including Indiana Jones, Lord of the Rings, Toy Story and more. Sound designers use existing sounds all the time. For sure some are still recording their own foley by, say, splatting a tomato against the floor, but high quality libraries exist that make sound design much more accessible and affordable.
It’s a bit trickier with 3D content. You can buy pre-made 3D models and textures in places like TurboSquid and CGTrader, both Unreal and Unity have their own stores, and other services are appearing like Quixel Megascans. Many of these models are high-quality. Unfortunately, some people trying to make a quick buck routinely put together low quality games using that content, commonly referred to as “Asset Flips”. An Asset Flip is characterized by being a low-effort game that just grabs existing assets, throws them together quickly and hopes for the best. Little thought is given to the quality of the product. If you want to know more, this VentureBeat story talks about Asset Flips and how they affect players.
I believe it’s easy for most gamers these days to tell an Asset Flip when they see one. I also believe that a lot of the negativity around reusing is similar to what happened in the early 2000s with using third-party technology.
There are examples of great games reusing content, like PUBG. But, just like using an existing game engine, reusing content comes with some considerations:
- You lose flexibility. You can’t always find exactly what you’re looking for, so you will need to compromise or create some original content.
- You need to ensure content is consistent. Visual incoherence is a clear sign of a low-effort game. When you reuse content from multiple sources, you may need to adapt it so it looks like it belongs together.
- Even with existing content, there is still a significant amount of work involved in integrating it properly in the game. Regardless of how well-optimized an engine is, framerate is determined by your content, so you have to ensure they perform well.
When I look at reusing content I often think of it as casting. As in, casting an actor for a role in a movie. You start with an idea in your mind of what you’re looking for. Then a bunch of people audition for the part. Hopefully you find someone who’s a good fit and brings the character to life. Or even better, you get inspired by the actor’s talent and develop the character further. The actor may not look 100% exactly like what you pictured in your head, and people will see that actor in various different movies, but that’s ok. I haven’t heard anybody wonder why Tyler Durden is showing up in Mr. & Mrs. Smith.
I couldn’t have built Mech Armada if pre-made content wasn’t available. The game would be too expensive to make.
I didn’t use existing music, mostly because I was afraid of rights issues with content creators, so I wanted to make sure that I owned the music and there wouldn’t be any problems covering the game. I also hired freelancers to improve and modify some of the content, to make it fit better in the world of Mech Armada. And the task of putting everything together (building the environments, connecting the animations, triggering sound and visual effects and make it all feel good) still takes a long time to do well. But despite all of this, reusing content has been both empowering and freeing.
It’s a lot easier for me to make the game world feel full, as content is less expensive to produce. And I get inspired looking at what’s available. Maybe I’ll see a new weapon and that gives me an idea for an ability. Or a creature’s anatomy sparks a new enemy type idea.
Mech Armada is a better game because of content reuse.
And now that I’ve seen so many assets, I start to recognize them in the games I play. For instance, Craftopia offers a vast world thanks to the availability of existing content. I expect this trend to become more and more established, and soon we’ll talk about content the same way we talk about game engines today.