Skip to main content

Individual Work

Ace Attorney Approximation

2026 · C++ · Solo project

A courtroom drama game in the style of Phoenix Wright: Ace Attorney, built on my own C++ engine. It covers the full first chapter of the original, with dialogue, courtroom debate, and evidence presentation. The courtroom section recreates the original's cross-examination. Players can press witnesses on their statements or present evidence to counter them. The system checks if the evidence is correct. Wrong evidence loops back to the testimony. Correct evidence advances the story.

I built a stream-based dialogue system from scratch. Dialogue is written in a custom plain-text script format. Angle-bracket tags control the presentation — character portraits, backgrounds, sound effects, screen effects, text speed, and flow jumps. Tags can be placed inline within text. They trigger at the exact typewriter position. For example, a sound plays or the screen shakes right when a keyword appears.

The engine's retained-mode UI system uses no third-party libraries. It includes panels, buttons, labels, images, grid and flow layouts, 9-slice texture rendering, and anchor-based positioning.

Characters, evidence, and frame-by-frame animations are all data-driven through XML files. Dialogue scripts use a custom plain-text streaming format. Outside of this project, I built a one-click export tool on top of Luban. All data is configured in Excel and exported to XML with a right-click. This makes the whole workflow very convenient.

Custom Engine

2025 · C++ · Solo project

A game engine built in C++. Supports 2D and 3D DirectX 11 rendering, obj and fbx model loading, Blinn-Phong lighting and shaders.

Features include an event system, in-game console for debug commands, networked multiplayer, gamepad and mouse input, 2D simple physics, sprite sheets and animation, fonts and text boxes, ImGui and retained-mode UI, and JSON / XML data-driven configuration.