
Spore, developed by Maxis and published by Electronic Arts
Last month, as part of our ongoing obsession with Media
Molecule's upcoming Playstation 3 game LittleBigPlanet, we threw out
the idea of the developers turning their 2-D prototype Craftworld into
a full-on game, while allowing levels to be exchanged between the two
games using a common extensible markup language, or XML. We wrote:
Here's how it would work. Media Molecule would produce 2-D Craftworld
versions of all of LBP's art assets, each tailored technically and
aesthetically to both the the capabilities of the specific platform and
the visual style of Craftworld. Marry that to our theoretical Media
Molecule Markup Language (MMML for short), and we now have a system by
which a level created in LBP could be exported as a small data file to
Craftworld and vice versa, just as easily as a Web page can be authored
once and read in various browsers....
Games like Echochrome and Spore are, like LBP, partially or entirely
built around user-generated content. In the case of Echochrome and
Spore, they're also multiplatform, as we're suggesting Media Molecule
should do with LBP/Craftworld. Some of those platforms have similar
technical specs, like Spore's support for PC and Mac. Others are
radically different, as with Echochrome (PS3 and PSP) and Spore (PC,
Wii, iPhone, DS). As more developers build games that support
user-generated content across multiple asymmetric platforms, it only
makes sense to design their file structures in such a way that much, if
not all of that user-generated content can be shared across each and
every target platform.
At the end of our post, we promised to reach out to the teams behind
Echochrome, Spore and LittleBigPlanet to find out how XML-ized each of
their titles had become. According to our previous reporting on the
upcoming game Spore, we knew that the PC and Mac versions could
exchange data, while the owners of the iPhone, mobile phone and DS
versions could share only share levels with users of the same specific
platform. We conducted an email interview with Spore senior development
director Eric Todd to get some more insight into the XML-ization of Spore; here's what he had to say:
Can you explain, in layman's terms, how various types of
user-generated content in Spore--creatures, buildings, vehicles, space
ships, music, etc.--are translated into small files that can be easily
shared among various players?
User-generated content in Spore
is shared among our players in small files that are generally less than
20KB in size. However, the final game-ready form of that content can be
1MB or bigger! This is possible because the game-ready content is
algorithmically generated based on the information in the small files.
Each
of the small files is a recipe that describes how assets that come with
the game can be combined to make something new. The assets are things
like hands, mouths, wheels, textures, or even animations. When the game
creates a game-ready piece of content, the instructions in the recipe
are followed and final geometry, textures, animations, and sounds are
created as a result. We call this "baking'" because conceptually we
take raw materials that come with the game, combine them, run them
through a number of optimization processes and after a while, something
interesting pops out the other end.
For example, when a player is creating a creature in the creature
editor, they take actions that can be boiled down to statements like
"elongate the spine by 10 percent," "bend the spine upward," "put legs
on the creature," "bend the knees outward," "paint the skin of the
creature in purple scales, with little warts all over." The recipes
that are shared between players consists of these kind of statements.
When we need to view a creature in the game, we assemble the skin of
the creature per the recipe, stitch on the parts, pose the creature, go
through the process of painting the creature’s skin, and so forth. Each
of these steps are usually done on-the-fly, in the background, as the
player is playing. After a few seconds, the final content is ready and
the game can display it in the world. This is different from most other
games in that most games have the final assets on the DVD and display
them directly in the game, with little modification. The fact that we
build them on-demand allows for a much wider range of content in the
game than is usual.
Is Spore file-compatible across all platforms? Is that being considered for future iterations?
The
recipes are essentially a binary form of XML and are not tied to any
particular platform. What’s more at question is whether a platform has
the raw assets and processing power necessary to bake out a final asset
based on the recipe. A cell phone, for example, can’t hold all the
parts, textures and animations that come with the desktop version of
Spore, so it can’t display things the same way as we see them on Spore
PC. At the same time, it is possible for a cell phone game to display a
simplified version of the recipe, where simpler raw assets are used and
some of the steps of the recipe are skipped. This is not something
we’ve implemented for the current version of Spore for the cell phone,
but it’s something we’ve considered and will consider in the future.
The same applies for the DS version of Spore.
Which versions
of the game are file-compatible with regard to user-generated content?
We already know that user-generated content created on the Windows
version of Spore can be shared with players on Macs, and vice versa?
But what about Macs and mobile phones; PCs and DS's. etc?
The
Mac and the PC version of Spore are functionally identical; they will
run (literally) the same executable and will point at the same content
sharing (aka pollination) servers. Neither the Mac nor the PC version
are currently set up to share content with the DS or mobile phone, but
this is something that is feasible and that we will consider in the
future.
***
Verdict: Pretty darn XML, but Spore still has a ways to go to fully live up to our share-and-share-alike dreams.
To read our Q&A with Echochrome associate producer Kumi Yuasa on XML and games, click here.