What if Game Graphics Never Aged?
An anonymous reader writes "If you've heard of Procedural Synthesis, you already think it's amazing. It's been used to create some extraordinary visuals in tiny packages, like .kkrieger, which is less than 96 Kilobytes big but still has graphics that look like like a modern PC title. Beyond that, there's even more that Procedural Synthesis might be able to do; what if your old video games never aged, never looked out-of-date? Imagine putting Halo 2 into your Xbox 360 only to have it automatically upgraded to look like Halo 3 in graphical quality. This article examines the unexpected way that Procedural Synthesis might impact gaming in the generation after the Xbox 360, PS3, and Nintendo Wii."
When I read this Slashdot article, all the rules of software design came flooding back to me. Low coupling, high cohesion, encapsulated complex structures, all that jazz. Before you even started to program a complex FPS game, you might start by carefully separating the layers and keeping things like two dimensional surfaces rendered to be de-coupled from other things like the AI of the enemies. Separate the garphics from the rest of the gameplay. I completely buy into the possibility that games can be designed well enough to abstract their graphics to a point where the same exact graphics package can be used in even several different types of games.
.kkrieger's procedures.
When I read this article, it sounded like a classic example of someone going nuts with the design patterns that encourage encapsulation and separation of layers to improve modularity. Like someone had actually put in a lot of effort to the game to reduce the amount of effort that will be required later when new platforms and libraries come out for the game. On top of that, the imagery doesn't come from a data file but instead is derived on the fly from a library of procedures--something easily achieved by the strategy pattern. The funny thing is that if other games have abstracted their graphics packages sufficiently, they should be able to rework the libraries to be procedures instead or maybe even build adapters to
Why don't we see this more often in all games? Because I think most games today are disposable. They're built for one console or platform with the intent of only running on the current version of Windows or Mac and with no interest in coming out with new releases that support new hardware or software. They do this because games are construed as novelty software that expire as the user tires of them. Games like WoW or other MMOs might bring about a shift in the way game designers spend their efforts. Maybe games will start to take a longer time to develop but last a hell of a lot longer than they traditionally have?
My work here is dung.
Despite what the article says, everyone sees the same trees in Oblivion. The trees were generated using procedural synthesis (SpeedTree) *once*, and then the whole shebang was saved as a huge map and put on the disk. It's an example of the opposite of something like kkrieger, which puts the math on the disk and lets the end-user's machine to the generation, rather than the developers' machines.
The grass, on the other hand, is randomly placed and might qualify. About all that could happen on better hardware in the future is "more grass," though.
From talking to artists I'm acquainted with, one major reason procedural rendering is moving so slowly is that it's difficult to exercise real creative control over it. All you have to work with are the inputs, and their linkage to aspects of the output may not be clear. It's very hard to tweak a procedural generator with any kind of strategy; all you can do is poke around at random values until the result looks pretty close to what you originally had in mind. Compared to the precise pixel/texel/vertex-level controls artists are used to, it's a step backwards and won't make game development easier or faster.
For those who want to try the 96 k game kkrieger : :http://kk.kema.at/files/kkrieger-beta.zip
Download here (beta version)
Wincopy