PiPong is a C/C++-based distributed Pong-style game originally designed to run across a mesh network of four Raspberry Pi devices.
The original architecture of PiPong was built around:
- 4 Raspberry Pi devices
- A mesh network communication system between nodes
- Each Raspberry Pi acting as an independent game node
- Distributed gameplay logic across all devices
- Hardware-based input (e.g. sensors / GPIO)
The idea was to create a physically distributed version of Pong, where each Pi contributes to the overall game state in a networked environment.
Since the original multi-device setup is no longer available, the project is currently being refactored.
The new direction focuses on:
- Running the system on a single Raspberry Pi
- Simulating or virtualizing the original multi-node architecture
- Preserving the distributed system design in software
- Maintaining the original game logic written in C
The goal is to preserve the original distributed systems idea while making the project runnable without requiring four physical Raspberry Pis.
Planned improvements include:
- Node-based abstraction layer (instead of physical devices)
- Network simulation (local / virtual nodes)
- Cleaner separation between game logic and hardware/communication layer
- Easier testing and development on a single machine
-
Core Game Logic (C/C++)
Handles physics, ball movement, collisions, and scoring. -
Node Layer
Abstract representation of a Raspberry Pi node (real or simulated). -
Communication Layer
Handles message passing between nodes (originally mesh network, now simulated or local network). -
Hardware Layer (optional)
Interface for real Raspberry Pi input devices (GPIO / sensors).
This project is actively being refactored from a hardware-distributed system into a software-simulated distributed system while keeping the original design philosophy intact.
The repository still reflects its origins as a multi-Raspberry Pi mesh system. Future updates will gradually transition the architecture toward a single-device or simulated multi-node environment.