Je me demandais quel genre d'avantages une option NoSQL pourrait avoir soit à la place, ou en association avec un SGBDR pour un MMORPG typique. En particulier, je suis curieux de savoir comment l'intégrité des données est préservée sous nosql.l'option NoSQL pour MMORPGs
Je vais vous donner quelques exemples où je suis un peu confus quant à la façon dont la logique du serveur fonctionnerait:
Scénario 1: Disons que le joueur A et B attaque le joueur C en même temps. Un player_stats.kill_count est mis à jour pour ne importe quel joueur tue le joueur C. Normalement, on peut gérer cette AttackPlayerRequest de la manière suivante:
begin transaction { attacker.health = newAttackerHealth
defender.health = newDefenderHealth
si defender.Health == 0 { attacker.stats.kills + = 1 }}
Scénario 2: Le joueur A se lls un objet à un fournisseur NPC, et tente rapidement de déposer le même élément de leur inventaire sur le terrain. (Même si vous n'êtes pas autorisé à l'interface utilisateur, ils peuvent certainement mettre les événements sur le fil).
Cette liste continue évidemment et affecte à peu près toutes les interactions joueur-joueur-joueur-monde. Un dernier élément d'information est que le serveur est threadé car nous ne voulons pas de requête particulièrement longue pour empêcher les autres joueurs de faire des choses simples dans le jeu.
Je pense que ma grande question est ici, je comprends mal quelque chose NoSQL dans laquelle ce un problème trivial? Si non, est-ce au-delà du domaine de ce que les options nosql sont destinées à résoudre? Sous un MMO typique, où pourrait-on injecter des options nosql pour augmenter les performances du serveur?
Vous pourriez obtenir une meilleure réponse sur: http://gamedev.stackexchange.com/ puisque votre question est liée au développement de jeux. – HoLyVieR
La plupart des systèmes NoSQL ne prennent pas en charge les transactions. Avez-vous besoin d'eux? – TTT
Je ne pense pas qu'il existe des systèmes NoSQL qui ont des fonctionnalités pour l'intégrité des données. C'est quelque chose qui doit être fait dans l'application. Cependant, comme le groupe NoSQL est un groupe très diversifié, il existe peut-être une exception à cette règle générale. – TTT