Hendrik du Toit

Creative Engineering Lead

More than a decade of creative engineering work, both employed and independent. Across all of these projects, I was the leading decision-making engineer. These are the works that challenged, shaped and inspired me throughout my career, starting with my journey in advertising, doing creative technologies and DevOps, through to video game engines and tools today. I believe hard skills are obtainable and therefore can come second; it is creative problem-solving with the right tools that will elevate the product.

Esophaguys

Third evolution of the physics driven character controller

Character ControllerGamesUnity3D

I developed Esophaguys' innovative, gravity-defying character controller. Playable and non-playable characters attach to any surface. The physics-driven approach allows characters to form chains and build playable neck bridges, enabling rich, cooperative gameplay mechanics that have never been done before.

Free flowing hot-controller partying

DesignGamesUnity3D

I designed player management in Esophaguys to be as easy as plugging in a gamepad. Since playtesting proved the controls are already intuitive, the system is designed for gamepads to easily be passed around at any couch co-op party, with no delay before play. I also developed a minigame design system that dynamically changes spawn positions of gameplay objects. This meant that players needed to learn how to adapt and make use of each point of interest, making winning a round feel well earned.

Major console platform porting

EngineeringGamesToolsDesignSoft SkillsUnity3D

When innovating something new, I believe that design and iteration always come first, so I gave our two designers bespoke level editing tools to minimize update friction for more than 22 levels playing around 10-30 minutes each. If something did not work, the only question was how to change the design, not how to use the tool. Access to all the major platforms was equally important, so I made sure Esophaguys can simultaneously build binaries from the CLI for Steam, Xbox, PlayStation, Switch and GOG.

Self publishing accolades

CommunityGamesSoft SkillsUnity3D

Self-publishing while shipping a game is never easy, and it wasn't. As an actual independent team of four ex-students, we built good relationships and monitored the market, and over four years of ongoing development Esophaguys secured a solid repertoire of laurels, mentions and sponsors. With such a small team, everyone's efforts contributed equally, be it flying across the pond for in-person showcases, storefront art, trailer edits, or uploading for lotcheck at the early hours of the morning.

Amplifyind cooperative weirdness

MechanicsGamesVisualsDesignUnity3D

The physics-driven character controller led the way for Esophaguys' emergent gameplay mechanics. I worked through dozens of possible mechanics, pruning until we settled on the ones that embrace the necks at every step. Through progression and exploration, cloud save platform support allows players to mix and match skins, hats, and outfits to fit thousands of possible combinations, ensuring no two characters look alike.

Optimized shaders and lighting

VisualsGamesToolsUnity3D

Esophaguys' world is designed to induce curiosity and intrigue, through its weirdness and its rich, beautiful visuals. Forced to use 2D art and lighting in a 3D physics engine, I had to develop custom colormapping shaders with ShaderGraph to support the hybrid approach and keep the world looking curvy and mysterious. All while keeping the frame rate at 60fps on Switch.

Unreal Tools

Internal productivity tools

EngineeringGamesToolsUnreal

I interfaced with UE5's Slate framework in C++ to develop a series of productivity tools to smooth interaction with the built-in Sequencer tool. My client needed some engineering support so they could focus on their craft, so I helped them speed up production. Some apply their preferred default properties when new UE5 objects are created, and some avoid those pesky extraneous clicks that pile up in a day's work. I packaged it up as a plugin and handed it over for them to use internally.

Bare Butt Boxing

Tank controls and camera framing

Character ControllerEngineeringGamesNetcodeUnity3D

Building an online, input-predicted and physics-driven character controller was not easy. After weeks of research and around a dozen prototypes to find the right tech stack, I finally found something that just felt right without compromising 8 player game feel. Then I made sure the camera motion felt right and the character controller was well grounded for the secondary mechanics, charge, jump, and ground pound to add on top.

Systemic level design

DesignGamesToolsUnity3D

It took a lot of playtesting to find level designs that I thought worked well. Committed to internal playtests, we gave it bits of time every week to chip away at it. I had to keep camera movement minimal to avoid disorientation, but with the fixed angle, deeper corners of the levels caused issues when panning forward. So I developed a few tools and systems that we could use to build ProBuilder greyboxes around, then we could playtest and confidently hand the levels over to the artists for final decoration. The first 3 of the 7 shipped levels had my ideated and built designs.

Unity Multiplay x Photon Fusion

EngineeringGamesToolsNetcodeUnity3D

After I had laid out a solid foundation in Unity's data-oriented technology stack (DOTS) and visual scripting, I combined Photon Fusion's netcode with Unity Multiplay to mitigate scaling costs. Specifically around server cost and splitting our playerbase across regions. Players can play from anywhere, and servers could stand up, run and tear down automatically. We were able to fit around 5 lobbies of 8 players per server before a new one would need to stand up.

Unity Creator Spotlight

CommunityGamesEngineeringSoft SkillsUnity3D

The engineering technology behind this project drew a lot of attention, particularly from Unity's Creator Spotlight team. In a streamed interview, we shared how we use Unity's data-oriented technology stack (DOTS) to create a physics-driven, input-predicted multiplayer game that scales well with Unity Multiplay services. The game's appeal also attracted numerous content creators and online publishing showcases.

Character customization at wide screen support

UIGamesVisualsUnity3D

I took a systemic approach to building the UI for Bare Butt Boxing. Because we were not yet sure which direction the UI would go, I made an easily reusable UI framework the priority. After I tested and addressed localization issues for 12 languages, input scheme variants, and widescreen 21:9 support, the techniques I put together allowed us to iterate, decorate, and animate the UI without having to push the visuals away from our intended direction.

From Blender to active ragdoll

VisualsGamesToolsEngineeringUnity3D

The project's animation pipeline started with bespoke rigs built in Blender. I built tools that fed the animation data to the game's physics for active ragdoll. Because the characters shared the same rig, skins were easy to integrate, and I provided parameters to customize the weights of the active ragdoll characters. 6 characters shipped with 4 unique skin variants each using this pipeline.

SporeBloom

Online multiplayer lobbying

EngineeringGamesNetcodeUnity3D

SporeBloom started as local multiplayer, but online multiplayer lobbying and connections were then needed to allow better player access, skin selection and closed beta playtesting. I made a drop-in solution for the existing project, to avoid putting the existing player base at risk.

R&D / Experiments

DOTS, client predicted, and more character controller work

EngineeringGamesCharacter ControllerNetcodeUnity3DUnreal

I applied the techniques from Esophaguys' physics-driven character controller to a 3D world, and ported them to Unreal Engine 5 using C++. I also developed a custom client-side predicted netcode framework, with server reconciliation, and carried out Unity DOTS performance testing with gameplay triggers and events.

Bravery Network Online

Server infrastructure and netcode

EngineeringGamesWebNetcodeUnity3D

I led the rebuild of their network infrastructure from the ground up using AWS. Horizontally distributed matchmaking, gameplay and database servers allowed this turn-based RPG battle game to reach players anywhere in the world with minimal server cost.

Tetra Neon

Technical artistry

VisualsGamesUnity3DBlender

Tetra Neon's visual inspiration came from a dark, post-apocalyptic cyberpunk world. As a solo project, I developed a pipeline that used existing 3D Blender animations to generate 2D spritesheets for Unity. I designed the visuals first with custom shading and compositing in Blender, and then built a custom Blender tool that automatically posed, animated and generated spritesheets that instantly updated in Unity at the click of a button.

Platforming with physics

MechanicsGamesCharacter ControllerUnity3D

Tetra Neon's character controller was the predecessor to Esophaguys'. It allowed secondary mechanics to evolve from the physics-driven foundation that the technique provides. Because objects already have physics applied to them, simple mechanics like jump, climb, and dash pose no risk to the character controller.

Dice Game Jam

Let the dice roll

MechanicsGamesVisualsUnity3DBlender

I made this game within 72 hours. It is an unusual game, but it was instrumental in adding Blender rigging and a bit of modeling to my skill set. Its physics-driven gameplay comes from pushing objects and dice over, and then observing what follows.

Volkswagen 001Beats

Volkswagen South Africa

EngineeringGamesWebTools

I used the Google Maps API to customize the streets of Johannesburg for two local artists to navigate, as they collected sounds and composed tracks live on the go. I had to verify they had collected the sounds and sent it to the device in the car as they drove. It also had to look good visually for the camera footage to be usable. With only one night to shoot, I monitored the event until late night, happy that things went as I hoped.

KFC Shakin' Shakin'

Gyroscopic destruction

EngineeringWebTools

I interfaced with the gyroscope through the web API for a project in which players shook their phones to shake the room: more shakes improved their chances. It was accessible to any phone that has a gyroscope. Technically simple, but definitely put a smile on many South African KFC customers.

Mercedes-Benz

Long term brand building

EngineeringWebToolsSoft Skills

This was a pivotal engineering career step for me. Over many years, I built a relationship with the client, and applied my client-facing, project management and leadership skills to many award-winning projects, many of which only ran for the duration of the campaign. My technical background equipped me to forward-deploy to their headquarters to train and solve digital transformation issues such as part shipping, online test drive or service booking, and dealership intranet training.