Networking Course & 2D Shooter
Context and inspiration
In the beginning of year 2022, I was looking for an online game developement course to improve my skillset, and I decided to tackle networking in Unity, in a course from GameDevTV: https://www.udemy.com/course/unity-multiplayer. Indeed, I was curious how multiplayer was typically implemented in a game engine and at this time, the Mirror Networking package was quite popular.

A first tank game
The game built in the course was a realtime, online, tank RTS. I leaned how to do high-level networking by making clients send commands to servers, and servers make requests to clients. I took real advantage of the online course by asking numerous questions about why some choices were made, often concerning security or network saturation, and got answers from the course teachers that really helped me get the grasp of the networking workflow.
Experimenting on a 2D Shooter
After the tank game, I decided to put my new knowledge in practice by making a basic 2-player 2D shooter game. I was quickly faced with a problem: how could the bullets be precisely synced between clients and server despite the latency? I did a bit of research and It was also very different from the RTS since the player had to respond instantly to the inputs. Therefore, I did some research and realized that I was discovering a whole area of online video games, and it was very educational to test the different ways of tackling the issue, and understanding the pros and cons. Shortly after came a second important problem, the synchronization of the character movement and physics. I learned about latency compensation techniques such as client-side prediction and understood why online programmer was a speciality on its own!