Los secretos de Pac—Man
Analizando el mítico comecocos en su 40 aniversario
Pac—Man (Pakku—Man/Puck—Man, comecocos en España) es un videojuego arcade diseñado por Tōru Iwatani que publicó Nakamura Manufacturing Company (NAMCO) (Midway Games en Estados Unidos) en 1980. En el juego controlamos al personaje homónimo que recorre un laberinto comiendo los puntos mientras esquiva a los fantasmas que lo persiguen.
Esta idea tan simple se ha convertido en un emblema de los videojuegos permaneciendo prácticamente invariable durante 40 años ¿Cómo es posible? ¿Qué hay detrás de esta aparente sencillez?
Origen e influencias
El desarrollo del juego coincide con el boom de los juegos Space Invaders, tras el éxito del juego homónimo de Taito. Sin embargo, Tōru Iwatani quería hacer un juego diferente y se inspiró en un cuento para niños en el que una criatura los protege gracias a una fuerza vital que le permite comerse a los monstruos. Ese concepto de comer (la palabra kanji taberu) es la base del juego y aflora en muchos detalles y decisiones.
El nombre del protagonista, homónimo del nombre del juego, proviene de la palabra en jerga japonesa paku-paku, el sonido que se hace al abrir y cerrar la boca para comer, que derivó en Puck—Man. Este nombre se modificó al realizar la distribución en Estados Unidos convirtiéndose en Pac—Man (Midway Games, quien lo licenció en Estados Unidos, quería evitar una posible palabra malsonante al cambiar una letra y adaptó todo el arte destacando su llamativo color amarillo frente al sobrio blanco usado por NAMCO en la versión japonesa). El juego funcionó bien en Japón, pero se convirtió en un rotundo éxito en Estados Unidos y Europa, popularizando la versión de Midway Games del juego.
Por otro lado, el diseño del personaje se basa en la forma de una pizza a la que se le ha quitado una porción y en el símbolo kanji de la palabra kuchi (口) que significa boca (aunque el kanji es cuadrado, se redondeó para simplificarlo).
Todos los videojuegos disponibles en esa época eran de carácter violento: juegos de guerra y de invasión espacial. No había juegos que todo el mundo pudiera disfrutar y, en particular, ninguno para mujeres. Quería crear un juego cómico que las mujeres pudieran disfrutar.
Desarrollo
El juego lo desarrolló un equipo de 5 personas trabajando durante un año y medio. Además del propio Tōru Iwatani como diseñador, el equipo lo formaban Shigeo Funaki (programador), Toshio Kai (compositor) junto a un ingeniero hardware y un diseñador.
Se utilizó el procesador Z80 (3072 MHz) y una placa de audio (3 canales de 4 bit) propia de NAMCO. Pudieron aprovechar de los avances realizados para otro videojuego que estaba desarrollando NAMCO (un clon del Space Invaders llamado Galaxian): una pantalla con una resolución de 224 × 288 píxeles y 16 colores.
El juego ocupaba 16 K (ROM), con una memoria de vídeo de 2 K y otros 2 K de RAM.
Niveles
Todos los niveles son en esencia iguales y con la misma extraordinariamente simple mecánica: comer todas las píldoras del nivel distribuidas en el mismo laberinto.
Aproximadamente en el centro está la casa de los fantasmas (guarida de los monstruos). Justo debajo de ésta hay un espacio en el que aparecen las frutas bonus del nivel y los mensajes. Pac—Man aparece centrado un poco más abajo. A la altura de la casa de los fantasmas existe un pasillo horizontal que permite pasar de un lado a otro de la pantalla.
Las píldoras se distribuyen homogéneamente por todo el laberinto menos en los alrededores de la casa de los fantasmas. Las cuatro píldoras energizantes son de mayor tamaño y están cerca de cada una de las cuatro esquinas.
Cuando se pierde una vida, los personajes vuelven a sus posiciones iniciales, pero todo el estado se mantiene. El nivel se supera cuando se comen las 244 píldoras (240 normales y 4 energizantes). El siguiente nivel vuelve a mostrar el laberinto restaurando todas las píldoras.
Inicialmente se concibió como infinito siendo el objetivo es conseguir la mayor cantidad de puntos mientras quedaran vidas. Sin embargo, por las limitaciones técnicas de la época, el número máximo de niveles jugables fue de 255 (el número máximo que puede representarse en un byte) aunque los creadores no esperaban que nadie llegara a ese nivel. De hecho, al superar el nivel 255 produce un fallo en la presentación del laberinto denominado «Split Screen».
Nivel 256 «Split Screen»
Cuando se alcanza el nivel 256 se produce un fallo en la visualización de la pantalla que se conoce como «Split Screen»: la mitad izquierda es el laberinto normal pero la mitad derecha es una amalgama de símbolos aleatorios.
El fallo se debe a un desbordamiento en los registros de 8 bit usados en el juego al pintar las frutas del nivel en la parte inferior derecha de la pantalla (en la parte inferior izquierda están las vidas y en la inferior derecha las frutas).
La representación de las distintas frutas se almacena en una tabla indexada numeradas de 1 a 7. Se utiliza el nivel para determinar la fruta que debe pintarse procediendo a decrementar el valor para pintar la siguiente hasta que se llega a cero.
La rutina que dibuja las frutas, suma uno al nivel actual para calcular la fruta que corresponde desbordando el registro de 8 bit (al incrementar el valor 255 vuelve a 0 activando una señal de acarreo que no se comprueba) y dibuja la fruta con el índice 0… que no existe.
Seguidamente, se decrementa en 1 (volviendo a 255 al desbordar nuevamente el registro) para pintar la siguiente y repite el proceso hasta llegar a cero.
El resultado es que intenta pintar 256 frutas accediendo a zonas fuera de la región de memoria que contiene la tabla indexada y dibujando los símbolos que interpreta (en esencia aleatorios) en zonas de la pantalla que no corresponden.
Se puede jugar el nivel, pero no se puede superar. El final del nivel lo determina alcanzar las 244 píldoras comidas, pero sólo se renderizan 114 píldoras (112 normales y 2 energizantes).
Adicionalmente se renderizan 9 píldoras entre los símbolos generados por el fallo en la parte derecha de la pantalla que reaparecen tras perder cada vida. Si se llegara al nivel con las 5 vidas máximas y se comieran estas píldoras todas las veces serían 54 píldoras más, alcanzando un total de 168 píldoras, lo que sigue siendo insuficiente para superar el nivel.
La única forma de superar el nivel es mediante el modo prueba que permite saltar la pantalla actual manteniendo el estado del juego. En ese caso se vuelve al nivel 1 manteniendo los comportamientos como si se estuviera en el nivel 21 o superior.
Al superar algunos niveles aparece una animación cómica:
Nivel 2:
El fantasma rojo persigue a Pac—Man prácticamente alcanzándolo al salir de la pantalla. Seguidamente vuelve un fantasma azul aterrorizado perseguido por un Pac—Man gigante.
Nivel 5:
Aparece la misma animación del fantasma rojo persiguiendo a Pac—Man pero se engancha en el centro de la pantalla rompiendo parte de la sábana.
Nivel 9 y cada 4 niveles:
Nuevamente el fantasma rojo (con su sábana remendada) persiguiendo a Pac—Man hasta que salen de la pantalla. El fantasma vuelve solo arrastrando su sábana rota.
Puntuación
La puntuación se incrementa según Pac—Man come los puntos o píldoras y una serie de elementos bonus. Se puede conseguir una vida extra a los 10 000 puntos, aunque la máquina permite configurar esta cantidad.
Todos los niveles usan el mismo laberinto en el que hay 240 píldoras normales (2400 puntos) y 4 energizantes (200 puntos) por lo que la puntuación de cada nivel es de 2600 puntos. Cada nivel se da por superado cuando se comen estas 244 píldoras.
Adicionalmente, en cada nivel aparecen durante un corto tiempo dos frutas bonus (cuando se comen 70 y 190 píldoras, respectivamente) que proporcionan puntos extra si se comen antes de que desaparezcan.
Elemento | Puntos | Niveles | |
---|---|---|---|
🔘 | Píldoras | 10 | Todos |
⚪️ | Energizadores | 50 | Todos |
🍒 | Cereza | 100 | 1 |
🍓 | Fresa | 300 | 2 |
🍊 | Naranja | 500 | 3 y 4 |
🍎 | Manzana | 700 | 5 y 6 |
🍈 | Melón | 1000 | 7 y 8 |
🚀 | Nave Galaxian | 2000 | 9 y 10 |
🔔 | Campana | 3000 | 11 y 12 |
🔑 | Llave | 5000 | 13+ |
Tabla de puntuación.
Además, existe un efecto tomado del cuento: la fuerza vital que permite a la criatura comer a los monstruos. Cuando se come una píldora energizante los fantasmas pasan a estar aterrorizados durante un tiempo. Mientras están en este estado son vulnerables y pueden ser comidos otorgando puntos según el número de ellos que se han comido seguidos (200, 400, 800 y 1600 puntos, respectivamente). Si se come una segunda píldora energizante cuando aún hay fantasmas asustados, se reinicia la serie volviendo a conceder 200 puntos por el primero.
Cuando un fantasma vulnerable es comido, vuelve a su casa central en estado normal (no vulnerable). Esto hace que no sea posible comer más de 4 fantasmas por píldora energizante consiguiendo un máximo de 3 000 puntos (12 000 puntos por nivel, si se logra comer los 4 fantasmas con cada píldora). El intervalo de tiempo que los fantasmas permanecen vulnerables se reduce con cada nivel y en el nivel 17 y a partir del nivel 19 ya no entran en este estado.
La puntuación máxima del juego es de 3 333 560 puntos.
¿3 333 560 puntos?
El cálculo de la puntuación máxima no es complicado, pero tiene algunos detalles a considerar:
Niveles 1 a 255
En total se pueden obtener 3 326 600 puntos.
Elemento Puntos Cantidad Niveles Total 🔘 Píldoras 10 240 255 612 000 ⚪️ Energizadores 50 4 255 51 000 🍒 Cereza 100 2 1 200 🍓 Fresa 300 2 1 600 🍊 Naranja 500 2 2 2 000 🍎 Manzana 700 2 2 2 800 🍈 Melón 1 000 2 2 4 000 🚀 Nave Galaxian 2 000 2 2 8 000 🔔 Campana 3 000 2 2 12 000 🔑 Llave 5 000 2 243 2 430 000 👻 Fantasmas 3 000 4 17 204 000 Nivel 256 «Split Screen»:
Permite obtener 6 760 puntos adicionales.
Elemento Puntos Cantidad Vidas Total 🔘 Píldoras 10 112 1 1 120 ⚪️ Energizadores 50 2 1 100 🔑 Llave 5 000 1 1 5 000 🔘 Split Screen 10 9 6 540 Dentro de los efectos aleatorios ocasionados por el fallo del nivel, se renderizan 9 píldoras entre los símbolos de la parte derecha de la pantalla que reaparecen con cada vida. Estas píldoras pueden comerse jugando entre los símbolos. Si se llegan con el máximo de 5 vidas se pueden comer 6 veces lo que serían 54 píldoras extra.
Sumando ambas puntuaciones se obtienen los 3 333 560 puntos máximos del juego.
El nivel 256 se puede alcanzar con un mínimo de 663 000 puntos, comiendo únicamente las píldoras normales y energizantes necesarias para superar los niveles.
Fantasmas
Los antagonistas son fantasmas (inicialmente se llamaron monstruos) que persiguen a Pac—Man en el laberinto. Aparentemente lo hacen de forma un poco aleatoria logrando acorralarle para capturarlo y hacerle perder una vida.
Sin embargo, esto no es tan simple. En el proceso de desarrollo, sus creadores decidieron añadir un patrón de comportamiento diferente a cada fantasma. Este comportamiento se basa en unas reglas bastante simples que hacen que los fantasmas no sean aleatorios, como pudiera parecer en un primer momento, ni den la sensación de perseguir ciegamente.
Bueno, no es muy entretenido un juego de comer, así que decidimos crear enemigos para introducir un poco de emoción y tensión. El jugador tenía que luchar contra los enemigos para conseguir la comida. Y cada uno de los enemigos tiene su propia personalidad. Los enemigos son cuatro pequeños monstruos con forma de fantasma, cada uno de ellos de un color diferente: azul, amarillo, rosa y rojo. Utilicé cuatro colores diferentes para complacer a las jugadoras. Pensé que les gustarían los colores bonitos.
El comportamiento de los fantasmas es una sucesión de dos estados: persecución y desbandada.
Persecución:
El objetivo es encontrar y capturar a Pac—Man, usando cada uno una forma diferente de hacerlo.
Desbandada:
Abandonan la persecución y cada uno se dirige a su posición determinada.
Como estas posiciones quedan fuera de su alcance quedan patrullando cada uno su esquina.
Esta sucesión de modos da pequeños respiros al jugador generando la sensación de oleadas en lugar de un acoso constante.
Los fantasmas empiezan cada nivel en modo desbandada y, según avanza el tiempo y el nivel, se vuelven cada vez más agresivos persiguiendo durante un mayor porcentaje del tiempo.
Modo | Nivel 1 | Nivel 2 a 4 | Nivel 5+ | |
---|---|---|---|---|
1 | Desbandada | 00:00:07 | 00:00:07 | 00:00:05 |
2 | Persecución | 00:00:20 | 00:00:20 | 00:00:20 |
3 | Desbandada | 00:00:07 | 00:00:07 | 00:00:05 |
4 | Persecución | 00:00:20 | 00:00:20 | 00:00:20 |
5 | Desbandada | 00:00:05 | 00:00:05 | 00:00:05 |
6 | Persecución | 00:00:20 | 00:17:13 | 00:17:17 |
7 | Desbandada | 00:00:05 | 1 ÷ 60 | 1 ÷ 60 |
8 | Persecución | ∞ | ∞ | ∞ |
Secuencias de persecución/desbandada según nivel.
Tras la última desbandada entran en un modo persecución hasta que se supera el nivel o Pac—Man es capturado.
Existe un tercer modo: el modo asustado, que se activa cuando se come una píldora energizante. En este modo son vulnerables y se mueven de forma aleatoria por el laberinto huyendo de Pac—Man durante un tiempo. Una vez pasado el tiempo volverán al mismo modo en el que se encontraban.
El tablero
Internamente el laberinto se simplifica a una cuadrícula regular de 28 × 36. Cada una de esas posiciones puede ser un pasillo, pared o una zona especial (por ejemplo, la casa de los fantasmas).
Cada casilla es de 8 × 8 píxeles y los personajes (tanto Pac—Man como los fantasmas) tienen un tamaño mayor y se mueven píxel a píxel. Cada personaje ocupa la casilla de esa cuadrícula determinada por su píxel central, además de tener una orientación y dirección de movimiento.
El uso de esta cuadrícula simplifica sustancialmente los algoritmos utilizados en el juego, permitiendo su proceso con la tecnología existente en la época. Aunque genera algunas situaciones peculiares como la posibilidad de atravesar fantasmas saliendo indemne.
Atravesando fantasmas
El algoritmo de colisión considera que Pac—Man es atrapado cuando está en la misma casilla que un fantasma. Es decir que el píxel central de Pac—Man y el del fantasma ocupan la misma casilla.
Cuando Pac—Man y un fantasma se mueven enfrentados en direcciones opuestas es posible que, en un instante, el píxel central de Pac—Man esté en el último píxel de su casilla y el del fantasma esté en el último de la siguiente. En el siguiente instante, estos dos píxeles intercambian su posición y, por lo tanto, la casilla en la que están los personajes sin que se detecte la colisión dando la sensación de que se ha atravesado el fantasma.
Los movimientos de los fantasmas siguen dos reglas básicas:
Cada fantasma tiene una casilla objetivo en todo momento determinada por el modo en el que se encuentre.
Nunca pueden retroceder. Una vez se muevan en una dirección tienen que mantenerla hasta llegar a la siguiente intersección en la que elegirán una de las rutas laterales.
Cada vez que un fantasma entra en una casilla nueva decide qué dirección tomará cuando llegue a la siguiente para alcanzar su casilla objetivo en ese momento:
- determina las casillas a las que puede llegar desde la siguiente casilla, descartando la casilla actual para evitar retroceder; y
- elige la dirección de aquella que esté más cerca de su objetivo, prefiriendo la dirección arriba, izquierda, abajo y derecha (por ese orden) en caso de empate.
La única excepción a la regla de no retroceder es el cambio de modo: Cuando un fantasma cambia de modo automáticamente invertirá su dirección en cuanto actualice su casilla en el tablero (su píxel central llegue a la siguiente casilla) en lugar de recalcular su siguiente paso. Este cambio de dirección no se realiza cuando se acaba el estado asustado y los fantasmas mantendrán su dirección hasta la siguiente intersección.
Rojo
El fantasma rojo se llama Blinky, aunque se le conoce como Shadow por su comportamiento. En la versión japonesa se le conoce como oikake: «el que corre o persigue».
Su forma de perseguir es la más simple y directa: su objetivo es la casilla en la que está Pac—Man. Esto hace que esté casi siempre detrás a pocas casillas de distancia.
Es el único fantasma que se vuelve más agresivo según avanza el juego. Dos veces por nivel, incrementa su velocidad cuando quedan menos de cierto número de píldoras determinado para ese nivel. Además, mantiene la persecución de forma indefinida sin pasar al modo desbandada. Cuando está en este modo acelerado se le conoce como «El crucero Elroy» (Cruise Elroy).
Si Pac—Man es capturado estando en este modo Blinky se comportará de forma normal hasta que el fantasma Naranja abandona la casa.
Rosa
Al fantasma rosa (Pinky) irónicamente se le conoce como Speedy, aunque su velocidad es la misma que el resto y es más lento que Cruise Elroy. En japonés se le llama machibuse: «El que embosca».
Su objetivo es siempre 4 casillas por delante de Pac—Man menos cuando se dirige hacia arriba que, por error, añade un desplazamiento de 4 casillas hacia la izquierda.
La idea detrás de este comportamiento es que entre Blinky detrás persiguiendo y Pinky intentando emboscar justo delante, Pac—Man quede acorralado. Aunque es relativamente fácil despistarlo: basta con cambiar la orientación o enfrentarse a él cerca de una intersección (al tener el objetivo justo detrás girará evitando la colisión).
Azul
A Inky, el fantasma azul, también se le conoce como Bashful. En Japón se le conoce como kimagure «el de carácter inconstante, caprichoso o irregular».
El cálculo de su casilla objetivo es el más complicado de todos y el único que involucra a otro fantasma: Blinky. Traza un vector entre Blinky y dos casillas delante de Pac—Man. La casilla objetivo es doblar ese vector.
Al igual que Pinky, cuando Pac—Man mira hacia arriba comete el mismo error en el cálculo de la casilla intermedia y la desplaza dos posiciones a la izquierda el vector. Al doblar el vector genera resultados extraños.
Este algoritmo hace que su comportamiento sea difícil de predecir: cuando Blinky está lejos, Inky se aleja de Pac—Man pero cuando se acerca lo persigue de cerca.
La idea detrás de este algoritmo es similar a la de Inky: ayudar a Blinky a emboscar a Pac—Man cubriendo un ángulo diferente.
Naranja
Por último, el fantasma naranja (Clyde), que en Ms. Pac—Man se reemplaza por un fantasma morado llamado Sue con el mismo comportamiento, tiene como mote Pokey. En la versión japonesa se le llama otoboke («el que finge ignorancia») y su apodo es Guzuta («el que se queda atrás»).
Su objetivo varía entre la casilla que ocupa Pac—Man cuando está lejos de él (igual que Blinky) o la que tiene como objetivo en la desbandada cuando se acerca a menos de 8 casillas (distancia euclídea).
Clyde es el fantasma que menos presiona y el más sencillo de esquivar (basta con no estar en su camino cuando se dirige hacia su rincón) aunque es muy peligroso cuando Pac—Man está en la esquina inferior—izquierda del laberinto.
También es fácil que se quede bloqueado. En la imagen de ejemplo, permanecerá en el bucle indefinidamente mientras Pac—Man no se mueva.
Conclusiones
Pac—Man es un juego sencillo y llamativo que esconde pequeños detalles que lo hacen interesante: la inteligencia de los fantasmas (no intuitiva en un primer momento), el tono de humor, los guiños constantes… Eso le ha permitido envejecer tan bien y seguir siendo un icono de los videojuegos 40 años después de su lanzamiento.
Como Pac—Man fue concebido originalmente para interesar a las jugadoras, es un juego muy fácil y accesible. Creo que es un ingrediente en la longevidad del juego.
Anexos
Referencias
Birch, Chad (2010): Understanding Pac—Man Ghost Behavior.
Un análisis del comportamiento de los fantasmas basado en The Pac—Man Dossier.
Davis, Ashley (2008): Blinky, Inky, Pinky, and Clyde: A small onomastic study.
El origen de las ilustraciones usadas para cada fantasma.
Hodges, Don (2007): Splitting Apart the «Split Screen».
Análisis detallado del «Split Screen» del nivel 256 incluyendo el código ensamblador y una posible corrección.
Hodges, Don (2008): Why do Pinky and Inky have different behaviors when Pac—Man is facing up?.
Otro análisis de Don Hodges sobre los fallos en el comportamiento de los fantasmas. Nuevamente con código fuente en ensamblador y corrección.
Lammers, Susan M. (1986): Tōru Iwatani, Pac—Man designer.
Trascripción de la entrevista a Tōru Iwatani realizada por Susan Lammers en 1986.
Pittman, Jamey (2009): The Pac—Man Dossier.
El trabajo de Pittman es la fuente de referencia en cuanto a Pac—Man se refiere y el origen de muchos artículos sobre el juego. Contiene gran parte de los análisis y las imágenes de los comportamientos de fantasmas proceden del documento.