Parcours d’apprentissage : Avancé – Programmation réseau

Il semble que vous ne soyez pas encore Premium ?
PASSEZ PREMIUM MAINTENANT

Parcours avancé : La programmation de jeux multijoueur en réseau

Une série d’ateliers uniques sur Internet pour apprendre la programmation réseau. Découvrez tout ce que vous ignoriez sur la programmation réseau et mettez en pratique comme les pros : Client/Serveur, UDP/TCP, synchronisation, temps réel, tour par tour, et bien d’autres concepts enfin dévoilé avec clarté !

Réseau
Mes badges : 0/5 - Voir ma progression
0%
1

Vous voulez vraiment programmer des jeux en réseau ? Moi aussi ! J’ai ingurgité, testé et résumé pour vous toutes les bases nécessaires pour comprendre les concepts mis en oeuvre. En prime, à travers un premier cas pratique nous créerons notre premier serveur et interagirons avec lui.

Position3
2 vidéos - 1h50 Support de cours - 30 pages
2

Dans cet atelier il s’agit de programmer côté serveur un système pour maintenir à jour une liste des clients qui se sont connectés. L’intérêt ? Savoir qui est connecté et être capable de dialoguer de manière proactive afin notamment de vérifier que tout le monde est « online » ou tout simplement envoyer des mises à jours sur le contexte du jeu (par exemple des données sur le monde ou ses protagonistes).

Vous apprendrez à :

  • Coder un serveur de jeu en C# avec une structure simple et lisible
  • Rendre le serveur « non bloquant » et être capable d’exécuter des traitements à intervalle régulier
  • Afficher un bel écran en ASCII côté serveur, pour afficher des informations pertinentes, façon terminal
  • Vous connecter au serveur via un client codé en Lua / Love2D
  • Gérer un contexte côté serveur, pour y stocker tout ce qui concerne les clients et les limitations du serveur
  • Maintenir à jour une liste des clients connectés pour être capable de les contacter et de maintenir leur connexion active
  • Recevoir et envoyer des données entre le serveur et les clients en utilisant un format de donnée simple et lisible
  • Accepter ou refuser les connexions (par exemple si vous avez trop de clients connectés)
  • Déplacer un sprite coté client et envoyer les mises à jour au serveur
Position3
4 vidéos - 30 mn Support de cours - 17 pages
3

Notre serveur est capable de gérer une liste de clients connectés. Mais dans la vraie vie, c’est le bordel. Les clients ne sont pas toujours connecté : le joueur part aux toilettes et ne joue plus, sa mère lui a coupé internet, ou pire encore : il a rage quit ! Alors on ne va pas se laisser faire.  On va surveiller ça de près. Et au premier qui moufte : déconnexion !

Vous apprendrez :

  • Comment détecter qu’un client est déconnecté alors qu’on est en UDP
  • Comment effectuer un contrôle des connexion à intervalle régulier
  • Comment dégager le client de la liste des connectés quand il ne répond plus
Position3
1 vidéo - 13 mn Support de cours - 7 pages
4

Un jeu en réseau n’est rien sans échanger des données entre les joueurs. Nous allons dans cet atelier mettre en place un système ingénieux d’échange de message entre les joueurs, via le serveur. Pour mettre en pratique, nous allons coder un chat permettant aux joueurs d’échanger des messages texte.

Dans cet atelier vous allez apprendre à :

  • Maintenir une connexion active entre un client et le serveur
  • Gérer un « nickname » pour chacun des clients, et le modifier via le client
  • Envoyer un message de « chat » au serveur et le redistribuer à tous les clients connectés
  • Intégrer un système de console/terminal pour pouvoir entrer des commandes au clavier depuis le client

En bonus : un système de console complet pour transformer votre jeu en terminal et pouvoir gérer des commandes telles que « connect », « nickname » ou encore « chat ».

Position3
4 vidéos - 45 mn Support de cours - 19 pages
5

Maintenant que nous savons échanger des données, voyons comment en faire un gameplay !

Dans cet atelier vous allez apprendre à générer un donjon procéduralement côté serveur, et l’afficher côté client. Vous pourrez ensuite vous lancer dans le donjon pour vous y déplacer !

Dans cet atelier :

  • Comment réorganiser son code pour le rendre plus évolutif
  • Comment demander la map côté client au moment de la connexion
  • Comment encoder la map en JSON côté serveur pour l’envoyer au client
  • Comment décoder la map et l’afficher
  • Comment positionner un joueur dans la map aléatoirement
  • Comment recevoir la liste des joueurs côté client et les afficher dans la map
  • Comment se déplacer dans la map et répercuter ce déplacement chez tous les joueurs
  • Comment gérer la déconnexion d’un des joueurs
Position3
11 vidéos - 1h40 Support de cours - 10 pages
Position3

Dialoguez avec les autres membres de la gamecodeur school.

Accédez maintenant à notre serveur Discord privé : Entraide, Game Jams, Partage de projets, etc.

Vous devez être membre de la Gamecodeur School Premium pour être autorisé à accéder au serveur.