Source: https://shadowfrag.com/blog/

# 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](https://shadowfrag.com/glossary/)

[Rivergate settlement beneath the mountains in Shogun Highlands.](https://shadowfrag.com/blog/capacity-beyond-64/)

## [64 players, and what happened at 128](https://shadowfrag.com/blog/capacity-beyond-64/)

Three clean runs confirmed a 128-client [Highlands](https://shadowfrag.com/glossary/#term-shogun-highlands) research workload. Dense fights and higher counts exposed different limits, so the game remains capped at 64 players including [bots](https://shadowfrag.com/glossary/#term-bot).

[Read post](https://shadowfrag.com/blog/capacity-beyond-64/)

30 posts

[Rivergate settlement beneath the mountains in Shogun Highlands.](https://shadowfrag.com/blog/capacity-beyond-64/)

### [64 players, and what happened at 128](https://shadowfrag.com/blog/capacity-beyond-64/)

Technology · Oct 27, 2026

Three clean runs confirmed a 128-client [Highlands](https://shadowfrag.com/glossary/#term-shogun-highlands) research workload. Dense fights and higher counts exposed different limits, so the game remains capped at 64 players including [bots](https://shadowfrag.com/glossary/#term-bot).

[Read post](https://shadowfrag.com/blog/capacity-beyond-64/)

[Moonspire’s opposing pagodas and connecting routes, captured in the current SHADOWFRAG engine.](https://shadowfrag.com/blog/less-work-between-input-and-server/)

### [Removing work between input and the server](https://shadowfrag.com/blog/less-work-between-input-and-server/)

Technology · Oct 26, 2026

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](https://shadowfrag.com/blog/less-work-between-input-and-server/)

[Shogun gameplay and its settlement display in the native game client.](https://shadowfrag.com/blog/shogun-bots-across-the-highlands/)

### [Getting Shogun bots across the Highlands](https://shadowfrag.com/blog/shogun-bots-across-the-highlands/)

Development · Oct 26, 2026

[Highlands](https://shadowfrag.com/glossary/#term-shogun-highlands) [bots](https://shadowfrag.com/glossary/#term-bot) were fighting in the north and scarcely attacking the south. I traced the imbalance to squad deployment, capture decisions and a bridge their navigation could not cross.

[Read post](https://shadowfrag.com/blog/shogun-bots-across-the-highlands/)

[Meeting Master Hejian during The Crimson Path story tutorial.](https://shadowfrag.com/blog/giving-shadowfrag-its-sound/)

### [Giving SHADOWFRAG its sound](https://shadowfrag.com/blog/giving-shadowfrag-its-sound/)

Development · Oct 26, 2026

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](https://shadowfrag.com/blog/giving-shadowfrag-its-sound/)

[Moonspire’s opposing pagodas and connecting routes, captured in the current SHADOWFRAG engine.](https://shadowfrag.com/blog/keeping-multiplayer-updates-fresh/)

### [Keeping multiplayer updates fresh](https://shadowfrag.com/blog/keeping-multiplayer-updates-fresh/)

Networking · Oct 25, 2026

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](https://shadowfrag.com/blog/keeping-multiplayer-updates-fresh/)

[The rivers, mountain districts and crossings of Shogun Highlands.](https://shadowfrag.com/blog/movement-fps/)

### [SHADOWFRAG is a Movement FPS](https://shadowfrag.com/blog/movement-fps/)

Game development · Oct 25, 2026

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](https://shadowfrag.com/blog/movement-fps/)

[Rivergate settlement beneath the mountains in Shogun Highlands.](https://shadowfrag.com/blog/building-shogun-highlands/)

### [Building Shogun Highlands](https://shadowfrag.com/blog/building-shogun-highlands/)

Maps · Oct 24, 2026

[Highlands](https://shadowfrag.com/glossary/#term-shogun-highlands) needed useful fights at each [settlement](https://shadowfrag.com/glossary/#term-settlement) as well as routes between them. I built walking connections first, then added exposed [skyways](https://shadowfrag.com/glossary/#term-skyway) for faster crossings.

[Read post](https://shadowfrag.com/blog/building-shogun-highlands/)

[The native HUD editor positioning the weapon group in a Shogun layout.](https://shadowfrag.com/blog/hud-and-tactical-map/)

### [A HUD for duels and distant objectives](https://shadowfrag.com/blog/hud-and-tactical-map/)

Interface · Oct 24, 2026

A [duel](https://shadowfrag.com/glossary/#term-duel) needs clear aim and weapon information; [Shogun](https://shadowfrag.com/glossary/#term-shogun) also needs ownership, [supply](https://shadowfrag.com/glossary/#term-supply) and routes. The [HUD editor](https://shadowfrag.com/glossary/#term-hud) and [tactical map](https://shadowfrag.com/glossary/#term-hud) let those needs share the screen.

[Read post](https://shadowfrag.com/blog/hud-and-tactical-map/)

[Airborne aim practice in Precision Dojo, captured in the native client.](https://shadowfrag.com/blog/precision-dojo/)

### [Precision Dojo: aim training with ninja movement](https://shadowfrag.com/blog/precision-dojo/)

Training · Oct 24, 2026

[Precision Dojo](https://shadowfrag.com/glossary/#term-precision-dojo) gives you fourteen offline forms for reading the game’s movement, from lateral tracking to airborne fights with your own weapon settings.

[Read post](https://shadowfrag.com/blog/precision-dojo/)

[Shogun gameplay and its settlement display in the native game client.](https://shadowfrag.com/blog/shogun-conquest/)

### [Shogun: conquest across the Highlands](https://shadowfrag.com/blog/shogun-conquest/)

Game modes · Oct 24, 2026

[Shogun](https://shadowfrag.com/glossary/#term-shogun) spreads a team fight across six [settlements](https://shadowfrag.com/glossary/#term-settlement) and twelve [outposts](https://shadowfrag.com/glossary/#term-outpost). Capturing the supporting ground opens the next attack and keeps reinforcements supplied.

[Read post](https://shadowfrag.com/blog/shogun-conquest/)

[Meeting Master Hejian during The Crimson Path story tutorial.](https://shadowfrag.com/blog/the-crimson-path/)

### [The Crimson Path: learning the game by playing it](https://shadowfrag.com/blog/the-crimson-path/)

Training · Oct 24, 2026

[The Crimson Path](https://shadowfrag.com/glossary/#term-the-crimson-path) introduces movement, weapons and linked captures through a mission. Each new tool arrives with an encounter that gives you a reason to use it.

[Read post](https://shadowfrag.com/blog/the-crimson-path/)

[Texture workshop with imported Lynocs materials and a forest-arena map preview.](https://shadowfrag.com/blog/a-texture-change-i-can-undo/)

### [A texture change I can undo](https://shadowfrag.com/blog/a-texture-change-i-can-undo/)

Map Studio · Oct 22, 2026

[Texture Workshop](https://shadowfrag.com/glossary/#term-texture-workshop) lets me try a surface across maps before applying it. The harder part was making a batch change recoverable without overwriting later map edits.

[Read post](https://shadowfrag.com/blog/a-texture-change-i-can-undo/)

[Native SHADOWFRAG replay view with a first-person scene, timeline, action list and evidence inspector.](https://shadowfrag.com/blog/demos-for-players-and-referees/)

### [Recording a match I can inspect](https://shadowfrag.com/blog/demos-for-players-and-referees/)

Game systems · Oct 22, 2026

[Native demos](https://shadowfrag.com/glossary/#term-native-demo) let me change viewpoint and inspect the server’s decisions after a match. They also need to show what was never recorded and what a client report cannot prove.

[Read post](https://shadowfrag.com/blog/demos-for-players-and-referees/)

[SHADOWFRAG play menu with gold accents, persistent settings navigation and a large ninja preview.](https://shadowfrag.com/blog/making-the-menu-fit-the-game/)

### [Making the menu fit the game](https://shadowfrag.com/blog/making-the-menu-fit-the-game/)

Interface · Oct 22, 2026

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](https://shadowfrag.com/blog/making-the-menu-fit-the-game/)

[Twin Castles, captured in SHADOWFRAG's Vulkan renderer](https://shadowfrag.com/blog/small-geometry-big-personality/)

### [Small geometry. Big personality.](https://shadowfrag.com/blog/small-geometry-big-personality/)

Art + performance · Oct 22, 2026

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](https://shadowfrag.com/blog/small-geometry-big-personality/)

[Later Ironworks overhead view with gray corrugated roofs, a yellow crane, industrial tanks and smokestacks.](https://shadowfrag.com/blog/twenty-one-live-maps/)

### [An atlas made from the game](https://shadowfrag.com/blog/twenty-one-live-maps/)

Maps · Oct 22, 2026

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](https://shadowfrag.com/blog/twenty-one-live-maps/)

[SHADOWFRAG match builder with map, objective, equipment policy and a limit of 64 players including bots.](https://shadowfrag.com/blog/why-the-limit-is-64/)

### [Why I stopped the server limit at 64](https://shadowfrag.com/blog/why-the-limit-is-64/)

Testing · Oct 22, 2026

An 80-client run completed, but its slower action results made it a poor basis for raising the limit. I kept the game at 64 players including [bots](https://shadowfrag.com/glossary/#term-bot).

[Read post](https://shadowfrag.com/blog/why-the-limit-is-64/)

[Two rows of six later ninja poses; forward and sideways double-jumps rotate the model and cape around the upright wireframe hull.](https://shadowfrag.com/blog/a-ninja-that-moves-like-a-ninja/)

### [A ninja that moves like a ninja](https://shadowfrag.com/blog/a-ninja-that-moves-like-a-ninja/)

Animation · Oct 21, 2026

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](https://shadowfrag.com/blog/a-ninja-that-moves-like-a-ninja/)

[Ironworks, captured in SHADOWFRAG's Vulkan renderer](https://shadowfrag.com/blog/a-smaller-language-for-combat/)

### [Teaching the network to say less](https://shadowfrag.com/blog/a-smaller-language-for-combat/)

Netcode · Oct 21, 2026

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](https://shadowfrag.com/blog/a-smaller-language-for-combat/)

[Jade Deck, captured in SHADOWFRAG's Vulkan renderer](https://shadowfrag.com/blog/measuring-the-price-of-a-bow/)

### [A weapon does not have one network price](https://shadowfrag.com/blog/measuring-the-price-of-a-bow/)

Research · Oct 21, 2026

My first model underestimated outgoing traffic in two final runs. I revised it to account for player-to-player traffic and checked it against new configurations.

[Read post](https://shadowfrag.com/blog/measuring-the-price-of-a-bow/)

[Windwalk, captured in SHADOWFRAG's Vulkan renderer](https://shadowfrag.com/blog/vulkan-and-the-input-loop/)

### [A fast frame is only half the story](https://shadowfrag.com/blog/vulkan-and-the-input-loop/)

Engineering · Oct 21, 2026

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](https://shadowfrag.com/blog/vulkan-and-the-input-loop/)

[Twin Castles, captured in SHADOWFRAG's Vulkan renderer](https://shadowfrag.com/blog/guided-tour/)

### [Showing the movement, then the match](https://shadowfrag.com/blog/guided-tour/)

Development · Oct 20, 2026

A fast fight can hide how the movement works. I built the tour around separate demonstrations, then used a local [bot](https://shadowfrag.com/glossary/#term-bot) match to show the same actions together.

[Read post](https://shadowfrag.com/blog/guided-tour/)

[Later texture workshop with a small wall scene, material categories and a grid of texture thumbnails.](https://shadowfrag.com/blog/inside-map-studio/)

### [Testing the map while I build it](https://shadowfrag.com/blog/inside-map-studio/)

Development · Oct 20, 2026

A route can look right from above and fail under a player’s feet. [Map Studio](https://shadowfrag.com/glossary/#term-map-studio) uses the game’s movement and collision so I can find those problems while building it.

[Read post](https://shadowfrag.com/blog/inside-map-studio/)

[Map Studio showing the solid sandstone arch after placement, selected beside its transform inspector.](https://shadowfrag.com/blog/placing-an-idea-in-the-world/)

### [Seeing an object before I place it](https://shadowfrag.com/blog/placing-an-idea-in-the-world/)

Map Studio · Oct 20, 2026

I wanted to try an object against a route before adding it to the map. Placement now starts with a preview that can be moved, rotated or cancelled.

[Read post](https://shadowfrag.com/blog/placing-an-idea-in-the-world/)

[SHADOWFRAG play menu with gold accents, persistent settings navigation and a large ninja preview.](https://shadowfrag.com/blog/from-instagib-to-shadowfrag/)

### [More than a single shot](https://shadowfrag.com/blog/from-instagib-to-shadowfrag/)

Development · Oct 19, 2026

The game had grown beyond ninja [instagib](https://shadowfrag.com/glossary/#term-instagib). Renaming it meant finding room for those new fights while carrying existing settings, packages and tools along with it.

[Read post](https://shadowfrag.com/blog/from-instagib-to-shadowfrag/)

[Reworked first-person bow ready pose, lowered to the left and leaving the middle of the screen clear.](https://shadowfrag.com/blog/making-room-for-the-bow/)

### [Making room for the bow—and the target](https://shadowfrag.com/blog/making-room-for-the-bow/)

Art + controls · Oct 19, 2026

The bow needed to show its draw without covering the opponent. I revised its first-person framing and checked how much of the aiming area it occupied.

[Read post](https://shadowfrag.com/blog/making-room-for-the-bow/)

[Lantern Yard, captured in SHADOWFRAG's Vulkan renderer](https://shadowfrag.com/blog/welcome/)

### [The game I am building](https://shadowfrag.com/blog/welcome/)

Development · Oct 19, 2026

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](https://shadowfrag.com/blog/welcome/)

[Twin Castles, captured in SHADOWFRAG's Vulkan renderer](https://shadowfrag.com/blog/movement-is-your-first-weapon/)

### [Building a movement vocabulary](https://shadowfrag.com/blog/movement-is-your-first-weapon/)

Development · Oct 18, 2026

A leap, an [air step](https://shadowfrag.com/glossary/#term-air-step) and a [shadow warp](https://shadowfrag.com/glossary/#term-shadow-warp) become more useful when they work together. Here is how I connected the movement controls and the routes built around them.

[Read post](https://shadowfrag.com/blog/movement-is-your-first-weapon/)

[Twin Castles, captured in SHADOWFRAG's Vulkan renderer](https://shadowfrag.com/blog/shorter-leaps-better-duels/)

### [Shorter leaps, better room to fight](https://shadowfrag.com/blog/shorter-leaps-better-duels/)

Movement · Oct 18, 2026

Players were covering a lot of ground in a very short jump. I reduced horizontal travel while keeping the height, airtime and movement combinations intact.

[Read post](https://shadowfrag.com/blog/shorter-leaps-better-duels/)

[SHADOWFRAG match builder with map, objective, equipment policy and a limit of 64 players including bots.](https://shadowfrag.com/blog/your-arena-your-rules/)

### [Letting the rules change the fight](https://shadowfrag.com/blog/your-arena-your-rules/)

Game systems · Oct 18, 2026

I separated objectives, weapons and protection so you can change the kind of fight on a familiar map. That also meant teaching the [bots](https://shadowfrag.com/glossary/#term-bot) what each match asks them to do.

[Read post](https://shadowfrag.com/blog/your-arena-your-rules/)

Dates follow the development work described. Screenshots have their own archive dates. [RSS feed](https://shadowfrag.com/rss.xml)

## Request an _invite code._

SHADOWFRAG is opening by invitation. Request a code and receive development updates. [Shadow Council](https://shadowfrag.com/glossary/#term-shadow-council) contributors receive priority when invitations begin.

Enable JavaScript to request an invite code and confirm your email address.

Email confirmation required. Codes will be issued later; a request does not guarantee access. Unsubscribe at any time. [Privacy](https://shadowfrag.com/privacy/)

Confirm your email to join the invitation list. Codes will be issued in a future round; a request does not guarantee access. Unsubscribe at any time.

Anyone can request a code. For [Shadow Council](https://shadowfrag.com/shadow-council/) priority, introduce yourself on Discord with your role, experience, region and time zone. Include examples of your maps or content if you have them.

[Join Discord](https://discord.gg/EHj7rZDNj)
