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.
Super Mario Brothers, Duck Hunt and Rad Racer still look just as awesome as the day I first got them!
When I have a kid, I want to put him in one of those strollers for twins and then run around the mall looking frantic.
Why don't we see this more often in all games?
Speed. Running algorithms to generate every damn thing takes a lot more processor time than loading a pre-rendered object file. Disk space is dirt cheap compared to processor cycles, so the appropriate trade study is made....
That's an interesting thought. The article makes it out to be a bit like a magical cure, but some aspects of it sound good to me. You can often improve the "wow" factor by tossing in "more" of something. Denser foliage; more of the tiny rocks that make up the detail; and so forth. Procedural generation would mean that these wouldn't have to be placed by hand, so this could make it easier to scale the visuals with system power. Similarly, particle sprays are often done procedurally, so being able to tweak those "up" to create more complex fireworks for mysterious future hardware could also work.
:)
Some games are still played for years after they've fallen behind the curve on graphics; this might mitigate the future ugliness, adding longevity to a popular title. Keeping gamers interested in (and talking about) your game makes sense, whether you'll be producing different titles in the future or will be focusing on sequels.
Ultimately, though, my hope is that algorithmic content generation will bring game development costs down for indies. Maybe I'm dreaming.
_______________________
Indie Superstar - A video webcast for gamers who play indie games
Dejobaan Games - Indie games for people who watch video webcasts
We're indie. We're working on our 14th game.
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.
The portrait of Dorian Duke Nuke'm
Faith: n. -- That human impulse that drives them to steal appliances when the power goes out
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.
Exult was a good example of "procedural" "growth" of a game.
Ultima VII was a 2D RPG. Yet, all objects in the game world have height. One guy at Exult hacked up a version of Exult that runs Ultima VII in 3D mode - basically, mapping all 2D tiles around cubes as described by their dimensions and height data.
The results were quite interesting (buildings looked kind of good, creatures and many plants and natural formations not so good, so they are being replaced by 3D models).
But it is a good example and exercise in extracting more detail from the game than the original developers intended or envisioned.
I've often wondered if the bloat in modern games is somewhat intentional as a deterent to piracy. If a game is 96k (or 300 megs for that matter) it is easily moved, stored, downloaded etc. whereas a game that is 4Gb takes much more effort, bandwidth and energy.
For those who want to try the 96 k game kkrieger : :http://kk.kema.at/files/kkrieger-beta.zip
Download here (beta version)
Wincopy
Nethack still looks as fresh and crisp as it did 20 years ago.
"Console companies have gone ot such great lengths to make sure their API is so specific that we have to spend a year porting from one console to another, that we'll just come up with a way to make it all never change."
At least half the design time of a console these days is making sure it's HARD to port games to another console, so that it will be an exclusive title, and they can make more money.
I fyou think Microsoft hates things like OpenGL, you've never seen the fires of hell hatered that people like Sony, Nintendo etc have for anything that makes game development easier.
- Adam L. Beberg - The Cosm Project - http://www.mithral.com/
This generation or next.
The problem with the idea is instead of creating larger high quality unique images, or large quanity of images, the idea is to generate your images on the fly through code.
Ok that would work. And it does. However it doesn't work in large scale games. First off if you look at Procedural generation you have to code the way the system works very carefully. It's like explaining to an alien what my DDR pad is. "it's a large pad with four buttons on it, It has lights." oops forgot it's metal, forgot this and that. And what's worse, every single time you use it you'll have to create a new way to describe the texture, or you'll get the same texture for everything.
But do you realize how long it would take to design the ENTIRE world of Halo with that tool? How about Prey? how about GTA? It wouldn't take 3 years between games, it'd take 10 years, or it would cost vastly more.
Xbox 360 fanboys (not that I hate the system) tout this as the reason they don't need blu-ray. The theory is sound. (It does work, it will work, it will always work) But at the same time, the developed a small game for it. Did they have trees, multiple people with tons of different clothes, flowing textures. Did their game sell a couple million copies?
Some companies do use procedural generation, for stuff that's inconsiquencial. Trees is the big one currently, Speed tree save tons of time, but that's the only widespread use of the technology so far.
It boils down to this. If procedural generation is the solution to all our problems why haven't we used it in everything? Why wasn't it discovered earlier? It's not because of the power of computers, it's because it's not going to save the world. We arn't going to see well made games using procedural generation for graphics because it just bogs down the processor, and it doesn't give any noticable improvement in graphic quality. If we had 10 processors, then yeah we can waste 4-5 working on generating the world, but even with 6 processors, 1 is for graphics, 1 or 2 is for physics (a must have in most games now), and the rest is for your gameplay components, we don't have the extra power no matter what ivory tower scientists want use to believe.
This is all "what if" the answer though is "it can't"
I can't see this working for long...
Eventually when memory (RAM & HD) are nearly free and nearly infinite, visuals in games may come close to paralelling reality (i.e. a tree in a game may look more like a real tree than it does today). A game that is developed today even with the most advanced mathematical algorythms applied in a graphics platform to be expandable to future, will not be imediately upgradable (from an end-users's perspective) to benefit from an instant graphics upgrade. I.e. you can't just shove the game in the latest new console and expect it to have graphics magically upgraded to the latest high standards. Somebody will still have to go through the entire game and add granularity to each wall, floor, and animated characters in the game which mathematics can not auto-magically generate with accuracy enough to come close to paralleling the randomness & beautify of reality. So the only alternative, I can see is to have the games of today allow future artists to ADD new graphic content into the old game with some newer gaming technology... but somebody still has to put in the effort to create & import all the new graphics.
So I think perhaps the article is misleading. Again, from an end-users's perspective, the game can't just magically upgrade all its graphics and have it equal in looks to whatever the latest high benchmark of impressiveness might be. At best, the end-user plugs in the CD/DVD into the new console (assuming it even accepts older formats) and over the internet, for a fee, newer graphics are downloadable... will users pay a small fee for this service? And more importantly, will gaming companies bother to re-create nicer graphics for old games? Is this a sustainable business model? I would venture to guess that only the most popular addictive games of all times might justify this kind of effort in a gaming company's project list.
Having said all that, I'm all for http://en.wikipedia.org/wiki/Second_Reality
Adeptus
No trees were killed in the making of this post; however, many trillions of electrons were horribly inconvenienced.