1v1 multiplayer breakout clone
About
This is an unfinished multiplayer 1v1 breakout game project where you can possess bricks and use abilities against your opponent.
Move your paddle using the A, D keys or left and right arrow on PC, or tilt your smartphone horizontally left or right on Android.
Game Rules:
- Each player starts at 20 life points.
- When a ball touches the zone behind your paddle, you lose 1 life point.
- You win if your opponent's life points are reduced to 0.
- You can acquire the bricks located on the field by hitting them with your ball. If you acquire a brick, its color automatically turn blue. While you are possessing a brick, it blocks your opponents's ball but your ball can pass through it. The more bricks you possess, the more space you have.
- You can get energy points by touching the (purple) energy bricks using your ball.
- Spend 10 energy points to use any of these abilities (click or touch the button on the screen):
- Fireball: Your ball flames up, causing it to burn every non-possessed brick upon contact for the next 20 seconds. While a brick is burning, it receives 5 damage over 10 seconds.
- Waterball: Your ball removes the burning effect from bricks upon contact for the next 20 seconds. It doesn't remove the burning effect caused by yourself. Your bricks are healed by 2 points each time your ball passes through them while the Waterball ability is active.
Tech: I used Unity C# for the client, but the server is written in C++. I used the Enet library for real-time, reliable communication over UDP and Google's Flatbuffers library to generate C# and C++ code used for serializing & deserializing in-game messages sent over the network. I compiled a DLL from the Enet source code written in C to use it as a native plugin from C# in Unity. The physics simulation runs on the server which I implemented from scratch (in C++, without using any 3d party libraries). The source code of this project is not available, but you can download the source code of Space Battle Online which uses the same technology.