Where is Cairn? Welcome to Myos.


Cairn takes place on a beautiful and horrible world known as Myos.  We wanted Myos to make life hard on everyone, no matter what part of the world you live in, the struggle to survive is a constant.  Once the various global dangerous were in place the world came to life with a long mysterious history, diverse locations, and then we filled it with various cultures.  I approached Myos almost as a character of it’s own, something that threatens everyone from the background.  Let’s dive into the details of all the things I’ve mentioned above.

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

Enjoy a little combat

I finally got around to upload some work in progress videos.

First off is our grunt combat. These are a few of our finished sprites smashing each other to bits and just showing our combat engine off. I walk through our different stances that a unit can be placed into also. Youtube thought it would be a good idea to add some extra light to this video so it’s a little bright.

The second video shows off the special attacks of two of our Slayers. They are not finished sprites, but the special abilities are fully functional. We have some buffing abilities, a summoning ability, a charge attack, a ranged area of effect, an instant area of effect, and one that adds special damage to the slayers weapon.

Hope you enjoy!