Nuevo juego (mini aventura gráfica): Moon's Fandom Festival
Publicado: Mié Ago 07, 2019 7:47 am
¡Hola a todos! He preparado un juego tipo mini aventura gráfica para el Spectrum 48k, está hecho con un motor nuevo que he llamado MGA+MK1. MGA viene de Mini Graphic Adventure, es un motor/capa de aventura gráfica conversacional que he creado y usa como base el MK1 (La Churrera de los Mojon Twins).
Se llama "Moon en el Fandom Fest" ("Moon's Fandom Festival"), y ¡sí! ¡esta vez lo he hecho en inglés y castellano!
Aquí está la "fichita" en castellano:
La ficha original y más explicaciones en inglés en este enlace:
https://github.com/Iadvd/Retrocomputing ... omFestival
La Historia :
Moon es una estrella del retrocomputing, ¡la reina de los juegos homebrew para ZX Spectrum! Ha sido invitada al Fandom Fest de Ciudad Petunia, que es un evento retro muy ochentero-noventero donde todos los estands están relacionados con pelis y series de televisión de esas décadas.
¡Todo está listo para el primer día! Moon va a mostrar su primer nuevo juego en primicia, que de hecho se llama "Moon en el Fandom Fest".
Todo va bien, hasta que va a la consigna donde están su amado ZX Spectrum 48k y su nuevo juego... pero ¡oh,oh! ¡Ha olvidado la clave de la consigna!
Por suerte, los colegas de los otros estand pueden ayudar... aunque no parecen muy motivados. Moon se tendrá que ganar su respeto si quiere recuperar la clave.
Estos son los dueños de los otros estands:
- Bob (fan de Pwin Teaks): nadie sabe mucho acerca de él. Habla una especie de lenguaje que sólo el entiende. Sabe todo acerca de la serie de televisión ochentera "Pwin Teaks". Un tipo muy extraño y peculiar...
- Germione (fan de Parry Hotter): la pequeña Germione es una chica muy despierta que quiere ser una gran maga. Va a todos los lados con su gato Bigotes. Siempre lleva a Bigotes encima de su cabeza, ¡pero parece que a Bigotes eso no le importa!
- Koji Bakuto (fan de Zazinger-M): ¡aquí está el héroe! Koji es un valiente, pero a veces dolorosamente maleducado, adolescente. Ama la tecnología "mecha" (robots al estilo japonés) y sabe todo sobre ellos.
- Dick Reckard (fan de Rade Blunner): ¡si quieres saberlo todo acerca de los Perricantes, pregúntale a él! Por algun motivo sospecha de todo el mundo, ¡y seguramente no sera tu amigo hasta que constate que eres realmente humano!
- Zork (fan de los Expelientes X): poco se sabe de este hombrecillo verde, excepto que es verde. Es muy cínico y odia el plástico.
- John Doe (fan de Nuck Chorris): muy tímido, sabe todos los dimes y diretes sobre Nuck Chorris, la leyenda de las artes marciales. Se le parece mucho...de hecho, ¡se le parece demasiado! Todo esto es muy sospechoso...
El Juego:
Puedes caminar a lo largo de la habitación circular donde está llevándose a cabo el festival, hacia la derecha o izquierda. Da igual, siempre acabarás en el mismo sitio después de un rato. Aquí encontrarás los seis estands de tus colegas, y el tuyo propio. Hay también un famoso restaurante de hamburguesas, y unos servicios, ¡pero necesitarás una tarjeta de acceso para abrir las puertas!
Necesitas ganarte el respeto de tus colegas. Para ello, deberás finalizar las siguientes tareas:
- Amistad: si quieres que sean tus amigos, debes demostrar que sabes acerca de los temas que más les gustan. Lee todos los panfletos y libros que veas por ahí más de una vez. Habla con todos los fans que pululan por el evento. Puedes hablar con los fans que están parados divirtiéndose cerca de los estands, para un rato y habla con ellos. Aprenderás nuevas cosas de ellos sobre distintos temas. Después necesitarás adivinar qué colega de los estands estará interesado en oír sobre ese tema (Bob, Germione, Koji, Dick, Zork o John).
- Objeto que necesita: cada uno de tus colegas necesita un objeto especial que deberás encontrar en los archivadores que hay por ahí. Busca hasta que los encuentres. Puede llevar los objetos en tus bolsillos, pero como máximo tres a la vez. También hay objetos inútiles, así que no va a ser fácil adivinar qué objetos valen y cuáles no, ¡tendrás que ir probando! ¡también deberás encontrar la tarjeta de acceso que abre la puerta del restaurante y del servicio (abre las dos)!
- Dales de comer: un amigo hambriento es poco colaborativo, hazles felices dándoles la comida que les gusta... bueno, ya sabes, no a todo el mundo le gusta lo mismo, ¿verdad?
- El objeto icónico del estand: cuando finalices todas las tareas anteriores para un colega de los estand, este te pedirá como última tarea recuperar el objeto icónico de su estand. Desde ese momento tendrás también acceso al actual objeto icónico que haya en su estand. Los objetos icónicos han sido cambiados inadvertidamente por alguien, así que todo el mundo está buscando el suyo.
Si haces todas las tareas, por fin tendrás acceso a la consigna y podrás recuperar tu Spectrum y tu juego (¡que son los objetos icónicos de tu estand!). Una vez los tengas ve a tu estand, ponlo allí, ¡siéntate y disfruta del final del juego!
Pista 1: hay dos finales distintos que puedes seleccionar en el menú principal (Nihilista y Recurrente). ¡Prueba ambos, son muy divertidos!
Pista 2: además puedes acabar el juego si enfadas a un colega de estand mucho! hay seis diferentes finales, ¡échales un vistazo!
Pista 3: los fans que están por ahí tienen conocimientos distintos de los que puedes leer en los libros y panfletos. No leas sólo libros y panfletos, ¡habla también con los fans!
Pista 4: se paciente, sobre todo al final cuando falta poca información nueva por aparecer te costará encontrar esos últimos datos. ¡No te preocupes que si insistes acabarás encontrándolos!
Controles:
O / joystick izquierda: caminar a la izquierda.
P / joystick derecha: caminar a la derecha.
ESPACIO / joystick disparo: efectuar acción disponible.
A / joystick abajo: seleccionar una frase para decir o un objeto del bolsillo para dar a otro personaje cuando se usa la acción HABLA/DA.
El archivo tap se puede descargar en este enlace en castellano (donde el botón de Download):
https://github.com/Iadvd/Retrocomputing ... sp_ver.tap
El archivo tap se puede descargar en este enlace en inglés (donde el botón de Download):
https://github.com/Iadvd/Retrocomputing ... en_ver.tap
También como siempre, la versión que os pongo debajo se puede jugar usando como joystick inalámbrico un teléfono Android en el emulador Fuse si le añadís el emulador de Spectranet (que os conecta a la red de internet local de vuestra casa). He desarrollado una aplicación de Android (gratuita y sin anuncios) que hace que el móvil se convierta en un joystick virtual. Así que se puede jugar con el teléfono Android o la tablet en la mano haciendo de joystick y en el ordenador el Fuse abierto (con la rom de Spectranet) con el juego en pantalla (lo podéis poner en una tele por la entrada auxiliar por ejemplo y jugar desde el sofá!). Si tenéis un Spectrum de verdad y una tarjeta de Spectranet de verdad también se puede jugar en modo inalámbrico (pero a día de hoy no hay mucha gente que tenga una tarjeta de Spectranet)
El archivo tap para jugar con joystick inalámbrico se puede descargar en este enlace (donde el botón de Download), ojo que no funcionará a menos que se cargue en Fuse con el emulador de Spectranet configurado. Es una versión con menos funcionalidades técnicas (sin mapa, menos mensajes, y otras cosillas, pero totalmente jugable) porque se necesita memoria para habilitar el interfaz Spectranet-Android:
https://github.com/Iadvd/Retrocomputing ... ck_ver.tap
La explicación detallada de cómo se instala y demás está en la ficha original en inglés, pero si tenéis problemas por favor decidme por aquí y os intento ayudar paso a paso:
https://github.com/Iadvd/Retrocomputing ... omFestival
Este juego es una prueba de concepto que incluye un nuevo motor MGA+MK1 soportado por la estructura básica de la Churrera MK1. Como siempre, he intentado exprimir la memoria al máximo:
- El método de creación de mapas y sprites de MK1 se ha modificado. Los mapas son de 15 tiles de ancho por 6 de alto para reservar espacio en la parte superior de la pantalla para mostrar las conversaciones de los personajes. El personaje principal ahora tiene dos tiles de alto en vez de uno, lo que le da más posibilidades de visualización de cara a una aventura gráfica. Los enemigos ya no son enemigos, son personajes (en el caso de este juego son atrezo de hecho) que pululan por las pantallas y con los que se puede interactuar (hablar, dar cosas, etc.). Por ahora está primera versión no me ha dado tiempo a desarrollar la interacción con los personajes móviles, pero para el próximo habrá. El motor por tanto gestiona la cabeza y el cuerpo de los personajes (que van juntitos a todos los sitios). Este sistema se parece al de juegos tipo "Tir Na Nog", "Marsport", "Dun Darach" o "Mindstone", por decir algunos donde el formato de pantalla es parecido.
- Para este juego sólo hay movimiento horizontal, así que para ahorrar memoria se ha eliminado toda la gestión de movimiento vertical. Dependiendo del juego se puede añadir, pero en este caso no era necesario.
- Los efectos de carga de pantalla (cortinas, blackout) son MK1, así como las estructuras básicas (main loop, engine, etc).
- El nuevo motor MGA es una capa que proporciona los menús de acciones en tiempo real (en la parte inferior de la pantalla cuando se camina), el menú de conversaciones y de dar cosas, y las conversaciones de los personajes (que aparecen en la parte superior de la pantalla). He creado todas las rutinas necesarias para dar este soporte (las he llamado "speakup")
- La música y efectos de sonido son gestionados como siempre, estilo MK1, pero como los textos están sin comprimir, he tenido que limitar al máximo el espacio dedicado a música y efectos. Pero creo que ha quedado (espero) bastante compensado todo en general.
- He evitado las pantallas estáticas de menú y final para ahorrar memoria. Todo es generado en tiempo real mediante conversaciones. Por ese motivo el descompresor de pantallas tampoco hizo falta así que no lo he incluido.
Qué dificultades técnicas he encontrado (y espero mejorar en siguientes juegos con este motor):
- Poner la música mientras se juega me resultó inviable porque las acciones de cada ciclo principal del juego requieren una cantidad de mili-segundos que hace que la música no suene con el tempo adecuado. La tenía preparada pero sonaba fatal, demasiado rápido o demasiado lento, pero nunca a una velocidad constante. Y al revés, si fuerzo que todo vaya al tempo de la música, la acción se ralentizaba, así que al menos para este juego he evitado la música dentro del juego.
- ¡Lo que pesa más en memoria son obviamente los textos de las conversaciones! pero no he encontrado ningún método de compresión que me convenza. Se que existen aplicaciones del algoritmo de Lempel-Ziv, pero en mi caso cada texto son diez palabras, así que no son textos grandes que se tengan que descomprimir y volcar en pantalla a una, sino pequeños textos de conversaciones cortas que no se benefician hasta donde he podido comprobar de una compresión. Por otro lado el espacio ganado por la compresión se perdía en legibilidad del código y mantenimiento de los textos (sobre todo a la hora de hacer los test del juego), con lo que por lo menos para este juego he preferido no arriesgar.
- Otros juegos como los mencionados "Tir Na Nog", "Marsport" o "Dun Darach" hacen el truco de generar pantallas comodín para por ejemplo que los personajes vayan de una ciudad a otra y tengan que recorrer un laberinto. Por ahora en este juego no he metido pantallas comodín (o "de paso") pero quiero retomar este tema en próximos juegos, ¡así habrá muchas más pantallas!
- Y para los puristas no tenía suficiente espacio para generar las letras mayúsculas con tilde. Y por razones de uso de memoria suelo escribir números en vez de letras para las cifras en los textos, por ejemplo "¡No necesito 2!" en vez de "¡No necesito dos!" (queda feo, pero ahorro espacio).
Y en un 128K creo que se podría hacer un juego bien chulo con el triple de textos y pantallas.
Por favor si tenéis tiempo decidme qué os parece este interfaz conversacional. Ah está testado con Fuse en PC y con Spectacol en tableta y teléfonos Android. Si tenéis ocasión de jugar en otros emuladores o un Spectrum real y tenéis tiempo contad por aquí si funciona bien por favor.
¡Espero como siempre que os guste! Abrazos,
Se llama "Moon en el Fandom Fest" ("Moon's Fandom Festival"), y ¡sí! ¡esta vez lo he hecho en inglés y castellano!
Aquí está la "fichita" en castellano:
La ficha original y más explicaciones en inglés en este enlace:
https://github.com/Iadvd/Retrocomputing ... omFestival
La Historia :
Moon es una estrella del retrocomputing, ¡la reina de los juegos homebrew para ZX Spectrum! Ha sido invitada al Fandom Fest de Ciudad Petunia, que es un evento retro muy ochentero-noventero donde todos los estands están relacionados con pelis y series de televisión de esas décadas.
¡Todo está listo para el primer día! Moon va a mostrar su primer nuevo juego en primicia, que de hecho se llama "Moon en el Fandom Fest".
Todo va bien, hasta que va a la consigna donde están su amado ZX Spectrum 48k y su nuevo juego... pero ¡oh,oh! ¡Ha olvidado la clave de la consigna!
Por suerte, los colegas de los otros estand pueden ayudar... aunque no parecen muy motivados. Moon se tendrá que ganar su respeto si quiere recuperar la clave.
Estos son los dueños de los otros estands:
- Bob (fan de Pwin Teaks): nadie sabe mucho acerca de él. Habla una especie de lenguaje que sólo el entiende. Sabe todo acerca de la serie de televisión ochentera "Pwin Teaks". Un tipo muy extraño y peculiar...
- Germione (fan de Parry Hotter): la pequeña Germione es una chica muy despierta que quiere ser una gran maga. Va a todos los lados con su gato Bigotes. Siempre lleva a Bigotes encima de su cabeza, ¡pero parece que a Bigotes eso no le importa!
- Koji Bakuto (fan de Zazinger-M): ¡aquí está el héroe! Koji es un valiente, pero a veces dolorosamente maleducado, adolescente. Ama la tecnología "mecha" (robots al estilo japonés) y sabe todo sobre ellos.
- Dick Reckard (fan de Rade Blunner): ¡si quieres saberlo todo acerca de los Perricantes, pregúntale a él! Por algun motivo sospecha de todo el mundo, ¡y seguramente no sera tu amigo hasta que constate que eres realmente humano!
- Zork (fan de los Expelientes X): poco se sabe de este hombrecillo verde, excepto que es verde. Es muy cínico y odia el plástico.
- John Doe (fan de Nuck Chorris): muy tímido, sabe todos los dimes y diretes sobre Nuck Chorris, la leyenda de las artes marciales. Se le parece mucho...de hecho, ¡se le parece demasiado! Todo esto es muy sospechoso...
El Juego:
Puedes caminar a lo largo de la habitación circular donde está llevándose a cabo el festival, hacia la derecha o izquierda. Da igual, siempre acabarás en el mismo sitio después de un rato. Aquí encontrarás los seis estands de tus colegas, y el tuyo propio. Hay también un famoso restaurante de hamburguesas, y unos servicios, ¡pero necesitarás una tarjeta de acceso para abrir las puertas!
Necesitas ganarte el respeto de tus colegas. Para ello, deberás finalizar las siguientes tareas:
- Amistad: si quieres que sean tus amigos, debes demostrar que sabes acerca de los temas que más les gustan. Lee todos los panfletos y libros que veas por ahí más de una vez. Habla con todos los fans que pululan por el evento. Puedes hablar con los fans que están parados divirtiéndose cerca de los estands, para un rato y habla con ellos. Aprenderás nuevas cosas de ellos sobre distintos temas. Después necesitarás adivinar qué colega de los estands estará interesado en oír sobre ese tema (Bob, Germione, Koji, Dick, Zork o John).
- Objeto que necesita: cada uno de tus colegas necesita un objeto especial que deberás encontrar en los archivadores que hay por ahí. Busca hasta que los encuentres. Puede llevar los objetos en tus bolsillos, pero como máximo tres a la vez. También hay objetos inútiles, así que no va a ser fácil adivinar qué objetos valen y cuáles no, ¡tendrás que ir probando! ¡también deberás encontrar la tarjeta de acceso que abre la puerta del restaurante y del servicio (abre las dos)!
- Dales de comer: un amigo hambriento es poco colaborativo, hazles felices dándoles la comida que les gusta... bueno, ya sabes, no a todo el mundo le gusta lo mismo, ¿verdad?
- El objeto icónico del estand: cuando finalices todas las tareas anteriores para un colega de los estand, este te pedirá como última tarea recuperar el objeto icónico de su estand. Desde ese momento tendrás también acceso al actual objeto icónico que haya en su estand. Los objetos icónicos han sido cambiados inadvertidamente por alguien, así que todo el mundo está buscando el suyo.
Si haces todas las tareas, por fin tendrás acceso a la consigna y podrás recuperar tu Spectrum y tu juego (¡que son los objetos icónicos de tu estand!). Una vez los tengas ve a tu estand, ponlo allí, ¡siéntate y disfruta del final del juego!
Pista 1: hay dos finales distintos que puedes seleccionar en el menú principal (Nihilista y Recurrente). ¡Prueba ambos, son muy divertidos!
Pista 2: además puedes acabar el juego si enfadas a un colega de estand mucho! hay seis diferentes finales, ¡échales un vistazo!
Pista 3: los fans que están por ahí tienen conocimientos distintos de los que puedes leer en los libros y panfletos. No leas sólo libros y panfletos, ¡habla también con los fans!
Pista 4: se paciente, sobre todo al final cuando falta poca información nueva por aparecer te costará encontrar esos últimos datos. ¡No te preocupes que si insistes acabarás encontrándolos!
Controles:
O / joystick izquierda: caminar a la izquierda.
P / joystick derecha: caminar a la derecha.
ESPACIO / joystick disparo: efectuar acción disponible.
A / joystick abajo: seleccionar una frase para decir o un objeto del bolsillo para dar a otro personaje cuando se usa la acción HABLA/DA.
El archivo tap se puede descargar en este enlace en castellano (donde el botón de Download):
https://github.com/Iadvd/Retrocomputing ... sp_ver.tap
El archivo tap se puede descargar en este enlace en inglés (donde el botón de Download):
https://github.com/Iadvd/Retrocomputing ... en_ver.tap
También como siempre, la versión que os pongo debajo se puede jugar usando como joystick inalámbrico un teléfono Android en el emulador Fuse si le añadís el emulador de Spectranet (que os conecta a la red de internet local de vuestra casa). He desarrollado una aplicación de Android (gratuita y sin anuncios) que hace que el móvil se convierta en un joystick virtual. Así que se puede jugar con el teléfono Android o la tablet en la mano haciendo de joystick y en el ordenador el Fuse abierto (con la rom de Spectranet) con el juego en pantalla (lo podéis poner en una tele por la entrada auxiliar por ejemplo y jugar desde el sofá!). Si tenéis un Spectrum de verdad y una tarjeta de Spectranet de verdad también se puede jugar en modo inalámbrico (pero a día de hoy no hay mucha gente que tenga una tarjeta de Spectranet)
El archivo tap para jugar con joystick inalámbrico se puede descargar en este enlace (donde el botón de Download), ojo que no funcionará a menos que se cargue en Fuse con el emulador de Spectranet configurado. Es una versión con menos funcionalidades técnicas (sin mapa, menos mensajes, y otras cosillas, pero totalmente jugable) porque se necesita memoria para habilitar el interfaz Spectranet-Android:
https://github.com/Iadvd/Retrocomputing ... ck_ver.tap
La explicación detallada de cómo se instala y demás está en la ficha original en inglés, pero si tenéis problemas por favor decidme por aquí y os intento ayudar paso a paso:
https://github.com/Iadvd/Retrocomputing ... omFestival
Este juego es una prueba de concepto que incluye un nuevo motor MGA+MK1 soportado por la estructura básica de la Churrera MK1. Como siempre, he intentado exprimir la memoria al máximo:
- El método de creación de mapas y sprites de MK1 se ha modificado. Los mapas son de 15 tiles de ancho por 6 de alto para reservar espacio en la parte superior de la pantalla para mostrar las conversaciones de los personajes. El personaje principal ahora tiene dos tiles de alto en vez de uno, lo que le da más posibilidades de visualización de cara a una aventura gráfica. Los enemigos ya no son enemigos, son personajes (en el caso de este juego son atrezo de hecho) que pululan por las pantallas y con los que se puede interactuar (hablar, dar cosas, etc.). Por ahora está primera versión no me ha dado tiempo a desarrollar la interacción con los personajes móviles, pero para el próximo habrá. El motor por tanto gestiona la cabeza y el cuerpo de los personajes (que van juntitos a todos los sitios). Este sistema se parece al de juegos tipo "Tir Na Nog", "Marsport", "Dun Darach" o "Mindstone", por decir algunos donde el formato de pantalla es parecido.
- Para este juego sólo hay movimiento horizontal, así que para ahorrar memoria se ha eliminado toda la gestión de movimiento vertical. Dependiendo del juego se puede añadir, pero en este caso no era necesario.
- Los efectos de carga de pantalla (cortinas, blackout) son MK1, así como las estructuras básicas (main loop, engine, etc).
- El nuevo motor MGA es una capa que proporciona los menús de acciones en tiempo real (en la parte inferior de la pantalla cuando se camina), el menú de conversaciones y de dar cosas, y las conversaciones de los personajes (que aparecen en la parte superior de la pantalla). He creado todas las rutinas necesarias para dar este soporte (las he llamado "speakup")
- La música y efectos de sonido son gestionados como siempre, estilo MK1, pero como los textos están sin comprimir, he tenido que limitar al máximo el espacio dedicado a música y efectos. Pero creo que ha quedado (espero) bastante compensado todo en general.
- He evitado las pantallas estáticas de menú y final para ahorrar memoria. Todo es generado en tiempo real mediante conversaciones. Por ese motivo el descompresor de pantallas tampoco hizo falta así que no lo he incluido.
Qué dificultades técnicas he encontrado (y espero mejorar en siguientes juegos con este motor):
- Poner la música mientras se juega me resultó inviable porque las acciones de cada ciclo principal del juego requieren una cantidad de mili-segundos que hace que la música no suene con el tempo adecuado. La tenía preparada pero sonaba fatal, demasiado rápido o demasiado lento, pero nunca a una velocidad constante. Y al revés, si fuerzo que todo vaya al tempo de la música, la acción se ralentizaba, así que al menos para este juego he evitado la música dentro del juego.
- ¡Lo que pesa más en memoria son obviamente los textos de las conversaciones! pero no he encontrado ningún método de compresión que me convenza. Se que existen aplicaciones del algoritmo de Lempel-Ziv, pero en mi caso cada texto son diez palabras, así que no son textos grandes que se tengan que descomprimir y volcar en pantalla a una, sino pequeños textos de conversaciones cortas que no se benefician hasta donde he podido comprobar de una compresión. Por otro lado el espacio ganado por la compresión se perdía en legibilidad del código y mantenimiento de los textos (sobre todo a la hora de hacer los test del juego), con lo que por lo menos para este juego he preferido no arriesgar.
- Otros juegos como los mencionados "Tir Na Nog", "Marsport" o "Dun Darach" hacen el truco de generar pantallas comodín para por ejemplo que los personajes vayan de una ciudad a otra y tengan que recorrer un laberinto. Por ahora en este juego no he metido pantallas comodín (o "de paso") pero quiero retomar este tema en próximos juegos, ¡así habrá muchas más pantallas!
- Y para los puristas no tenía suficiente espacio para generar las letras mayúsculas con tilde. Y por razones de uso de memoria suelo escribir números en vez de letras para las cifras en los textos, por ejemplo "¡No necesito 2!" en vez de "¡No necesito dos!" (queda feo, pero ahorro espacio).
Y en un 128K creo que se podría hacer un juego bien chulo con el triple de textos y pantallas.
Por favor si tenéis tiempo decidme qué os parece este interfaz conversacional. Ah está testado con Fuse en PC y con Spectacol en tableta y teléfonos Android. Si tenéis ocasión de jugar en otros emuladores o un Spectrum real y tenéis tiempo contad por aquí si funciona bien por favor.
¡Espero como siempre que os guste! Abrazos,