About
This 3-week project was a multiplayer recreation of Jetpack Joyride developed in C++ using SFML. The twist? All gameplay logic, movement, and collisions were handled server-side using manual socket programming (write/read/poll) to ensure synchronization and prevent cheating.
As project leader, I worked on both the client interface and core server-side gameplay logic, managing our 3-person team through rapid development sprints while solving network and synchronization challenges.
📂 GitHub Repository: https://github.com/ArthuryanLoheac/Jetpack
Project Info
- Role: Project Leader & Developer (Client Rendering + Server Gameplay)
- Team Size: 3
- Time Frame: 3 weeks
- Language: C
- Graphics: SFML
- Networking: Custom socket communication with
write
,read
, andpoll
🎮 Introduction
Players connect to a shared server and land in a lobby interface where they can toggle their ready status. Once all participants are ready, the game launches automatically.
The game loop:
- Players fly through the level while dodging static electric traps
- Each run is generated from a text-based level map (
e
= trap,c
= coin,.
= empty) - They collect coins, see others in ghost mode (semi-transparent), and try to outlive one another
- The last survivor wins the game
⚡ When a player hits a trap, an electrocution animation plays and their death is broadcasted to others.
🧠 Key Systems & Features
Server-Side Simulation
- The server owns the simulation: obstacles, player positions, and collision detection
- Clients receive state updates to render animations and UI
- Prevents cheating and maintains synchronized behavior
Obstacle & Coin System
- Levels generated from a map text file parsed by the server
- Coins (
c
) increase the player’s score - Traps (
e
) instantly kill players on contact
Multiplayer Visuals
- Players see:
- Their own jetpack animation and coin counter
- Other players in transparent form
- Live leaderboard of all scores
- Game-end state when all others die
UI
- Live score display
- Real-time rankings
- Smooth player death feedback and restart conditions
📤 Source Code
👉 GitHub Repository:
https://github.com/ArthuryanLoheac/Jetpack
📚 What I Learned
- Designing a low-level multiplayer game architecture using raw socket communication
- Building real-time server-driven gameplay logic in C
- Managing frame-based simulation with consistent synchronization
- Integrating SFML for animated sprites, input handling, and UI
- Debugging freezing issues caused by poor socket management, and refactoring the server loop to restore fluidity
💡 What I’m most proud of: getting a smooth multiplayer loop to work with animations, collisions, and leaderboard syncing, all fully controlled by the server and without engine support.