Jeu en temps réel mise en réseau des bibliothèques pour les jeux en Java et Objective-C
Je suis à la recherche de construire en temps réel des jeux construit à l'aide d'un dédié, serveur Java et iphone des clients ainsi que le Java desktop clients. Quel disponibles à haut-rendement du réseau de transport bibliothèques qui pourrait être utilisé pour le multijoueur en temps réel de développement d'un jeu, il existe pour Java et iphone (plus précisément fiable UDP)?
Le conseil général pour la plupart d'action en temps réel en fonction des jeux (Counter-Strike, Left4Dead, Quake III) est d'utiliser UDP/IP protocole de transport de l'envoi de messages comme "non fiable" paquets en faveur de la "garantie" pour la livraison de TCP (en raison de problèmes avec le renvoyer et les problèmes de latence que vous ne pouvez pas contrôler facilement).
- La Demi-Vie Du Moteur Source Aperçu Des Réseaux
- Quake III de Réseautage
L'autre conseil est de construire un système fiable protocole UDP qui vous permet de "en option" garantie de livraison de paquets UDP (tout en n'étant pas en mesure de garantir la livraison de la commande tel qu'un flux TCP, aussi longtemps que votre jeu de la poignée de commande de paquets).
Projet De Darkstar est un Java MMO serveur avec C++ liaisons (un peu lourd pour un léger temps réel de la mise en réseau de la bibliothèque pour les jeux multijoueurs).
J'ai vu des bibliothèques écrites en C pour la fiabilité de UDP:
- Enet - fiable UDP bibliothèque
- Cacao AsyncSocket
OriginalL'auteur Dougnukem | 2009-10-27
Vous devez vous connecter pour publier un commentaire.
Ont un coup d'oeil à Kryo et de ses associés de la communication de la bibliothèque KryoNet.
Il est conçu exactement pour ce genre d'application (high performance du réseau de transport). Je ne sais pas si il y a un Objectif-C contraignant encore, mais même si il n'y a pas, il vaut bien un coup d'oeil juste pour voir comment le cadre est conçu.
OriginalL'auteur mikera
Puisque vous avez mentionné UDP. Voici une jeu java server bibliothèque (ahem... écrit par moi!) qui fournit à la fois les protocoles UDP et TCP de soutien. Fiable UDP s'avère être TCP. Vous pouvez écrire vos propres accusé de réception logique au-dessus d'UDP, mais en général, il est préférable d'aller avec le protocole TCP pour les choses qui doivent arriver serveur et UDP pour tout le reste.
Dans jetserver, de la même session utilise UDP et TCP pour communiquer. Réseau des messages peuvent être envoyés avec livraison garantie, Fiable = TCP et RAPIDE = UDP.
OriginalL'auteur Abe
"particulièrement fiable UDP"
UDP est pas fiable, de par leur conception. C'est comme l'envoi de vieux (pas électronique) mail. Vous mettez votre lettre dans l'enveloppe, écrire l'adresse, le lieu le timbre, et vous déposer dans la boîte aux lettres. Il pourrait être transférés, mais vous ne pouvez pas être sûr.
UDP est conçu pour les situations où la vitesse est plus importante que l'exactitude (justesse, comme dans "mon application a besoin que tout soit correctement transféré bits par bits).
Par exemple, des applications comme skype videochat besoin de plus de bande passante et de réduire la latence, certains ont perdu des bits peuvent être fixés au niveau de l'application (de sorte qu'il utilise le protocole UDP). Dans l'intervalle, basée sur le texte de chat a besoin de moins de bandhwidth et survit beaucoup plus de latences, mais a besoin de plus d'exactitude (comment savez-vous à cette chaîne: fsdfdsfsd est transféré correctement? dans quelle langue? etc), donc il a besoin de TCP. Et en fait c'est comment ça marche dans skype.
OriginalL'auteur gyorgyabraham