PDA

View Full Version : Procedural: Where Game Design is Heading


RelentlessRolento
03-22-2006, 11:58 PM
You may not know what I mean by "Procedural" at the moment, but I'll try to explain. Basicly, a group of programmers want to make a body of water. They then program all the propertys of water into a peice of code or program. It does every thing water does: displaces, moves/ripples, splashes, solidifys, etc. Basicly it's virtual water. So what I want to point out is that coding for games, as things become more powerful, will be more based off properties or dynamic AI, ie procedural. Alot of PS3 titles are leaning this way as well as some PC titles (Spore comes to mind). The old way was that programmers would just make what they needed and had to manually make things do what they do. I think it's pretty interesting seeing as this is what more and more we will see which will benefit everyone.

I'd like to see everyone's opinion or feelings about this... it's pretty damn cool IMHO, especially when you are part of the game development community.

Vinny
03-23-2006, 12:22 AM
Now that's interesting... so, this has not been done yet?

I'd think this would require a hella lot of processing power since the action of the water would have to be figured out by the hardware on the fly based on the action against the water.

RelentlessRolento
03-23-2006, 12:24 AM
Now that's interesting... so, this has not been done yet?

I'd think this would require a hella lot of processing power since the action of the water would have to be figured out by the hardware on the fly based on the action against the water.

It has been done before quite a bit, but not as thurough as what next gen system are capable now. It's like having a virtual world with its own propertys... not just a pretty looking place.

Personally, I think this type of implimintation will be fully exploited as the next-next-gen of consoles pop up, since graphics won't be as much of a problem... mainly just processing.

evilmax17
03-23-2006, 12:29 AM
While this sounds cool, I'm sure it exponentially raises the possibility for bugs (and I doubt they're increasing QA times to go along with dev times). I imagine we'll be seeing a lot more patches in the Next Gen (patches if we're lucky, unfixed problems if not).

RelentlessRolento
03-23-2006, 12:48 AM
While this sounds cool, I'm sure it exponentially raises the possibility for bugs (and I doubt they're increasing QA times to go along with dev times). I imagine we'll be seeing a lot more patches in the Next Gen (patches if we're lucky, unfixed problems if not).


actually, it reduces them. They just get a program working really well and from there on it's easy to transfer around on different code. Also, whatever the object does or reacts to it usually knows what to do beforehand before it even happens.

I see eventually a code library that all programmers can pull from and use in their games and this type of programming highly promotes that idea.

botticus
03-23-2006, 07:48 AM
I dunno.. the guy in that Spore video said "procedural" way too many times for my liking.

psiufoxx2
03-23-2006, 10:09 AM
actually, it reduces them. They just get a program working really well and from there on it's easy to transfer around on different code. Also, whatever the object does or reacts to it usually knows what to do beforehand before it even happens.

I see eventually a code library that all programmers can pull from and use in their games and this type of programming highly promotes that idea.That's a very good point. It does reduce the possibility of bugs. Think about the real world as it exists. The rules of physics govern how bodies move and interact with one another, but they do not cause any specific action to occur. They simply exist and all bodies are bound to them.

The same could be said about procedural code - programmers will be able to define the "world" in which a game resides where rules exist simply so its inhabitants can make decisions based upon them. Instead of scripting specific events as has been done to death with the recent "cinematic" push, instead we will see more dynamic, fluid, developmental worlds in this next generation of gaming. It opens up the possibility for true immersion and interaction with game entities in ways that have never been seen or experienced before.

Think of your favorite game - really think about how contrived it truly is. A great example is Fable (and a greater example is Peter Molyneux's ambition..) where the intent was to create a reactive world, with situations and events changing based upon the player's decisions. Instead they were forced to create a scaled-down version where character creation was the only truly reactive element. The story was contrived, the non-player characters did not exhibit the qualities of entities thriving in their own dynamic world. The xbox simply did not have the processing power to retain a comprehensive world capable of constantly evolving but defined by a basic set of rules.

Now look at Oblivion (or at least early impressions of the release) - critics are raving about the possibility of each player having a unique gameplay experience. The game certainly has an overall goal in mind in terms of story, but the developers have created their own reality where non-player characters live and develop on their own. These NPCs make their own decisions and are simply governed by the programming, rather than forced by it. The world grows and thrives independent of the player, and as the player you can sit by and watch it change or take place in its evolution - it's up to you.

It's not yet the procedural game worlds we will soon see in game design but it's certainly a step towards them. I'm very excited. :)

Mr Unoriginal
03-23-2006, 10:24 AM
Two words: Machine Revolution.

Backlash
03-23-2006, 11:08 AM
Yeah I hear that Mr Unoriginal. I can't wait for the new Skynet game.

javeryh
03-23-2006, 11:18 AM
If you have the Monsters Inc. DVD on disc 2 there is an awesome explanation about how they got the hair to move realistically. They didn't animate each individual hair because they would still be working on it - instead they wrote a "hair simulator" program and applied it to the monsters' skins. They had to do a lot of tweaking to get it just right but after they perfected it, they didn't have to worry about it too much - it pretty much reacted to the characters' movements and stuff. It's really neat.

Strell
03-23-2006, 11:27 AM
...I'm sorry, but how is this different from, say, using the Havok physics engine in various games? Or the Unreal engine and how it handles lighting?

Seems like the same thing you are saying - let programmers make all the necessary components, then make changes via scripting/pallete changes/artwork, etc.

It would cut down programming costs a bit, but not hugely.

Unless I'm completely misunderstanding. Are you suggesting that programming becomes more broad/big picture based in the future? Like define x,y,z, and the characters within the gaming world already innately know what to do with that knowledge? In other words, if a UFO came to a town, the townspeople intrinsically know "oh SHITS! RUN FOR j00R LIVES!" instead of having a programmer manually script them to do that?

If the latter is correct, then a good analogy would be robotic AI. I remember reading once that it would be hugely difficult to program a robot to do even simple tasks, such as butter toast. They'd have to take in too many variables - how melted the butter is, how resistant the bread is, how long and wide the knife is, etc. But my friend said "well if we could just get them to see it as a whole and not divide it up into miniscule details, it would simplify the AI and thus the process as a whole." Is that what you are getting at?

psiufoxx2
03-23-2006, 11:51 AM
...I'm sorry, but how is this different from, say, using the Havok physics engine in various games? Or the Unreal engine and how it handles lighting?

Seems like the same thing you are saying - let programmers make all the necessary components, then make changes via scripting/pallete changes/artwork, etc.

It would cut down programming costs a bit, but not hugely.

Unless I'm completely misunderstanding. Are you suggesting that programming becomes more broad/big picture based in the future? Like define x,y,z, and the characters within the gaming world already innately know what to do with that knowledge? In other words, if a UFO came to a town, the townspeople intrinsically know "oh SHITS! RUN FOR j00R LIVES!" instead of having a programmer manually script them to do that?

If the latter is correct, then a good analogy would be robotic AI. I remember reading once that it would be hugely difficult to program a robot to do even simple tasks, such as butter toast. They'd have to take in too many variables - how melted the butter is, how resistant the bread is, how long and wide the knife is, etc. But my friend said "well if we could just get them to see it as a whole and not divide it up into miniscule details, it would simplify the AI and thus the process as a whole." Is that what you are getting at?
Procedural programming on the technical level is comparative to functional programming or object-oriented programming.

The idea rests more along the lines of generating code which can be used and re-used in different situations without explicit calls or jumps. Essentially, createing modular code snippets which reduce the overall length and complexity but can be used in the synthesis of complex equations.

Read up at wikipedia (http://en.wikipedia.org/wiki/Procedural_generation#Procedural_generation_in_vid eo_games) for some more information.

And on a similar note.. has anyone heard of or played .kkreiger (http://www.theprodukkt.com/kkrieger.html#dload)? Apparently this ENTIRE game only takes up 96k of memory and rivals graphics from 2003-2004 AAA titles. Check it out. One example of how procedural programming creates a world on-the-fly.

Strell
03-23-2006, 11:51 AM
God, I never had a head for all those terms when I took programming classes. :)

Edit: Ok, so I read some, and basically all it says is that procedural gaming replaces all of the pre-made artistry with, in effect, an algorithm that can dynamically generate content randomly. It cites a forest as an example, as an algorithm could create dozens of trees, all of them unique, but still providing a "hand-made" look to them. Synthesis versus near-instant generation.

Now the object-oriented stuff is making a bit more sense, I know I've heard the terms but professors could never explain them simply.

RelentlessRolento
03-23-2006, 06:54 PM
And on a similar note.. has anyone heard of or played .kkreiger (http://www.theprodukkt.com/kkrieger.html#dload)? Apparently this ENTIRE game only takes up 96k of memory and rivals graphics from 2003-2004 AAA titles. Check it out. One example of how procedural programming creates a world on-the-fly.


hells yes! these german guys got me hooked about a year ago on their demos... the disco and music stuff they programmed is insane! the amount if little code they use to make everything blows my mind.

peteloaf
03-23-2006, 11:32 PM
A friend of mine (who's working on his PhD in VR) has been talking about this for a while - he seems to think that once developers get a hang of the multi-core processors of the next gen systems/pc's that procedural engines will basically be not only the shit, but necessary and revolutionary (which he finds ironic because this is basically how many parts of early arcade games were done...)

RelentlessRolento
03-24-2006, 12:37 AM
A friend of mine (who's working on his PhD in VR) has been talking about this for a while - he seems to think that once developers get a hang of the multi-core processors of the next gen systems/pc's that procedural engines will basically be not only the shit, but necessary and revolutionary (which he finds ironic because this is basically how many parts of early arcade games were done...)


yeah, down the line I wouldnt be surprised if this type of programming not only affects gaming but other types of media including Operating Systems... It's really the next step in software's future.

Photomotoz
03-24-2006, 12:47 PM
We already have something like this tp a rough extent. What you are describing seems to be a universal game engine. Or atleast a library of things that is compatible with them all. Although it is a good idea I think some people might object to giving thier competition some form of edge.

Vegan
03-24-2006, 01:49 PM
And on a similar note.. has anyone heard of or played .kkreiger (http://www.theprodukkt.com/kkrieger.html#dload)? Apparently this ENTIRE game only takes up 96k of memory and rivals graphics from 2003-2004 AAA titles. Check it out. One example of how procedural programming creates a world on-the-fly.

Not that impressive, here's the system requirements:

The "official" minimum specs for .kkrieger: chapter 1 beta are:

A 1.5GHz pentium 3 / athlon or faster.
512MB of RAM.
a GeForce4Ti (or higher) or ATI Radeon8500 (or higher) graphics card supporting pixel shaders 1.3, preferably with 128MB or more of VRAM.
some kind of sound hardware.
DirectX 9.0b.
Comparing that to the screenshots, I'd say those specs sound about right. So what's the big deal?

Strell
03-24-2006, 02:26 PM
Dude, the system requirements and the amount of space it takes up on the hard drive are completely different. We're not asking for a magic bullet that produces good graphics on low end systems, we're talking about a game engine that dynamically creates content.

You're looking at something (almost) completely unrelated.

evanft
03-24-2006, 02:44 PM
I love strell.

Strell
03-24-2006, 03:01 PM
I am made to be loved, fool.

Repeatedly. And with various equipment.

psiufoxx2
03-24-2006, 03:04 PM
Not that impressive, here's the system requirements:

The "official" minimum specs for .kkrieger: chapter 1 beta are:
A 1.5GHz pentium 3 / athlon or faster.
512MB of RAM.
a GeForce4Ti (or higher) or ATI Radeon8500 (or higher) graphics card supporting pixel shaders 1.3, preferably with 128MB or more of VRAM.
some kind of sound hardware.
DirectX 9.0b.Comparing that to the screenshots, I'd say those specs sound about right. So what's the big deal?
Honestly? First read Strell's response, then reread my original post.

The game only takes 96 FREAKING KILOBYTES of space. 96k. Less than 100k. Less than 1/10 of 1 megabyte. Doesn't that shock you when comparable games.. even DEMOS take like 200mb? It generates code, graphics, textures, etc. on the fly.. That's pretty damn impressive.

Xevious
07-13-2006, 03:24 PM
http://nintendo.about.com/library/procedural/blprocedural1.htm

Here is an interesting article about that subject.

RelentlessRolento
07-13-2006, 03:33 PM
http://nintendo.about.com/library/procedural/blprocedural1.htm

Here is an interesting article about that subject.


just saw that article too. I can see how it can be a huge benefit to developers in the long run, but initally a pain in the ass to make.

Xevious
07-13-2006, 03:47 PM
Being a 3D animator, I usually prefer to use texture maps instead of proceedurals (you generally have the option of both). I ran tests and the proceedurals shifted too wildly when animated and it looked weird. Of course, I'm not using very advance software so they may have figured out a way to fix that.

cochesecochese
07-13-2006, 05:02 PM
Wow. For a 96kb standalone program, that game is pretty damn impressive.

KingDox
07-13-2006, 09:55 PM
I'll have to try this when I get home.

RelentlessRolento
07-14-2006, 12:55 AM
Wow. For a 96kb standalone program, that game is pretty damn impressive.


.kkreigger has been around for a long ass time actually. I've played it alot and can say that those guys are very impressive. I actually reccomend going to their website and downloading their "Music video programs"... it's different real time redered prcedural envirnments all mixed in with music... I actually enjoy them more than their game. have a look.

cochesecochese
07-14-2006, 08:26 AM
Alright I'll be sure to check 'em out. Thanks for the tip Rolento.