Segunda o tercera, según como se mire, esta reseña de Despertar: Séptimo me dejó sin palabras.
Un scroll area decente
Al fin logré resolver el problema del área de scroll aparentemente infinita que venía persiguiéndome desde hace tiempo.
Antes que nada, debo decirles que ignoren por completo el tutorial oficial de Unity que muestra cómo crear una área de scroll. Al final, no funciona. Sin embargo, Unity ofrece un ScrollView ya armado que sí funciona y es el que deberías utilizar en tus proyectos. Pero, el gran problema aquí es lograr qque ese scroll se vea infinito.
La solución consiste en agregar un componente Content Size Fitter al elemento Content, y ajustar su parámetro Vertical Fit a Preferred Size. Por lo general, los tutoriales usan un componente Text en el Content, pero en mi caso yo agregué un layout horizontal y fui adjuntando elementos creados a partir de un prefab, lo cual me permite conseguir efectos como que una línea de texto se resalte en otro color. El Size Fitter ajusta el tamaño de forma que puedes agregar cosas, lo que no he comprobado aún es el límite.
Este era un problema viejo por dos razones. La primera, cuando empecé a trabajar con Unity recién se estaba dejando atrás el estilo antiguo de UI y no habían tutoriales que explicasen cómo hacer un scroll infinito con el nuevo UI, solo en el viejo. Y la otra, cuando seguí el tutorial oficial y pregunté poir qué no funcionaba, nadie supo decirme que en realidad debía usar el ScrollView incluido en unity y mandar a la mierda el tutorial oficial. Pero al fin está resuelto y espero que esta breve explicación les sirva de algo, y a mí me sirva para en el futuro no olvidar que necesito el Content Size Fitter.
Antes que nada, debo decirles que ignoren por completo el tutorial oficial de Unity que muestra cómo crear una área de scroll. Al final, no funciona. Sin embargo, Unity ofrece un ScrollView ya armado que sí funciona y es el que deberías utilizar en tus proyectos. Pero, el gran problema aquí es lograr qque ese scroll se vea infinito.
La solución consiste en agregar un componente Content Size Fitter al elemento Content, y ajustar su parámetro Vertical Fit a Preferred Size. Por lo general, los tutoriales usan un componente Text en el Content, pero en mi caso yo agregué un layout horizontal y fui adjuntando elementos creados a partir de un prefab, lo cual me permite conseguir efectos como que una línea de texto se resalte en otro color. El Size Fitter ajusta el tamaño de forma que puedes agregar cosas, lo que no he comprobado aún es el límite.
Este era un problema viejo por dos razones. La primera, cuando empecé a trabajar con Unity recién se estaba dejando atrás el estilo antiguo de UI y no habían tutoriales que explicasen cómo hacer un scroll infinito con el nuevo UI, solo en el viejo. Y la otra, cuando seguí el tutorial oficial y pregunté poir qué no funcionaba, nadie supo decirme que en realidad debía usar el ScrollView incluido en unity y mandar a la mierda el tutorial oficial. Pero al fin está resuelto y espero que esta breve explicación les sirva de algo, y a mí me sirva para en el futuro no olvidar que necesito el Content Size Fitter.
Si necesitas partículas en Unity, Duc Vu es tu hombre
Es posible que algún día te veas en la situación de que necesitas hacer un sistema de partículas en Unity y eres un total inepto en ese y otros temas artísticos. En ese caso, los mejores tutoriales sobre efectos y sistemas de partículas que he visto hasta ahora son los del canal de Duc Vu.
Estos tutoriales son muy prácticos, van directo al grano y además, el autor no habla. Muchas veces, la gente se empeña en describirnos lo que están haciendo cuando no es necesario, y lo que consiguen es divagar y alargar el tutorial sin necesidad. Con los videos de Duc Vu no te convertirás en un experto en efectos y partículas de Unity en 24 horas, pero sí podrás hacer algo que más o menos cubra el hueco.
Estos tutoriales son muy prácticos, van directo al grano y además, el autor no habla. Muchas veces, la gente se empeña en describirnos lo que están haciendo cuando no es necesario, y lo que consiguen es divagar y alargar el tutorial sin necesidad. Con los videos de Duc Vu no te convertirás en un experto en efectos y partículas de Unity en 24 horas, pero sí podrás hacer algo que más o menos cubra el hueco.
War is boring cree que COD WWII es un pésimo juego
War is Boring es uno de los pocos blogs sobre temas militares que sigo (no hay tiempo para más). No suelen hablar sobre juegos a menudo, pero al parecer, Call of Duty: WWII se ha ganado un artículo donde lo ponen a parir.
Según el autor, todo, desde el guión lleno de clichés hasta la jugabilidad, es una mierda total y una ofensa a la historia, los veteranos de la contienda y a los jugadores que pagan $60 por este título.
Es lo que suele suceder cuando explotas una franquicia como si fuera la vaca de los huevos de oro, año tras año. Aunque justo es decirlo, Call of Duty tampoco se caracterizaba por su originalidad, su excelente trama y su buena mecánica de juego en las entregas anteriores. Pero mientras haya ingenuos que aflojen los $60, seguirán habiendo más y peores COD.
Según el autor, todo, desde el guión lleno de clichés hasta la jugabilidad, es una mierda total y una ofensa a la historia, los veteranos de la contienda y a los jugadores que pagan $60 por este título.
Es lo que suele suceder cuando explotas una franquicia como si fuera la vaca de los huevos de oro, año tras año. Aunque justo es decirlo, Call of Duty tampoco se caracterizaba por su originalidad, su excelente trama y su buena mecánica de juego en las entregas anteriores. Pero mientras haya ingenuos que aflojen los $60, seguirán habiendo más y peores COD.
Divinity: Original Sin 2 es noticia otra vez, un millón de copias vendidas
Hoy nos despertamos con esta gran noticia: DOS 2 ha alcanzado el millón de copias vendidas, nada mal para un RPG isométrico. Larian ha conseguido un juego que tiene todos los méritos para ganarse el título de clásico.
Lo más sorprendente es que haya alcanzado esta cifra siendo un juego RPG de la vieja escuela, bastante complicado, y solo para PC. Esto prueba que el género goza de muy buena salud y que hay espacio para triunfar con proyectos aunque éstos no se acojan a la moda de deslumbrar con gráficos más que con jugabilidad e historia.
Solo queda felicitarlos y desearles que el éxito se repita en su próximo título.
Lo más sorprendente es que haya alcanzado esta cifra siendo un juego RPG de la vieja escuela, bastante complicado, y solo para PC. Esto prueba que el género goza de muy buena salud y que hay espacio para triunfar con proyectos aunque éstos no se acojan a la moda de deslumbrar con gráficos más que con jugabilidad e historia.
Solo queda felicitarlos y desearles que el éxito se repita en su próximo título.
Y ya está en fase beta El Laberinto del Saber
El primer beta del Laberinto del Saber está terminado. Creí que nunca llegaría a concluirlo, pero a pesar de las dificultades y de que aún faltan algunos gráficos, el juego como tal puede ser sometido a pruebas más serias.
De momento, tengo pocos probadores, así que si alguien se anima, puede dejarme un comentario y le proporciono el apk o un build para Windows/Linux.
De momento, tengo pocos probadores, así que si alguien se anima, puede dejarme un comentario y le proporciono el apk o un build para Windows/Linux.
Y al fin, solucionado el problema
Una de las cosas que más echo en falta en Unity cuando trabajo en el proyecto 2d es que no tiene búsqueda de caminos. Supongo que sea imposible o muy difícil incluir un A* que funcione con todas las posibles variantes de juegos 2d. En mi proyecto tuve que inventarme un método simple para mover los fantasmas hacia el jugador, pero tenía un montón de problemas. Ayer logré mejorarlo un poco con unos simples cambios, aunque aún dista de ser un sistema de pathfinding efectivo.
Lo que hago es mover el fantasma directamente hacia la posición del jugador con Vector2.MoveTowards(), actualizando constantemente la posición de destino. Esto también me permite conservar la "falta de inteligencia" del fantasma, y que resulte fácil evadirlo poniendo una pared de por medio. Sí, porque la idea no es que te persigan por todo el laberinto, sino solo hasta que los pierdes de vista. Con eso ya estoy más cerca de lograr un beta medio decente que pueda ser presentado a más personas.
Queda por definir qué otras funcionalidades quiero incluir en el demo y trabajar para concluirlas lo antes posible. Pero la programación, por desgracia, es como la poesía: si no estás inspirado, no te sale bien. O por lo menos aún no he aprendido a obligarme a programar como mismo me obligo a escribir casi a diario, algo que tendré que solucionar.
Pero al menos ahora sí puedo decir que el remake del Laberinto del Saber está más cerca. Lo que no puedo es decirles qué tan cerca. Y queda el detalle de que no tengo cuenta de Google Play para publicarlo como debe ser.
Lo que hago es mover el fantasma directamente hacia la posición del jugador con Vector2.MoveTowards(), actualizando constantemente la posición de destino. Esto también me permite conservar la "falta de inteligencia" del fantasma, y que resulte fácil evadirlo poniendo una pared de por medio. Sí, porque la idea no es que te persigan por todo el laberinto, sino solo hasta que los pierdes de vista. Con eso ya estoy más cerca de lograr un beta medio decente que pueda ser presentado a más personas.
Queda por definir qué otras funcionalidades quiero incluir en el demo y trabajar para concluirlas lo antes posible. Pero la programación, por desgracia, es como la poesía: si no estás inspirado, no te sale bien. O por lo menos aún no he aprendido a obligarme a programar como mismo me obligo a escribir casi a diario, algo que tendré que solucionar.
Pero al menos ahora sí puedo decir que el remake del Laberinto del Saber está más cerca. Lo que no puedo es decirles qué tan cerca. Y queda el detalle de que no tengo cuenta de Google Play para publicarlo como debe ser.
Nueva fuente
Gracias al apoyo de un amigo, al fin he podido salir de una actualización pendiente desde hace más de un año. Sabía que tenía que hacerlo, pero solo hace un mes me dispuse en serio a ahorrar para comprar una nueva fuente de alimentación, y resultó que no tuve que esperar mucho: como mi amigo no podía traerla, me envió el dinero para que la comprar aquí. Lamentablemente, es mucho más caro que comprar en USA y no hay la misma variedad de opciones, así que tuve que conformarme con una EVGA de 500W y 40A, cuando mi elección hubiese sido una Antec de 550W que habría costado casi la mitad que esta.
Pero bueno, acá las cosas son como son, y tengo que agradecer que ya está dado el primer paso y ahora puedo pensar en actualizar otras cosas. Mi objetivo para el año próximo es mejorar la tarjeta de video, que ya se está quedando desfasada. De nuevo, lo ideal sería poder comprar en USA y traerlo, pero de no ser así... ajo y agua. Según mis cálculos, contaría con un presupuesto de unos $150 USD, otra vez gracias a un amigo y un tío, que a pesar de las dificultades siempre tratan de echar una mano cuando pueden.
Sin embargo, la nueva fuente no resolvió un problema que había atribuido a la falta de potencia de la anterior. Resulta que la PC se apaga varias veces uno o dos segundos después de encenderse, y ahora no sé si esto es causa del interruptor de encendido o de un fallo en la motherboard. Luego de experimentar este problema con tres fuentes distintas, resulta obvio que el problema no es de alimentación.
Pero este es un problema enano, supongo, y no vale la pena empañar la alegría de tener una nueva fuente.
Pero bueno, acá las cosas son como son, y tengo que agradecer que ya está dado el primer paso y ahora puedo pensar en actualizar otras cosas. Mi objetivo para el año próximo es mejorar la tarjeta de video, que ya se está quedando desfasada. De nuevo, lo ideal sería poder comprar en USA y traerlo, pero de no ser así... ajo y agua. Según mis cálculos, contaría con un presupuesto de unos $150 USD, otra vez gracias a un amigo y un tío, que a pesar de las dificultades siempre tratan de echar una mano cuando pueden.
Sin embargo, la nueva fuente no resolvió un problema que había atribuido a la falta de potencia de la anterior. Resulta que la PC se apaga varias veces uno o dos segundos después de encenderse, y ahora no sé si esto es causa del interruptor de encendido o de un fallo en la motherboard. Luego de experimentar este problema con tres fuentes distintas, resulta obvio que el problema no es de alimentación.
Pero este es un problema enano, supongo, y no vale la pena empañar la alegría de tener una nueva fuente.
Lo que podemos aprender del diseño de misiones de Divinity: OS 2
Hace unos días mencionaba que Divinity: Original Sin 2 no es un juego de mundo abierto, sin embargo, eso no quiere decir que no sea un excelente RPG. En especial, han logrado evitar con éxito caer en el facilismo de las misiones repetitivas, clonadas y re-clonadas hasta la saciedad en aras de inflar unas horas de juego más.
Si algo ofrece D: OS 2 es montones de misiones. Tantas, que precisamente puede volverse aburrido en ocasiones, porque algunas de ellas más que misiones, son enigmas muy difíciles de resolver. Sin embargo, hay gente para todo, y no dudo que sus jugadores habrá que disfruten ese reto.
En mi opinión, el diseño de misiones de este juego se merece un premio, por su variedad. Claro que es inevitable el clásico esquema tú necesitas X información de mí, así que haz Y tarea para mí, pero esto es un mecanismo que bien empleado, no se vuelve monótono y que además creo que es necesario. Pienso que ellos lo han empleado muy bien y en contadas ocasiones, no es como si la misión principal completa estuviese construida sobre él.
Esto me recuerda en cierta forma al Fallout 2: ir por ahí y encontrarte todo tipo de situaciones, como por ejemplo un hombre con un perro enfermo (lo siento por el pobre perro, pero me fui sin curarlo) o una parte de una armadura que está dispersa por toda la ubicación actual. Pequeñas cosas que son enrevesadamente difíciles, o muy simples, es tu elección completarlas o no.
Nada que ver con el encuentra los otros tres pads, encuentra los otros tres cuerpos, encuentra los otros tres lo que sea, que vimos en Mass Effect: Andromeda.
Y ya que hablamos de misiones, mi próxima tarea, ahora que he completado la IA, es crear un sistema de misiones que valga la pena. O copiar uno.
Si algo ofrece D: OS 2 es montones de misiones. Tantas, que precisamente puede volverse aburrido en ocasiones, porque algunas de ellas más que misiones, son enigmas muy difíciles de resolver. Sin embargo, hay gente para todo, y no dudo que sus jugadores habrá que disfruten ese reto.
En mi opinión, el diseño de misiones de este juego se merece un premio, por su variedad. Claro que es inevitable el clásico esquema tú necesitas X información de mí, así que haz Y tarea para mí, pero esto es un mecanismo que bien empleado, no se vuelve monótono y que además creo que es necesario. Pienso que ellos lo han empleado muy bien y en contadas ocasiones, no es como si la misión principal completa estuviese construida sobre él.
Esto me recuerda en cierta forma al Fallout 2: ir por ahí y encontrarte todo tipo de situaciones, como por ejemplo un hombre con un perro enfermo (lo siento por el pobre perro, pero me fui sin curarlo) o una parte de una armadura que está dispersa por toda la ubicación actual. Pequeñas cosas que son enrevesadamente difíciles, o muy simples, es tu elección completarlas o no.
Nada que ver con el encuentra los otros tres pads, encuentra los otros tres cuerpos, encuentra los otros tres lo que sea, que vimos en Mass Effect: Andromeda.
Y ya que hablamos de misiones, mi próxima tarea, ahora que he completado la IA, es crear un sistema de misiones que valga la pena. O copiar uno.
Cierra Runic Games
Me entero con unos días de atraso que Runic Games, el estudio creador de esa joyita que fue Torchlight, ha tenido que cerrar. Lamentable, pero considerando que Runic Games produjo muy pocos títulos durante sus nueve años, era de esperarse. Por mi parte, solo llegué a conocer Torchlight 1 y 2, pero veo en las noticias que también lanzaron Hob, una especie de aventura con puzzles.
Solo queda esperar que sus empleados continúen en la industria, y desearles suerte.
Solo queda esperar que sus empleados continúen en la industria, y desearles suerte.
Sistema de IA básico terminado
En los últimos días parece que no tengo otro tema. De hecho, me duermo pensando en esto, y entre IA y Divinity, mi sueño es bastante incómodo. Pero el resultado es que el sistema de inteligencia artificial funciona bastante bien a nivel básico. O sea, que como prueba de concepto está bien, y ahora es que las cosas empiezan a complicarse.
Para continuar, tengo que implementar un mini-sistema RPG: habilidades e items utilizables por las entidades, incluyendo al jugador; que aunque sea mini, no es trivial. De paso, eso me permitirá probar otro enfoque en la implementación de habilidades y objetos usando ScriptableObjects. Sí, otra obsesión reciente, quizás debería consultar un médico. Y ya que hablamos del tema, este video ofrece un buen punto de partida:
Al principio me pareció que no sacaría nada útil, pero resultó que estaba equivocado. Hay algunos trucos, como el de instanciar los ScriptableObjects que no sabía con exactitud cómo hacerlo, y el de usar Resource.LoadAll para cargar todos los ScriptableObjects de una carpeta.
El siguiente paso sería conseguir que los NPC utilicen sus habilidades (nada de optimizaciones por el momento) y objetos para derrotar al jugador. Luego, combate entre grupos. Y entonces, si todo lo anterior camina como debe y no he encontrado algún error garrafal, ir al punto de optimizar el combate, lo cual requiere un sistema de items mucho más completo y funcional, bonificadores y penalizadores, etc. Suficiente trabajo para un mes, creo.
No estoy seguro de que necesite corutinas en algún momento, aunque la idea me ha rondado por la cabeza un par de veces. Quizás no dentro de las acciones, pero sí en el StateManager, para no sobrecargar el juego cuando una entidad tenga más de una acción en su estado activo. Hay que tener en cuenta que ahora las acciones son simples, pero en el futuro se volverán mucho más complejas a medida que necesiten valorar factores diversos con vistas a hacer la IA más inteligente. Ojalá no se vuelvan necesarias.
Pensaba dar algunas conclusiones, pero creo que aún es demasiado prematuro y las dejaré para más adelante. Aún estoy a tiempo de toparme con algún problema insoluble que me haga descartar todo el trabajo.
Para continuar, tengo que implementar un mini-sistema RPG: habilidades e items utilizables por las entidades, incluyendo al jugador; que aunque sea mini, no es trivial. De paso, eso me permitirá probar otro enfoque en la implementación de habilidades y objetos usando ScriptableObjects. Sí, otra obsesión reciente, quizás debería consultar un médico. Y ya que hablamos del tema, este video ofrece un buen punto de partida:
Al principio me pareció que no sacaría nada útil, pero resultó que estaba equivocado. Hay algunos trucos, como el de instanciar los ScriptableObjects que no sabía con exactitud cómo hacerlo, y el de usar Resource.LoadAll para cargar todos los ScriptableObjects de una carpeta.
El siguiente paso sería conseguir que los NPC utilicen sus habilidades (nada de optimizaciones por el momento) y objetos para derrotar al jugador. Luego, combate entre grupos. Y entonces, si todo lo anterior camina como debe y no he encontrado algún error garrafal, ir al punto de optimizar el combate, lo cual requiere un sistema de items mucho más completo y funcional, bonificadores y penalizadores, etc. Suficiente trabajo para un mes, creo.
No estoy seguro de que necesite corutinas en algún momento, aunque la idea me ha rondado por la cabeza un par de veces. Quizás no dentro de las acciones, pero sí en el StateManager, para no sobrecargar el juego cuando una entidad tenga más de una acción en su estado activo. Hay que tener en cuenta que ahora las acciones son simples, pero en el futuro se volverán mucho más complejas a medida que necesiten valorar factores diversos con vistas a hacer la IA más inteligente. Ojalá no se vuelvan necesarias.
Pensaba dar algunas conclusiones, pero creo que aún es demasiado prematuro y las dejaré para más adelante. Aún estoy a tiempo de toparme con algún problema insoluble que me haga descartar todo el trabajo.
Usando ScriptableObjects para IA
Hace unos meses el canal de Unity publicó una serie de videos, basados mayormente en esta conferencia:
Hasta hace poco no había tenido tiempo de estudiar los tutoriales y comenzar a adaptar el código, o incluso decidir si era mejor que mi anterior intento. Y recién hace dos días fue que pude mirar un poco más lo que había hecho y cambiar algunas cosas.
En esencia, el sistema me parece bastante bueno. Por lo menos resuelve el problema de la modularidad de la IA, algo que no había logrado resolver en mi aproximación anterior. Confieso que últimamente he dudado de los ScriptableObjects, pero creo que en este caso sí son muy útiles. Para un RPG, poder definir comportamientos específicos para cada entidad es esencial. Por ejemplo, un mago no pelea de la misma forma que un guerrero de largo alcance, que a su vez es muy distinto a un guerrero cuerpo a cuerpo, y así sucesivamente, según las clases o el equipo de cada NPC.
Los tutoriales muestran de forma relativamente sencilla cómo armar una máquina de estados usando ScriptableObjects y cómo solucionar el problema que se deriva de que éstos guardan la información entre corridas. Pero además, la conferencia abunda un poco más en otros trucos que podemos hacer con ScriptableObjects, usándolos como enums, por mencionar uno.
Yo recomiendo ver la conferencia primero y luego los tutoriales, si estás buscando una guía para desarrollar tu propia inteligencia artificial. Y ya que hablamos del tema, tengo que decir que la IA de Divinity: Original Sin 2 es genial. Me encanta cómo los NPCs encuentran siempre la mejor forma de fastidiarte, buscando lugares elevados, lanzando a tus compañeros en el fuego, etc. La verdad, no recuerdo haber visto un sistema tan avanzado de combate.
Hasta hace poco no había tenido tiempo de estudiar los tutoriales y comenzar a adaptar el código, o incluso decidir si era mejor que mi anterior intento. Y recién hace dos días fue que pude mirar un poco más lo que había hecho y cambiar algunas cosas.
En esencia, el sistema me parece bastante bueno. Por lo menos resuelve el problema de la modularidad de la IA, algo que no había logrado resolver en mi aproximación anterior. Confieso que últimamente he dudado de los ScriptableObjects, pero creo que en este caso sí son muy útiles. Para un RPG, poder definir comportamientos específicos para cada entidad es esencial. Por ejemplo, un mago no pelea de la misma forma que un guerrero de largo alcance, que a su vez es muy distinto a un guerrero cuerpo a cuerpo, y así sucesivamente, según las clases o el equipo de cada NPC.
Los tutoriales muestran de forma relativamente sencilla cómo armar una máquina de estados usando ScriptableObjects y cómo solucionar el problema que se deriva de que éstos guardan la información entre corridas. Pero además, la conferencia abunda un poco más en otros trucos que podemos hacer con ScriptableObjects, usándolos como enums, por mencionar uno.
Yo recomiendo ver la conferencia primero y luego los tutoriales, si estás buscando una guía para desarrollar tu propia inteligencia artificial. Y ya que hablamos del tema, tengo que decir que la IA de Divinity: Original Sin 2 es genial. Me encanta cómo los NPCs encuentran siempre la mejor forma de fastidiarte, buscando lugares elevados, lanzando a tus compañeros en el fuego, etc. La verdad, no recuerdo haber visto un sistema tan avanzado de combate.
Divinity: Original Sin 2 no es de mundo abierto
Un poco decepcionante, la verdad, aunque hay que admitir que no está tan mal. Luego de varios días uno se percata de que este RPG en realidad no es de mundo abierto, sino más bien lineal. Me recuerda un poco The Witcher 2, donde tenías que ir de ubicación en ubicación y resolver todo antes de pasar a la siguiente. Lo que se queda atrás se pierde.
Las ventajas de este enfoque son que la línea temporal de la historia es más fácil de controlar, y la trama en sí es más simple. No hay tantas bifurcaciones, salvo las que se desprenden de las decisiones del jugador. En un mundo abierto no hay mucho orden, un jugador puede ir primero a un lugar y luego a otro, y otras personas podrían hacerlo a la inversa. Todo un reguero.
Esta es una situación que he experimentado escribiendo mis intentos de guión para RPGs abiertos. ¿Cuándo se dispara un evento importante, por ejemplo, un mensaje para realizar una misión? ¿Y si el jugador nunca viene a determinado lugar? ¿Y si liquida a X NPC antes de que se le asigne la misión? Todas esas son preguntas a las que hay que darle solución (no respuesta, porque en principio, cualquier respuesta debería ser válida).
En fin, un dolor de cabeza que involucra a programadores y escritores. Lo cual me recuerda que aún no he logrado diseñar un sistema de gestión de misiones que valga la pena.
Las ventajas de este enfoque son que la línea temporal de la historia es más fácil de controlar, y la trama en sí es más simple. No hay tantas bifurcaciones, salvo las que se desprenden de las decisiones del jugador. En un mundo abierto no hay mucho orden, un jugador puede ir primero a un lugar y luego a otro, y otras personas podrían hacerlo a la inversa. Todo un reguero.
Esta es una situación que he experimentado escribiendo mis intentos de guión para RPGs abiertos. ¿Cuándo se dispara un evento importante, por ejemplo, un mensaje para realizar una misión? ¿Y si el jugador nunca viene a determinado lugar? ¿Y si liquida a X NPC antes de que se le asigne la misión? Todas esas son preguntas a las que hay que darle solución (no respuesta, porque en principio, cualquier respuesta debería ser válida).
En fin, un dolor de cabeza que involucra a programadores y escritores. Lo cual me recuerda que aún no he logrado diseñar un sistema de gestión de misiones que valga la pena.
Suscribirse a:
Entradas (Atom)