C++ exercises and breakout
C++ coursework from 2024-2025: OOP, state machines, SFML scenes, threads, TCP client-server, entity-component architecture, and a team breakout game
C++ · SFML · OOP · State Machine · Threads · Sockets · Team Project
The C++ exercises and labs of the 2024-2025 year at Gaming Campus, from the first encapsulation day to an entity-component architecture.
Context
A series of small repositories, one per exercise or lab, over six months. The only team project is the SFML breakout from November 2024.
What I did
C++ OOP basics, a state machine, scenes on the LightEngine engine, threads, a TCP client and server, an entity-component architecture, and my version of the breakout game.
Links
- Encapsulation-C (basics and encapsulation)
- Exo-Full (review exercises)
- Exo-C-- (entity hierarchy)
- InventaireExo (inventory)
- CasseBrique-Final (breakout, one branch per member)
- Tp1-StateWeapon (state machine)
- Tp2-PvZ (Plants vs Zombies)
- Test-ShootEmUp (shoot 'em up)
- ExoThread (threads)
- ExoServClient (TCP client-server)
- TestDirectX (entity-component architecture)
The coursework
| Period | Work | Content |
|---|---|---|
| Oct. 2024 | Basics and encapsulation | Point, Entity, Player classes, IAlive interface, inheritance |
| Oct. 2024 | Wrap-up exercises | Vector2, Integer, Entity → Mob / Player / BreakableObject hierarchy, World |
| Oct. 2024 | Inventory | Console inventory with weights and a maximum capacity |
| Nov. 2024 | Breakout (team of 3) | SFML: explosive, bonus and trap bricks, ball and paddle effects, file-based levels, menus, music |
| Nov. 2024 | StateWeapon lab | Weapon driven by a state machine (State: Start / Update / End) |
| Nov. 2024 | Plants vs Zombies lab | PvZ scene (plants, zombies) on the LightEngine engine (SFML) |
| Dec. 2024 | Shoot'em up | Ship and enemies on LightEngine (SFML) |
| Jan. 2025 | Threads | Thread class and child threads |
| Jan. 2025 | Client-server | Winsock TCP server and client (socket, bind, listen, accept), one thread per side |
| Feb. 2025 | EC architecture | Entity, Component, Transform, Renderer, then an optimisation pass |
Breakout
Three versions (one per team member) merged into the same repository. The version on my branch has three special brick types, twelve ball effects (speed, size, piercing, random direction, invisibility, multiply, reverse, teleport, split…), four paddle effects, a level generator and manager, a main menu and a pause menu.