Nifty Island is a sandbox MMO where Players create unique games and experiences to share with the world, and then venture off to distant islands to collect, trade, and play.
I gained valuable experience releasing and maintaining a live service game with a passionate community, and working cross-functionally on a fast paced team.
My Contributions
My primary responsibility was designing and developing all aspects of the Character. The physics and movement, the camera system, interactions, procedural animation. I took ownership for from design to release and beyond. I was also responsible for creating some of the combat and game systems, such as the networked projectile system and the fishing minigame.
- Movement and Physics
- Character Animation System
- Fishing Minigame
- Dino Race Minigame
- Hitbox & Projectile Systems
- Camera Systems
- Interaction System
Movement and Physics
Players are able to upload their own 3D assets and have complete freedom in how they use them, so the Character Controller needed to be ready to handle pretty much anything.
I created a movement system which is capable of traversing complex 3d environments with ease. It was designed to be easy to pick up while maintaining a high amount of skill expression for those who wished to engage with it.
The more competitive side our community latched onto the movement mechanics right away, and it was amazing to see Players so delighted by a system I had designed! Speed running competitions quickly became a fan favorite after launch.
Character Animation Systems
In Nifty Island, Players are able to upload any humanoid 3D model they want to be their Avatar. This required an animation system that was able to adapt to different proportions and sizes while maintaining accuracy.
I worked alongside the art team to help design a set of animations that matched the movement and allowed for a wide range of characters. I also created the systems to play these animations in sync with the movement. There is an additional layer of precedural animation on top to help communicate the momentum.
Fishing
It was important to make the fishing feel grounded in the world the Players create. They must explore their island to locate a fish, line up their cast, and fight to reel it back to shore. There are several different meters to keep track of while playing the game, but they are communicated through diagetic UI and animation to keep the Player immersed in moment.
You can't see what kind of fish you have until you catch it, but the design of the game allows for experienced Players to have an idea of what fish their fighting.
This was a post-launch feature that quickly became one of our most played activities. I worked on this from prototype to release as the solo designer and developer.
Dino Race
A fully precedural race experience generated from a list of 6 integers. For example, this is a race where Racer #2 comes in first place, Racer #4 comes in second place, and so on:
{2, 4, 5, 3, 6, 1}
The task was to create an engaging race from this limited amount of data. I created a fully procedural race where the contestants will avoid obstacles, encounter events, and create close finishes. The generation is deterministic, so Players across the world can get together and watch a race play out all from the syncing of a couple of bytes.
I was responsible for the design of the algorithms to generate the race as well as the systems to bring it to life. I also created a procedural track preview camera. Similar to what you will see in popular karting games, except it works for any track without defining custom camera paths.
Hitbox & Projectile Systems
A networked hitbox system that allows for more customizable collision resolution than Unity Physics (PhysX) while also improving on performance.
It was designed to work for melee combat as well a projectiles system that I create, which was able to handle thousands of moving projectiles across the network in a reliable and performant manner.
Camera Systems
An out of the box camera solution wasn't going to work for this game. We needed it to function well as both a 3rd person action game camera and a platform adventure camera, and transition seamlessly from indoor to out.
I created the tooling and systems to help the camera navigate this world smoothly. It handles object detection and camera placement for a variety of different scenarios.
Interaction System
Heuristic interaction system that makes it simple for Players to select the object they want among many. Nifty Islands hectic environments demanded a system that works well from any zoom level with any amount of objects.