Quel est l'état de l'art actuel pour mettre en réseau des jeux de stratégie en temps réel?
Il me semble qu'il y a quelques années, certains titres AAA ne transmettaient que les entrées des joueurs (Starcraft 1, Age of Empires). Puisque cela vous oblige à garder tout le reste totalement déterministe, est-ce toujours une option viable? La synchronisation des générateurs de nombres aléatoires semble possible, mais qu'en est-il des différences subtiles dans les implémentations FPU, etc.?
Ou les jeux de stratégie utilisent-ils quelque chose de plus proche du réseautage de jeux d'action, où des entités individuelles sont transmises à la place (avec une certaine forme de prédiction et de compression (delta))?
Si oui, comment sont traités les objets volatils comme les projectiles?
Qu'en est-il du client / serveur par rapport au poste à poste? Je suppose que tout cela est étroitement lié.
Merci pour votre temps!
la source
Réponses:
http://www.gamasutra.com/view/feature/3094/1500_archers_on_a_288_network_.php C'est toujours ainsi que la mise en réseau se fait dans les jeux RTS. Le P2P est également le moyen normal de gérer les connexions. L'utilisation d'un modèle d'horodatage de verrouillage entraîne cependant un cas irritant de désynchronisation et de manipulation de triche. Il existe un bon moyen de récupérer lors d'une désynchronisation et tous les jeux RTS disent simplement "Quitter le match". Le dépannage des erreurs de désynchronisation est également un cauchemar.
la source
Pas pour RTS, mais tout jeu rapide aura besoin d'interpolation et de prédiction
http://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking
la source
Ceci est une excellente lecture et répondra à beaucoup de vos questions:
http://udn.epicgames.com/Three/NetworkingOverview.html
Dans mon jeu de stratégie / tower defense, j'utilise un modèle client / serveur et je peux garder tout ce qui est déterministe jusqu'à présent. Le client envoie uniquement le serveur demande à faire des choses (mais ne jamais réellement faire quoi que ce soit), et le serveur envoie des mises à jour, les créations et les suppressions jusqu'aux clients quand les choses changent. Même si mon jeu est actuellement déterministe, je ne fais jamais confiance à mes clients pour faire quoi que ce soit de bien, le serveur est le patron et a le plein contrôle sur le jeu. Le client n'est qu'un terminal stupide.
Pour que tout soit vraiment simple, j'utilise une combinaison de réflexion et d'événementiel pour garder mes entités complètement dans l'ignorance du côté réseautage. J'utilise également le concept d'un acteur et d'une "Force" (par opposition à un acteur et un pion dans un FPS comme Unreal). Cela permet une encapsulation vraiment agréable et un endroit pour stocker l'argent et les trucs de la Force.
la source