[Diario de un dev] Personal Quest

marod

Bienvenidos damas y caballeros, a mi primer proyecto personal. Ante todo decir que llevo bastante tiempo queriendo ponerme manos a la obra, pero primero quería plantearme si era realmente viable hacerlo, y yo creo que sí. Aún no teniendo mucha idea en el desarrollo de videojuegos y siendo tan solo una persona, esto me lo planteo como un reto y como algo de lo que a nivel personal, estar orgulloso. Dicho esto, empecemos con el tour.

Pulse el botón Start

- Mama, ¡Quiero ser desarrollador de videojuegos!

  • ¿Pepe, que hemos hecho mal?

Bien, Personal Quest fue un prototipo de juego para dispostivos android que hice junto a 4 compañeros más en el ciclo superior de diseño y desarrollo de aplicaciones multiplataforma a modo de trabajo final. Todo el mundo quería hacer una serious app y yo como buen cabezón que soy y aprovechando que el tema del trabajo era libre, me dije ¿Por que no complicarme la vida y hacer un videojuego?. Juntando también que en mi grupo no teníamos nada claro todavía, decidí presentar una idea inicial de lo que fue Personal Quest. A mis compañeros les gusto, y nos pusimos a ello. El centro de estudios solo nos dio 3 semanas para realizar la aplicación, una para realizar todo el diseño de juego, presentación... y dos semanas para ponernos a ello.

Nuestro primer handicap fue que estábamos en un ciclo de programadores, eramos 5 personas en el grupo y el único que sabía más o menos hacer un videojuego y realizar unos cuantos bocetos sin estropear una hoja de papel era yo (Contando que si ahora sé poco sobre desarrollo de videojuegos, en esta ocasión sabia menos, así que imaginaos el percal), los demás lo único que sabían sobre como hacer un videojuego era que seguramente algún if en el código habría, por tanto a mi me toco de ejercer de "Game designer" porqué la idea era principalmente mía y tenía la obligación de plasmarla a los demás en un principio, luego cuando la cosa se animó, todo el mundo empezó a aportar ideas, unas más descabelladas que otras, pero que siempre resultaban ser algo bueno.

También me tocó ejercer de "Artista 2D" porque en mi época de universidad, los viajes en tren daban para mucho y me aficione a dibujar, y aunque no soy un crack, nos dio para plasmar algo que no fuera una bazofia. Por último, también me toco ejercer de "Supervisor de programador" y aunque esta parte se las dejaba al libre albedrío a mis compañeros, me dedicaba a pensar y ayudarles en cómo se podrían programar las diversas partes del juego.

¿Pero que es Personal Quest?

La idea surgió en mi cabeza en la primera Jam que participe, la Global Game Jam de 2014, donde el tema era "No vemos las cosas como son, vemos las cosas como somos nosotros".

Después de darle vueltas a dicho tema, pensé en ¿Por qué no hacer un test de personalidad que sea jugable? y de ahí salió este prototipo. A eso le añadí que debían ser partidas muy cortas, ya que se trataba de un test de personalidad, y que debía hacerlas amenas al jugador, por lo qué le añadí toques de RPG, haciendo que entre pregunta y pregunta el jugador tuviera que librar una batalla contra sus peores males, viéndose afectadas estas batallas por las respuestas que había contestado el jugador. Una vez se acaben las batallas o el jugador muera, se le mostraría al jugador su personalidad.

En resumidas cuentas, un test de personalidad con batallas por turnos con arte Pixel Art.

Podéis ojear el GDD rústico que creamos, está por terminar y explica muy poco del juego.

Al final acabo siendo un test de personalidad de temática fantástica, y con muchas cosas por implementar, y ni siquiera estar bien balanceado.

Dices que ya lo tienes hecho, ¿Se puede probar?

Sí, la APK del prototipo que hicimos en Android nativo lo podéis descargar de aquí.

También os dejo el github con todo el codigo.

Y si ya tienes el prototipo ¿Que pretendes?

Bueno pues como buen soñador que soy y visto la facilidad que ofrece Unity para realizar juegos, mi intención es hacer un remake bien hecho en este motor, ¿Y porqué digo bien hecho? porque cuando lo hicimos en Android, lo hicimos en nativo sin framework ni nada, a pelo. Y la optimización dejó mucho que desear, al igual que del GDD al producto final distó bastante, y no se pudieron implementar muchas cosas de las que se había planteado.

¿Es un locurón quererlo hacerlo solo? Si, pero mi principal intención es aprender y obligarme a mi mismo (De ahí el nombre de Personal Quest) a demostrar que puedo terminar un juego y luego subirlo a la Play Store, y poder decir orgulloso, este juego lo he hecho yo.

Dicho esto, paso a hablaros de los planes que tengo con y para este proyecto.

Planning

Lo primero deciros que este proyecto lo voy a volver a crear desde 0 y a coste 0, es decir, sin pedir favores a nadie. Me voy a marcar un Juan Palomo pero con la intención de que sea un proyecto serio, y como ahora mismo tengo mucho tiempo libre, intentare trabajar en él todos los días.

También lo vais a poder seguir por un github especifico que creare y que pondré el enlace por aquí, y si se me va mucho la pinza, tal vez mehaga un Twitch donde retransmitire mis andanzas de gamedev con este proyecto para quien le interese. Así como hacer una serie de Devblogs que posteare aquí y a poder ser, diariamente, explicando lo que he hecho.

Como fecha fin, me he propuesto acabarlo en el Q1 de 2016, para así auto-obligarme a trabajar lo máximo que pueda.

Herramientas a utilizar

Así pues las herramientas a utilizar son:

Por ahora estas son todas, pero si me hace falta alguna más, actualizaré la lista.

Proyecto en vivo

Bueno, espero que hayan quedado claras mis intenciones. Y solo me falta decir, que manos a la obra.

6
B

- Mama, ¡Quiero ser desarrollador de videojuegos!

  • ¿Pepe, que hemos hecho mal?

xddddd

Lo seguiré de cerca.

1
Leoshito

La idea me parece muy original, pero como con todas las ideas originales que se me vienen a la cabeza, me cuestiono:

¿No limita un poco el juego? <- Quiero decir, el juego tendrá X preguntas de duración con X respuestas. A menos que te montes un esquema super chungo y largo tipo rutas de Visual Novel, te saldrá un juego 'limitado'. Divertido para jugarlo una vez, quizá dos si quieres probar 'otra ruta', pero al fin y al cabo la rejugabilidad será limitada.

¿Qué más da que la rejugabilidad sea limitada? Si el juego es bueno y te deja buen sabor de boca, todo bien. <- Exacto, pero... ¿Cómo quieres enfocar el juego? ¿A un 'Gracias por jugar este juego, este es tu resultado'? ¿O a un 'Esta ruta te ha salido esto, si la vuelves a hacer, te puede salir otra cosa, ¡prueba!'?

Pero vamos la idea me parece super chula, y si la haces bien y se hace 'famoso' te recomiendo intentar portarlo a HTML5 y hacer una web de encuestas con esta idea. Internet está petado de webs de hacer encuestas de personalidad y la gente está loca haciendo dichas encuestas. Si tú vendes algo diferente -haciendo un editor de preguntas con sprites predefinidos y tal- te puedes montar en el dolar.

1 respuesta
marod

#3 Gracias por tu respuesta.

Aún no tengo ni el GDD escrito, tengo el prototipo que fue una idea muy básica de lo que se quería hacer y ya.

Si que es verdad que había pensado en que el juego de por sí se limita, en el prototipo hay unas 15 preguntas con sus con 3 respuestas por pregunta y a cada partida se eligen automáticamente X preguntas aleatoriamente, nunca sería el mismo recorrido (Aunque dependiendo del numero de preguntas, si se podrían repetir algunas en cada recorrido). Pero aún así la rejugabilidad sería muy pobre.

Viendo que mi intención es tener algo jugable para principio del año que viene, tampoco me puedo permitir carcomerme mucho la cabeza en como hacerlo rejugable, vayamos por pasos, primero las mecánicas generales y luego ya, si me da tiempo pensaré algo. Aún así el pleno desarrollo del juego va a estar vigente por aquí. Tanto GDD como ideas que se me vayan ocurriendo, cosas implementadas... y estoy abierto a todo tipo de propuestas y críticas.

Me gusta intentar hacer gamificación a las cosas que normalmente suelen ser un coñazo, que te guste la idea y que la veas original es un paso aun siendo solamente una persona que lo haya dicho, ya que desde un principio no ocurrió lo mismo con mi profesor de ciclo xDD

Respecto a lo de los sprites predefinidos, algo pensé en cuanto hacerlo de forma que pueda casar con diversas temáticas, pero es una idea en el tintero.

1
marod

“Lo que no se empieza nunca tendrá un final”.
- Johann Wolfgang von Goethe

Día 1 - Empieza el juego

Buenas tardes a todos

En el primer día del juego he querido empezar poniendo los cimientos del proyecto, aún sin entrar en materia de desarrollo, me he dedicado a crear varias cosas que me ayudaran durante todo el proceso de desarrollo. Entre ellas, se encuentra la creación del repositorio de Github, donde subiré todo lo que vaya haciendo en Unity, tanto scripts, escenas, sprites, etc.

También he abierto un Trello donde utilizaré la metodología ágil SCRUM para tener constancia de lo que tengo y lo que me falta por hacer, para no perder el hilo de ninguna forma.

Un poco de orden en la sala

Por último, he empezado con el GDD. Se trata de una versión muy básica e inacabada del documento de diseño que me acompañara a lo largo del proyecto. En este primer día me he dedicado a crear una pequeña estructura, donde incluyo la información más básica como el nombre provisional, el género, la plataforma y algunas referencias.

La temática la he querido dejar a parte por ahora, ya que me quiero centrar primero en el desarrollo de las mecánicas antes que ponerme a pensar en parte del arte, pero sí tengo una idea predilecta de como quiero que sea el estilo artístico. Algo muy Day of Tentacle, perspectiva deforme y personajes muy carismáticos.

Hablo también un poco de la monetización, donde expreso que mi prioridad no es ganar dinero si no aprender y hacer curriculum, aún así he pensado varias cosas que están todavía en el tintero, como el resto del GDD. Explico brevemente un poco las mecánicas generales del juego, las más básicas y las que creo que son la estructura de todo el juego y de una forma que no entra en detalle, así como un primer concepto de jugabilidad.

Por último, he decidido dividir el juego por fases o hitos, los cuales pienso que le darán coherencia al GDD una vez terminados, ya que a partir de ellos, podré continuar plasmando las ideas que se me vayan ocurriendo a la vez que voy balanceando la jugabilidad y la "diversión".

Así que esto es todo por hoy, no es mucho pero por algo se empieza. Mañana más y mejor.

Saludos.

1
marod

“La manera de empezar es dejar de hablar y empezar a hacer”.

  • Walt Disney

Día 2 - Ya he abierto Unity al menos

Buenas tardes a todos,

Antes que nada deciros, que es mi primer intento de crear un videojuego serio. Voy a relataros mi forma de programar las cosas, no quiere decir que sea la mejor pero lo intento. Así que si veis una forma mejor de hacerlo o veis que lo estoy haciendo mal, os pediría que no os burléis ni me critiquéis destructivamente sino que opinéis y si puede ser, me ayudéis.

Hoy, os traigo las andanzas en el segundo día del juego. El trabajo realizado en este periodo de tiempo no ha sabido más que traerme dudas y mas dudas, además de momentos en los que he querido reventar la pantalla a puñetazos. Porque sí amigos, así es el mundo de la programación y eso es algo que raro sería si no lo supierais ya. Pero bueno, let's stop complaining and start to work.

Game Design Document - Fase 1 - Nº1

He estado cambiando unas cosas del GDD, sobretodo los tiempos verbales, haciendo que parezca un poquito más serio en aquellos puntos que ya están más o menos pensados, pero que no quiere decir que estén acabados.

Sobretodo me centre en en la primera fase o hito de desarrollo (A partir de ahora lo llamaré Fase únicamente) donde me centré en relatar el Gameplay, por así decirlo, que quiero llegar a conseguir en ella. También me encargué de repasar las escenas que habrán en dicha fase así como sus elementos y una pequeña descripción de lo que se quiere llegar a conseguir en cada escena.

Una vez marcado el primer reto, bastante sencillo, he abierto al fin Unity.

Programación - Fase 1 - Nº1

Lo primero que hice fue dedicarme a montar las escenas, empecé buscando qué clase de resolución hacía falta para hacer un juego en móviles, y acabé descubriendo que en Unity puedes cambiar de plataforma, ya viniendote unas resoluciones por defecto expresamente para ello. Elegí una resolución de 480x320 con temor a que fuera demasiado pequeño, pero aún con el tamaño de la cámara por defecto y añadiendo un sprite de 32x32, lo probé en mi móvil y parecía que se veía correcto, ya veremos cuando me dedique a meter el arte.

Una vez inicializadas y puestas a punto las escenas Main, Map y Questions era hora de ponerse a currar. Empezando por el menú principal.

Normalmente pienso que esto no se debería de hacer ya que es como empezar la casa por el tejado, mejor primero empezar por las mecánicas principales, pero como nunca he tocado el tema de cargar entre escenas y la carga de trabajo en cuanto a funcionalidad de elementos no era mucha, pues me he puesto a ello para aprender.

En la escena de Main, me he dedicado a crear un Canvas con dos botones, nuevo juego y salir. Después de tener la duda de si para Sprites que iban a hacer la acción de botones hacía falta utilizar los botones del Canvas o un Collider + métodos de ratón y de si hacía falta crear un elemento global para mantener los Scripts de las acciones de los botones, me he decidido a crear un Canvas global que nunca se destruya al cargar entre escenas, con una sola instancia y que contenga los paneles con los elementos de las escenas que se irán activando o desactivando según en la escena que se encuentren. Y que además, tendrán los scripts con las acciones de lso botones.

Una vez hecho y funcionando, he hecho que se pueda volver de una pantalla a otra, lo que me ha llevado al error de que si pasaba de la escena de Main a Map, el Canvas se mantenía pero el EventSystem que es el que se encarga de saber si se está pulsando un elemento de la UI se destruía al cambiar de escena y el botón que hacía volver a Main no funcionaba. Le he metido un DontDestroyOnLoad y ya está, solucionado.

Error. Al volver a Main, como volvía a cargar la escena, me volvía a crear otro EventSystem. Así que no me ha quedado más remedio que hacer lo mismo que he hecho con el Canvas, hacer el EventSystem un Singleton. Aún así me sigue saliendo un Warning (“EventSystem duplicated… is not supported”) cada vez que vuelvo a Main, y por ello no creo que haya sido la solución más efectiva.

Así que hasta aquí el Devblog de hoy.

Podéis ver como ha quedado el trello a día de hoy.

Un saludo.

1
NoRelaX

Grande Marod, seguiré tu proyecto de cerca.

1

Usuarios habituales