CAPÍTULO 2. Diseño de un videojuego
2.1 Desarrollo de los elementos básicos del videojuego
2.1.2 Mecánicas
El tipo de juego que se decidió crear es similar al Light Bot (LightBot, no date), con un sistema de combate que emula la jugabilidad de éste y ambientado en el universo que engloba la historia. En cada nivel del videojuego se deberá completar un problema
20 que corresponde a un tema específico ceñido a los conceptos que se consideran necesario vencer, cuando el objetivo es aprender a programar. Para continuar es necesario definir avatar, como aquellos personajes que el jugador puede controlar dentro del juego.
Primero que todo, las mecánicas girarán en torno a las acciones que puede hacer el jugador, pues el espacio es un área finita, con un determinado número de posiciones posibles en las cuales se puede poner el avatar, por lo tanto, la única manera que tiene el jugador de interactuar con la escena es con las acciones que se le brindan específicamente en cada lugar. Entre las mecánicas básicas que tiene a su disposición el jugador están:
• Avanzar: Avan.
• Girar a la derecha: GirDer. • Girar a la izquierda: GirIzq.
Un ejemplo básico del problema planteado sería que el personaje se encuentre en un punto A, y el objetivo se encuentre en Z, pero para llegar necesita sortear de alguna manera un obstáculo en B (Ilustración 5). En cada nivel el avatar del jugador solo puede avanzar por el camino que se encuentra predefinido, y estéticamente se garantiza que se pueda reconocer la dirección en la que se encuentra “mirando” el personaje, pues al utilizar Avan, es en esa dirección en la que se mueve.
Ilustración 5: Ejemplo de un problema.
Para poder dar solución a este simple problema, es necesario conocer que las zonas de color rojo son inaccesibles, y la zona marcada en B, corresponde a una elevación del terreno, entonces los movimientos que se conocen hasta este punto no son suficientes, es necesario utilizar una acción diferente a las básicas, esta es Saltar: Salt, y puede ser utilizada para superar el nuevo obstáculo, o para bajarse del mismo. Por lo tanto, la solución de este problema sería la siguiente:
21 Movimientos: • Avan. • Avan. • Avan. • GirDer. • Salt. • Salt. • GirIzq. • Avan. • Avan.
Ilustración 6: Solución del problema
Hasta el momento se tienen 4 acciones posibles a realizar, pero es necesario tener algo más para enriquecer la jugabilidad, pues hasta el momento, aunque se pueden crear problemas con solución algorítmica, es necesario entonces crear una mecánica enfocada en diversificar las posibilidades a la hora de tomar decisiones. Para esto se creó la acción Interactuar: Inter, al utilizarla el avatar del jugador ejecuta una acción específica, estas son, utilizar un objeto especial, eliminar un enemigo e interactuar con la meta, necesario para poder ganar el nivel. Esta acción se puede activar solo en las casillas que correspondan con una de estas opciones. Al añadir los obstáculos y enemigos, se logran generar problemas de mayor complejidad, pues el jugador tiene que decidir si desea enfrentarse a un enemigo, el cual puede necesitar más de un ataque para ser derrotado, también entra en juego la posibilidad de encontrar una ruta alternativa que lo lleve a la meta sin necesidad de abatir a sus rivales.
Siguiendo con el tema de enriquecimiento de mecánicas, se pone la mira en crear un sistema de puntaje para cada nivel. Estos premios se consiguen de diferentes maneras,
22 el primero es tras completar el nivel satisfactoriamente, el segundo, se obtiene al crear el mejor algoritmo posible, para el tercero es necesario conseguir derrotar a todos los enemigos, y por último la máxima puntuación se alcanza al recolectar todas las monedas especiales. Cada escenario está compuesto por un número fijo de niveles, los cuales corresponden a problemas de programación. Obtener la máxima puntuación en cada nivel del escenario, permite al jugador desbloquear una ruta alternativa, que no se encuentra en la historia principal, pero en la que figuran problemas más complejos, y que requieren de un nivel de control total de los conocimientos adquiridos hasta el momento.
Para dar solución a los problemas que se plantean, solo se pueden utilizar un máximo de 12 acciones, esto implica que los algoritmos que se creen no pueden ser de una complejidad mayor, para solucionar este inconveniente, se introducen una mecánica muy interesante. Esta mecánica es el primer algoritmo de mediana complejidad y se representa de la siguiente manera, Procedimiento: Pro1. Este funciona como una subrutina la cual cuenta con un máximo de 8 instrucciones posibles. Cuando se utiliza en el algoritmo principal, se ejecutan las acciones del procedimiento almacenado. Esta mecánica se convierte en una herramienta poderosa para resolver los problemas, pues permiten repetir un número elevado de pasos, sin tener que escribirlos más de una vez. Específicamente esta mecánica se desea que funcione como un ciclo de cualquier lenguaje de alto nivel, por lo tanto, existe la posibilidad de indicar cuántas veces se desea correr la subrutina, de ésta manera se evita tener que utilizar llamadas repetidas al Pro1, en la rutina principal del algoritmo.
Ilustración 7: Ejemplo de un algoritmo con un procedimiento.
Este movimiento encierra una mecánica mucho más compleja e interesante aun, pues, si se coloca una llamada a Pro1 dentro sí mismo, se estaría invocando recursivamente
23 esta subrutina, convirtiéndose este movimiento en una poderosa herramienta a favor del jugador. Salta la interrogante entonces de cómo lidiar con un posible ciclo infinito, el cual no permitiría normalmente conseguir un resultado óptimo, pero es importante recordar que el objetivo de cada pista es completar todas las zonas en verde, y si el ciclo no termina, pero el avatar del personaje consiguió llegar a la meta, el proceso se interrumpe, y la tarea queda completada satisfactoriamente.
La siguiente instrucción introduce el concepto de las sentencias condicionales, pero es difícil conseguir una unión natural con el juego, por lo tanto, se crea una mecánica interesante a continuación, para lograr que estén presentes y sean entretenidas de utilizar.
El comando se nombra Chequear: Cheq, posee una nomenclatura específica para cada acción que se desee comprobar y las condiciones para poder utilizarla son las siguientes:
• El avatar del personaje tiene que estar posicionado sobre una casilla especial, que le permita utilizar la acción Interactuar.
• Solo se activa la acción si el personaje está en el lugar correcto y está interactuando con el objeto adecuado, en caso contrario el procedimiento se salta esta acción y sigue con la siguiente.
Una vez que se verifique que se pude activar la acción, pues seguido se ejecuta el Pro2, el cual puede tener un máximo de 8 acciones dentro, y el cual solo se puede utilizar al activarse este tipo de mecánica.
Este movimiento abre las puertas a una gran cantidad de posibilidades, pues junto a los Procedimientos, se pueden llegar a crear un algoritmo que ejecute una secuencia de acciones específica n veces, y solo ejecutar otra acción cuando se cumpla una condición en específico, y este es uno de los conceptos de programación más poderosos que se pueden aprender a través de este juego.
24
Ilustración 8: Uso del comando Romper
En total se cuenta con un total de 7 acciones posibles para resolver los problemas que se planteen en el videojuego, y estos son:
• Avanzar: Avan.
• Girar a la derecha: GirDer. • Girar a la izquierda: GirIzq. • Saltar: Salt.
• Interactuar: Inter. • Procedimiento: Pro1. • Cheq (Inter).