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.
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.
I recently wrote a simple Color-Blind Utility for NGUI: Next-Gen UI, the add-on allows you to assign alternate colors and sprites from an atlas to UISprites, as well as colors and fonts to UILabels (including those targeted by a UIButton’s color tweening). This add-on also includes a color-blind simulation post-processing effect to be used for testing purposes (Requires Unity Pro License). I designed the add-on in such a way that it should integrate fairly seamlessly into the pre-existing NGUI toolset and be easily modifiable from an API level, making it easy to integrate into a game’s settings menu.
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.
I recently released a new Editor Extension for Unity, though simple, this extension adds handy icons/asset previews alongside the names of objects in the hierarchy window. The extension is designed to improve workflow by giving users a visual representation of their scene objects inside the hierarchy window.
Dragonspawn is a small game project that I created for my final Advanced Game Development Assignment at Griffith University during my second year.
Dragonspawn is a lighthearted parody on many modern games, and contains a fair bit of of crude humour, it should not be taken seriously and isn’t recommend for the faint of heart or serious of temperament.
Though largely inspired by the game Berserker Quest VI: Curse of the Onyx Medallion (http://armitagegames.com/), Dragonspawn borrows many technical design choices from the Borderlands, Call of Duty, Bioshock, Mass Effect, The Elder Scrolls franchises without directly trying to replicate any of those titles (except maybe in the area of the HUD). Early on the game just involved walking around shooting at a dragon that would fly through a large room breathing fire. As the game evolved through the production cycle many highly unnecessary game mechanics were violently cobbled on to ‘make it better’ (that was a joke).
This project was originally created for a University Assignment and all of the associated assets were created by one individual in an 8 week period.
This Dragon was modelled for an assignment as a joke, I was working on a simple interactions demo in which I’d implemented the Crossbow and a simple archery target. One of my colleagues at Uni jokingly told me that it needed more Dragons, I felt up to the challenge, so that same evening I began modelling the head of the Dragon based off a terrible sketch I drew on the hour long train ride home.
Within 3 days I had the full Dragon modelled and Textured and complete with a simple skeletal rig. By the next class (the following week) I had the Dragon traversing a simple path breathing fire every 7.5 seconds.
This Dragon was modelled in Maya 2012, and textured in Photoshop CS5.
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.
Nuclear Bug Stomper is a simple side scroller/platformer built in Flash using source code for what was a basic Super Mario Bros clone supplied to my class by our lecturer. The prototype for the game, including code and art was created by me using the aforementioned source code, however, for the final assignment we had to work in pairs of two and take one of our concepts (which ended up being mine) to the next level.
At that stage I was responsible for the Programming side of things, I had already prototyped a lot of the game mechanics which included the addition of the shooting mechanic, however collisions for projectiles didn’t work in the earlier build, so that was really the major element that I had to fix along with the construction of a simple reactive AI which had several elements of customisation (including: maximum health, passive/aggressive reactiveness, and patrol waypoints).
My partner for the assignment, Beth Thomas, was responsible for creating and adding additional art to the game while maintaing the already established Art style. She managed to create enough graphics to build a second level, and was responsible for the artwork of the entire second level, and the elevator at the end of the first level.
The source code for this assignment wasn’t without it’s bugs (though minor ones), one of which caused the player character to be launched across the screen at high velocities as though it were a bullet, thus breaking the game. I did however manage to isolate and amend the issue before we submitted our final build.