Hola a todos!
Desde hace tiempo me ronda una idea por la cabeza, una posible "mejora" para los MMORPG. No se si se ha llegado a probar o implementar (mi experiencia con los MMORPG es mas bien poca), pero no la he visto comentada en ningun sitio/foro.
La idea es la siguiente: Incluir escenas cinematicas dentro de un MMORPG o/y incluir enigmas del estilo de los RPG de 1 jugador.
ENIGMAS
=======
Se que el Ultima Online incluye enigmas en el sentido de que "El Sr X ha perdido su medallon: Esta en NoSeDonde, y si lo recuperas te dara una recompensa", pero me refiero a otro tipo de enigmas. A ver si me explico...
Imaginemos unas ruinas: dentro de esas ruinas hay una torre que solo se puede abrir con cuatro llaves. Pero esas cuatro llaves estan repartidas en todo el mundo. Solo cuando las cuatro se reunan y se usen con la puerta (de forma automatica o manual, y para simplificar, no hace falta que sean todas a la vez), la abriran, dando paso a "otra dimension" (toma topico XD).
Otro ejemplo: Existe un pasillo literamente plagado de enemigos dentro de una piramide. Si alguien entra en el, muere inmediatamente. La unica solucion consiste en entrar completamente desnudo (y sin NADA en el inventario), y asi se puede descubrir que ni mueres ni los enemigos te atacan.
Lo problemas que veo para hacer este tipo de detalles son: Objeto "unico", que puede perderse (al estar en el inventario de un jugador, y ese jugador puede ser eliminado/estar offline); inclusion de una "variable global" que representa un estado dentro del mundo; uso de una maquina virtual para ejecutar programas complejos (¿En cliente => posibilidad de hack / O / En servidor => ¡Sobrecarga!); chequeo de variables del personaje.
Respecto al objeto "unico", podemos hacer que no sea unico mediante soluciones de diseño (la llave en cuestion es energia que vuelve a aparecer pasado X tiempo => el problema de la maquina virtual del servidor / Si un objeto determinado tiene mas de 24h de "vida", desaparece), aunque derivamos el problema.
Respecto a la "variable global", creo que no seria dificil: Son detalles que no varian mucho a lo largo del tiempo, por lo que al cambiar se guardarian en disco duro y en memoria ("cache"), y de esa forma se podria proteger esas variables de una caida del servidor y hacer de su lectura algo posible.
Respecto a la "maquina virtual", la cosa es mas dura (aunque tampoco he pensado mucho en ello). Se podria utilizar un script sencillo y rapido que trabajara en paralelo con una hebra, y/o paralizar al personaje mientras se ejecuta el script, y que haya una cola de "scripts" en el servidor de tal forma que solo ejecute uno (o varios) a la vez.
Y Respecto al acceso de variables (inventario) del personaje... eso depende del MMORPG, aunque tambien habria posibilidad de "hack" si lo leyera del cliente.
CINEMATICA
==========
Respecto a la cinematica, no me refiero a la cinematica a un solo jugador, sino a una especie de "broadcast": Algo importante esta ocurriendo dentro del mundo, y los jugadores deberian saberlo.
Un ejemplo (ooootro topico): Los jugadores estan a lo suyo, y de repente empiezan a caer rayos. Ahora la camara de TODOS los jugadores se centra en un templo: se puede observar como sale de el un inmenso demonio que suelta una parrafada "Ahora el mundo es mio, jajajaja" y los jugadores retoman el control.
Los problemas que surgen aqui son: Deberia haber una forma de "paralizar" a todos los jugadores, y que cuando todos estuviesen "paralizados" el broadcast pudiera comenzar (sincronizacion). Tambien esta el tema de hacer el broadcast de la escena cinematica, y de que el engine soporte que eso se pueda hacer.
Respecto a la paralizacion/sincronia, el asunto seria enviar un mensaje a todos los personajes que esten actualmente jugando (y evitar que entren otros nuevos) para paralizarlos, y tener (quizas) un contador que revise si todos los jugadores estan paralizados. Y cuando esto ocurra, enviar la señal de "comienzo de escena cinematica".
Respecto a la escena cinematica, aparte de que el engine puediera soportar algo asi, podria enviarse la informacion a los jugadores o que los jugadores tuvieran en su disco duro el script para hacer la escena cinematica (previamente bajado gracias al motor de parches del juego). Una vez todos han enviado la señal de "vale, he acabado" (y quizas un contador de tiempo para parar la escena en caso de que no recibiera los suficientes mensajes => cuelgues, fallos de conexion, ...)
Bueno, son un cumulo de ideas. Realmente no vamos a hacer nada de esto, pero queria que opinaseis un poco. Y si os sirve de algo u os da una idea para hacer un MMORPG de la ostia, mejor que mejor :ojo:
Desde hace tiempo me ronda una idea por la cabeza, una posible "mejora" para los MMORPG. No se si se ha llegado a probar o implementar (mi experiencia con los MMORPG es mas bien poca), pero no la he visto comentada en ningun sitio/foro.
La idea es la siguiente: Incluir escenas cinematicas dentro de un MMORPG o/y incluir enigmas del estilo de los RPG de 1 jugador.
ENIGMAS
=======
Se que el Ultima Online incluye enigmas en el sentido de que "El Sr X ha perdido su medallon: Esta en NoSeDonde, y si lo recuperas te dara una recompensa", pero me refiero a otro tipo de enigmas. A ver si me explico...
Imaginemos unas ruinas: dentro de esas ruinas hay una torre que solo se puede abrir con cuatro llaves. Pero esas cuatro llaves estan repartidas en todo el mundo. Solo cuando las cuatro se reunan y se usen con la puerta (de forma automatica o manual, y para simplificar, no hace falta que sean todas a la vez), la abriran, dando paso a "otra dimension" (toma topico XD).
Otro ejemplo: Existe un pasillo literamente plagado de enemigos dentro de una piramide. Si alguien entra en el, muere inmediatamente. La unica solucion consiste en entrar completamente desnudo (y sin NADA en el inventario), y asi se puede descubrir que ni mueres ni los enemigos te atacan.
Lo problemas que veo para hacer este tipo de detalles son: Objeto "unico", que puede perderse (al estar en el inventario de un jugador, y ese jugador puede ser eliminado/estar offline); inclusion de una "variable global" que representa un estado dentro del mundo; uso de una maquina virtual para ejecutar programas complejos (¿En cliente => posibilidad de hack / O / En servidor => ¡Sobrecarga!); chequeo de variables del personaje.
Respecto al objeto "unico", podemos hacer que no sea unico mediante soluciones de diseño (la llave en cuestion es energia que vuelve a aparecer pasado X tiempo => el problema de la maquina virtual del servidor / Si un objeto determinado tiene mas de 24h de "vida", desaparece), aunque derivamos el problema.
Respecto a la "variable global", creo que no seria dificil: Son detalles que no varian mucho a lo largo del tiempo, por lo que al cambiar se guardarian en disco duro y en memoria ("cache"), y de esa forma se podria proteger esas variables de una caida del servidor y hacer de su lectura algo posible.
Respecto a la "maquina virtual", la cosa es mas dura (aunque tampoco he pensado mucho en ello). Se podria utilizar un script sencillo y rapido que trabajara en paralelo con una hebra, y/o paralizar al personaje mientras se ejecuta el script, y que haya una cola de "scripts" en el servidor de tal forma que solo ejecute uno (o varios) a la vez.
Y Respecto al acceso de variables (inventario) del personaje... eso depende del MMORPG, aunque tambien habria posibilidad de "hack" si lo leyera del cliente.
CINEMATICA
==========
Respecto a la cinematica, no me refiero a la cinematica a un solo jugador, sino a una especie de "broadcast": Algo importante esta ocurriendo dentro del mundo, y los jugadores deberian saberlo.
Un ejemplo (ooootro topico): Los jugadores estan a lo suyo, y de repente empiezan a caer rayos. Ahora la camara de TODOS los jugadores se centra en un templo: se puede observar como sale de el un inmenso demonio que suelta una parrafada "Ahora el mundo es mio, jajajaja" y los jugadores retoman el control.
Los problemas que surgen aqui son: Deberia haber una forma de "paralizar" a todos los jugadores, y que cuando todos estuviesen "paralizados" el broadcast pudiera comenzar (sincronizacion). Tambien esta el tema de hacer el broadcast de la escena cinematica, y de que el engine soporte que eso se pueda hacer.
Respecto a la paralizacion/sincronia, el asunto seria enviar un mensaje a todos los personajes que esten actualmente jugando (y evitar que entren otros nuevos) para paralizarlos, y tener (quizas) un contador que revise si todos los jugadores estan paralizados. Y cuando esto ocurra, enviar la señal de "comienzo de escena cinematica".
Respecto a la escena cinematica, aparte de que el engine puediera soportar algo asi, podria enviarse la informacion a los jugadores o que los jugadores tuvieran en su disco duro el script para hacer la escena cinematica (previamente bajado gracias al motor de parches del juego). Una vez todos han enviado la señal de "vale, he acabado" (y quizas un contador de tiempo para parar la escena en caso de que no recibiera los suficientes mensajes => cuelgues, fallos de conexion, ...)
Bueno, son un cumulo de ideas. Realmente no vamos a hacer nada de esto, pero queria que opinaseis un poco. Y si os sirve de algo u os da una idea para hacer un MMORPG de la ostia, mejor que mejor :ojo: