Me preguntaba qué tipo de beneficios podría tener una opción nosql en lugar de, o junto con un rdbms para un MMORPG típico. En particular, tengo curiosidad sobre cómo se preserva la integridad de los datos en nosql.Opción NoSql para MMORPGs
Voy a dar algunos ejemplos en los que estoy un poco confundido en cuanto a cómo operaría la lógica del servidor:
Escenario 1: Digamos B ataque jugador A y C al mismo tiempo. Un player_stats.kill_count se actualiza para cualquier jugador mata a jugador C. Normalmente, se podría manejar esta AttackPlayerRequest de la siguiente manera:
iniciar la transacción { attacker.health = newAttackerHealth
defender.health = newDefenderHealth
si defender.Health == 0 { attacker.stats.kills + = 1 } }
Escenario 2: El jugador A se Envía un artículo a un vendedor de NPC e intenta rápidamente tirar el mismo artículo de su inventario al suelo. (Incluso si su UI no permite esto, pueden poner los eventos en el cable).
Esta lista obviamente continúa y afecta a casi todas las interacciones jugador-jugador jugador-mundo. Una última información es que el servidor está enhebrado ya que no queremos una solicitud particularmente larga para impedir que otros jugadores puedan hacer cosas simples en el juego.
Supongo que mi gran pregunta aquí es: ¿estoy malentendiendo algo sobre nosql en donde este es un problema trivial? Si no, ¿está esto más allá del dominio de lo que las opciones nosql deben resolver? En un MMO típico, ¿dónde podría uno inyectarse opciones de nosql para aumentar el rendimiento del servidor?
Puede obtener una mejor respuesta en: http://gamedev.stackexchange.com/ ya que su pregunta está relacionada con el desarrollo del juego. – HoLyVieR
La mayoría de los sistemas NoSQL no admiten transacciones. ¿Los necesitas? – TTT
No creo que haya sistemas NoSQL que tengan características para la integridad de datos. Eso es algo que debe hacerse en la aplicación. Sin embargo, el grupo NoSQL es un grupo muy diverso, así que tal vez haya una excepción a esta regla general. – TTT