Cody Salmond · personal projects

I make games and
the things around them.

Both for work and for fun. Right now that's a 2D action-RPG vertical slice, the Unity framework underneath it, and a couple of small tools I built because I needed them.

Work · 5 projects

What I'm Building

Both for work and for fun.
Shipped · 7 apps

What I've Shipped at Work

Released titles, oldest first. The notes are what I worked on.

Brick Breaker: Journeys

A brick breaker built around stage progression. I did most of the work on the stage generator. Our first game made in Utah.

Crazy Eights

Built from scratch. It's close to Uno, and chaotic enough that player legibility was the real problem to solve. Recent updates added player banter and unlockable card themes.

Sudoku Color

An existing game I put a significant update into. Weekly events and extra features across the difficulty options, and more event types since.

Bubble Shooter Pop!

An existing game. I added the odds and ends that keep one running. Daily Streak, revival IAP bundles, and the Season Pass.

Yatzy Dice Game: Yatzy Plus

Yahtzee, built from scratch, with a custom mode where the dice are 8 sided and players earn extra faces to swap onto them. Wilds, multipliers, that sort of thing. The scoring logic gets deep in a hurry: what should (W, W, 1, 7, 8) score in a three of a kind slot? Since then, a Daily Challenge with deterministic floating multipliers and a leaderboard, and dice skins with effects that play across multiple dice.

Puzzle Cats

Significant updates to an existing game. Two new modes, a cat themed Castle Solitaire and a Block Blast style placing game, plus a couple of new cats.

FreeCell Solitaire: Card Games

Brought the deck themes over from Crazy Eights and wired them up as unlockable customization.

Notes · long-form

Devlog

2026.08 music
Making Game Music From Scratch
I needed background music for ClassicRPG. So I rolled up my sleeves and dove in. Here's the two tracks that came out of it, and the things I learned that actually stuck.
2 min
2026.07 engineering
The Seesaw From Hell
I've used Unity for a long time and I'm still losing the same argument with myself. Everything authorable in the inspector, or everything locked down in code? I switch camps every month and drag the tech debt along with me. Here's why I've stopped trying to win.
4 min
2026.07 engineering
Rage Against the SOAP: ScriptableObjects Are Data, Not Architecture
There's a pattern making the rounds in Unity circles that turns ScriptableObjects into smart, super objects. Event channels, registries, live objects registering themselves into an asset. It demos beautifully. It's a trap. And no, this isn't a "ScriptableObjects are bad" post. We just need to stop treating them like a golden hammer.
5 min
2026.06 engineering
Unity's Icon Support for SO's and MonoBehaviours Is Broken. I Made It Work for Me.
A hundred-odd custom types, every one wearing the same sad default Unity icons. Unity's only fix is a tiny, awkward dropdown you click one script at a time. The worst part? It ignores inheritance. So I built an attribute that does it for me, and taught it the one thing Unity won't.
4 min
2026.06 tools
My Knowledge Layer Started as a Single File
The simplest knowledge layer in the world is one CLAUDE.md telling an agent how you work. Mine started there. Then it grew a router, roles, and a vault, and every session I run now launches from that one directory. Here's how it got there and the rules that keep it visible and under control.
7 min
2026.06 tools
The Plan Mode I Wanted
I got tired of answering 10 questions in a single prompt. Especially when answers cross-cut each other. I created a new way to have complex conversations with my agents.
3 min
2026.05 tools
A Queryable Architecture Map for My C# Codebase
An agent appears in the dark. It's been told to eat. It shines a flashlight and the first thing it sees is an apple core in the trash can. It completely misses the fridge 3 feet away and descends on the scrap. How did I solve this forever instead of forcing myself to be exhaustively explicit every time?
4 min
2026.05 engineering
When Modularity and Animators Don't Mix
Three systems all pushing to the same Animator parameters, none aware of the others. "Set once" loses every time to "push every frame." The fix is a system for managing these competing signals before they reach the Animator. Not a hack.
3 min
Uses · stack

What I Work With

engine
  • Unity · since 2015
  • C# · since 2011
  • URP
  • 2D
audio
  • FL Studio · chiptunes
  • SfxKit · placeholder synth
ai pair
  • Claude Code
  • Unity MCP
targets
  • PC
  • Mac
  • Anbernic
  • Retroid
  • Miyoo
Contact

Get in Touch

Open to contract work, collaboration, or a good question about the framework. Plain prose is fine.

contact coming soon Setting up a secure channel — check back.