Proyecto fin de máster: Codename MGS

Para mi proyecto de fin de máster (Matemáticas y Computación) decidí aplicar conocimientos sobre IA y montar éste juego en un par de meses. La idea es que se incluyera un editor para crear niveles de 1 pantalla cada uno, los cuales se podian interconectar. De modo que si varios usuarios creaban niveles y se enlazaban (habia unos “portales” para ello) se podrian crear misiones diferentes.

Ejemplo creando un nivel

El editor era bastante avanzado, con herramientas de relleno, poder definir iluminación de cada tile, diferentes tipos de tile (agua profunda, charcos, muros de media altura…), varios modos de visualización (graficos, tiles o mezcla, mostrar u ocultar atrezzo, ver la iluminación activa o no…), edición de enemigos… Ademas todo el editor funciona in-game pudiendo saltar de editor a gameplay con sólo pulsar una tecla.

Los enemigos contaban con varios parámetros que definían su comportamiento como su capacidad visual, auditiva, tendencia a colaborar con sus compañeros, tenacidad, etc. Además se les podía asignar una ruta de vigilancia y definir en cada punto de la ruta diferentes acciones.

El jugador por su parte podia ir corriendo (gastaba energía), andando o agachado (reducia la visibilidad del enemigo y el ruido emitido pero se movia lento). La energía se regenera más rápidamente cuando estabas quieto que en movimiento.

Una partida de ejemplo

Si un enemigo ve u oye algo sospechoso (en función de sus parámetros) se dirige a donde sucedió el evento y estará más alerta un tiempo (determinado según otro de sus parámetros). Pero si ve claramente al jugador entrará en la fase de alerta, donde puede que pida refuerzos y éstos colaboren entre si para atrapar al jugador.

Los perros por su parte utilizan su olfato para seguir el rastro del jugador (usando un algoritmo basado en ant-colony) de modo que si el jugador vuelve sobre sus pasos al aumentar “su aroma” en ese tile el perro seguirá el camino mas corto. Por suerte, pasando un charco de agua el perro pierde el rastro.

Al final obtuve una matrícula de honor con el proyecto.