Internal Beeper


255
marzo 16, 2005, 1:06 am
Filed under: Divagaciones

El 255 es un número mágico en los juegos de ordenador. También en cualquier campo de la informática, sobretodo cuando hablamos de informática “clásica” (es decir, antigua). Seguramente muchos de vosotros sabréis el porqué. Pero quizás a muchos otros os ayude a atisbar mejor lo que hay detrás de un juego.

El 255 corresponde a la cantidad más grande representable en un byte de información. Un byte son 8 bits (es decir, 8 valores binarios entre cero y uno), por lo que el 255 es en realidad 11111111. O, si utilizamos el modo hexadecimal, mucho más agradable a la vista, es el FF.

Por otra parte, los juegos deben guardar su estado en la memoria. Localización, estado actual, numero de vidas y, en muchos casos, los objetos que tiene un personaje. Y la forma más clara y directa de contabilizar lo que tiene un personaje es, en memoria, hacer un mapeado de todos los objetos posibles e indicar la cantidad que tiene el personaje.

Así pues, si destinamos un byte por cada objeto posible, la memoria será capaz de almacenar cantidades de 0 a 255. Muchas veces, en el pleistoceno, cuando utilizábamos un “poke” para tener vidas infinitas, en realidad lo único que hacíamos era modificar el registro destinado a las vidas e indicarle FF.

Lo cual no otorgaba vidas infinitas, sino 255, pero no nos dábamos cuenta porque generalmente nos pasábamos (o nos aburríamos) el juego en ese margen.

Si os fijais, el 255 (o el 256, cuando se obvia el cero) aparece en muchos juegos. En el Final Fantasy 8, el número de magias acumulables era 255. Y muchos juegos de rol establecen un máximo de objetos de cada tipo de 255. Sí, es debido a que el juego destina un byte por objeto. Muchos juegos, como creo que pasa en algún Mario, uno puede acumular un número de vidas aparentemente ilimitado, aunque en realidad nunca pasa de 255.

Y, una curiosidad que he leído recientemente, el Pacman original, el primero que salió, parecía tener un número de pantallas ilimitadas. Pero en realidad un bug hacía que el juego se colgara cuando pasábamos de 255 pantallas. Aparentemente, cuando sumaba 1 al 255, volvía a colocarse en el 0. Y como muchas de las características del Pacman dependían de la fase (como la velocidad), se colgaba. El diagnóstico de un humilde servidor, división por cero.

Anuncios

Dejar un comentario so far
Deja un comentario



Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s



A %d blogueros les gusta esto: