Diario de desarrollo proyectoTanks: 00 - De como un juego retro puede llegar a ser contemporáneo

Hace casi un mes (5 de agosto según github), recordé el clásico Battle City, venia en la Snes junto a una cantidad importante de títulos, este en específico tenia algunas características que nunca se me olvidarán, tenía una cantidad de niveles que nunca pude completar, tenía un cooperativo real (no como Súper Mario donde se ejecutaba el mismo juego para el jugador 1 y 2 de forma independiente y cada quien avanzaba según podía) y por ultimo, lo mas importante y aquello que me afectó de forma mas directa, un editor de mapas donde se podía crear un escenario con los bloques que se nos ofrecían.

Bajo esta premisa en primer lugar tuve la tentación de hacer un remake a mi gusto, esto me daría bases técnicas para otros proyectos, cuando tenía listo el movimiento del jugador me di cuenta que cometí un "error", el juego original no tenía controles de tanque, el tanque apuntaba en las cuatro direcciones del control (arriba, abajo, izquierda y derecha) al momento de presionar alguna y avanzaba si se mantenía presionada una de esas direcciones, esto resulta intuitivo pero no es realista, pensando con detenimiento si re hacer lo único del código que había finalizado, preferí continuar desde ese punto.

El movimiento de tanque es una mecánica muy antigua normalmente aplicada a las personas, los primeros silent hill utilizaban dicha forma de movimiento ayudando a que el jugador fuera casi incapaz de tener una movilidad libre, acentuando el terror que busca el titulo, para este caso prefiero colocar el movimiento de tanque por el motivo mas obvio, ya esta listo, por otro lado es justamente a como se mueve un tanque y el movimiento ha adquirido el nombre del objeto.
esto fue el jugador y sigue siendo el npc hasta nuevo aviso

Teniendo el movimiento decidido hice pruebas y creo que funciona, analizando entonces la mecánica de disparo se presentaron dos opciones, ambas muy atractivas, el sprite del tanque puede tener el cañón siempre apuntando al frente y que el movimiento del mismo sea a la vez su dirección de disparo, dando cierto rango a la estrategia por que todos los jugadores y NPC tendrían que cumplir con esa característica, la segunda opción consiste en colocar dos sprites, uno para el tanque con su rotación, otro para el cañón que será apuntado con el ratón o cualquier medio de apuntado como el joystick.

Normalmente y lo mas moderno sería utilizar un modelo de apuntado ágil, esto causaría que los escenarios tuvieran mucho menos peso y requieran de un mejor planeamiento, haciendo de la planificación de mapas un problema, si quiero darle libertad creativa al usuario para sus propios mapas, lo mas sensato será que esta libertad sea la mayor, colocando un sistema de disparo muy libre puede generarse un escenario de batallas rápidas donde el gatillo mas hábil será el vencedor.

Durante bastante tiempo fui jugador de War Thunder, estaba cuando los aviones eran el único objetivo, estuve cuando llegaron los tanques de guerra, me fui antes de que metieran helicópteros por que el peso del juego superó lo que estoy dispuesto a almacenar en mi disco duro, el punto es que amo un sistema táctico mucho más que el frenesí, ciertos juegos que premian la velocidad y habilidad se vuelven aburridos al cabo de unas cuantas partidas.

Los tácticos por el contrario resultan bastante mas llevaderos para los que tenemos poco tiempo y necesitamos urgentemente pensar en algo ajeno a nuestros problemas, los sistemas mas tácticos nos atrapan y supuse que obligar a los jugadores a posicionar sus tanques en el mapa así como medir muy bien sus pasos sería un nivel de gameplay adecuado y reduciría significativamente el diseño de niveles, tanto por que sería un dolor de cabeza para mi mismo, como para que los jugadores puedan efectuar sus diseños con mayor libertad creativa.
este diseño es ahora el jugador, esta sujeto a cambios pero estoy bastante contento

Las deudas pendientes del titulo son:
  1. Editor de niveles basado en tileset
  2. Una serie de mapas diseñados con la herramienta del editor de mapas obligando a que todos los niveles estén creados bajo las mismas limitaciones que los jugadores tendrán a la hora de crear los suyos.
  3. Añadir un numero indeterminado de jugadores en una sola PC, creo que cuatro jugadores ya son un problema en cuestiones de logística local ante un PC así que no creo que ese numero aumente de cuatro.
  4. Multijugador local.
  5. Multijugador en linea sin servidor de match making (este es un servidor que debe estar activo 24/7 y resulta muy caro), la idea es añadir un servidor en el cliente y que el numero de jugadores sea determinado por el tamaño del mapa.

El crecimiento posterior a estos 5 puntos o la existencia de algunos de ellos dependerá de cuanta habilidad consiga en medio del proyecto y cuanto consiga hacer funcionar, si todo sale bien, se añadirán power ups que podrán potenciar de forma artificial el progreso de la partida, utilizando spawn aleatorio, estos poderes los pueden aprovechar solo los jugadores, para los NPC será necesaria una estructura que no soy capaz de comprender en estos momentos y probablemente sea muy compleja, prefiero no prometer nada y dar tiempo para que las cosas vayan surgiendo.
Bala, o eso creo yo XD

Hasta este commit está desarrollada la entrada, en la próxima también pretendo linkear el commit exacto donde el desarrollo estaba yendo a buen puerto, esto por que trabajo únicamente sobre master y no he entendido bien como funcionan los release de github, cuando pueda crear un compilado de ese punto, lo agregaré como release.

Considerando que ya esto dejo de ser un remake desde sus bases, resulta necesario hilar todas las partes que lo componen de nuevo, la formula antigua puede ser funcional, pero no es útil para las nuevas generaciones de jugadores, ahora estamos acostumbrados a los nuevos juegos con estrategias mas complejas, la idea es crear un juego simple, posteriormente ir complicando los bugs para hacer de este desarrollador empresarial humilde y algo lento de aprendizaje, en un pobre GameDev que tiene un trabajo para mantenerse y no cree que sea posible ganarse la vida con el desarrollo de juegos.

Comentarios

Entradas populares de este blog

Hablemos de difamación, parafilias y denuncias bien hechas

Criticamos a pablito: "Atrapado en el cuerpo equivocado"

El fruto de una era: Antiintelectualismo moderno