Pandora : Rise of Toruk
Projet universitaire en équipe de 2026.
Shoot'em up multijoueur.
📌 Contexte et Objectifs
Cadre : Projet universitaire en équipe (2026).
Objectifs : Développer un jeu vidéo multijoueur en ligne (Shoot'em up) de A à Z avec un moteur de jeu natif basé sur les technologies web.
Mon rôle : Développeur Full Stack. Mon intervention s'est concentrée sur le développement des mécaniques du jeu client et de la synchronisation de l'infrastructure réseau.
💡 Compétences mises en œuvre
Hard Skills (Techniques) :
- Maîtrise de l'écosystème JS : TypeScript et Node.js.
- Programmation graphique : Manipulation avancée du Canvas HTML5 pour le rendu 2D et les systèmes de collisions.
- Réseau : Utilisation experte de Socket.io pour la communication bidirectionnelle en temps réel (WebSockets) via des salons (lobbies).
Soft Skills (Transversales) :
- Résolution de problèmes complexes : Gestion des incohérences d'états entre les informations du client et les validations du serveur.
- Esprit d'anticipation : Conception d'une architecture modulaire (système de scènes) pour faciliter les futures mises à jour et évolutions du projet.
- Rigueur de test : Mise en place de tests unitaires pour assurer la viabilité des logiques de classement et de gestion des vies.
🧠 Analyse réflexive
Apprentissages et difficultés : Le développement multijoueur temps réel pose un défi majeur : la latence. Synchroniser les positions des vaisseaux, les tirs et les trajectoires des ennemis à travers le réseau via Socket.io a nécessité une profonde compréhension de l'architecture Client-Serveur appliquée au jeu vidéo (Le serveur fait foi, le client interpole). J'ai beaucoup appris sur la gestion des événements asynchrones et des déconnexions.
Ce que je ferais différemment : Pour optimiser les performances réseaux, je reverrais la quantité de données échangées entre le serveur et le client. Au lieu d'envoyer l'état "complet" du jeu à chaque trame (frame), j'implémenterais un système de "deltas", n'envoyant que les variables qui ont effectivement changé, afin d'économiser considérablement la bande passante.