Sakura Shih

A games programmer (Curr. Mojang Studios) and a music producer who approaches technical problems with creative solutions.

Portfolio Projects

Various projects created while at the DigiPen Institute of Technology

Open Fortress

A community made source mod for Team Fortress 2, publishing to Steam in December 2025!

xensakura

Sakura's music production projects

About

Sakura is a game programmer and a music producer from Seattle, Washington.She is currently working on Minecraft Education Edition, with Mojang Studios.Sakura graduates from the DigiPen Institute of Technology with a degree in Computer Science and Game Design in August of 2026. She previously taught as a teaching assistant and a course instructor for high schoolers for Computer Science and Programming classes.Sakura also works on numerous independent game projects, such as Open Fortress, both in a consultant and a developer role.Sakura also works as a music producer, writing and producing alternative electronic dance music.

Portfolio Projects

Gameplay Projects

Over the course of two independent studies at DigiPen, I worked on a custom procedural generation algorithm, intending to apply Wave Function Collapse onto a graph structure, while using Perlin and Voronoi noise to place environmental elements. Additionally, I wanted to make this an in-editor tool such that designers could see what various presets did, from the context of the editor, instead of having to run the game each time. I did this within a custom fork of Godot 4.5.
To this means, I implemented a custom debug drawing system that is always active within Godot, as well as implementing the core algorithm. Additionally, I wrote systems to check for live changes to parameters from the inspector panel, in-editor. Unfortunately, this project is on hold at the moment, due to my contract with Mojang Studios.

Another project I did while at DigiPen was implement a movement shooter character controller-- with this character controller I implemented dashing, sliding, jumping, wallrunning, and a sort of "gravity gun" mechanic a la Control or Half-Life 2. I also implemented the core camera systems, navigating smooth camera transitions with lerping, hitbox and camera adjustments, and camera positioning interpolation. A lot of this tested my knowledge of physics, linear algebra, as well as general gameplay programming fundamentals.Additionally I implemented weapon systems, and a lot of core basic gameplay systems. This was done within Unity 6.

Game Engine and Systems Projects

While at DigiPen, I worked on various game engine and low level systems classes, often as projects for courses, or independently. These courses spanned low-level computer networking, computer graphics fundamentals, low level systems/programming,Within my introductions to graphics programming course, I developed an OpenGL renderer, learning fundamental concepts to graphics programming such as shaders, projection and camera matrices, and implementing features like normal maps, textures, models, skydomes, lighting, and so much more!

The next course I took was CS-350--this was a course on real-time collision detection and data structures used for that. Within this course, I implemented a geometry library for detecting collisions between Axis Aligned Bounding Boxes (AABB), spheres, points, rays, planes, and triangles. I also implemented AABB Trees, Binary Space Partioning Trees, and the Gilberti Johnson Keerthi collision detection algorithm. Below is a visual of the GJK implementation, and the BSP tree being tested with raycasts!

Another course I took was CS-355-- Parallel Programming. For the final course, we were allowed to program anything we wanted, so long as it fit the theme of multithreaded programming. I decided to
adapt the GDC Talk-- Parallelizing the Naughty Dog
engine using fibers
for my final project. Within this project, I was able to familiarize myself with the concept of dependency graphs, work-stealing queues, lock-free data structures, and the Fibers API from various operating systems. I also learned a lot about Windows Operating System functionality, and a lot of modern C++ features. This is a system I later reused for my own personal game engine, to make a truly parallel game engine.
Below is a snippet of some of my code:

Another course I took was CS-315-- a course focused on programming for low level systems. This course was focused on developing low level tools to handle crashes, dump assembly and code symbols, optimize code for performance, reading assembly to figure out what causes crashes, as well as learning how to implement SIMD math libraries.For this course I made a memory debugger that kept track of allocated blocks of memory, tell you diagnostic information about each block (thread id, whether it was freed, size, etc.), would make guard pages for each block of allocated memory, and in general protect memory.I also made an SIMD math library, to optimize matrix math operations.Additionally, I made a crash handler, one that would write crash dumps, with relevant symbols, disassembly, and what was in memory at the time of the crash. I then used this project to analyze crashing code and figure out what was causing code to crash from raw assembly, for reasons such as null classes, dereferencing null pointers, dereferencing invalid member function pointers, overwriting memory, or other critical memory issues.Finally, I also wrote a performance profiler for this course, measuring and analyzing the amount of time each function took to complete.Below is a showcase of the SIMD Math Library I wrote for this course

Another course I took while at DigiPen was CS-260, Computer networking, where I implemented a TCP, UDP, and HTTP client/server applications, using the low-level socket libraries. Implementing these various libraries helped me better understand the fundamentals of networking in games, as well as developing nonblocking client and server applications that can read the data sent through the various protocols and act on them within a reasonable timeframe, without blocking the CPU, and spreading that work across multiple threads.
Attached below is some sample code showcasing a multithreaded http forwarding proxy server, coded using Winsock and C++:

Outside of school projects, I've worked on a Vulkan engine to develop my understanding of 3d rendering, especially on the hardware side. This project is still a WIP unfortunately-- put on hold due to my contract with Mojang Studios.

Team Projects

Goosthetic was a project with a team of 27. On this project, I was brought on to help with shipping the game to Steam. You can find the game here on Steam
On this project, I worked primarily on two systems-- Telemetry/Data Analysis, and Steamworks functionality.
For Telemetry and Data Analysis, I developed a custom system that would serialize the data into an Excel spreadsheet for quick referencing by designers. The telemetry system would keep track of various positions of significant player actions, as well as the total amount of times various actions were performed. This data helped designers with gathering feedback from playtests, as well as finding key flaws within the level design.
I also implemented Steamworks Integration-- using the steamworks API, I used Steam's data for stuff like leaderboards-- originally we intended to have ways to compete your scores with friends. This was unfortunately cut due to a production decision. To integrate the Steamworks API, I had to migrate a year old Unreal Engine 5.2 build that used exclusively blueprints to C++, and wrote custom systems in Unreal C++ to integrate Steamworks functionality.

Hexenhold was another team project I worked on while at DigiPen. This project was pushed to Steam. You can find it here.On this project, I was the lead engine architect. I decided to choose an ECS engine architecture, as an educational learning experience-- and architected the engine around Data Oriented Design principles.On this project, I touched various systems, from editors, to core engine systems like serialization, to dialogue systems, to rendering, to gameplay.One notable example of gameplay code I worked on was optimizing turret line of sight detection, building in early exits, and preventing turrets from shooting enemies through solid, physical walls. This was done through raycast algorithms.

Within this project, I also attempted to multithread physics calculations-- and it made the game able to run at a significantly faster speed. However, it caused major conflicts with the animation system, where it was desynced, and as a result, the multithreaded physics calculations never made it into the final build.

Mod Projects

I worked on a Reclaimed Earth Master Level, featured by Id software on the Doom Eternal Mod Launcher! This was made before idtech studio 7 modding tools were released, so this was made through directly editing Doom Eternal's encoded serialization format, using tools coded up by my friend Elizabethany. It has over a thousand downloads on both Bethesda's website, and NexusMods, and has 80+ endorsements on both websites combined. You can find it on Bethesda's website here.

I worked on a few skin packs for Doom Eternal. Here's a quick look at some of them.

I also work on Open Fortress as a developer! Most of my work on this project up to this point has been working on bugs, and getting ready to ship for Steam release. This project is a C++ codebase and much of my work focuses on fixing gameplay bugs. Go wishlist it on Steam here!

Music Production

xensakura is a work in progress music production project.
More will be announced later.