SCUMM: Mismos problemas para distintas implementaciones

30 04 2007

En un post del blog de Ron Gilbert acerca de los problemas a la hora de programar Maniac Mansion, encontré varias similitudes cuando él hizo un nostálgico recorrido por los tejes y manejes de la implementación del motor SCUMM. Debo decir que, luego de aproximadamente 6 meses de haber terminado el motor, realmente me sentí identificado mas allá de la abismal diferencia en los desarrollos, quiero decir, el inventó la maldita cosa, yo solamente la programé en flash de la forma que yo creí que sería.

La primer remembranza que Ron comenta está relacionada con la forma en que los personajes encuentran la forma de ir a donde el jugador les indica. Básicamente los personajes recorren un camino y luego vuelven sobre sus pasos para retomar otra vía para llegar a su destino, dando la idea de que están indecisos. Este bug también lo tiene mi motor si no se arman cuidadosamente los escenarios. Lo chistoso es que el algoritmo que utiliza el verdadero SCUMM es una grilla que le indica al personaje por donde puede caminar, el mío usa un grafo sobre un polígono para esto. En flash-scumm, este problema puede solucionarse reordenando inteligentemente los nodos del grafo o cambiando la forma del polígono, sin embargo, cuando Ron programó el motor original en asembler, algunas veces reparar el error era tan costoso que, si el error no era crítico, prefería dejarlo.

El segundo recuerdo con el que me identifico es el hecho de lograr que la pantalla “escrolee”, esto es, que la cámara siga al personaje por el escenario. Haber conseguido esto fué algo muy gratificante para mi y enriquecedor para el motor. Explorar una pantalla no se trata de entrar a una habitación (donde ves todo de una sola vez) recorrer la pantalla con el mouse mirando la barra de estados y si no encontrás nada dar la media vuelta e irte. El hecho de no ver la pantalla totalmente de una sola vez hace una experiencia más rica, hace pensar al jugador: “no habrá algo que no noté en el otro extremo de la habitación?”.

El tercer punto trata de lo que se llama clipping, es decir, definir un color transparente en las imágenes que permite hacer que el personaje se “asome” por detrás del objeto. Como flash ya tiene incorporada esa habilidad, yo fuí mas allá, imitando a las versiones posteriores de SCUMM, haciendo que el personaje pueda situarse por delante y por detrás de un determinado objeto en el escenario. Haberlo programado fué una gratificación doble, ya que sentí que había clarificado algo que flash tiene pero no todas las personas se dan una idea de como utilizarlo: el solapamiendo de objetos. Cuando la funcionalidad estuvo implementada, no perdí tiempo y escribí este tutorial explicando como hacerlo.

Al leer el post de Ron y ver que los problemas y gratificaciones que el tuvo al inventar este maravilloso motor eran muy parecidos a los míos, me sentí un poco mas cerca de este grande.


Acciones

Informacion

Deje un comentario

usted puede usar estos tags : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>