Projects

Selected work with enough detail to evaluate.

A focused set of projects that show product thinking, backend analysis, graph reasoning, and lower-level C systems work.

C++ Game PrototypePublic project

2D Shooter Looter

Proof of C++ gameplay systems, frame-order discipline, collision boundaries, and playtest-driven scope control.

Problem
A shooter looter only works if moment-to-moment combat, loot pressure, extraction timing, and raid consequences feel coherent; the hard part is keeping those systems readable while the prototype grows.
Built
Built a playable C++/raylib extraction shooter loop with WASD movement, mouse aiming, pistol and shotgun behavior, reloads, dash timing, grenades, enemy types, pickups, room transitions, extraction, and an in-memory stash.
Result
Supports a playable three-room extraction loop with weapons, grenades, pickups, enemy fire, room transitions, and extraction decisions.
Source proof
hstephan23/2D_shooter_looter public repository
Signal
Explicit C++/raylib frame order
Surface
Playable extraction shooter loop
Judgment
Playtest-first scope control
Tech
C++raylibCMakeGame Loop

TakeawayGameplay systems become easier to trust when the frame order is explicit and every system has a narrow reason to mutate state.

View Project
C Game SystemsPrivate project

Retro Game

Proof of lower-level C practice, state boundaries, timing, and explicit lifecycle control.

Problem
Lower-level game code breaks down when timing, input, rendering, state updates, and shutdown are blurred together; the project needed a readable loop with explicit system boundaries.
Built
Built and organized the C gameplay loop across input handling, map generation, frame rendering, timed monster movement, move resolution, multiplayer branches, and cleanup.
Result
Improves workflow reliability by keeping input, render, timer, multiplayer, and shutdown paths explicit.
Source proof
hstephan23/retro-gaming-project private source excerpt
Signal
Readable game-loop boundaries
Surface
Input, render, timer, shutdown flow
Judgment
Explicit state over clever abstraction
Tech
CCMakencursesGame Loop

TakeawayIn C game code, explicit state transitions are easier to debug than clever abstractions.

View Project
Contact

Let's build something that holds up.

Open to software engineering opportunities and interesting technical problems.

2026 · Harrison Stephan · Building Calm, Reliable Software Systems