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.

Máquinas recreativas Puck—Man y Pac—Man.

Diseños de las máquinas recreativas: Puck—Man distribuida en Japón por NAMCO (derecha) y Pac—Man distribuida en Estados Unidos por Midway Games (izquierda).

Fuente: The Middle Aged Gamer

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.

Tōru Iwatani.

Desarrollo

Tōru Iwatani

Tōru Iwatani.

Fuente: Gamereactor

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.

Pantalla inicial del primer nivel de Pac-Man

Disposición inicial del laberinto en todos los niveles.

Fuente: Gameinternals

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.

Pac-Man «Split Screen» (nivel 256)

Pac—Man «Split Screen» (nivel 256).

Fuente: Rings and coins

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.

ElementoPuntosNiveles
🔘Píldoras10Todos
⚪️Energizadores50Todos
🍒Cereza1001
🍓Fresa3002
🍊Naranja5003 y 4
🍎Manzana7005 y 6
🍈Melón10007 y 8
🚀Nave Galaxian20009 y 10
🔔Campana300011 y 12
🔑Llave500013+

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.

    ElementoPuntosCantidadNivelesTotal
    🔘Píldoras10240255612 000
    ⚪️Energizadores50425551 000
    🍒Cereza10021200
    🍓Fresa30021600
    🍊Naranja500222 000
    🍎Manzana700222 800
    🍈Melón1 000224 000
    🚀Nave Galaxian2 000228 000
    🔔Campana3 0002212 000
    🔑Llave5 00022432 430 000
    👻Fantasmas3 000417204 000
  • Nivel 256 «Split Screen»:

    Permite obtener 6 760 puntos adicionales.

    ElementoPuntosCantidadVidasTotal
    🔘Píldoras1011211 120
    ⚪️Energizadores5021100
    🔑Llave5 000115 000
    🔘Split Screen1096540

    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.

Tōru Iwatani.

El comportamiento de los fantasmas es una sucesión de dos estados: persecución y desbandada.

Objetivos fijos en desbandada

Posiciones a las que se dirige cada fantasma en el modo desbandada. Existe una quinta posición adicional (verde) a la que se dirige un fantasma asustado cuando es comido.

Fuente: Gamasutra

  • 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.

ModoNivel 1Nivel 2 a 4Nivel 5+
1Desbandada00:00:0700:00:0700:00:05
2Persecución00:00:2000:00:2000:00:20
3Desbandada00:00:0700:00:0700:00:05
4Persecución00:00:2000:00:2000:00:20
5Desbandada00:00:0500:00:0500:00:05
6Persecución00:00:2000:17:1300:17:17
7Desbandada00:00:051 ÷ 601 ÷ 60
8Persecució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).

Cuadrícula de Pac—Man

Cuadrícula utilizada para simplificar los algoritmos del juego.

Fuente: Gamasutra

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.

Atravesando fantasmas

Visualización y representación del estado interno al atravesar un fantasma. En el penúltimo estado, los dos puntos están al borde y justo en el último se han intercambiado sin colisión.

Fuente: Gamasutra

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.
Algoritmo de movimiento

Algoritmo utilizado para decidir el movimiento en la siguiente casilla.

Fuente: Gamasutra

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, Blinky

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.

Objetivo de Blinky

Casilla objetivo de Blinky en modo persecución.

Fuente: Gamasutra

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

El fantasma rosa, Pinky

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.

Objetivo de Pinky

Casillas objetivo de Pinky en modo persecución en función de la orientación de Pac—Man, incluyendo el error cuando mira arriba.

Fuente: Gamasutra

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

El fantasma azul, Inky

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.

Objetivo de Inky

Cálculo de la casilla objetivo de Inky. A la izquierda el comportamiento normal y a la derecha considerando el bug cuando Pac—Man mira hacia arriba.

Fuente: Gamasutra

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

El fantasma naranja, Clyde

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).

Objetivo de Clyde

Mientras Clyde esté en una casilla completamente fuera del círculo su objetivo es la casilla que ocupa Pac—Man (el centro del círculo). Cuando entra en el círculo, su objetivo pasa a ser su casilla de desbandada (esquina inferior—izquierda justo fuera del laberinto).

Fuente: Gamasutra

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.

Tōru Iwatani.

Anexos

Referencias

Oscar Cubo Medina

Responsable técnico en DC Rectorado UPM. Ciencia, informática, música, libros y nuevas tecnologías.

Relacionado