Addie Shen key art

Coming to Steam

Addie Shen

Gameplay Engineer ยท Godot, C#

I'm currently a Gameplay Engineer on Addie Shen at Unexpected Accessories. I joined as a junior in July 2025. I mainly focus on split-screen co-op, the multiplayer game modes, and elements the level designers can drop into story missions.

What I built

I started on the split-screen foundation, then iterated on game modes and level elements that rely on it.

Split-screen

I built split-screen for the multiplayer modes: two viewports, split input, and ready-up for both players. Early systems had to be refactored to support more than one player.

Mission Elements

I implemented custom level elements for designers to use in story missions such as a bounce pad, spinning obstacles, and clock-arm platforms. I also polished PEMDAS by coloring them based on their operation, implemented optimized static PEMDAS, and designed the final mission's boss, Ian Finite, who has a phase-based solve loop.

Deathmatch

I built the overall game loop: timer, start input, win and lose, and power-ups. I later worked on polishing things like ready-up hints, per-player number wheel colors, best of 5, and the mode's HUD.

Rollercoaster

I reused the same co-op minigame framework from other modes and implemented procedural track visuals, a node-based curve system for designing the track, and a speed system to make it feel more like a rollercoaster. I later added dismount support and polished the UI.

Practice

I added toggles for supported equation types, cleaned up the interface, and implemented support for the equation config in the Settings. I also adjusted wave positioning, added start hints, updated the HUD, and added SFX for the wave startup.

Zombies

I built configurable waves that spawn enemies over time while staying under a global enemy limit. Polish included adding dim lighting, fog, auto-correct, wave SFX, and ambience.

Enemies

I implemented new PEMDAS types like the Frankenstein, Speedster, Sneakster, and Floating Pemdas. These were mainly used in the Zombies mode, but are also distributed throughout the story missions.

Ragdolls

I built a robust ragdoll system that drastically improved the death effects of all PEMDAS by launching a physics object at high speeds from the PEMDAS position.

Demo Polish

I polished destructible crates, multiplayer level-select icons, and various multiplayer mode HUDs for the China demo.

Ready-up

I built the split-screen system that multiplayer runs on, including ready-up for both players.

Practice

I added support for equation config in the Settings, including Calculus, double digits, negative numbers, and the various operations.

Zombies

Defeat waves of PEMDAS as a team in the auditorium. I designed the game loop, spawn tools, and custom PEMDAS that were reused in other missions.

Auto Correct

Auto Correct was originally a Zombies-only power-up that made every shot the right answer. I later combined this power-up with the Invincibility power-up from Deathmatch.

Frankenstein and Sneakster

These are custom PEMDAS that I designed for the Zombies mode and for designers to reuse.

Ragdolls

When PEMDAS die, they become a ragdoll, making the experience more exaggerated.

Floating PEMDAS

Mission 5 has floating PEMDAS that chase the player as they move.

Ian Finite

Ian Finite is the final mission's boss. You have to solve the equations from the arms to the mouth while maneuvering around many PEMDAS.

Rollercoaster

I implemented curve building, track riding, speed changing, and dismounting systems for the multiplayer Rollercoaster mode.

How it was built

I joined Unexpected Accessories as a Junior Gameplay Engineer on Addie Shen in July 2025. Since January 2026, I've been a Gameplay Engineer.

The hard parts

Learning Godot

I had to learn Godot in a week to immediately start building the base split-screen systems at the start of my internship.

Singleplayer Systems

I had to refactor many early systems since they were built around singleplayer. This included event systems, player HUDs, controls, and more.

Optimization

To optimize performance, I designed a global PEMDAS limit and investigated Mission 1 using Godot's profiler to isolate a potential memory leak. Later, I handed off the optimization problem to a new junior gameplay engineer.

Tech stack

  • Godot

    Engine for Addie Shen.

  • C#

    Most gameplay systems.

  • GitLab

    Version control and work items.

  • Slack

    Progress and sign-off with the studio.