adrian's soapbox

HTC Vive Teleportation System with Parabolic Pointer

Here I present an easy-to-use teleportation system for the HTC Vive and the Unity game engine. The system is modelled after Valve's game for the Vive The Lab, a game where the player can traverse VR environments that are bigger than the play area. You can check out the project source code here on Github. The Github project is open source and licenced under the MIT licence.

Myself demoing the system in the HTC Vive

I intend on writing another article in the near future detailing some of the challenges that I ran into during the production of this system. Look out for that soon!


» read more

Demo Reel

Here is a short demo reel of my proudest work that I created for undergraduate university applications. It highlights all of my major Github projects up to October, 2015. You can check out the video below.



Wii Remote API for Unity and C#

Within the past 10 years motion controls have become an integral part of gaming and console game development. The Wii Remote specifically has managed to capture a generation of casual gamers and has created a completely new genre of casual games. However, none of these controllers have managed to permeate the PC gaming market despite their potential. In response to this, I have created a cross-platform Wii Remote communication layer for Unity (and C# with minimal changes - primarily debug messages). The API allows Unity developers to integrate the Wiimote and popular extension controllers (such as the Nunchuck, Classic Controller, and Wii Motion Plus) into their games. It also supports the Wii U Pro controller (which behaves as a Wiimote with a special extension controller).

Here is a video of the some of the API's features:

You can download the latest release here. The API’s source code (including a full demo scene) can be found here.
» read more


Bunnyhopping from the Programmer's Perspective

"Bunnyhopping" is an exploit of a very popular bug in games like Quake III Arena, Half-Life, and Counter-Strike. Bunnyhopping, or bhopping for short, allows a player to exceed the game-defined speed limit. It has created entirely new methods of play and allows very exciting, fast-paced emergent gameplay. As a decidedly skill-based mechanic, competitive players love bhopping because it is so hard to master. Thus, it may be useful to you as a game developer to "implement" bunnyhopping into your game. The purpose of this article is to define what bunnyhopping is, why it is important to consider as a game developer, and how to implement it mathematically into your FPS movement code. All code examples are open-source and free to use, as always.

This is what bunnyhopping looks like in-game to a skilled player:

One Example of Bunnyhopping in Counter-Strike: Source (Source)


» read more

Implementing Skyward Sword's Timeshift Stones in Unity

Nintendo is well-known for its polish and excellent use of resources, even while using the relatively underpowered Wii hardware. They often develop game mechanics with this in mind, and this limitation brings out some of Nintendo's true genius in game design. One of my favorite mechanics that take advantage of the hardware like this are the so-called timeshift orbs in The Legend of Zelda: Skyward Sword. Essentially the idea behind these is that the timeshift orbs take everything in a radius around it and send it "back in time" like so:

Zelda's Timeshift Orbs

While this effect seems complicated at first, it is actually pretty simple to implement with a shader.
» read more


1 | 2