ACTUALIZACIÓN: La fecha estimada de Spore ha sido definida, casi dos años después de esta entrada: 7 de septiembre de 2008. En otras noticias, en alguna actualización he roto los enlaces a las imágenes de este post y probablemente de los que están a su alrededor. Probablemente cuando moví la galería a gallery.eduo.info y se rompieron los url rewrites.
En la Game Developers Conference 2005 de San Francisco Will Wright ha hecho una demostración de su nuevo juego, Spore, y ha decidido atacar el mayor problema de los juegos de 3D modernos: La cantidad increíble de trabajo que requiere en diseñadores, animadores y músicos el crear los cientos de texturas, figuras, movimientos y sonidos (sólo para Los Sims se crearon 22.000 animaciones diferentes).
Los juegos modernos cada vez requieren más información. La capacidad de los equipos es cada vez mayor y los jugadores exigen más detalle y más variedad. Gráficos en 3D, sonido ambiental, múltiples texturas, variedad y control. Es común que los juegos se distribuyan en CDs e incluso DVDs. Los costes suben y los juegos dejan de ser rentables.
Will ha decidido tomar otro camino. Tomando algunas ideas de la demoscene y re-visitar una técnica poco usada en los juegos actualmente: La automatización procedural. Utilizando fórmulas matemáticas y algoritmos para generar lo que serían cientos de ficheros diferentes (similar a la música MIDI, a los gráficos de vectores o una secuencia de acciones en Photoshop).
Después del salto, algo más de lo que va este juego y cómo es posible crear uno de los juegos modernos más ambiciosos de la historia y que, al mismo tiempo, pueda ser uno de los que menos ocupen en disco…
Aquí, en un vídeo de 35 minutos con la presentación se puede ver un demo del nuevo juego de Maxis, llamado Spore. En éste Will demuestra como en el juego se puede empezar siendo un organismo microscópico que come y escapa de depredadores («similar a Pac-Man», comenta), evolucionar a un animal salvaje, formar una colonia, hacer crecer una sociedad con ciudades, salir al espacio, visitar el sistema solar, otros sistemas solares y finalmente toda la galaxia propia y las vecinas.
Hay varias cosas de la presentación que llaman la atención, tanto del juego en sí como de la evolución de Will Wright mismo. Es importante recordar que Will empezó programando un juego de commodore y NES sobre un helicóptero que atacaba blancos militares del cual le gustó tanto el concepto del editor de niveles que inventó un juego que sería la base de su compañía y de todos los juegos que sacaría en el futuro: SimCity. Desde entonces los simuladores hechos por Maxis han sido cada vez mas complejos y completos, culminando en el juego más vendido de la historia, Los Sims. Para hacer Los Sims 2 se requirieron docenas de animadores y diseñadores haciendo desde ropa y movimientos hasta muebles y música ambiental. Una docena de expansiones diferentes se traducen en que todo lo que se ha hecho para las dos versiones de los juegos ocuparía mas de 12GB (!).
Lo más inesperado, según Will es que lo que mas ha interesado de Los Sims es que a la gente le gusta mucho poder personalizar sus juegos. Los jugadores pasaban más tiempo modificando sus personajes y casas que en el juego mismo y esto se ha vuelto un patrón recurrente en Spore. En todos los niveles del juego es posible utilizar un editor y modificar los personajes, ciudades, vehículos y planetas.
El juego empieza de forma muy sencilla. Se es un organismo microscópico que nada, come y huye de depredadores. Si se sobrevive algún tiempo es posible tener descendencia, a la que se le puede modificar añadiendole cilios o mandíbulas para que sobreviva mejor en el futuro. Algún tiempo después se controla ya a un animal complejo que puede caminar (o nadar, si se quiere) e interactuar con otros animales.
El juego avanza y es posible construir ciudades, tratar con otras ciudades (económica, cultural o bélicamente) y, a la larga, escapar al espacio en naves. Los edificios, los vehículos, las naves son tambien editables y además el juego va deduciendo el estilo del jugador y los componentes que crea por sí mismo van siguiendo su mismo estilo. Ya en el espacio se puede navegar el sistema solar e incluso viajar a otros sistemas solares, donde es posible interactuar con los planetas y ciudades que contienen. Es posible alterar un pedazo de piedra sin vida para colonizarlo y, en los niveles más altos interactuar con la galaxia misma, con los agujeros negros, las supernovas y las estrellas nuevas.
Ahora bien. Todo esto suena bastante improbable considerando las técnicas comunes de hacer juegos. Sería imposible generar todo el contenido posible a todos estos niveles así que una nueva forma de obtener todo el contenido requerido (modelos 3D, texturas, sonidos, música, animaciones, etc.) es necesaria.
Lo que hizo Will fue girar la cabeza hacia una comunidad que lleva décadas intentando precisamente hacer la mayor cantidad de efectos y música. La Demoscene. Los demos han existido desde que hay ordenadores. Eran comunes ya en los 80 donde se incluían en programas crackeados para mostrar las habilidades de los programadores y se convirtieron en un arte en sí mismo. Desde entonces ha sido posible bajar «demos» para todas las plataformas (aunque en Amiga y DOS fue cuando más se popularizaron y se establecieron como la comunidad que ahora son) en los que un individuo o equipo presentan su capacidad para programar animaciones, sonidos y música en poco espacio y empujando al límite el equipo en el que corren.
La forma en que estos demos consiguen hacer tanto en tan poco espacio (hay un premio al «mejor demo de 64KB«, por ejemplo) es a través de procedimientos. Definiciones matemáticas que describen absolutamente todos los elementos de una escena y que pueden ser recicladas. Esto es similar a cómo toda una sinfonía puede ocupar menos de 200KB al estar en formato MIDI o cómo en Photoshop es posible aplicar una secuencia de acciones que ocupen unas pocas líneas para modificar ficheros existentes o crearlos desde cero.
A través de procedimientos es posible definir cualquier cosa sin siquiera tener que utilizar compresión de datos (porque no hay datos que comprimir) y permite aprovechar la única pieza del ordenador que no se utiliza casi hoy en día en aplicaciones gráficas: El CPU. Al arrancar un demo se utiliza el CPU para generar todos los recursos necesarios sobre la marcha y estos se descargan sobre la memoria y la tarjeta gráfica para su uso posterior.
El ejemplo más patente de la aplicación de estas tecnologías y que probablemente dio la idea a Maxis para utilizar estas técnicas en su nuevo proyecto es el juego .kkrieger, desarrollado por el equipo .theprodukkt (otra cosa menos publicitada de la demoscene es que suelen ser raritos para escoger nombres). Algo que llama la atención inmediatamente de .kkrieger es que es un juego tipo Quake o Doom, de primera persona con toda la tecnología que se puede esperar de tal (pixel shaders, sombras y luminosidad, esqueletos en las figuras, etc.) y aun así ocupar, solamente, 64KB. Esto son 64 Kilobytes. Para comparar la página en la que estas leyendo esto ocupa MÁS de 64KB. Sólo la imagen que está de encabezado ocupa mucho más que esto. El README de Unreal Tournament 2004 ocupa más de 64KB.
Aplicando esta misma tecnología a Spore Maxis ha logrado que el juego sea capaz de ocupar muy poco espacio y aun así lograr generar la cantidad de detalle que sea necesario. Esto ya se ha hecho en el pasado en mucho menor medida en juegos que permitian crear niveles al azar (el Spectrum ya tenía juegos que hacían esto e incluso otros recientes como Diablo lo han podido hacer)
Agregando que se incluyen editores de prácticamente todo en el juego se le permite a los jugadores hacer el juego a su medida. Al medir tan poco los componentes el juego permite que se compartan por Internet en un Multiverso donde un jugador puede encontrarse con otra ciudad que realmente está hecha por otro usuario en otra parte del mundo (aunque no entra en su juego, sólo se comparten los componentes) o viajando por el espacio ver el planeta que otro jugador ha completado. Los componentes creados tienen una historia y es posible ver si otros jugadores han interactuado con ellos y cuantos y si los han usado y modificado ellos mismos. Es posible ver la historia de lo que se crea.
Esto completa varias características que hacen mejor al juego:
- Los jugadores tienen libertad de acción en su propio juego al ser no linea.
- Se pueden editar todos los componentes a voluntad para tener el juego que uno desea. Tan personal como se quiera.
- Se pueden compartir las creaciones y ver su éxito y uso por otros jugadores, lo que fomenta una comunidad y un sentido de estatus.
- Se utilizan creaciones de otros, lo que ayuda a tener siempre contenido original en el juego que no sea generado automaticamente.
- Los elementos que se comparten (suban o bajen por la línea), al ocupar cada uno pocos kilobytes permiten una comunicación veloz y dinámica, sin esperas. Los elementos que conforman un planeta entero se pueden bajar completamente en un par de segundos.
De alguna manera Spore, si llega a concretarse (tiene una fecha estimada de venta del último trimestre de 2006) podría convertirse en un fenómeno que revolucione la forma de hacer los juegos donde sólo algunos elementos tendrían que ser creados uno a uno (voces grabadas o modelos de objetos reales, por ejemplo) y la gran mayoría de los componentes de un juego generados dinámicamente.
Yo, personalmente, no puedo esperar.
Me muero de envidia! =)