Object Pool

op_banner

In an attempt to make my current and future Unity games more efficient I developed an Object Pooling runtime utility, so rather than instantiating and destroying objects as they’re needed, the object pool will recycle existing objects as they’re no longer required. For the sake of convenience the Object Pool class is based off of the Singleton pattern, so to use it you don’t actually have to place a Game Object with the Object Pool component on it in a scene to use it. However, if you want to pre-load the Object Pool with prefabs you can, this does require you to manually place a Game Object with the Object Pool component on it in the scene in order to populate it in the hierarchy window.

For the sake of convenience, the Object Pool class uses functions that are almost parallel to Unity’s Destroy and Instantiate functions. So rather than using ‘GameObject.Instantiate’ you use ‘ObjectPool.Spawn’, with the new function returning a GameObject and its arguments mirroring those of the default Instantiate function. As for the ‘Destroy’ function, you can instead use ‘ObjectPool.Deactivate’, this function has two different sets of arguments, the default being to deactivate the specified object immediately, and the other being to deactivate it after a defined number of seconds.

Asset Store Page

Drop to Surface

dts_banner

While I have been working on environments/levels in Dragonspawn 2 I found that I was having to place significant amounts of clutter objects by hand, and as I’m sure many level designers know, that can involve a whole lot of up close fine tuning of positions to ensure that different objects actually look like they’re sitting on a surface and not floating above or clipping through them.

This got me to thinking, what if I could just press a button and use a Physics Raycast to project downward and have Unity do the rest of the busy work for me?

In the end I wrote a neat little Editor Utility that used a Raycast in conjunction with the collision bounds of an object to determine where the object needed to be placed when ‘Shift + D’ is pressed.

Asset Store Page

Mage Rage (Game) – University Assignment

Mage Rage Logo created by Ashleigh Barrett, Team Stallion Logo created by Tylah Heil.

Over the past 15 weeks I have been working along with three others on our final Game Project for our Degree. Throughout this Project I have worked on Level Art, Gameplay and Technical Programming, Audio Mixing, and recorded various dialogue for different characters.

Mage Rage is a First Person Puzzle Platformer set in a world of magic and mystery, where not even the fourth wall can protect you from the alcohol infused shenanigans of the College of Sandy-Crack and its intoxicated inhabitants.

A Gameplay Trailer and Screenshots can be found on the Team Stallion Facebook Page.

Mage Rage is available on Windows, Mac, and Linux, and it can be downloaded from here.

Awards:

I was also nominated, and won the award for ‘Most Outstanding Gameplay Achievement’ for our Year Group at an awards ceremony held after our Demo Evening on the 25th of November 2013.

Additional Credits:

Ashleigh Barrett (Portfolio Link TBA)

Nathan Jensen (Portfolio Link TBA)

Tim Horvat (Portfolio Link)

Object Replacement Tool

ORT_Banner

Object Replacement Tool is an editor extension that I programmed for Unity 3D, it is designed to make replacing GameObjects in the editor a breeze. It replaces objects quickly and easily without the user having to reposition by hand. Just select an object (or multiple), drag in the replacement and hit the Replace button. It also features the ability to add objects without replacing the selected reference, and even allows for mass object placement at incremental position, rotation, and scale.

Asset Store Link: https://www.assetstore.unity3d.com/#/content/6472