A classic arcade game rebuilt from the ground up using Modern C++ (C++20) and the Raylib library. Designed with performance, customization, and modularity in mind.
--- ## 🚀 About & Motivation **Pong Reloaded** is an educational and exploratory game development project. Built as a student engineering activity, it serves as a personal challenge to push past standard university curricula and experiment with low-level graphic structures. The key goals of this project: * **Master Raylib & Game Design:** Experiment with 2D rendering pipelines, sound synthesis, custom sprites, and real-time game state management. * **Optimize for Low Resources:** Implement performance-first programming in C++, minimizing memory overhead and achieving a highly optimized execution path that runs perfectly on low-end laptops. * **Challenge Knowledge Boundaries:** Apply advanced Object-Oriented Programming (OOP) concepts, robust state machine architectures, and direct Win32 API integrations. > [!NOTE] > This project is developed within the **Helios Additional Activity** initiative at the **Technical University of Cluj-Napoca (UTCN)** – *Faculty of Electronics, Telecommunications and Information Technology (ETTI)*. --- ## 🎮 Features * **👾 Zero-Dependency Portability:** The game compiles into a single, standalone executable. Textures, audio, and icon files are embedded directly into the binary's resource section (`.rc`) using Windows PE resources, ensuring it never breaks due to missing assets. * **⚡ Highly Optimized Engine:** Optimized game loops, zero-allocation physics updates in the hot-path, and efficient CPU sleeping patterns. Smooth frame rates on hardware with minimal system resources. * **🤖 Dynamic AI Opponent:** A singleplayer CPU opponent powered by adaptive movement algorithms with three difficulty settings: **Easy**, **Normal**, and **Hard**. * **👥 Local Co-op Multiplayer:** Local 1v1 couch-co-op mode featuring an interactive **Multiplayer Lobby** where both players toggle ready states before initiating the match. * **🎨 Premium Settings & Theme Engine:** * **Screen Settings:** Customizable resolutions (1280x800, 1600x900, 1920x1080) and Fullscreen / Windowed modes. * **Framerate Controls:** Selectable 60 FPS, 144 FPS, or VSync limits. * **Score Limits:** Custom thresholds (5, 11, 15, or 21 points). * **Visual Themes:** Toggleable background space themes (Default, Galaxy, Trap), custom ball skins, and paddle textures. * **🛠️ Developer Console:** Built-in console overlay toggled dynamically via `F7` for real-time engine tracing and logging. --- ## 📐 Architecture & System Design To ensure modularity, high performance, and clear separation of concerns, **Pong Reloaded** is built around a decoupled Object-Oriented design. Below is the UML class diagram outlining the relationships between the game entities, screen controllers, state management, and resource loaders: