sí se que dije que iba a hablar de las armas, pero primero el tema de la IA. de las armas hablo después, porque no es una comparativa si no más bien un descargo.
para hablar de lo mal programada que está la primera iteración de zoldier, en ése entonces llamada z hell, debo hablar de la IA.
la IA, o inteligencia artificial, se refiere al modo en que un objeto interactua por sí mismo con su entorno. programar una IA realmente inteligente no es fácil, y generalmente los juegos -o por lo menos los de antaño y los amateur- se quedan en un comportamiento que puede ser mejor referido como patron de acción, pues no hay mucha inteligencia en la forma que ésta funciona.
de más está decir que ésto último no es más que una visión personal del tema. yo no tengo idea dónde empieza y dónde termina la inteligencia artificial. pero puedo decir que lo que yo usaba como inteligencia artificial en z hell era horrible. he visto juegos peores con algo mejor hecho. en serio.
la inteligencia artificial de z hell consistía en avanzar hasta estar a cierta distancia del personaje principal y empezar a atacarlo. ¿paredes? ¿distancia a la que está el personaje para activarse? ¿forma de perder a un enemigo para que te deje de seguir? olvidenlo. los hijos de puta venían desde el otro extremo de la habitación a dispararte si no hubiese un muro que se los impidiese.
ésta imágen muestra mejor de lo que yo puedo explicar con palabras el comportamiento de un enemigo en z hell. los enemigos estáticos eran básicamente lo mismo, sólo que en vez de moverse esperaban a que tu estuvieses a cierta distancia. de más está decir que siempre te estaban apuntando.
ahora, zoldier. de antemano aclaro que ésta es una IA que sólo es para los enemigos básicos que patrullan. la IA por defecto. eventualmente quiero hacer IAs para enemigos más complejos. no tanto, porque no es un juego en 3D, la idea es tirarse a matar, no quiero perder el espíritu doom del juego original tampoco.
cuando el enemigo no te ha visto se dedica a pasear por el mapa. los giros que hace nunca son muy bruscos. si llega a un punto en el que no puede seguir avanzando, comienza a ponderar hacia dónde tiene libre para caminar y sigue caminando.
una vez que el enemigo te ha visto (para lo cual tienes que estar frente a él o muy cerca de él) te apunta y camina hasta estar a una distancia prudente para comenzar a atacar. si te mueves y sigues en su campo de visión, te sigue a ti.
si saliste de su campo de visión (te alejaste mucho o un muro se interpuso entre ambos) camina hasta la última posición en la que te vió. si en el nuevo punto estás en su campo de visión, vuelve a la rutina anterior, de otro modo vuelve a la rutina inicial
es una IA bastante básica, pero hace que el juego no sea sencillamente ir esquivando bestias que vienen a atacarte, si no que te da también la oportunidad de pasar desapercibido. aún hay cosas que debo implementar (alertar a otros enemigos cercanos, que identifiquen el lugar del que se disparó una bala que no estaba en su campo de visión) pero la IA es más que competente. me enorgullece acotar que lo implementé en tres scripts, por lo que trabajar con éste código es muy sencillo.
lo siguiente será hablar de los gráficos. eso, chao.