Pong


Classic Arcade Gameplay in C++

Overview

Pong is a modern C++ recreation of the classic arcade game, developed using SFML to demonstrate core 2D gameplay programming principles. The project focuses on real-time paddle and ball movement, collision handling, score tracking, keyboard input, and game loop architecture within a clean object-oriented structure.

The project was developed to strengthen practical understanding of real-time game systems, frame-based updates, physics-style interactions, and modular C++ design. Rather than focusing only on recreating a simple arcade game, Pong demonstrates how foundational gameplay systems can be structured in a maintainable and scalable way for future game development projects.

Game mode
Practice mode

My Role

I developed the Pong game systems in C++ using SFML, including paddle and ball movement, collision detection and response, score tracking, keyboard input handling, and the core game loop. I structured the project using object-oriented design principles, keeping rendering, input, and gameplay logic organised for readability and maintainability. My work focused on building a clean, scalable foundation for real-time 2D gameplay while strengthening my understanding of collision handling, frame-based updates, and interactive game systems.

Key Engineering Features
  • Real-time paddle and ball movement
  • Frame-based game loop architecture
  • Collision detection and response system
  • Score tracking and win condition handling
  • Keyboard input management
  • Adjustable gameplay speed
  • Object-oriented class structure
  • Separation of rendering, input, and gameplay logic
  • SFML graphics and window integration
  • Clean, scalable C++ project organisation
Technical Highlights

The project demonstrates core 2D game programming principles through a clean C++ and SFML implementation, including real-time movement, collision response, input handling, scoring, and game loop management. Gameplay systems are structured using object-oriented design, with rendering, input, and gameplay logic kept separate to improve readability and maintainability. This structure provides a scalable foundation for future 2D game projects and more advanced engine-based development.

Development Goals

The project was created to strengthen my practical understanding of 2D game development, real-time programming, collision handling, and object-oriented C++ design. A key goal was to recreate a simple arcade game while focusing on clean system structure, including movement, input, scoring, and game loop management. The project also helped build confidence using SFML for graphics and user input, while providing a foundation for more advanced gameplay systems and future engine-based projects.

Tools and Technologies

C++, SFML, Visual Studio, object-oriented programming, collision detection, real-time gameplay systems, game loop architecture, keyboard input handling, score management, 2D rendering, and modular C++ project structure.