¿Cómo se hace un juego de tipo tamagotchi?

Abr 18

¿Cómo se hace un juego de tipo tamagotchi?

Introducción

Para hacer un juego de tipo tamagotchi, pondré como ejemplo “Doma tu caballo, poni o burro”, un juego disponible en plataformas iOS, Android y Blackberry. Así que este resumen sirve además de postmortem de Tame your horse,pony and donkey jeje

Aquí tenéis un vídeo de la versión 1.0 , hecha en menos de 32h:

Este proyecto empezó siendo un juego simple, nada más que había que tocar para saltar, el caballo sólo podía ser blanco o marrón y daba vueltas alrededor del establo, es lo único que hacía… fue realizado en dos días, para una gamejam de BlackBerry y el resultado fue bastante bueno, la gente lo adoraba!, y quería más…aquí os muestro una gráfica de descargas sólo para Blackberry Playbook:
stats

Motivación

Un tiempo más tarde, una niña pequeña me envió algunos de sus dibujos de caballos, como éste

Caballo por una fan

Uno de los dibujo de caballos para el juego Tame Your Horse 2

y me pidió por favor que aumentara el juego, que pudiera cuidar más caballos ,que tuvieran amigos, entonces pregunté a David Ferriz si creía que era buena idea aumentar el juego ya que compró la versión 1 y opinaba lo mismo que la niña, le hacía falta más chicha, me decidí por convertir el juego en un tamagotchi!

Diseño del juego

La idea básica era que tuviera las funciones básicas de un juego de tipo tamagotchi, según la wikipedia, y otros juegos como pou o los clásicos tamagotchis, simplemente se trataría de añadir cosas como unas estadísticas del animalito, darle de comer, llevarlo al baño , jugar con el, conectarlo con otros, enseñarle , curarlo de alguna enfermedad o jugar de otra manera, descubrir cuándo necesita cuidados con urgencia , asociarlo con una libreta, ver la televisión y asignarle objetos…

Como no podía usar todas las opciones elegí las más elementales y las que más me apetecieron montar, y fueron las que véis en este dibujo:

Idea para la GUI

Idea para la GUI y acciones iniciales de Doma tu caballo versión 2.0

Veréis que a parte del menú circular que se sitúa a modo de flotador en la cabeza del caballo, las opciones mostradas son, empezando desde arriba y yendo hacia la derecha: Curar / limpiar al caballo, Socializarlo, Darle cariño / objetos, Opciones del caballo como su nombre y nivel, Correr y ranking de carreras, y por último dar de comer y beber.

Ideas para TYH2

Algunas de las ideas que tuve antes de empezar con el desarrollo

Matizando el concepto para ajustarlo al diseño del juego

Tenía claro qué quería pero me surgió una duda, pensaba que el tamagotchi tenía que evolucionar, pero tratándose de animales una idea me rondaba la mente: quería que empezara siendo un caballo pequeño , un pony, para que al ir cuidándolo, si lo hacíamos bien, que se transformara en un caballo adulto y si lo hacíamos mal (mala alimentación, malas puntuaciones en la carrera, pasar tiempo enfermo o sin cuidarlo) se transformaría en un burro… sin embargo esta idea fue desechada porque dejaba de dibujar una lógica ideal y es posible que los jugadores quisieran poder elegir un burro, un pony o un caballo para cuidar por lo que así le quitaría la libertad, entonces hice algo que me enseñó mi amigo Miguel Díaz de BSG, hacer un diagrama de ideas del juego, lo de la imagen anterior es lo que salió, como veis sólo hay un globo de ideas principal, normalmente se me ocurren cientos de ideas pero esta vez gracias a que tenía una ayudante, la niñita que me envió sus dibujos, así que reduje al máximo las opciones y dejé online nada más que la parte de socializar y tablas de puntuaciones para escribir lo último el servidor que alojara todos estos datos…

Flujo del juego

Como ya sabía qué quería hacer, ahora lo que tocaba era diseñar el diagrama de flujo del juego, este pequeño organigrama orientativo es algo bastante importante ya que demostrará que efectivamente tenemos las ideas claras para proyectar la visión de nuestro juego y hacerlo real con programación, modelado,música, sonidos y arte 2D:

Diagrama de flujo del juego TYH2

Diagrama de flujo del juego TYH2

El juego comienza con la visualización de la pantalla de presentación, hace la precarga, fundamental para dispositivos antiguos como iPhone 3GS o Samsung Galaxy S1, etc., y carga en memoria el escenario del título, la interfaz gráfica del menú y realiza operaciones de comprobación de partidas guardadas (Slots de jugador) de forma que podemos seleccionar si crear una nueva partida nombrando primero al usuario y, que nos llevaría a la pantalla de capturar (elegir) y nombrar el animal “domado”, como punto final de la primera sección del flujo, vamos al evento GAME.

Desde Game que es el núcleo del juego vamos a ir creando las secciones en las que se subdivide, hay procesos en paralelo como la comprobación del estado del caballo, en cada latido de corazón del animal (tiempo para que el algoritmo asociado a un animal actualice su estado) se ajusta el juego y se muestran las estadísticas ,las necesidades del bicho en función de las reglas del juego de tipo tamagotchi.

Aquí podéis ver las reglas básicas que diseñé para la IA de un animalillo:

Reglas de la IA para TYH2

Diseño de las reglas básicas de la IA, logros y comunicación con el servidor de TYH2

Estas secciones las he denominado acciones y son eventos distintos con sus propias reglas, minijuegos que se intercomunicarán con el núcleo del juego, cuando la actividad concluye se guardan los datos, se actualizan las tablas de puntuaciones y logros, etc.

El servidor

Estas tablas de puntuaciones, estadísticas y logros se sincronizan con un servidor de Google Apps, cuando el usuario utiliza las acciones habilitadas para ello, sube o descarga estos datos ,suyos o de otros jugadores e interactúa “haciendo amigos”, el proceso se simplificó porque los usuarios necesitan, según las reglas de la gamificación: otras personas, añadí entonces las redes sociales facebook y twitter para compartir el estado de sus animales así como algunos mensajes graciosos aleatorios para hacerlo más ameno.

La comunicación con el servidor se hace vía http (puerto 80), peticiones por método POST enviando y recibiendo XML que se analizan sintácticamente tanto en GAE como en el cliente (el juego) de forma que está optimizado para enviar información de manera selectiva, así se evitan cuellos de botella, a día de hoy hay bastantes usuarios que han subido sus tamagotchis al servidor, aquí una captura de las peticiones por segundo:

Google App Engine stats - Tame your horse 2

Google App Engine stats – Tame your horse 2

Algunas de las ideas descartadas

A mitad del desarrollo se me ocurrió incluir un control para manejar a nuestro animal al visitar a un amigo, esta idea se realizó pero la que no terminó de cuajar fue la de añadir un jinete, porque a parte de pesar mucho (en cuanto al número de polígonos XD) , estaríamos haciendo que el jugador se asociara e identificara con la imagen del jinete, pero aquí no hay nada con lo que identificarse y normalmente no se identifican con animales por lo que así se quedó lo que pudo haber sido…

idea_cabalgar

Idea de cabalgar el caballo y domar el pony

Y la que permaneció fué la idea inicial, tener varios caballos y cuidarlos,

tamagotchis

Tamagotchis

en un mes y medio / dos, aproximadamente terminé el desarrollo del juego y comencé a publicarlo en los mercados, AppWorld, Amazon, AppStore y Google Play …a la espera de NOOK y otros sitios, por ahora están teniendo una buena acogida y las compras son buenas 🙂

Os dejo para terminar el vídeo de cómo quedó el juego final

Artículos relacionados

14 contribuciones

  1. Mario /

    Buenos días.
    He visto tu excelente trabajo de este videojuego, que está chulo, te lo has currado y me gusta su efecto 3D.
    Me gustaría que hicieras un tutorial como este para un juego estilo Mario Bros.
    Muchas gracias

    • Hola Mario, estaba pensando en qué hacer lo siguiente, es buena idea, tenía ganas de hacer un plataformas 3D.
      Pero como para eso queda bastante, unos meses, bájate el tutorial de Unity 3D sobre plataformas, se llama Platformer 3D,está en su sitio web. Síguelo hasta completarlo y verás que cuando lo acabes ya sabrás hacer un mario 3d

  2. Alonso /

    Por qué no haces un app similar, sólo que sea una en la que puedas tener tu propio pokemon de cualquier generación,cuando inicies pones el nombre del pokemon y te dan tu pokeball donde lo guardas, empiezas a cuidarlo y si lo crias bien evoluciona

    • Estaría encantado pero no tengo las licencias de la franquicia…habla con la empresa a ver si me las ceden.

  3. zargas /

    Hola, saludos, veras, me animaste a utilizar unity 3d, pero me a salido un problema que espero me puedas ayudar :S al subir la apk me sale este error
    Error de subida
    El nombre del paquete APK debe seguir el formato “com.ejemplo.myapp”. Puede contener letras (a-z), números y caracteres de subrayado (_). Debe empezar por un carácter en minúsculas.
    e cambiado el nombre varias veces, pero sige dandome el mismo error :S a ti te ocurrio? en ese caso, como lo solucionaste? no encuentro informacion sobre el tema :/

    • Imagino que has cambiado el nombre también en el Manifest antes de firmar y pasarle zip-align al apk, no?

      • zargas /

        eso que acabas de decir es dentro del mismo unity o con otro programa, :S la verdad es que lo que mencionas no estoy seguro de haberlo echo, pero tampoco se como comprobarlo :S

        • zargas /

          vale, creo q lo solucione, tengo q esperar a las 12 am para comprobarlo pero ahora solo me dice
          se a superado el limite maximo de app subidas al dia, por si a alguien le sirve dejo la solucion( a las 12 te dire si funciona)
          la solucion: al darle build/player settings/other settings cambiar el bundle identifier (lo tenia yo por defecto, lo e cambiado, y el error desaparecio, ahora solo me dice q tengo que esperar, esperemos que sea eso)

    • Lo arreglaste?

  4. Jazz21103 /

    Hola, apenas acabo de entrar a una carrera que se llama Ingeniero en teconologias de la informacion, me gustaria aprender lo “basico” sobre como hacer videojuegos, me servira si me meto a un curso de desarrollo de software a hacer juegos? Me podrias dar algunos consejos sobre lo que deberia de empezar a aprender? (programas, aplicaciones, digitalizacion, etcetera)

  5. Jazz21103 /

    Otra pregunta, hay algun programa para hacer videojuegos en 2d? alguno “sencillo” para tener nociones basicas?

Exprésate dejando un comentario:

Introduce el captcha

Por favor escriba los caracteres de la imagen captcha en el cuadro de entrada