Game Development

Together with a friend, I collaborated on the development of two small, humorous games. We chose to use godot, a powerful open-source and cross-platform game engine, which allowed us to bring our creative ideas to life efficiently and share them easily. Our focus was on creating lighthearted, entertaining experiences that we could enjoy and distribute among our circle of friends. Throughout the process, we learned a lot about game design, programming, and teamwork—all while having a great time.

Moonwalker

Moonwalker is a compact yet imaginative platformer that follows the journey of a futuristic astronaut stranded on a bizarre and unpredictable world. Tasked with surviving in an environment where the laws of physics often behave chaotic, the player must navigate dangerous terrain, outsmart a variety of enemies, and adapt to ever-changing conditions. 

Zombie Survival

After becoming comfortable with the Godot engine, we decided to push our skills further by tackling a more ambitious project: creating a multiplayer game. The result was Zomby Survival — a cooperative 2D action game where players team up with friends to survive relentless waves of zombies. Set in a dynamic world filled with hazards and hidden resources, the game challenges players to scavenge for weapons, gear, and upgrades while working together to fend off increasingly difficult undead enemies. Developing Zomby Survival was both a technical and creative milestone for us, as it required learning about networking, synchronization, and player interaction—all while ensuring the gameplay remained fun, intense, and chaotic in the best way possible

Multiplayer Implementation

To gain practical experience and ensure a smooth multiplayer experience, we built the entire multiplayer infrastructure ourselves from the ground up. This included designing and implementing the following components:

  • Authentication Server: Handles user registration and login, providing secure account management.

  • Management Server: Acts as a central hub to assign new game sessions to available game servers. This setup allows us to scale horizontally by adding multiple game servers, enabling basic load balancing.

  • Game Server: Hosts active multiplayer sessions that can be joined by multiple players simultaneously, handling real-time gameplay and communication.

Performance Optimizations

To enhance gameplay quality and ensure responsiveness in a networked environment, we introduced several key optimizations:

  • Clock Synchronization: Implemented time synchronization between clients and servers to reduce desynchronization issues during gameplay.

  • Movement Smoothing: Used interpolation and extrapolation techniques to make character movement appear fluid and responsive across different clients.

  • Networking Efficiency: Optimized our networking layer by improving event distribution logic and reducing protocol overhead, which helped minimize latency and boost overall performance.

Gameplay Features

To create an engaging and user-friendly experience, we developed several core gameplay systems designed to offer flexibility, customization, and intuitive controls.

  • Inventory System:
    Inspired by popular mechanics found in games like Minecraft, our inventory system allows players to collect, manage, and equip various items with ease. Items can be equipped directly onto the character or placed into one of four quick-access slots, enabling players to use essential tools or weapons without needing to open the full inventory. This design ensures a smooth gameplay flow, especially during fast-paced combat or exploration.

  • Character Customization:
    We also built a character designer that gives players the freedom to personalize their in-game avatar. Each body part—such as the head, torso, arms, and legs—can be individually customized in both shape and color, allowing for a wide range of visual styles. This system encourages creativity and helps players feel more connected to their characters.