Enter the Thermocrats



They are here. The heroic, technologically advanced and oppressive Thermocrats are now part of the game. It took a few good months to get all the animations in place, but this time we bested ourselves and came up with 7 new units for the game.

Continue reading

Unity3D Game Object Pool Manager

I talked previously how much a game object manager improved performance in Cairn, and I want to make sure anyone using Unity has the opportunity to use it in their game as well.

When I started researching a work around for Unitys Spawn & Destroy methods I came across a large number of pre-existing solutions.  There are free scripts and expensive packages that could handle the issue, but I wanted the best of both.  Something easy to use, something I can understand, and something free. This ment we had to grow our own solution, but I didn’t have to start from scratch.

I found a great script on the Von Lehe Creative Blog. They had a great object manager, but you needed a separate script for each object you wished to pool and it was written in javascript.

Since the rest of Cairn is in C# I converted the script to that language. This allowed me to walk through the script and get a better handle on what it was doing.

Overall it’s pretty simple. Build a stack of Game Objects, mark them as active or inactive, then when something requests a new object determine if one needs to be created or if one needs to be reused.

I changed it handle more like the built Spawn & Destroy functions within Unity. The new script takes in a prefab, using it’s name to create a Game Object Pool for that specific prefab, and handles the stack of objects as the original script did from there.

You’ll notice some string manipulation and comparison that could be improved or edited, but for what I was trying to accomplish it works like a charm.

The script is below, so enjoy!

Continue reading

Proper Memory Management in Unity

Blood Archer Violence

Cairn has grown. The game now includes over 20 types of units, a huge variety of attack types with fully working combat mechanics, almost 9 different Landmarks can be built, destroyed, and taken over, and dozens of doodads that have to be navigated around or destroyed for resources.  All of these pieces coming together in the most recent builds has created some unique problems, mostly with the management of memory.

All of these different pieces create other objects within the game.  Landmarks create projectiles that are thrown at enemies, Units create blood splatters as they take damage, and doodads break apart as they are destroyed.  Everything in the game has it’s time to be removed from the game, a blood splatter is only there for a second, as it fades away after the initial hit.  This spawning and destroying of game objects was really starting to hurt performance.  Lets look at some figures & performance charts to better explain the problem.

Continue reading