ProtoEngine is a 2D engine created from scratch in C++ using SDL, Box2D, ImGui and RapidXML as additional libraries. ProtoEngine contains an extensive editor GUI that allows you to create and test changes on the fly. Bubble Bobble was made using the engine + editor as an example.
Coded the input system, GameObject-Component system, and general Game loop. Used a command-based system for key assignments (Down, Held, Up).
Built Unity-like Hierarchy, Inspector, Scene/Game views, and Logger. Integrated RapidXML for easy scene saving and issue debugging within the timeframe.
Wrapped ImGui code for clean element rendering and implemented parent-child hierarchy support despite Immediate GUI challenges.
Integrated Box2D for physics and collision detection. Implemented conversion helpers to seamlessly bridge Box2D meters and screen pixels.
Created static and animated sprite editors. Supported multi-frame rendering for multi-part sprites/health bars and frame sequence modifiers.
Recreated the classic game inside the custom editor to test level creation, collision systems, and enemy state behaviors.
Commands are assigned to specific keys and states (Down, Held, Up) allowing modular control binding across actors.
Engine-side observers decouple external features like achievements and audio triggers from core game logic.
Box2D integration supporting Box, Circle, and Line colliders, paired with configurable Pixels-per-Meter scaling.
Unity-inspired composition model where custom components inherit from a common base class.
First-time implementation of ImGui and complex editor tooling under tight development deadlines.
Managing immediate-mode GUI lifecycle events when modifying dynamic scene data across frame boundaries.

Manage game objects and parent-child hierarchies directly via right-click context menus.
Add, remove, and tweak component parameters dynamically through custom rendering widgets.
Dual-viewport system showing full off-screen level layout alongside active camera bounds.
Real-time warning/error log stream alongside scene diagnostic stats and active camera data.
Renders multiple frames simultaneously. Useful for multi-part textures, game logos, or modular HUD displays like health bars.
Sequence editor to add, preview, and adjust frame rates, pivot offsets, and rotation angles in real-time.
Development clips captured during engine test iterations:


