2D Game Engine (Inspired by Hippo Game Engine)
A classic Pong game implementation built with the Aurora engine, featuring modern gameplay mechanics and visual effects.
- Two-Player Local Multiplayer: Classic paddle vs paddle gameplay
- Score-Based Win Condition: First player to reach 5 points wins
- Collision Detection: AABB (Axis-Aligned Bounding Box) collision system for ball-paddle and ball-wall interactions
- Dynamic Ball Physics: Ball velocity changes based on paddle movement direction at collision
- Ball speeds up when paddle moves in the same direction as the ball
- Ball slows down when paddle moves opposite to the ball direction
- Left Paddle: W (Up) / S (Down)
- Right Paddle: Arrow Up / Arrow Down
- ESC: Quit game
- Custom Shader Effects:
- Animated background with wave patterns and color gradients
- Circular ball rendering with fragment shader discard for perfect circle shape
- ImGui Integration:
- Game View window with framebuffer display
- Info panel showing live scores and ball velocity
- Menu system with start button and winner announcement
- GameObject System: Inheritance-based architecture with base
GameObjectclass and specializedBallclass - Factory Pattern: Clean object creation through factory functions
- Component-Based Rendering: Mesh and shader abstraction for game objects
- Framebuffer Rendering: Game renders to texture for flexible display in ImGui windows
- State Management: Proper game state handling (menu, gameplay, game over)
- Ball resets to center after each point
- Paddles constrained to screen bounds
- Ball bounces off top and bottom walls
- Ball direction reverses when scoring (serves toward the player who was scored on)
- Velocity-based movement system with configurable speeds