Sign in

Gavin Clayton

@gavinclayton.bsky.social
903 followers 130 following 228 posts

Hello! I'm the creator and lead developer behind Daggerfall Unity. Now working part-time on another game. Devlog: dev.interkarma.net Location: Australia

PostsRepliesMedia
Gavin Clayton @gavinclayton.bsky.social · 26/09/2026
Last IK thing using Ozz is foot placement on uneven terrain / static props.
061
Gavin Clayton @gavinclayton.bsky.social · 26/09/2026
Aim target look at attached to head joint. Again, driven by Ozz Animation. The only thing I added was some clamping so my guy doesn't look possessed.
060
Gavin Clayton @gavinclayton.bsky.social · 25/09/2026
Inverse kinematics with hand attach points. I have Ozz Animation to thank for the IK support, it's the animation library that keeps on giving.
080
Gavin Clayton @gavinclayton.bsky.social · 14/09/2026
After porting DFU to my engine, I've caught the bug again for huge streaming terrain that stretches out over the horizon. Working on that with all the tricks I've learned since 2014.
1111
Gavin Clayton @gavinclayton.bsky.social · 31/08/2026
I've enabled kits (my scene/prefab) to be used as a stamp when nested into a parent kit's terrain. Here the same small terrain kit is nested twice and blended with RadialLog on left for a smooth join and Square on the right to show how it stamps. Foliage rescatters based on layer settings.
190
Gavin Clayton @gavinclayton.bsky.social · 31/08/2026
Environmental story telling
060
Gavin Clayton @gavinclayton.bsky.social · 22/08/2026
I've mostly ported Daggerfall Unity to my C# game engine as a fun test, and wanted to brain dump the stickiest problems I've hit so far. This might be useful to someone attempting the same in future. I'll just write these out as I think of them in roughly the order I hit them.
1101
Gavin Clayton @gavinclayton.bsky.social · 20/08/2026
I've been experimenting with porting Daggerfall Unity to my custom Deep Engine. Challenging but doable, and a good proof that my engine is ready to build with.
1285
Gavin Clayton @gavinclayton.bsky.social · 16/08/2026
Snow is the weakest setup so far, as my basic particle system can't produce nice flutter yet. Still looks OK with a little distance fog and a cloudy sky.
070
Gavin Clayton @gavinclayton.bsky.social · 15/08/2026
Rain and mist particle systems, volume fog. The mist particles and fog interact with directional lights and a spot light from above.
190
Gavin Clayton @gavinclayton.bsky.social · 15/08/2026
GPU driven particles. Started work on this last year around the same time as foliage imposters. Still very much WIP but it's good enough for a lot of basic effects.
080
Gavin Clayton @gavinclayton.bsky.social · 15/08/2026
GPU driven foliage and hemi-octahedron imposters for select objects like the trees. Terrain shown is 512x512 metres. Uses GPU scattering for foliage with gather and frustum cull. Draw instanced indirect means the buffers never touch the CPU once setup.
080
Gavin Clayton @gavinclayton.bsky.social · 15/08/2026
Mixed deferred and forward materials all lit by the same renderer and clustered lighting. There's IBL, directional, and two spot lights in scene with transparency on a few objects. Sorting transparent objects is still a problem to solve, but this is good enough for standalone objects for now.
090
Gavin Clayton @gavinclayton.bsky.social · 05/08/2026
Buoyancy physics for dynamic objects. Uses four probes around the middle height of each object sampling the Gerstner waves with same math as GPU. Lowering buoyancy causes objects to sink until they settle on underwater terrain surface.
0100
Gavin Clayton @gavinclayton.bsky.social · 27/07/2026
The UI system in my engine is basically the same used in DFU, even if it has come a long way in the last few years. I cut the first code for this UI in 2012. Almost 14 years later it finally has a visual editor haha. Feels great just dragging around layouts with undo/redo, etc.
060
Gavin Clayton @gavinclayton.bsky.social · 27/07/2026
My engine now has a fully lit forward path consuming the same light clusters deferred path uses. This allows me to setup things like semi-transparent windows and other forward objects that still interact with scene lighting. Volume fog and area GI also came out of the same work.
0161
Gavin Clayton @gavinclayton.bsky.social · 24/07/2026
Pushing more enemies at higher frame rates after some optimisations. Every mob is individually skinned, holding a weapon that tracks with their hand node, running a Lua script for flocking behaviour, and interacting with physics / navmesh. The fights won't be this large, but I always test at scale.
090
Gavin Clayton @gavinclayton.bsky.social · 23/07/2026
Working on grouping behaviours for enemy combatants. Uses boids-styled flocking where they aim to encircle the player without getting too close (for now).
160
Gavin Clayton @gavinclayton.bsky.social · 21/07/2026
Player character holding a weapon with attachment socket driven by animation tracks. Root motion and blending based on facing. This is all driven by a Lua script consuming a state machine controller and action input system. Next rung of the ladder will be more states in the controller.
080
Gavin Clayton @gavinclayton.bsky.social · 21/07/2026
Working on nodes linked to animations so that characters can hold weapons, and realised I was most of the way to root motion. I can now drive any animation state with motion so they play as authored. Engine uses Ozz Animation in back end, anim shown is by Quaternius.
150
Gavin Clayton @gavinclayton.bsky.social · 12/07/2026
Working on a local GI volume. No bounces, but it can gather local, directional, and environment lights into a few sliders and carry illumination into underlit areas, e.g. the recess on the right and under the furniture. It's cheap and useful for interior spaces that need a little pop.
1120
Gavin Clayton @gavinclayton.bsky.social · 08/07/2026
Over the last couple of weeks, I've revived the terrain and foliage systems I was working on in 2024/2025 with some fixes and added a Gerstner wave water plane to tie it all together. Art aside, all the tech I needed to build in my engine for outdoor environments is finally in.
1120
Gavin Clayton @gavinclayton.bsky.social · 23/06/2026
After all the work on point lights, spot lights came together easy.
090
Gavin Clayton @gavinclayton.bsky.social · 23/06/2026
Point light shadows now functional in my engine. I've been trying to solve various problems with these for ages now. There's always more refinement to do later, but they look good in action and remain stable.
2150
Gavin Clayton @gavinclayton.bsky.social · 21/06/2026
Engine now has a mobile character state machine with behaviours driven by Lua script. Each of these angry little guys is running on a Lua "brain", following me around a navmesh in a simple test kit.
0121
Gavin Clayton @gavinclayton.bsky.social · 16/05/2026
I've wired up the Kit > Sandbox instantiation flow. Now I can instantly test and replay kits with full physics simulation at the press of a button. Here, I've built a quick tower of blocks in Kit editor surface than Ctrl+P to run in Sandbox and smash them.
1110
Gavin Clayton @gavinclayton.bsky.social · 11/05/2026
Sandbox is linked to gametime, which animates a procedural sky with day/night cycles. Later it will handle timed events for quests and so forth. Wiring all this up so that I can playtest kits instantly in sandbox with start/pause/stop and time controls.
1100
Gavin Clayton @gavinclayton.bsky.social · 10/05/2026
Reworked editor UI from everything docked into a single frame and feeling cramped to tabbed layouts where each tab is responsible for a single workflow. This feels much nicer and everything has more room to breathe.
0211
Gavin Clayton @gavinclayton.bsky.social · 07/05/2026
If you're interested in the custom engine I'm building for my game project, I've made it available for free on Itch at page below. It's still early days, but the purpose of all this work is to build a full-featured modding toolset directly into my next game. interkarma.itch.io/project-arro...
interkarma.itch.io
Project Arroa Tools Preview by Interkarma
Project Arroa standalone tools environment for the purpose of testing, feedback, and iteration.
2153
Gavin Clayton @gavinclayton.bsky.social · 07/05/2026
The scene editor in my engine is now functional enough to author complete scene assets. I'll run through some of what I've built over the last 6 months. First up is visualising collider shapes (mesh, capsule, sphere, convex hull, etc).
190
Gavin Clayton @gavinclayton.bsky.social · 13/07/2025
After a year of working full-time independent on my game, I've been fortunate enough to pick up some great part-time work. This provides me more financial security and some resources to help self-fund development into the future.
1270
Gavin Clayton @gavinclayton.bsky.social · 01/07/2025
Asset manager can now import a mix of files and folders while preserving source hierarchy on import. Asset builders are multithreaded and run even while files are being copied, so whole process completes in about the same amount of time as file copy, including thumbnails for textures and models.
0180
Gavin Clayton @gavinclayton.bsky.social · 29/06/2025
Deep Engine drag-and-drop several hundred FBX model files into asset manager
070
Gavin Clayton @gavinclayton.bsky.social · 26/06/2025
Setting up a modal progress dialog so editor can display progress after user drags and drops a large number of asset files into engine.
180
Gavin Clayton @gavinclayton.bsky.social · 08/06/2025
Early stage of Deep Engine's asset rebuild and hot-load in action. After editing and saving image file, the build system detects change to source file and rebuilds it into a texture asset based on current meta properties. Note editor thumbnails on left update after image is saved.
160
Gavin Clayton @gavinclayton.bsky.social · 02/05/2025
I haven't posted a blog update in several weeks now, but I have been working hard across several fronts! This blog post catches up on what I've been doing and where I'm headed next. dev.interkarma.net/2025/05/02/m...
1110
Gavin Clayton @gavinclayton.bsky.social · 25/04/2025
Making an editor front-end for asset compiler. Asset builders are now multithreaded, so an expanding log reader is required to solve the problem of linear output becoming interleaved from different threads executing in parallel. I can also highlight any build errors directly in the editor.
150
Gavin Clayton @gavinclayton.bsky.social · 17/04/2025
Making some big improvements to asset browsing. In addition to thumbnail view, it will now support lists and trees and more filtering options. Also built a new tree view control that's fully virtual and can scroll hundreds of thousands of items without slowing down.
060
Gavin Clayton @gavinclayton.bsky.social · 10/04/2025
Just a heads-up that I'm changing hosting providers for dfworkshop.net and interkarma.net. They will go down over the few days as I move everything over.
031
Gavin Clayton @gavinclayton.bsky.social · 03/04/2025
I really want to become more proficient in Blender. Following some courses and immersing myself in practise each day. Right now learning how to model a detailed human figure and I'm slowly becoming more confident with the tools. Best way to learn is to make mistakes and fix them.
0100
Gavin Clayton @gavinclayton.bsky.social · 30/03/2025
Animation retargeting now working well enough to throw all kinds of animations at all kinds of models. This whole process was really involved. I had to set up a retargeting pipeline to handle joint-to-joint mapping, pose correction, and proportion correction.
0140
Gavin Clayton @gavinclayton.bsky.social · 28/03/2025
Revisiting and improving animation retargeting in my engine. Looking forward to supporting more animation inputs.
050
Gavin Clayton @gavinclayton.bsky.social · 21/03/2025
Really happy with my procedural sky so far. Shadows lengthen and shorten as the sun disc arcs from dawn to dusk. Clouds are lit by sun's direction as they drift and evolve throughout the day. The skybox colours light environment based on time of day. It's a good base to build on!
081
Gavin Clayton @gavinclayton.bsky.social · 05/03/2025
Spent the last two days in cyclone prep - trimming trees near house, cleaning gutters, securing what I can. Now feeling completely physically drained. Put in about two hours of gamedev today and I'm spent. Just going to crack a beer and watch the storm roll in from this arvo.
0120
Gavin Clayton @gavinclayton.bsky.social · 28/02/2025
I forgot to mention - new sky system casts shadows over terrain that move as the sun tracks across the sky throughout the day. I'll do a proper pass on this once distant terrain is further along. It's not much, it just adds a little extra something.
1160
Gavin Clayton @gavinclayton.bsky.social · 27/02/2025
Working on sky colour gradients that are a bit more "grounded" by reality, then I'll finish animation of day night skies. These skies aren't going to win any technical achievement awards, but they can sometimes make pretty background vistas, and I'm OK with that.
050
Gavin Clayton @gavinclayton.bsky.social · 27/02/2025
Working on game time and day/night cycles. An animated sun disc follows directional light as it rotates through the sky. Also animating environment light intensity on a curve. Now to animate sky colour gradients and a few other refinements, and I'm done with skies for a bit.
080
Gavin Clayton @gavinclayton.bsky.social · 26/02/2025
Fixed some visual bugs and improved performance a whole lot. Static HDR image-based lighting on left, dynamic sky shader HDR lighting on right - computing whole skybox + irradiance maps every frame at only +3ms.
180
Gavin Clayton @gavinclayton.bsky.social · 26/02/2025
Now using my dynamic skies as a source for HDR image-based lighting. Comparison between a static HDRI and dynamic sky pickup on spheres with roughness and metallic gradient.
050
Gavin Clayton @gavinclayton.bsky.social · 25/02/2025
Creating utterly lurid skies to get them out of my system.
1100