🏆 Zappy – Multiplayer AI Strategy Game

Zappy

About

Zappy is a large-scale, multiplayer simulation project developed over six weeks during the second-year final at Epitech. Built by a team of six, the project consisted of three main components:

  • A game server written in C
  • A fully autonomous AI client in C++
  • A real-time, 3D graphical interface using Irrlicht

As the team lead, I was responsible for organizing the production timeline, assigning and reviewing tasks, and ensuring deliverables were completed on time. I also developed the entire graphical client, designed the plugin system, and contributed to server command development.

🏅 Awarded the highest score in our class for the final jury presentation


Project Info

  • Role: Project Lead & 3D Client Developer (Irrlicht), Plugin System Architect, Server Command Contributor
  • Team Size: 6
  • Duration: 6 weeks
  • Languages: C (server), C++ (AI & client)
  • Graphics: Irrlicht 3D
  • Communication: Socket-based with write, read, and poll

🎮 Introduction

Zappy simulates a strategic AI-based competition where teams of drones evolve on a tile-based map. The objective: reach level 8 with six drones from the same team to claim victory.

Each AI:

  • Gathers resources scattered on the map
  • Consumes food to survive
  • Must collaborate and group up to level up
  • Can broadcast encrypted messages using a custom pattern based on the team name

The server validates commands and enforces game rules based on a common protocol shared across all groups in the class.

🧠 The AIs are fully autonomous, but our plugin system allows manual control for debugging and demonstration purposes.


🧠 AI Behavior & Game Mechanics

Roles & Strategy

  • Levelers: focus on leveling up and teamwork
  • Scouts: explore and gather food
  • Disruptors: jam or interfere with opponents
  • Attackers: harass enemy teams strategically

🔐 All AI messages are broadcast globally, so we implemented a custom encryption system to hide information from opponents.

Map Dynamics

  • Tile-based world with resources that must be harvested and used strategically
  • Positioning is essential: AIs must group precisely to evolve

🎨 3D Client & Plugin System

Our 3D client was inspired by space-themed visuals, with drones rendered using handmade assets and animated models.

  • Each AI drone is visualized with a growing number of rings based on its level – a unique way to visually represent power progression
  • 3D elements such as resource pickups, energy cores, and stat displays were created from scratch
  • A plugin system allows the client to:
    • Load custom 3D elements or environments
    • Add new stat displays or in-game menus
    • Swap assets, music, and sounds (e.g., transform the theme to a Kirby-style version)

📤 Source Code

👉 GitHub Repository:
https://github.com/ArthuryanLoheac/ZAPPY


📚 What I Learned

  • Coordinating a multidisciplinary game dev team under strict time constraints
  • Developing a full 3D game interface using Irrlicht
  • Designing and using plugins and shared libraries (.so) to build flexible tools
  • Ensuring real-time synchronization between server, AI, and GUI
  • Building protocol-compliant communication systems

💡 The most difficult part was using Irrlicht, which gave us a less-than-optimal result compared to other engines that could have performed better.