J'ai essayé une fois d'écrire un jeu simple avec UDP en une semaine comme test jetable. Cela s'est horriblement mal passé.
Je l'ai jeté tôt. Le principal problème que j'ai eu était de restaurer l'état de jeu de tous les joueurs / ennemis / objets à un ancien état et d'avancer rapidement le jeu au moment où le joueur joue (c'est-à-dire une demi-seconde avant un saut. Un peu tôt ou tard peut faire manquer le saut au joueur)
Peut-être que cette méthode n'est pas le moyen le plus simple? je le soupçonne mais je l'ai mal conçu dès le début et réalisé à la fin du 2ème jour. (donc je n'ai pas trop appris ou perdu autant de temps)
Pour moi et pour les autres, qu'est-ce qui est impliqué dans un jeu UDP simple et comment en écrire un? Ou comment résoudre le problème de prédiction en restaurant correctement.
Je vais marquer cela comme CW bc je sais qu'il y aura beaucoup de réponses utiles.
la source
Rouler la vôtre peut être éducatif, mais vous en faites souvent plus si vous pouvez tirer parti d'une implémentation existante (ou au moins commencer à partir de là).
J'ai utilisé à la fois ENet et Raknet . Je n'ai utilisé Enet que dans un jeu simple, mais il a fait ce dont j'avais besoin. Enet utilise une API de niveau inférieur à Raknet. Raknet a été utilisé dans un projet plus vaste. Raknet est extrêmement puissant, mais veut vous faire structurer votre jeu autour du cadre de Raknet.
Enet:
Raknet:
la source
Si vous avez le temps et l'énergie, vous pouvez télécharger la source Quake 3 et l'étudier. C'est assez facile à comprendre si vous êtes à l'aise avec C, et tout aussi facile à bricoler.
Quels autres jeux multijoueurs ont une source disponible et utilisent UDP?
la source
Si vous allez à la maison (comme je l'ai fait), vous allez en apprendre beaucoup - aussi sur des choses que vous ne vouliez pas savoir. Comme la traversée NAT. Selon caspin, Enet est absent, mais vous pouvez toujours trouver du code STUN open source qui fonctionne dans la plupart des situations.
la source