Level Designer
Visual drag-and-drop level editor with XML serialization for the Tossing Balls game
Overview
A visual drag-and-drop level editor built in C# with WinForms that serves as the companion authoring tool for the Tossing Balls game. Designers compose levels by placing physics objects (wood, stone, glass blocks), enemies, and scene elements onto a grid-based canvas, configure physical properties (dynamic/static, gravity, hit points, shape type), and serialize everything to XML that the game engine directly consumes.
Highlights
- Built a complete visual editor with drag-and-drop, property inspection, grid system, keyboard shortcuts, copy/paste, and XML serialization
- Designed a data contract (XML schema) consumed by a separate C++ game engine, demonstrating cross-language systems thinking
- Implemented dual-mode serialization serving both game programmers (full physics data) and UI designers (layout-only)
- Created a template-based object palette with 26 pre-configured game entities carrying complete metadata (physics, audio, rendering)
Related Projects
Monte Carlo Path Tracer + Spline Engine
Physically-based renderer with importance sampling and a functorial spline animation system
Physically-based Monte Carlo path tracer implementing the rendering equation with importance sampling, Russian roulette termination, explicit direct light sampling via solid-angle cone sampling, and three BxDF models (Lambertian, specular with Fresnel, Oren-Nayar rough diffuse)
3D Rendering Engine with Shadow Mapping
Custom OpenGL engine comparing four shadow mapping algorithms with runtime switching
Implemented and compared four shadow mapping algorithms (default, PCF, VSM with Gaussian blur, CSM with per-cascade resolution) in a single engine with runtime switching
Tossing Balls
High school graduation project — 2D physics puzzle game with Box2D integration and data-driven level loading
High school graduation project (age 17) — built a complete 2D physics game engine from scratch in C++ with a custom entity system, polymorphic animation framework, Box2D physics integration, and data-driven level loading from XML