Category: Portfolio
-

Feature 08: Dialogue System
Introduction A feature I wanted to put in place early on was a fully fledged RPG-like dialogue system. I felt that although Soul Invictus is based on some of the basic survival game principles, I didn’t want it to cultivate the feel of a lonely survivor who has to piece together what has happened to…
-

Feature 07: Azure DevOps Pipeline
This feature is a little bit of a strange one as it is covering work I did on the background deployment infrastructure rather than my Soul Invictus itself. There were three main goals to this feature: Provide a consistent means to build the system across windows and mac, with as little human input as possible…
-

Feature 06: UI Cleanup
I am a big fan of minimal, flat UIs with good use of whitespace and decluttered from the visual noise and unnecessary trim you build up with more integrated or skeuomorphic design layouts. When I put together my multiplayer lobby for Soul Invictus I set out to move closer to this minimalist design taking inspiration from…
-

Feature 05: Multiplayer
I have implemented multiplayer in Soul Invictus using Unity Netcode for GameObjects and a transport layer which uses Facepunch Steamworks API. This reflects my lobby system and although has a few integration foibles around when you login and out to steam, seems to work well and has a symmetry which I like. Obviously this means…
-

Feature 04: Inventory System
One of the main features of most survival games these days is the ability to gather, craft and upgrade loot. In order to do any of this, the player needs a robust framework to manage their belongings and collect useful gear. I put together an inventory system with two main things in mind: to make…
-

Feature 03: Steam Integration
I am a big fan of the steam store. I love the whole interface, discovery experience and integration with games, especially when playing multiplayer with friends. It was a bit of a no-brainer then that my first game would integrate well with steam. Luckily in being close to games and game development I was familiar…
-

Feature 02: Integrated SQL Storage
Early on in development, I moved from what was originally Unity’s PlayerPrefs storage to create a framework around a SQLLite database. Integrating the correct DLLs for both Windows and Mac versions of my game, I added an extensible set of classes for records, tables and storage controllers. I have included a caching system that works…
-

Feature 01: The Voxel World
I have a confession: my current implementation of the voxel terrain system uses a Unity Plugin called VoxelPlay. It is a great piece of work by the team at Kronnect and has saved me hours of development work on the base terrain engine. I managed to pick it up in a winter sale for half-price…