Jeu vidéo: Doom (Étude de cas)
Transcription
Jeu vidéo: Doom (Étude de cas)
Jeu vidéo: Doom (Étude de cas) Luc Trudeau L’ÉTS est une constituante du réseau de l'Université du Québec Département de génie logiciel et des technologies de l’information Montréal, Québec, Canada Doom (Étude de cas) Objectifs d’apprentissage L Trudeau • Expliquer la solution originale pour le multijoueur de Doom et en comprendre les faiblesses 2 Département de génie logiciel et des technologies de l’informa5on Doom (Étude de cas) Historique L Trudeau Selon Wikipédia, Doom (1993) est l’un des premiers jeux à fournir un mode multijoueur sur un réseau local. 3 Département de génie logiciel et des technologies de l’informa5on Doom (Étude de cas) Historique L Trudeau Cependant, le module multijoueur de Doom est passé à l’histoire, mais pour une autre raison 4 Département de génie logiciel et des technologies de l’informa5on Doom (Étude de cas) Network Meltdown L Trudeau n. A state of complete network overload; the network equivalent of thrashing. Network meltdown is often a result of network designs that are optimized for a steady state of moderate load and don't cope well with the very jagged, bursty usage patterns of the real world. … One amusing instance of this is triggered by the popular and very bloody shoot-'em-up game Doom on the PC. When used in multiplayer mode over a network, the game uses broadcast packets to inform other machines when bullets are fired. This causes problems with weapons like the chain gun which fire rapidly -- it can blast the network into a meltdown state just as easily as it shreds opposing monsters. Ref: http://www.definitions.net/definition/network%20meltdown 5 Département de génie logiciel et des technologies de l’informa5on Doom (Étude de cas) L Trudeau The very first release of the original Doom game on the PC used broadcast IPX packets for LAN networking. This seemed logical, because broadcast packets for a network game of N players has a packet count of just N packets on the network each tic, since everyone hears each packet. The night after we released the game, I was woken up by a call from a college sysadmin yelling at me for crippling their entire network. I didn't have an unlisted number at the time. Ref : http://fabiensanglard.net/doomIphone/Doom%20Classic.htm 6 Département de génie logiciel et des technologies de l’informa5on Doom (Étude de cas) Question L Trudeau Quelle est l’architecture sur laquelle est fondé le protocole de communication de Doom? Pair-à-Pair Où chaque client à un lien vers l’ensemble des autres Clients. 7 Département de génie logiciel et des technologies de l’informa5on Doom (Étude de cas) Structure d’une commande L Trudeau L’architecture réseau de Doom, Heretic et Hexen est de type pair-à-pair. Chaque joueur est un pair, indépendant, qui exécute sa propre version du jeu. Périodiquement (à chaque 1/35 de seconde), les commandes de chaque joueur sont échantillonnées et insérées dans une commande Tic. Cette structure simple encapsule l’action du joueur (mouvement avant arrière, de coté, l’angle de vue et l’action d’utiliser ou de tirer) 8 Département de génie logiciel et des technologies de l’informa5on Doom (Étude de cas) Lockstep L Trudeau La fonction NetUpdate, du fichier « d_net.c », est particulièrement importante. Elle vérifie s’il faut générer une nouvelle commande Tic. Pour assurer la jouabilité, cette fonction est appelée fréquemment, même dans le code de rendu graphique. La fonction TryRunTics vérifie si suffisamment de commandes Tic ont été reçues de tous les joueurs pour faire avancer le jeu. int nettics[MAXNETNODES]; //The last tic command received from each player. ticcmd_t netcmds[MAXPLAYERS][BACKUPTICS]; //This is a circular buffer into which received tic commands are placed. A maximum of BACKUPTICS (usually 12) tic commands can be queued. ticcmd_t localcmds[BACKUPTICS]; //Locally generated tic commands. These are stored in a circular buffer. int gametic; //The next game tic to be run. 9 Département de génie logiciel et des technologies de l’informa5on Doom (Étude de cas) Structure d’un paquet L Trudeau La composante réseau vérifie périodiquement pour de nouveaux paquets. Les commandes Tic provenant des autres joueurs sont stockées dans un tampon. Lorsque les commandes tic de tous les joueurs sont reçues, les boucles de jeu effectuent un certain nombre d’itérations. Le protocole utilisé par Doom est basé sur les acquittements négatifs. Chaque paquet inclut un nombre de commandes Tic et le numéro de la première commande Tic. Si le paquet reçu n’est pas celui attendu, on suppose qu’il y a eu perte de paquet et une demande de retransmission est envoyée à l’émetteur. 10 Département de génie logiciel et des technologies de l’informa5on Doom (Étude de cas) L Trudeau Réseau pair-à-pair Augmentation exponentielle du nombre de paquets (P) en fonction du nombre de joueurs (N) P = N × (N −1) Pour chaque itération de la boucle de jeu 11 Département de génie logiciel et des technologies de l’informa5on