Behind the mask. Inside the build.

The decisions, experiments, fixes and creative work shaping SHADOWFRAG. A development journal built from the project’s actual records.

Game and development terms, explained

30 posts

Moonspire’s opposing pagodas and connecting routes, captured in the current SHADOWFRAG engine.

Removing work between input and the server

Technology

I changed storage, network waiting and retry ownership to remove work before messages leave. The measured gains belong to specific 64-client tests, with their failed baseline kept visible.

Read post
Meeting Master Hejian during The Crimson Path story tutorial.

Giving SHADOWFRAG its sound

Development

The sound pass follows actions from preparation to recovery, adds wordless ninja voices and tutorial narration, and introduces a studio for hearing edits in the running game.

Read post
Moonspire’s opposing pagodas and connecting routes, captured in the current SHADOWFRAG engine.

Keeping multiplayer updates fresh

Networking

Star-heavy tests showed clients receiving traffic without getting a fresh scene. I traced the delivery stages, kept the changes that held up and retained the mixed follow-up results.

Read post
The rivers, mountain districts and crossings of Shogun Highlands.

SHADOWFRAG is a Movement FPS

Game development

The game has grown from close arena fights into conquest, training and a story mission. Movement remains the skill that connects those different ways to play.

Read post
SHADOWFRAG play menu with gold accents, persistent settings navigation and a large ninja preview.

Making the menu fit the game

Interface

The menu had gained more options than its original layout could comfortably explain. I reorganized settings and previews, then checked that precise values survived editing and saving.

Read post
Twin Castles, captured in SHADOWFRAG's Vulkan renderer

Small geometry. Big personality.

Art + performance

I refined hats, weapons and effects around shapes you can recognize during a fight. More detail only helped when it made the ninja or the action clearer.

Read post
Later Ironworks overhead view with gray corrugated roofs, a yellow crane, industrial tanks and smokestacks.

An atlas made from the game

Maps

I built the map atlas from engine captures so players could inspect real routes. The original twenty-map work is preserved here, with later updates to the roster.

Read post
Two rows of six later ninja poses; forward and sideways double-jumps rotate the model and cape around the upright wireframe hull.

A ninja that moves like a ninja

Animation

The movement worked before the body explained it clearly. I added directional flips and short local effects while keeping animation separate from combat collision.

Read post
Ironworks, captured in SHADOWFRAG's Vulkan renderer

Teaching the network to say less

Netcode

I was sending appearance data and empty fields more often than the game needed them. Removing that repetition reduced traffic while preserving the facts used to decide a hit.

Read post
Windwalk, captured in SHADOWFRAG's Vulkan renderer

A fast frame is only half the story

Engineering

Drawing a frame quickly does not tell me how long an action waited to be processed. I separated those jobs, then measured a smaller rendering change on its own.

Read post
SHADOWFRAG play menu with gold accents, persistent settings navigation and a large ninja preview.

More than a single shot

Development

The game had grown beyond ninja instagib. Renaming it meant finding room for those new fights while carrying existing settings, packages and tools along with it.

Read post
Lantern Yard, captured in SHADOWFRAG's Vulkan renderer

The game I am building

Development

SHADOWFRAG began with one-shot ninja fights. As I added weapons and objectives, I kept coming back to movement that gives you useful choices in every kind of match.

Read post
SHADOWFRAG match builder with map, objective, equipment policy and a limit of 64 players including bots.

Letting the rules change the fight

Game systems

I separated objectives, weapons and protection so you can change the kind of fight on a familiar map. That also meant teaching the bots what each match asks them to do.

Read post

Dates follow the development work described. Screenshots have their own archive dates. RSS feed