Question

Je suis codage actuellement un tour en ligne basé rpg pour une mission. Dans le jeu les joueurs peuvent discuter entre eux et envoyer leurs actions une fois qu'ils terminent un tour. Quelle est la meilleure façon de prendre soin de l'échange de données entre les joueurs. Prises ou stocker toutes les informations dans une base de données et le programme ne périodiquement des demandes de vérifier les mises à jour? À moins d'une meilleure approche.

S'il vous plaît noter que le jeu est censé être à grande échelle, i.e. beaucoup de joueurs subirai un certain nombre de jeux simultaniously sur le même sever, je dois donc essayer d'être aussi efficace que possible.

Était-ce utile?

La solution

Dans Silverlight, vous ne pouvez vous connecter à l'hôte qui a servi l'application Silverlight, de sorte que les règles sur les sockets client-client. Tout dans votre jeu (y compris le chat) devra passer par un serveur.

Windows Communication Foundation (WCF) est tout à fait agréable de travailler avec dans Silverlight2. Avoir votre jeu tour par tour rend les choses un peu plus facile parce que cela signifie que vous ne devez pas maintenir exactement le même jeu d'état entre les joueurs en temps réel (par exemple: ne pas viser la latence max 100 ms)

.

Autres conseils

Utilisez WCF s'il est possible.

Il existe deux grandes possibilités. Vous pouvez appliquer le Prises communication ou vous pouvez utiliser le Duplex WCF . Voici les compromis:

Sockets => meilleure performance sur la productivité plus faible
Duplex WCF => moins bonnes performances, mais une plus grande productivité

Il y a quelques exemples sur le net pour les deux scenerios mais si décider de la solution WCF voici quelques-unes des ressources:

très bon tutoriel par Peter McG.
Information sur duplex WCF de msdn.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top