Procedural Programming- The Secret Behind Spore
imashoe writes "Ever wonder how Spore works under the hood? The game seems to be insanely huge and how is it that there can be an infinite amount of different creates created in the game? The answer is Procedural Programming."
Given that I've only seen videos of someone else playing "Spore", I have to say, no, I don't wonder how it works. I wonder when the hell it'll be done.
The cake is a pie
to generate one meaningful article about it? since apparently it's good at increasing noise by putting out fluff pieces as this one.
--
captcha: uncouth. Quite.
Actually I never even heard of Spore.
I really feel like the person who wrote the article doesn't know what he is talking about.
This article reads like pure garbage. Procedural programming simply refers to any form of programming in which procedure calls are made... ie. any mainstream imperative programming language. Does anybody really believe that games fill up multiple DVDs because there are too many IF statements? Editors, wake up please.
There is no way spore is going to live up to the hype they keep generating. Even if it is a moderate financial success people will view it as a failure because of expectations. as far as procedural programming is all bull, they're franticly animating to fix the impossible procedural animation system. My prediction is that it will be delayed and be a disappointment to anyone who is expecting the greatest game ever.
Yeah who here is sick and tired of crates being everywhere in games. I hardly ever see crates in my day to day.
A Good Troll is better than a Bad Human.
I think you meant to say 'seemingly infinite' or 'infinite for all intents and purposes.'
I've tried to think of mental exercises to challenge people with a concept of something being infinite. For example, if you had an object of infinite mass with no gravity, would it be possible for us to exist alongside this infinite object?
Infinity has interesting properties and I challenge the use of 'infinite' in this summary. The article uses cautious words: Procedural programming essentially shrinks the technological world, allowing us to fit a lot more information in limited space, and allowing this information to interact in near infinite ways. The basic theory of how one would store infinite states of data instantly disqualifies any device I know of. Computers, game systems, etc. are ultimately storing data in a binary on/off form. You can story many bits of data and come up with many states very quickly. You cannot, however, store an infinite amount of states on a finite amount of bytes. There's just no way to do it. A very large amount of different states? Of course. But not an infinite amount.
For the purposes of speculation, what would be the best way to give a user a seemingly 'infinite' number of states? Well, the obvious choice (and what random number generators on computers seem to favor) is to use time. Time is infinitely divisible (although the representation of that depends on decimal precision) and it is (seemingly) never ending. So one would base the resulting states in the game off of when a user entered input. It is still very easy to show that this is a many-to-one mapping. You can divide time down to a small enough unit that they are technically different moments yet the hardware that captures the analog input cannot discern between them.
I think that this concept of 'infinite' states is desirable to gamers. And it's the states that you find yourself in in a game that were clearly not thought out by the developers that makes a game special. When you have a large freedom of configuration pitted against players with that same freedom, you have the core success behind real time strategy games where players would build cities and armies and pit them against each other.
I don't think this claim can ever be made when a digital machine is being used. I guess you could design a program that would adjust to the size of the machine and extrapolate the amount of precision it used to measure the moment at which the user clicked the remote button and then stamped this number on the create's forehead (or some other form of uniqueness). But, I do not know enough about how the CPU acquires the time stamp. If it's a quartz crystal, this is only accurate to the number of vibration the crystal makes per second with electricity pumped through it. I have good reason to believe you will always encounter some theoretical issue or barrier when trying to achieve truly infinite implementations. Best to leave that word where it belongs: in mathematicl proofs and scientific theories.
My work here is dung.
The article author has no clue.
Girl: You got Spaghetti Code in my Perl!
Boy: You got Perl in my Spaghetti Code!
BONA FIDE REVIEWS: our content makes as much sense as our ads.
Please stop stalking me, bro.
Perhaps the author is confusing Procedural Programming with Procedural Generation?
Life is wet, then you dry.
use a functional programming language. prove mathematically that your functions are correct. and technically, it should be fairly easy to write compilers that automatically thread the program due to the nature functions are written in a functional programming language. i encourage everyone, especially the writer of this article, to read up on it. Haskell (a programming language) is a good place to start.
"The basics of sequential programming are all object oriented."
That pretty much captures how well the author understands programming.
Someone with a subscription needs to tag this story Vaporware.
I remember first getting excited about in-game videos of spore something like two years ago. It's starting to feel like we're getting nukem'd again.
I stole this sig from someone cleverer than me.
That article is terrible. It reads like a 9 year old trying to explain something he doesn't understand.
Maybe not
Really, are you sure your eyes aren't just skipping over them? I don't usually think about it, but a while back I bothered to, and noticed that in real life, at least here, there really are crates and boxes everywhere in my day to day life - stacked up behind, in front, inside, and occasionally on top of shops and other buildings, on trucks, sitting on docks / side of street waiting for collection, etc. Given many games are in an "industrial" setting, where there are even more crates, I think it's fair enough.
Now, if I lived in or was passing through an idyllic rural environment, crates would be quite out of place (hello tomb raider...), but crates are bloody everywhere in an urban or industrial environment (or even on the farm), especially early in the morning and late at night when things are being loaded and unloaded and shipped, and nefarious criminals with guns might well be running about fragging eachother in real life.
More like rule-based, event-driven programming. This is what happens when people don't get a proper technical education.
Tsunami -- You can't bring a good wave down!
...that is, this game which had an "infinite" universe. The book Infinite Game Universe has some good discussions of this sort of thing, too.
The Army reading list
*Functional* programming sometimes seems like magic. Maybe that's what they are talking about.n g
Its not new but still cool.
http://en.wikipedia.org/wiki/Functional_programmi
I kept jumping up, punching this one crate, just waiting for the gold coins or extra man to come out. Instead, one of the loading dock guys just chased me away.
:(
Indeed - I'm sure you're exactly right. This looks like a new low for /. novice "tech" "writing" - and for this site for picking it up as a story.
Tired of Political Trolls? Opt Out!
who literally know *zip*. I just dipped my toes in the article, and lines like "procedural programming is ... object oriented..." snapped any suspenders of belief I had in the article.
Of course, it'll be smaller and faster than Objectionably-oriented software....
mark
Not before April, 2008. And it may get held up even longer since they want to release simultaneously for PC and DS even though the two versions will be different and incompatible.
Crates are everywhere because they're easy to render. Only six visible triangles...
Comment removed based on user account deletion
Uhh... No. A 3D cube has six faces. At any given time, at most 3 are visible in a 2D projection of a 3D scene. It takes two triangles to represent a square face (many 3D toolkits "really" only using triangles underneath). So, 6 triangles. So, the original poster was correct, you lose, do not pass go, do not collect 200.
A little help please? Does anyone have a slashdot-editor-to-enlgish translator?
Procedural generation
Spore
Terrain synthesis/generator - Terragen
Renderman shaders
Procedural animation
Practical procedural modeling of plants
Procedural planets
Vintage computer adverts: http://www.vintageadbrowser.com/computers-and-software-ads
They meant procedural content generation, like L systems, used to make believable looking plants that grow and change over time.
It's all about repeated iteration over a particular type of finite automata with a particular string.. Easily done if you've taken your 3xx/4xx graphics an theory classes, but perhaps past what most technology reporters are capable of.
So, to summarize:
* C is an example of procedural programming.
* Haskell is an example of functional programming.
* L-systems are an example of procedural content generation (content generated by a procedure, in a deterministic fashion).
--
Internet Explorer (n): Another bug -- that is, a feature that can't be turned off -- in Windows.
I just wanna play God!
Why do you abuse my games so? - Will Wright
[End Of Line]
This all sounds very interesting.. have any links to your games we could look at?
As a game programmer, I'm actually offended by this article. Why do I get the feeling it was written by a football jock who used to bash me (and other game programmers) up at high school? I was going to list the mistakes made in the article, but realized the entire article (even its name) is wrong. I spent 5 minutes looking around Slashdot for a "Bury" button, can someone contact the Slashdot President and tell him to launch a preemptive military strike on any future articles of this quality.
... and COBOL
Yes I noticed poster tagged the article "wrong."
The beauty of /. is that even an absolute crap article will in most case get somebody to point out what actually was newsworthy about the item. So to summarize: It seems that the game allows the user to create their own procedural content generation through the use of editors.
They used fractal algorithms to generate terrain lifeforms, minerals, and in fact the whole universe.
Starflight I and II were written in Forth, using a custom compiler. Here is some old design documentation from Starflight.
It's interesting stuff.
I am in fact recreating the game (or, rather a game much like it using entirely original content) using many similar algorithms.
Check out my webpage.
Something not good going with slashdot choice of article lately.
Next time just aim for the barrel next to the loading dock guy. Kaboom!
Well fellow /.ers, the article was pulled (anyone have an original for laughter purposes?) I'm oddly proud of the /. community for successfully cleaning cruft from the vast sludge of the internet.
If only with could do this stuff for mainstream media... like any of us bother any more :)