Slashdot Mirror


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."

277 comments

  1. Well, no by ucblockhead · · Score: 5, Funny

    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
    1. Re:Well, no by zn0k · · Score: 5, Funny

      I wonder when the hell it'll be done. $ apt-cache showpkg spore
      Package: spore
      Versions:
      1.0
      Description Language:
      File: /var/lib/apt/lists/spore.maxis.com-i386_Packages
      MD5: b7b55c3327e373b0abee0ccb25902a2b
      Dependencies:
      1.0 - dukenukem3d
    2. Re:Well, no by ichigo+2.0 · · Score: 4, Insightful

      Duke Nukem 3D was released in 1996.

      I guess you meant Duke Nukem Forever. ;)

    3. Re:Well, no by TheSpoom · · Score: 0

      Nah, he's waiting on the Linux version.

      --
      It's better to vote for what you want and not get it than to vote for what you don't want and get it.
      - E. Debs
    4. Re:Well, no by Dramacrat · · Score: 0

      Just in time for it to be ported to Gnu HURD, I'm hoping.

      --
      There are over 36 million lines of COBOL code in the world, and they are all raping children.
    5. Re:Well, no by TheRaven64 · · Score: 1

      That was also done a while ago.

      --
      I am TheRaven on Soylent News
    6. Re:Well, no by 5of0 · · Score: 1

      1.0 - dukenukem3d
      FAIL.
      --
      You all have Oo.o and Firefox, so get World Wind.
    7. Re:Well, no by Unclescar · · Score: 1

      DNF was secretly released years ago but was in fact so good the government covered it up to ensure that we would all continue to go to work and pay our taxes. That is all...

      --
      All science is either physics or stamp collecting.
  2. Typo in summary by Man+On+Pink+Corner · · Score: 0

    "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?"

    I think you misspelled "crates."

    1. Re:Typo in summary by buswolley · · Score: 4, Funny

      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.

    2. Re:Typo in summary by Anonymous Coward · · Score: 2, Insightful

      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.

    3. Re:Typo in summary by Anonymous Coward · · Score: 4, Funny

      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.

    4. Re:Typo in summary by Anonymous Coward · · Score: 2, Insightful

      Crates are everywhere because they're easy to render. Only six visible triangles...

    5. Re:Typo in summary by freyyr890 · · Score: 1

      Six triangles, not polygons? Pretty weird looking crate. That'll come out like a malformed pyramid.

    6. Re:Typo in summary by Anonymous Coward · · Score: 5, Informative

      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.

    7. Re:Typo in summary by IBBoard · · Score: 1

      Only six visible triangles...
      ;)

      That assumes you've got standard right-angled triangles, though. e.g. two to make each side, multiplied by three (which is the most number of sides of a box you can see at one time - like in normal isometric projection)
    8. Re:Typo in summary by Anonymous Coward · · Score: 0

      Isn't a triangle a polygon?

      Anyway, six triangles are enough to draw the *visible* parts of a 3d cube. Think about it.

    9. Re:Typo in summary by aichpvee · · Score: 1

      A few years ago I heard that barrels were going to be the new crate, but I haven't seen that happen yet. I'm still holding out for baby carriages to be the new crates, so long as they're fully destructible.

      --
      The Farewell Tour II
    10. Re:Typo in summary by GodfatherofSoul · · Score: 1

      That's because they've all been smashed with a crowbar.

      --
      I swear to God...I swear to God! That is NOT how you treat your human!
    11. Re:Typo in summary by Nazlfrag · · Score: 3, Funny

      Next time just aim for the barrel next to the loading dock guy. Kaboom!

    12. Re:Typo in summary by sarahbau · · Score: 1

      A few years ago I heard that barrels were going to be the new crate, but I haven't seen that happen yet. I'm still holding out for baby carriages to be the new crates, so long as they're fully destructible. Barrels are the old crate. Remember how many barrels were in Doom and Wolfenstein? I don't remember those two having as many crates as barrels (if they even had crates at all).
    13. Re:Typo in summary by PlatyPaul · · Score: 1

      Minor quibble: if it's an opened crate, then you could be viewing portions of the interior such that there are 5 visible faces, making a total of 10 triangles needed (at least).

      --
      Misery loves company. Online misery loves unsuspecting random strangers.
    14. Re:Typo in summary by Whyte+Panther · · Score: 1

      Odd thing about that... Barrels were easier to draw in Doom/Wolf3D, because you would always see the same face, since all enemies were single sprites, using a rounded background object made sense. Fast forward to Quake, where the background objects were drawn in polygons, and could be viewed from more directions, now it's a headache to produce a round object, so we get square boxes.

  3. Can one use PP by Anonymous Coward · · Score: 3, Funny

    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.

    1. Re:Can one use PP by KlaymenDK · · Score: 1

      Can one use PP to generate one meaningful article about it?

      Sure you can. There was an article not too long ago about a thesis-o-matic web page. (Can you get PP to generate a link to said article? No.)
    2. Re:Can one use PP by Dragonslicer · · Score: 1

      Sure you can. There was an article not too long ago about a thesis-o-matic web page. Talking about SciGen?
    3. Re:Can one use PP by KlaymenDK · · Score: 1

      That would be it, yes. :)

  4. Attention Procedural Programmers by Anonymous Coward · · Score: 0

    Attention Procedural Programmers: You have piqued my interest. Please reply with snippets of example code.

    1. Re:Attention Procedural Programmers by mini+me · · Score: 1

      Agreed. It's silly to talk about programming without showing some code.

    2. Re:Attention Procedural Programmers by mikael · · Score: 5, Informative
      --
      Vintage computer adverts: http://www.vintageadbrowser.com/computers-and-software-ads
    3. Re:Attention Procedural Programmers by Anonymous Coward · · Score: 0

      10 PRINT "Hello, World!"
      surely?

    4. Re:Attention Procedural Programmers by fractoid · · Score: 1

      Oh, you're so oldskool.

      --
      Rampant carbon sequestration destroyed the Dinosaurs' tropical paradise. I'm here to help repair the damage.
  5. not really by clubhi · · Score: 3, Funny

    Actually I never even heard of Spore.

    1. Re:not really by dohzer · · Score: 2, Funny

      Welcome to Slashdot.

    2. Re:not really by clubhi · · Score: 3, Funny

      Thanks!

  6. Eh? by MrSteveSD · · Score: 5, Informative

    I really feel like the person who wrote the article doesn't know what he is talking about.

    1. Re:Eh? by mmacdona86 · · Score: 4, Informative

      Yes, the distinction that they are probably trying to make is that between procedural or algorithmic content generation and the more common situation where content is created individually by artists.

      The talk about procedural versus object-oriented programming is moronic bs.

    2. Re:Eh? by tundra_man · · Score: 3, Interesting

      Yes I would have to agree. The method of programming being discussed is more akin to a Finite State Machine (FSM) in which you describe various states, events which cause state transitions and of course the define what all happens during the transition. It is a valid programming methodology and is used in telephony and other places. One popular application for working with such code was Rational ObjecTime which became part of the Rational Rose product before Rational was bought by IBM. Where FSM has troubles is with switch statements as they become quite complex (switch is the same as many IF and IF ELSE in many ways) which may be why the author was so negative to IF statements. As for games size, yes games have gotten bigger, this is however more to do with all the artwork and sounds that accompany the games and not the software driving them. As for the developer's of comment "nearly everything is created procedurally" this would explain the smaller size not because of "procedural programming" but because rather then grabbing an image or sound from artwork on a CD they are creating it in code. For example I can write some code to render a sphere, with the API allowing for color, material, lighting and others to be defined, now I can write small bits of code to call the API and create a thousand spheres all with unique characteristics, all with minimal amount of CD space being used (lets say 1K for the API definition and 100bytes per sphere = 1K+(100B*1000) = 98.6Kb). Now if I was to have 1000 unique spheres using artwork you would have 1000 unique images saved on CD plus a smaller API to load them (0.2Kb API, 100Kb per image = 0.2Kb + 100Kb *100 = 12.2Mb). Even if you were to do some optimization, which you would, the difference is clearly visible.

    3. Re:Eh? by Anonymous Coward · · Score: 0

      Funny, I feel the same thing. The author is full of crap (or is clueless about programming or both).
      Sounds like real object-oriented programming which we're doing now (though not for games).

      If you go to the article and read the comments, looks like it is far from being an isolated opinion.

    4. Re:Eh? by TheGeneration · · Score: 3, Insightful

      The biggest fault with that article is that the author doesn't take into account who his audience will be. If you are going to write an article on the "breaking news" that the creators of Spore have gone to the future year of 1987 to use Pascal to write a mutliplayer online game, well... chances are the only people who will want to read your article are programmers. So don't bother trying to explain Ryu's fireball to us, we got that back in 1990 when Ryu spit out his first fireball in front of our eyes. Instead give actual details that are worth reading to your potential audience.

      --


      The Generation
      I'd say something witty here, but I'm not that bright.
    5. Re:Eh? by MrSteveSD · · Score: 3, Informative

      Yes, the distinction that they are probably trying to make is that between procedural or algorithmic content generation and the more common situation where content is created individually by artists.

      Yeah, that would be something interesting to talk about. Whoever wrote the article probably isn't the man to do it though. Did you ever play Kreiger? http://www.theprodukkt.com/kkrieger#20 They managed to cram a 3D first person shooter into 96k. It relies heavily on procedurally generated content.
    6. Re:Eh? by Anonymous Coward · · Score: 0

      I had pascal nightmares in 1987.

    7. Re:Eh? by ultranova · · Score: 1, Funny

      I really feel like the person who wrote the article doesn't know what he is talking about.

      Nah. Procedural programming is indeed what made a project of this complexity possible. Just try to program Spore in line-number Basic, I dare you.

      --

      Forget magic. Any technology distinguishable from divine power is insufficiently advanced.

    8. Re:Eh? by nebosuke · · Score: 1

      Perhaps not basic, but OcaML or lisp wouldn't be too much of a stretch.

    9. Re:Eh? by Anonymous Coward · · Score: 0

      You are correct, sir. The editor note at the end of the article confirms it.

    10. Re:Eh? by Gideon+Fubar · · Score: 1

      in other news, for loops sometimes use iteration.

      --
      http://www.xkcd.com/354/
    11. Re:Eh? by Bega · · Score: 1

      I feel that the article itself is procedurally generated.

      Oh fuck it, the whole site and its layout is procedurally generated with some odd seed that does not make any sense at all!

      --

      THIS IS THE INTERNET. PLEASE PICK UP YOUR SERIOUS BUSINESS SUIT AT THE FRONT COUNTER.
    12. Re:Eh? by bateleur · · Score: 1

      Now that would be news worthy of Slashdot... if Spore turned out to be written in OCaML!

      Or even better, some pure lazy functional language. That way, the game doesn't even have any art in it until you start playing and look at something!

  7. Crap alert by VeryProfessional · · Score: 4, Informative

    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.

    1. Re:Crap alert by Scotland+Tom · · Score: 1

      Indeed. The author of this article seems to have only the most rudimentary understanding of procedural programming. The attempts to explain the process in a simplified manner are feeble, lack insight, and are generally not very informative.

    2. Re:Crap alert by jaguth · · Score: 1

      I agree. For example, the editor says that the PS1 has games with 4 CDs... Lets take FF7 as an example: its not because the code is so huge to fit on one CD, its because the FMV scenes are large files which take up the majority of the space on the CD.

    3. Re:Crap alert by el_womble · · Score: 3, Insightful

      I think the author was confused. What they actually meant was functional programming. In fact I know the author was confused. How did they not make the connection that the 4 CD PS1 games had a lot of FMV?

      An excellent example of a little knowledge doing a lot of harm. It reads well enough that my non coding tech friends could read it, and then tell me I'm a fuck-gnut for not using a procedural language...

      Still, I'm going to assume that the eds know what they're doing and are actually just trying to get an argument blaring on this no news sunday.

      --
      Scared of flying, pointy things snce 1979!
    4. Re:Crap alert by geeknado · · Score: 5, Insightful
      I think that part of the issue here is that they've both confused the concept of procedural programming(and I'd be shocked if most games weren't programmed procedurally) with procedural generation then proceded to give a better description of the first.

      It's not that they're wrong that Spore is innovative this way(assuming it's ever more than vaporware), but rather that they do an exceptionally poor job of describing the way it works...The distinction here isn't between gated logic trees and 'actions', it's between static and dynamic content.

    5. Re:Crap alert by Anonymous Coward · · Score: 0

      I wondered at first if the article was a joke, but it might really just be a misunderstanding by a neophyte. But I remember being confused when I first got a copy of turbo c++ if the .obj files had anything to do with object oriented programming...

      This article reads like the same level of "not getting it" that I displayed in that case.

    6. Re:Crap alert by Lemmy+Caution · · Score: 1

      Agreed, the original article is crap.

      What is "procedural" about Spore is its game and interface design. Much of it is conceptually procedural. It is comparable to the sort of parameterization that you might find in a 3D design tool (Solidworks, Inventor, etc.)

      I'm almost certain that it is implemented mostly in C++ and other modern, mostly OO languages.

    7. Re:Crap alert by Anonymous Coward · · Score: 0

      I agree whole-heartedly. This guy has NO idea what he's talking about. It was amusing though, and makes me feel slightly more secure in that there's one less person who can't do my job. :-)

      Just about anyone could tell you that most of those "2-3 DVD" games were mostly made up of game "assets" like textures, map data, and (too many) cut scenes.

    8. Re:Crap alert by kabz · · Score: 1

      It would read a lot better if he had said 'procedural rendering'. In that case, it conveys the idea that code is used to generate what you see, rather than fixed data files.

      Here's a Wikipedia linkie. And yup, you've guessed it, there's a picture of Spore.

      --
      -- "It's not stalking if you're married!" My Wife.
    9. Re:Crap alert by TrappedByMyself · · Score: 2, Funny

      This article makes baby von Neumann cry

      --

      Help me take back Slashdot. When did 'News for Nerds' become 'FUD and Conspiracy Theories for Extremist Nutjobs'?
    10. Re:Crap alert by Tim+Browse · · Score: 1

      The author of this article seems to have only the most rudimentary understanding of programming.

      Fixed!

    11. Re:Crap alert by noidentity · · Score: 1

      SimCity even had this in its map selection screen. Three-digit number selects a map, very likely just the seed to the random number generator used to generate random terrain. Some computer card games have similar, allowing replay of a given hand.

    12. Re:Crap alert by shadowcode · · Score: 1

      Ironically, that WikiArticle is a mess as well. Just guess why it has a list of games. Take a closer look :).

    13. Re:Crap alert by init100 · · Score: 2, Informative

      I think that part of the issue here is that they've both confused the concept of procedural programming(...) with procedural generation then proceded to give a better description of the first.

      Exactly. And procedural generation isn't hard to understand (at least conceptually), he could just have given a brief on fractals, since they are a well-known example of procedural content generation. A tiny piece of code generates a nice-looking picture. And regardless of how much you zoom in, it never becomes pixelated, as new content is generated on the fly. The Mandelbrot set is an excellent example.

    14. Re:Crap alert by tepples · · Score: 1

      I agree. For example, the editor says that the PS1 has games with 4 CDs... Lets take FF7 as an example: its not because the code is so huge to fit on one CD, its because the FMV scenes are large files which take up the majority of the space on the CD. But if the cut scenes had been rendered with the game engine instead of being FMV, like the cut scenes from FF1 through FF6, then that would have been "procedural".
  8. Horrible article by Anonymous Coward · · Score: 0

    Please tell me this article is just a joke that I'm not getting.

    Horrible, horrible article with no connection to reality.

  9. hype by BrandonBlizard · · Score: 2, Insightful

    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.

    1. Re:hype by BarneyRubble · · Score: 1

      Yes, I think it might end up being a technically brilliant but maybe just not engaging/fun to play.
      Of course like most of the discussion about spore at the moment this is just wild speculation.

  10. Is this story a joke? by Anonymous Coward · · Score: 0

    So Spore is programmed in C/C++. This is surprising... how?

  11. Inifinite Creates? by eldavojohn · · Score: 5, Insightful

    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 word infinite gets abused quite a bit.

    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.
    1. Re:Inifinite Creates? by Anonymous Coward · · Score: 0

      (said while looking at Slashdot comments)

      "My God, it's full of fussy math dorks!"

    2. Re:Inifinite Creates? by splortnik2003 · · Score: 1

      It's a dumb article, but this is also a dumb nitpick.

      Pretty much any game without a clock allows an "infinite number of variations in gameplay". "Rock-scissors-paper" allows an an infinite # of possible outcomes (since you could tie an unbounded # of times before someone wins).

    3. Re:Inifinite Creates? by Anonymous Coward · · Score: 0

      Pretty much any game without a clock allows an "infinite number of variations in gameplay". "Rock-scissors-paper" allows an an infinite # of possible outcomes (since you could tie an unbounded # of times before someone wins). Sit down before you hurt yourself, there.

      It has three outcomes that change the state of the game. You win, your opponent wins or you tie. Then the game ends and starts over.

      Three falls a bit short of infinity. To say that any number of ties could occur does not change the state of the game. It returns you to the beginning state every time you tie. What has changed in the game when you tie?
    4. Re:Inifinite Creates? by Anonymous Coward · · Score: 0

      z = z^2 + c

    5. Re:Inifinite Creates? by splortnik2003 · · Score: 1

      Don't be an ass. If you want to claim a game of ten-thousand ties followed by paper-beats-scissors is identical to one with no ties, you can. To me, in the spirit of the example, this would be a different gameplay experience. Here's another example: flip a coin. Heads, win $1; tails lose $1. Play as often as you like. Outcome is a random variable with an infinite domain. Jackass.

    6. Re:Inifinite Creates? by splortnik2003 · · Score: 1

      *cough*

      s/domain/range/

    7. Re:Inifinite Creates? by Anonymous Coward · · Score: 0

      Infinite creates:

      Theory: Since virtual memory is not infinite, we need to make sure we clean up any object we create. This will give the illusion of infinite creates.

      Assumption: Once this program is run it can never be stopped. This way its always approaching infinity. I hope you have Battery Back-ups.

      #define EPIC_FAIL 0xFBAD

      struct CObject //stupid retarded silly useless object with minimum size sizeof(int).
      {
          int some_number;
      }

      void infinite_creates()
      {
          CObject *pobj = 0;
          while(1)
          {
              if(!pobj)
              {
                  pobj = new CObject;
                  delete pobj;
                  pobj = 0;
              }
              else throw("hahahahahaah");
          }
      }

      int main(int argc, char **argv)
      {
          try
          { //the longer this runs, the more we approach infinity:
              infinite_creates();
          }
          catch(char *msg)
          { //nothing to clean up..
          } //include this so that we meat standards, even though we //dont plan on getting here..
          return EPIC_FAIL;
      }

    8. Re:Inifinite Creates? by Original+Replica · · Score: 1

      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?

      Yes. Because for there to be an infinite object that would necessitate that the Universe be infinite. Now I am aware that the infinite object should completely fill the infinite universe.
      However infinite + 1 = infinite. So in that "+ 1" there is room for me. It could be argued that there should also be an infinite amount of empty space left over in the infinite universe, but once we get there in the discussion, I start to think that, outside of a philosophical context, any use of infinity is a placeholder for a very high value that we are ignorant of. We need a new term for that, how about: "plenitudinous"

      --
      We are all just people.
    9. Re:Inifinite Creates? by nschubach · · Score: 2, Funny

      Sure, it's infinite until the computer tracking your winnings hits it's floating point limit, throws an exception and crashes losing all your winnings.

      --
      Every time I start to have faith in humanity, I ruin it by driving to work between 7 and 8 am.
    10. Re:Inifinite Creates? by Anonymous Coward · · Score: 0

      Except that rock-paper-scissors is not a computer game. Put it on a computer, and it now has a finite number of different outcomes - even if you make the (silly, in my opinion) assumption that a tie is not an outcome in and of itself - because you have to keep track of the number of ties somewhere. It's easy to define a "game" that has an infinite number of outcomes/possibilities - just use a continuum somewhere. Picking your character's hair color? Pick any color that exists - there are infinitely many of them. When you put this in to computer program form though, you're limited to 2^24 colors (by your monitor), or some absurdly-large-but-still-finite number of colors by your computer's storage.

    11. Re:Inifinite Creates? by OpCode42 · · Score: 2, Insightful

      Time is infinitely divisible

      This may not be as true as you think. Planck time is the shortest amount of time that has any meaning.

    12. Re:Inifinite Creates? by ClassMyAss · · Score: 1

      Anybody that's using floating point variable to represent real, actual money should be shot in the buttock. Either use fixed point (in which case I suppose your criticism still holds) or a linked list to represent the decimal digits that you are concerned with (in which case you're only limited by the amount of memory on the computer, which would almost certainly be large enough to hold whatever number represents the winnings by the time you've actually achieved them, assuming we can hot-swap memory chips every couple thousand years or so while you keep flipping that coin). Yup, you've got to deal with arithmetic yourself, but when the alternative is that dollars and cents start disappearing in large accounts because your number format has crappy precision, there's really no option.

    13. Re:Inifinite Creates? by Fractal+Dice · · Score: 4, Insightful

      The word infinite gets abused quite a bit.

      I agree ... but you really need a good catchy word for "cannot have all possible states represented even if you harnessed every grain of sand in the universe".

      According to one of the talks, a Spore world is about an 80K data structure when compressed. 2^640000 is a really big number. My fuzzy back-of-the-napkin count gives something like 2^240 hydrogen atoms in the universe. I think hard math either needs to learn to share the word infinite or it had better file a trademark :)

    14. Re:Inifinite Creates? by QuoteMstr · · Score: 1

      Of course we're dorks. After all, that's why we're here!

    15. Re:Inifinite Creates? by splortnik2003 · · Score: 1

      Ok - that's a reasonable statement, but I still don't understand the intent of the nitpick.

      There's a finite amount of information that can be stored in the matter that makes up your brain and mine. Does this mean we can't discuss infinities reasonably? (Perhaps not, but I doubt this is the reason.) I'm not sure the difference between a brain and a computer is meaningful, when the point of contention is that a computer game can't convey the idea of the infinite.

    16. Re:Inifinite Creates? by Anonymous Coward · · Score: 0

      Actually I think you are confusing mass and volume.

    17. Re:Inifinite Creates? by TheRaven64 · · Score: 2, Insightful

      If you're representing money, and doing anything important with it, you should use a binary coded decimal. This will let you maintain a fixed number of decimal significant figures of accuracy, which is generally what is needed. If you're using Java or COBOL, the language / standard library can handle arithmetic for you.

      --
      I am TheRaven on Soylent News
    18. Re:Inifinite Creates? by Wavicle · · Score: 1

      No, you are really being an ass because you are misrepresenting what was said for the sake of creating an easier to argue point. In the case of Rock-Paper-Scissors there are exactly three states and two inputs for the game. The "spirit of the example" is a strawman you have unnecessarily created since the original post was referring to variety of game states or objects, not variety in play time.

      --
      Education is a better safeguard of liberty than a standing army.
      Edward Everett (1794 - 1865)
    19. Re:Inifinite Creates? by Anonymous Coward · · Score: 0

      You are right. I was thinking volume, when the GGP said infinite mass without gravity. (though now I am now quite confused by the GGP's question) Thank you AC. Your polite accuracy is plenitudinous.

    20. Re:Inifinite Creates? by Acer500 · · Score: 1

      Well... they could use the googol :P

      Another nice "number" is the Aleph but it doesn't fit this problem.

      http://en.wikipedia.org/wiki/Aleph_number

      --
      There are three kinds of lies: lies, damned lies, and statistics.
    21. Re:Inifinite Creates? by Anonymous Coward · · Score: 0

      Dear lord...you wrote all that over a word in the summary (that wasn't even edited properly)? I bet you are the type that answers rhetorical questions too.

    22. Re:Inifinite Creates? by splortnik2003 · · Score: 1

      I was a little irked at the AC's insulting language.

      As to your point; certainly the "spirit" of the discussion is about representing infinite choices in a computer game and its relation to user experience. If you don't think RPS is a good example, I disagree, but that's fine. My argument would be that the "outcome" of interest includes the game-play in a video game, not just the final result. If you don't like RPS, I offered a different coin-flipping example in the next reply in which a finite number of actions by two players in a repeated game leads to an infinite outcome space. If your point is simply that "infinity" can't be stored on a computer, I'd argue it's a pretty silly argument. A computer can just as we do, as a symbol, not by storing a finite number that somehow == +infty.

      So, I think no strawman here. If you still feel to the contrary, well, hell, this is Slashdot, and this is about all the effort I'm going to put into it. (and re: calling me an ass, go choke on a bucket of cocks you slobbering piece of ass-fat.)

    23. Re:Inifinite Creates? by Rakishi · · Score: 1

      We can discuss the CONCEPT of infinity but we can never actually have infinity of anything. That is the difference. There is an infinite number of real number for example but a human mind can only store (in their full representation) a finite number of them.

    24. Re:Inifinite Creates? by splortnik2003 · · Score: 1

      Exactly! I guess my counter-nitpick to the original content was that you don't have to store infinite states to allow the user an infinite set of states to choose from.

      (Hmm. Maybe maybe as a caveat I'd add we could have an infinite number of infinitesimal divisions of something and still have a finite thing, but insofar as our understanding of the world is that it isn't infinitely divisible, this isn't much of a caveat. :) )

    25. Re:Inifinite Creates? by advance512 · · Score: 5, Funny

      Good god, you silly putties...

      Why do you bother typing in these comments? No one thinks you're any smarter now than they did before reading your message. If anything, they think you don't have a sense of humour.

    26. Re:Inifinite Creates? by Torvaun · · Score: 1

      Wrong.

      Let z1 = z^2 + c.

      -Mandelbrot

      --
      I see your informative link, and raise you a pithy comment.
    27. Re:Inifinite Creates? by advance512 · · Score: 1

      Good god... so many words, so little meaning! Entropy suffers!

      I will write just one word, which is my reply to your message:

      DUH!

    28. Re:Inifinite Creates? by Rakishi · · Score: 1

      I guess my counter-nitpick to the original content was that you don't have to store infinite states to allow the user an infinite set of states to choose from. I disagree. You need to somehow store the state that you choose. Assuming they are distinct there are only a finite number of different objects that can be stored in a computer system in a given finite amount of time. As a result there is an inherent limit on what you can choose from since in the end you only have a finite number of things to choose from.

      We can talk about real numbers but we can only ever choose from a finite set of those real numbers.
    29. Re:Inifinite Creates? by Anonymous Coward · · Score: 0

      I agree ... but you really need a good catchy word for "cannot have all possible states represented even if you harnessed every grain of sand in the universe". What's wrong with "very many"?
    30. Re:Inifinite Creates? by splortnik2003 · · Score: 1

      Yes, that's true. But we're discussing the difference between what can be experienced in a video game and outside of one (for example, in a nice discussion on Slashdot.) Not to put too fine a point on this with the blunt instrument of my mind, but there's no reason to apply your logic only to video games. We live for a finite period of time. If I try to write down a real number, there is a finite set I could actually finish writing in my lifetime. And yet I'm perfectly untroubled by saying I am capable of choosing an arbitrary Real number, which is certainly an infinite set. I think the distinction for the purpose of playing a video game is unimportant. (Or perhaps we've just disproved the axiom of choice.)

    31. Re:Inifinite Creates? by Myopic · · Score: 1

      In CS class I learned how "infinite" data structures are possible in lazy languages -- not infinite in memory, but infinite in theory.

      Still, you're right that the author didn't use the word right.

    32. Re:Inifinite Creates? by Anonymous Coward · · Score: 0

      I'm not sure I understand. It seems like there are approx 2^82000 possible states for a Spore world (82000 is approx. 8 * 80 * 1024). Now, my understanding of physics is pretty limited, but it seems to me that 2^240 hydrogen atoms could be in a lot of states.

      In other words, I think you are erroneously comparing the number of possible Spore world states to the number of bits in the universe, rather than to the number of "universe states".

      -- Armchair physicist

    33. Re:Inifinite Creates? by Anonymous Coward · · Score: 0

      That is the worst explanation I have ever heard.

    34. Re:Inifinite Creates? by Millenniumman · · Score: 1

      You forgot a semicolon at the end of the definition of CObject.

      --
      Stupidity is like nuclear power, it can be used for good or evil. And you don't want to get any on you.
    35. Re:Inifinite Creates? by Ohreally_factor · · Score: 1

      I thought Planck Time was when you knocked of work, stopped off at the bar on the way home, and tossed down a few icy cold Planck Beers.

      Life is variable. Your beer shouldn't be. Planck Beer.

      --
      It's not offtopic, dumbass. It's orthogonal.
    36. Re:Inifinite Creates? by Wavicle · · Score: 1

      Your entire argument is that any game not limited by time is infinite. The problem with this is two fold: with a finite number of states this implies that you go through the same sequence of states an infinite number of times; and any game A (where A is a set of finite states that finishes in finite time) can be made into an infinite game A' by the transformation A' = A A'. So let's backup and look at the two statements argued against in the OP:

      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?

      and

      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.

      Both of those statements involve a problem domain independent of time. You cannot have "an infinite amount of different creates created" because the computer has finite memory. Even with an infinite amount of time, you will exhaust the possible permutations long before then. Same argument for "information to interact in near infinite ways." Again, the computer is a finite turing machine - you will eventually exhaust all the permutations of the states that are possible - unless you consider a repetition of the same permutation to be a different interactions. Clearly the original writer didn't think so or he wouldn't have said "near infinite."

      --
      Education is a better safeguard of liberty than a standing army.
      Edward Everett (1794 - 1865)
    37. Re:Inifinite Creates? by MBraynard · · Score: 1

      Aren't there multiple worlds in Spore? How do you factor that in?

    38. Re:Inifinite Creates? by splortnik2003 · · Score: 1
      Ok, forget it.

      any game A (where A is a set of finite states that finishes in finite time) can be made into an infinite game A' by the transformation A' = A A'. You've either called A a game and a very large set of games, and suggested that some mystery operation on two finite games makes them an infinite game, or you're abusing notation in a way I find totally impenetrable. Either way, that's enough for me.
    39. Re:Inifinite Creates? by splortnik2003 · · Score: 1

      Aha. I did read that hastily and uncharitably.

      Anyway, I don't see this going anywhere interesting. If you're claiming that the only interesting counterpoint is one that involves storing an array of infinite dimensions on a computer, I suppose I scratch my ass and agree. If your point is that, as the OP mentioned, there's something about computer programs (unlike the physical world) that limits one's ability to communicate the idea of infinity, I suppose I scratch my ass and disagree. Either was = ass scratched + me done.

    40. Re:Inifinite Creates? by Control+Group · · Score: 1

      I don't think this claim can ever be made when a digital machine is being used.

      This statement is accurate, but would be just as accurate (and more complete) if you substituted "the universe" for "a digital machine."

      --

      Reality has a conservative bias: it conserves mass, energy, momentum...
    41. Re:Inifinite Creates? by Anonymous Coward · · Score: 0

      The word infinite gets abused quite a bit.

      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?


      From an information theory perspective, it's actually relatively easy to create an infinite-possibilities procedural creation tool.

      You need two things:

      a) a source of quantum randomness (radioactive decay if a good one. So are those thermal runaway-based RNG chips)
      b) a turing-complete procedural creation engine

      There's probably something that's not turing-complete that will work too. It really just needs self-referentiality...

      addSubworld(region r) {
              region[] quads = r.splitIntoQuads();
              integer i;
              for(i=0; i4; i++) {
                      populateRegion(quads[i]);
                      if(rnd() 0.5) {
                              addSubworld(quds[i]);
                      }
              }
      }

      populateRegion(region r) { // add static stuff appropriate to the scale. So 1m might get a fire hydrant, 100m a building, an 10 cm an ant
      }

      This call structure, assuming populate region does a bunch of the right kind of random stuff, can be mathematically proven to have the possibility to create every possible subregion. Since subregions can be on any scale, if the things inside them are available at all scales (that is, you don't have some "atom" object and nothing smaller) this will provide an infinitely variable world.

      The only limit then is how many bits you can store/process at once - in which case the algorithm could be said to be infinite while the implementation is finite (which is the best kind of infinite you're likely to get out here in the real world assuming you don't have a black hole in your pocket)

    42. Re:Inifinite Creates? by Anonymous Coward · · Score: 0

      > 2^640000 is a really big number

      2^640k K ought to be enough for anybody.

    43. Re:Inifinite Creates? by CandyMan · · Score: 1

      Calling 2^640000 an "inexhaustible" number instead of an "infinite" one has the advantage of being literally true as well as evocative.

      --
      http://barrapunto.com/ - News for nerds, en español
  12. Procedural... by Anonymous Coward · · Score: 0

    Maybe the author is not using the right word, because every games (before the wide adoption of object oriented programming), I say every games, were using procedural programming.

    1. Re:Procedural... by Tim+Browse · · Score: 1

      Another good misconception from the article:

      The basics of sequential programming are all object oriented.

      I checked my mind. It was boggling.

    2. Re:Procedural... by EVil+Lawyer · · Score: 1

      Guys,

      It's okay. This is Web 2.0 and stuff doesn't have to make sense any more.

  13. The obvious by Anonymous Coward · · Score: 2, Insightful

    The article author has no clue.

  14. procedural techniques and boredom by Anonymous Coward · · Score: 0

    Despite the hype, spore is far from the first game to use this sort of thing. Back in the 8-bit and 16-bit days, it was, well, not common, but not unheard of. Games like the classic "Sentinel" used fractal landscape generators to have 1000s of levels on a 64k C64, "Frontier" used it to have a galaxy of worlds on the Amiga, etc.

    Trouble was, such games tended to begin to look the same after a while, despite "near infinite" variations within the limits of the procedural generation algorithm. Already, I begin see that in spore. Yeah, your creations are unique. Like billions of others are.

    Spore does more with the technique certainly. Will spore stave off bordeom longer than a procedurally generated C64 game - undoubtedly. But the boredom begins to set in after the space of possibilities has been delineated, not when the space has been explored exhaustively (this is common in programming itself too, as I think Paul Graham has pointed out when writing about Lisp). The former depends on the complexity of the procedural generation scheme, and spore's doesn't look infinite to me (though maybe it's extensible).

  15. Ad for Bona Fide Reviews by thegnu · · Score: 5, Funny

    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.
    1. Re:Ad for Bona Fide Reviews by fractoid · · Score: 1

      Slashdotter: You got Perl and girls? *CLICK*

      --
      Rampant carbon sequestration destroyed the Dinosaurs' tropical paradise. I'm here to help repair the damage.
    2. Re:Ad for Bona Fide Reviews by Anonymous Coward · · Score: 0

      Perl == Spaghetti Code;

    3. Re:Ad for Bona Fide Reviews by Anonymous Coward · · Score: 0

      I think you might be mistaken.
      Perl == Line noise;
      In the ways of Perl the two may be equally effective conditions. Said by a lover of the noise of the line. If only the keyboard had less alphanumeric keys in my way slowing down my symbolic entries.

  16. Procedural Generation? by Asgerix · · Score: 5, Informative

    Perhaps the author is confusing Procedural Programming with Procedural Generation?

    --
    Life is wet, then you dry.
    1. Re:Procedural Generation? by mblase · · Score: 1

      Perhaps the author is confusing Procedural Programming with Procedural Generation?

      He is (and he's the submitter, of course), and he amended a note to the bottom of the article saying so.

      It's still bloody hard to read, though.

    2. Re:Procedural Generation? by khuber · · Score: 1

      Yes, procedural like "procedural textures" not like using functions. Please stop posting about OO vs procedural programming.

    3. Re:Procedural Generation? by Anonymous Coward · · Score: 0

      It looks to me like the author means functional programming, not procedural. He got it backwards.

  17. want to be "evolutionary"? by SolusSD · · Score: 5, Interesting

    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.

    1. Re:want to be "evolutionary"? by Anonymous Coward · · Score: 0

      >Haskell (a programming language) is a good place to start.

      I tried Haskell , but all the output kept complimenting my mother, June and insulting my younger brother, Theodore.

      Mark Edwards
      --
      Proof of Sanity Forged Upon Request

    2. Re:want to be "evolutionary"? by SolusSD · · Score: 1

      ... i may be wrong, but i (think) you are referring to a sitcom.

    3. Re:want to be "evolutionary"? by $RANDOMLUSER · · Score: 1

      "Gee Wally, that's a pretty obscure reference in this day and age."

      --
      No folly is more costly than the folly of intolerant idealism. - Winston Churchill
    4. Re:want to be "evolutionary"? by chromatic · · Score: 1

      ... it should be fairly easy...

      Ahh, so NP means No Problem!

    5. Re:want to be "evolutionary"? by cerberusss · · Score: 1

      That's right! No fancy-schmancy education, everything I learned about programming, I learned from IRC abbreviations!

      --
      8 of 13 people found this answer helpful. Did you?
    6. Re:want to be "evolutionary"? by Chibi+Merrow · · Score: 1

      Or we could save the time we spend trying to wrap our brain around a weird way of doing things, actually get some damned WORK done in a useful language, and then knock off thirty minutes early so we can grab a beer on the way home.

      I like my way better.

      --
      Maxim: People cannot follow directions.
      Increases in truth directly with the length of time spent explaining them
  18. All you need to read is this sentence... by Anonymous Coward · · Score: 5, Insightful

    "The basics of sequential programming are all object oriented."

    That pretty much captures how well the author understands programming.

    1. Re:All you need to read is this sentence... by Anonymous Coward · · Score: 0

      Exactly. I thought procedural programming was what we were all using before we started using OO programming. And in the explanation he lists actions in the list of objects. I think the actions would usually be methods available to certain objects.

    2. Re:All you need to read is this sentence... by Krilomir · · Score: 2, Interesting

      Wasn't the Firehose supposed to weed out stuff like this? What went wrong?

    3. Re:All you need to read is this sentence... by LindaMack · · Score: 1

      Exactly. The way he describes the mysterious Action phenomenon, he could just as well be talking about some kind of object that deals with actions. As others have pointed out, he was probably referring to procedural generation but doing a very poor job of it. Indeed, my brain still hurts from trying to parse this bullshit.

      --
      You will be assimilated

    4. Re:All you need to read is this sentence... by Anonymous Coward · · Score: 1, Funny

      What went wrong?

      Have you ever been part of a thread involving three or more slashdot users?

      Ladies and gentlemen, I present exhibit 'A'.

    5. Re:All you need to read is this sentence... by Ant+P. · · Score: 1

      The same thing that went wrong with Digg, except the Slashdot Editing was also kept.

  19. Vaporware by IdahoEv · · Score: 2, Insightful

    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.
    1. Re:Vaporware by smallfries · · Score: 1

      Nah. Spore will come out sooner or (probably) later. Then it will feel much more like Black and White...

      --
      Slashdot: where don knuth is an idiot because he cant grasp the awesome power of php
    2. Re:Vaporware by FuturePastNow · · Score: 1

      I can think of one big difference- I've never seen a video of DNF gameplay, while there's a new Spore demo vid every few months.

      --
      Give a man fire, and you warm him for the night. Set a man on fire, and you warm him for the rest of his life.
    3. Re:Vaporware by MindStalker · · Score: 3, Informative

      Oh come on, its only been 2 years. A lot of games have taken 3 years sense their first showing to the public till release. DNF is going on 11 years. No comparison really.

    4. Re:Vaporware by TheRaven64 · · Score: 1
      Videos of DNF were released in 1998 and 2001. The most recent one I saw was based on the Max Payne engine. Before then it had been based on the Quake II engine, and before that the Unreal engine. The switch to the Max Payne engine seems not to be mentioned in the Wikipedia article, so I might have imagined it.

      When Duke3D was released, the engine was a fair bit behind its main competitors but it was fun because of the detailed artwork (especially the huge, complex levels) and the main character's one-liners. No one really cared about the graphics. It's a shame they didn't realise this with DNF.

      --
      I am TheRaven on Soylent News
    5. Re:Vaporware by Fractal+Dice · · Score: 1

      Someone with a subscription needs to tag this story Vaporware.

      I'm not sure which would be worse ... to nukem (is that a verb?) or to "Master of Orion 3"-em (wonderful ambition but painfully dull to play).

      Spore seems like one of those projects that, if it remains vapor too long, should spark some "Linus of gaming" to start an open-source take on the whole thing. What I love about the concept of Spore is that its so modular - add some standards and it should be possible to share all the bits and pieces of art and simulation between entirely different games. Imagine importing a spore model into an RPG or a FPS and having instant art? It feels like it should open the floodgates on a whole new generation of collaborative game/world design.

    6. Re:Vaporware by Movi · · Score: 2, Interesting

      Wrong. Duke Nukem Forever was first started using a heavily modified Quake 2 Engine(much like in spirit of Half-Life which used a heavily modified Quake 1 Engine), then near the end of development cycle a switch to the Unreal Engine was decided, with most of the work done scrapped.
      By the time they were anywhere close to beeing done UT2k3 was out, so they decided to use Unreal Engine 2. As far as i know they either use the updated Unreal 2 Engine (and inherited the fixes from UT2k4) or are working with Unreal Engine 3. But then again, this is Duke Nukem Forever and Ever, so who knows? Maybe they're waiting for ID Tech 5 to switch? ;]

    7. Re:Vaporware by Anonymous Coward · · Score: 0

      "Someone with a subscription needs to tag this story Vaporware."

      Why does it need someone with a subscription? Everyone can tag stories... just press on that little arrow on the left of the tags - or wouldn't those not make the "frontpage" of the tags?

    8. Re:Vaporware by br14n420 · · Score: 1

      I agree. Spore is getting a lot of attention for no real reason, except that his house is in good with a few folks in the nerd media. Expect to see more artificially generated controversy, quotes, opinions, and lots of +5 Insightful / -1 Troll curves going back and forth as people get wrapped up in the hype.

    9. Re:Vaporware by TheLink · · Score: 2, Funny

      Wrong? He did say quake 2 first then unreal.

      Heavily modified or not it's not really that big a deal since it's heavily not here yet ;).

      --
    10. Re:Vaporware by PopeRatzo · · Score: 1

      Speaking of Black and White, wasn't there supposed to be a new version by now? I've still got my B&W datafiles waiting on my disk because we were supposed to be able to migrate them to the new version.

      --
      You are welcome on my lawn.
    11. Re:Vaporware by Anonymous Coward · · Score: 0

      wouldn't those not Headache!
    12. Re:Vaporware by JDevers · · Score: 1

      Didn't Black and White 2 come out like a year and or so ago?

    13. Re:Vaporware by PopeRatzo · · Score: 1

      Yeah, right B&W 2 was cool, but there was something else supposed to follow it. Some "Battle of the Gods" or something. Lionshead was talking about Spring, but I haven't heard anything yet. There were some screenshots, but I think those have disappeared.

      --
      You are welcome on my lawn.
  20. To be released simultaneously... by Arthur+Grumbine · · Score: 0, Redundant

    ...with Duke Nukem Forever.

    --
    Now that I think about it, I'm pretty sure everything I just said is completely wrong.
  21. That is NOT procedural programming by Bin+Naden · · Score: 1, Redundant

    What the writer is describing is NOT procedural programming but rather some sort of event-driven programming.

    --
    There should be a "-1:Groupthink"
  22. procedural generation anyone? by Xavier+CMU · · Score: 1, Redundant

    The article isn't even titled properly, the technique that spore uses is not procedural programming, it's procedural generation, which is a completely different concept http://en.wikipedia.org/wiki/Procedural_generation

    1. Re:procedural generation anyone? by thefear · · Score: 4, Funny
      From TFA:

      So why can't this be used in games like spore? Well in games with so many options, the IF/THEN list becomes so long it becomes scrambled. Several calls to previous points in the list are made and the whole thing gets disorganized
      Its not just the title, the entire article is written like that.
      --
      :(
    2. Re:procedural generation anyone? by EnsilZah · · Score: 1

      My god, you're using goto statements!
      You fool ,you've doomed us all!

    3. Re:procedural generation anyone? by Anonymous Coward · · Score: 0
      And this:

      To explain this fuller, their basic building block is the object, or a thing.

      Him card read good.
  23. Article Sucks by jlarocco · · Score: 5, Insightful

    That article is terrible. It reads like a 9 year old trying to explain something he doesn't understand.

    1. Re:Article Sucks by pimpimpim · · Score: 2, Insightful

      Congratulations! You just summarized 99% of the internet!

      --
      molmod.com - computing tips from a molecular modeling
  24. Functional Programming by ucblockhead · · Score: 1

    Which itself is hardly revolutionary given that functional programming has been around for four decades.

    The comments about Civilization are particularly annoying.

    --
    The cake is a pie
  25. Not really procedural programming by markov_chain · · Score: 3, Insightful

    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!
  26. Ever wonder about what? by Anonymous Coward · · Score: 0

    Ever wonder what the hell "Spore" is in the first place? Slashdot articles won't help you.

  27. Procedural Programming ? by jfclavette · · Score: 0, Redundant

    Heh. The author probably meant procedural content creation, but even that is a stretch. There's certainly procedural animation too...

  28. wtf by loconet · · Score: 1

    wtf is going on here? Did he just explain functions?

    --
    [alk]
  29. Reminds me of Elite... by tcopeland · · Score: 3, Informative

    ...that is, this game which had an "infinite" universe. The book Infinite Game Universe has some good discussions of this sort of thing, too.

    1. Re:Reminds me of Elite... by Anonymous Coward · · Score: 1, Informative

      Elite had hundreds of systems on something like four galactic maps, but it wasn't infinitely generated. Usually one plied a route between just two or three systems and ground that over and over. It wasn't nearly as mission-oriented as elite 2 which had you running around all over the place. Far as I know, Elite just had the Constrictor mission (and not on all ports of the game), and even that chase was maybe a half-dozen systems.

    2. Re:Reminds me of Elite... by tcopeland · · Score: 1

      > Elite had hundreds of systems on something like four galactic
      > maps, but it wasn't infinitely generated.

      Yup, I think the trick was that it was generated with fractals, which was why they could have so many systems and planets and such in 16K of memory.

      There's a little blurb about Elite in the preface of Infinite Game Universe; it's kind of funny when it says something to the effect of "a DOOM WAD file can be as large as 2MB"! Now we can generate those same WAD files with interpreted scripting languages, and a 2 MB download takes a few seconds...

    3. Re:Reminds me of Elite... by Blakey+Rat · · Score: 1

      Mission: Thunderbolt was always my favorite. Not just the maps varied between plays, but also the creatures you encountered and when you encountered them. You could play a game and not see a single Icky Lump but find a Disruptor Pistol, then play a new game and see thousands with no Disruptor Pistols in sight.

    4. Re:Reminds me of Elite... by mcvos · · Score: 1

      Elite had hundreds of systems on something like four galactic maps

      8 galaxies, and 1000 planets per galaxy. At least on my 32K Acorn Electron. Ofcourse there was no need whatsoever to actually visit all those planets and galaxies, but it was nice to know they were there.

  30. He doesn't. And this isn't news. by Arthur+Grumbine · · Score: 1

    This a some crappy attempt to spam /. and I don't know how it got through.

    --
    Now that I think about it, I'm pretty sure everything I just said is completely wrong.
  31. Functional by hey · · Score: 5, Interesting

    *Functional* programming sometimes seems like magic. Maybe that's what they are talking about.
    Its not new but still cool.
    http://en.wikipedia.org/wiki/Functional_programmin g

    1. Re:Functional by sholden · · Score: 2, Informative
    2. Re:Functional by MemoryDragon · · Score: 1

      Ahem functional programming is programming rolled back into the sixties, every sense of modern system architecture (aka namespaces, procedures as void functions, objects etc...) being killed and the systems designed with the possibilities you had in the sixties but with 10 times the hype behind it.

      Btw. did it ever come to your senses why so many functional languages once they moved out of the ivory tower have added all those constructs and then basically ended up as yet another oo language?

  32. The first thing I had to think about was: by sveard · · Score: 1

    How can anyone claim that procedural programming is better at generating dynamic content than object oriented programming? Then I realized this FA was BS.

  33. Not infinite, finite by Paralizer · · Score: 1, Redundant

    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? It's not possible to have an infinite amount of states in a finite state machine (like our turing machines).

    There will at most be 'a lot' of different combinations.
    1. Re:Not infinite, finite by OrangeTide · · Score: 1

      Exactly. to have an infinite amount of states takes an infinite amount of memory to represent the possible states. you're pretty much limited to less than 2^(2^32) states on a 32-bit machine. and in practice you'd never get anywhere near that.

      People don't realize that a computer is just a container for a state. all the abstract layers of software and OS and whatnot are just a mechanism to move it to the next state.

      --
      “Common sense is not so common.” — Voltaire
    2. Re:Not infinite, finite by MtHuurne · · Score: 1

      Actually, a Turing machine has an unlimited tape, so you can record an infinite number of states on it. For a physical computer, which has finite memory, you're right though.

  34. Yeah. IOW, this is a new low. by Concern · · Score: 4, Insightful

    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!
  35. This is ridiculous. by Anonymous Coward · · Score: 0

    How the fuck did this make the frontpage?

  36. Procedural Spam Marketing by Anonymous Coward · · Score: 0

    Procedural Spam Marketing FTW!

  37. Procedural programming by Z00L00K · · Score: 1
    Is something that has been in use a long time - so it's not new. Anybody familiar with the classic programming languages Basic, Pascal, C and many more can't help that they feel familiar here.

    Of course - since many today tend to do object oriented programming (for good and bad) the procedural programming may seem "fresh" for some.

    And there are other programming areas that can be considered too;

    --
    If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
  38. The review is by communications majors by whitroth · · Score: 3, Funny

    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

  39. Actually.. by ichigo+2.0 · · Score: 1

    I think the author meant infinite crates.

  40. I read the Fine Article by ratboy666 · · Score: 1

    3 times, and I still can't make sense of it.

    The author can't be talking about procedural programming in the classic sense. On a re-read, I suspect that "procedure" is somehow equivalent to "action". Especially the part about building weapons from components.

    The implication is that "Spore" (whatever that is) has a calculus of action. Which (almost) makes sense. I imagine (again, back to the weapon example), that a cartridge contains "x" grams of explosive, that yeilds a force, acting on the ballistic component. That force must be containable by the barrel chosen, or the weapon explodes. Accleration can be computed, influenced by barrel length, and destructive force computed.

    What I don't see is how these arbitrary physical limits are enforced. If they aren't, a handgun with the power of a howitzer could be constructed.

    --
    Just another "Cubible(sic) Joe" 2 17 3061
    1. Re:I read the Fine Article by doas777 · · Score: 1

      yep. the misnomers were great. as many others have pointed out, this is not in fact about Procedural programming, but about Procedural Generation of content. it's really just event-driven OOP, using complex object inheritance principals to meld and blend derived objects together into a new thing, with it;s own approaches to finite tasks. this gives you modularity, and an appearance of infinite combinations. amusingly enough, I had to write about genetic algorithms a few weeks ago for school, and I can see how you might go about "evolving" an "organism" (or a binary-serialized object) through selection, crossover, mutation, etc. but no, the components the writer mentions are objects with their own event handlers, formated in such a way that they can be melded together to perform complex actions. fun stuff. hope it comes out soon.

    2. Re:I read the Fine Article by init100 · · Score: 1

      As others have already stated, the big thing about Spore is that it uses procedural content generation for the majority of its content. The simplest examples of procedural content generation are fractals. A tiny piece of code generates an infinitely large image. Infinite in the sense that regardless of how much you zoom in, new details always appear, as the image is generated on the fly.

      Spore just builds upon this basic concept.

  41. Due date by ReallyEvilCanine · · Score: 3, Insightful

    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.

    1. Re:Due date by Eddi3 · · Score: 1

      Maybe that's *Why* it's getting withheld longer?

  42. Turing machines aren't finite state machines by Anonymous Coward · · Score: 0

    That's why the halting problem is undecidable.

  43. What?! by TheGeneration · · Score: 1

    What the hell is this article talking about? I can tell that the author either doesn't know how to program, or he doesn't know how to break it down into non-tech speak. Either way, the article doesn't make much sense.

    As for procedural programming... I'm not sure how it would be possible to write an interactive multi-player procedural program without using the concept of an object. Especially when there is customization at the level that Spore claims to have. I really think perhaps the author of the article doesn't understand the difference between an object's method, and a non-object procedure/function.

    --


    The Generation
    I'd say something witty here, but I'm not that bright.
    1. Re:What?! by init100 · · Score: 1

      The difference is that procedurally generated content is dynamic and always changing

      Not necessarily. The same input parameters to the content generator gives the same result every time. I'd say that the big difference is that the content itself is generated by code from a (comparably) small set of parameters, while with traditional content, most of it is manually created in a modeling tool and associated applications, specifying detailed information such as vertex coordinates and the color and transparency of every texel.

      As an example, think of the Julia set. Just one complex number as input gives a complete and consistent (i.e. not just a bunch of random pixels) image as a result.

    2. Re:What?! by Abcd1234 · · Score: 1


      As for procedural programming... I'm not sure how it would be possible to write an interactive multi-player procedural program without using the concept of an object


      While the article is pure nonsense, judging from the above comment, you don't seem to be much more educated on the topic. Unless you expand the term "object" to include C structs and basically any other form of data structure, the above statement is clearly flat out false. As an example, the Linux kernel doesn't use objects, in the traditional sense (constructs which combine state and actions, while allowing features such as encapsulation and polymorphism), and I don't think anyone would claim it's any less complex than "an interactive multi-player procedural program".

    3. Re:What?! by Ritchie70 · · Score: 1

      As for procedural programming... I'm not sure how it would be possible to write an interactive multi-player procedural program without using the concept of an object.

      I have to say that, upon reading this second paragraph, I had three thoughts.

      1. Either you're really young and have never actually seen a program of any size that was written in a non-OO language
      2. Or you're including traditional C "struct"s as objects
      3. Or you're a fool

      My current job is as the team lead of a group that maintains and enhances a large Unix-based application that runs on around 13,000 systems in the US. Not an OO in sight. How many LOC? I have no idea. But I do know there are over 2000 Makefiles.

      --
      The preferred solution is to not have a problem.
    4. Re:What?! by TheGeneration · · Score: 1

      I thought that the "I'm not sure" was sufficient in my sentence to indicate... are you ready for this?... that "I'm not sure." Hence, I am not an expert on MMO game programming and I'm not willing to make absolute statements. You on the other hand must be an expert judging by your absolute statements. So I defer to your knowledge in that case.

      --


      The Generation
      I'd say something witty here, but I'm not that bright.
    5. Re:What?! by TheGeneration · · Score: 1

      One again, that "I'm not sure" was to indicate that... I wasn't sure since I'm not an expert in MMO programming.

      I am a software engineer though, and I happen to be a good one.

      Now, sure your Unix system with 13,000 users may in fact not use objects, good for you.

      I do doubt however that when it comes to rendering 3D objects in a 3D environment like a multi-player online game, that objects are not being used. If there are hundreds of avatars running around on my screen I'd bet each one of those is represented by an object which at a minimum is tracking it's location in proximity to my camera. Feel free to tell me I'm wrong, but please give me some specifics on how it is done.

      --


      The Generation
      I'd say something witty here, but I'm not that bright.
    6. Re:What?! by Abcd1234 · · Score: 1

      So, let me get this straight. You're a software engineer (and supposedly a "good" one), and either 1) you use the term "object" in a way that's at odds with the rest of the software development community, or 2) you've never heard of ways to organize data that don't involve using objects. I'm not sure how you can believe you're a "good" software "engineer", given either of those options.

      And to answer your question, one could easily write such an application using straight C and structures which contain the relevant data for each of the entities in the application, along with a library of functions to operate on these entities.

    7. Re:What?! by TheGeneration · · Score: 1

      And to answer your question, one could easily write such an application using straight C and structures which contain the relevant data for each of the entities in the application, along with a library of functions to operate on these entities.

      After I had typed out the response and thought about it some more I realized a struct would just as easily do some of the stuff I would use objects for. I primarily program in Java these days so I sometimes forget how the world works without objects.

      --


      The Generation
      I'd say something witty here, but I'm not that bright.
  44. Comment removed by account_deleted · · Score: 4, Interesting

    Comment removed based on user account deletion

  45. Add it to Zork, please!! by Anonymous Coward · · Score: 0

    As I read of such procedural wonders as "throw fireball" and "drive your car" or "go to work", I was thinking of the power that this could have in the adventure game Zork.

    My god, to think I was trying "open door" or "eat bread", when I could have used "Throw Fireball" or "Evolve self".

    Please make my childhood complete by bringing these procedural programming wonders back to Zork. Please. Think of the children.

  46. Just defining their algorithm by ls671 · · Score: 1

    Author is just defining their algorithm. An algorithm can be implemented in any programming language with any programming techniques. They may have a better algorithm or a better way to do things, but it has nothing to do with the tools and techniques they choose to implement it.

    It is kind of like a sale pitch; because our product X uses technique Y, it will do everything automagically, you don't even need to know what you are doing, hence you don't even need an algorithm !

    The author seems to be confusing algorithms with tools and techniques.

    --
    Everything I write is lies, read between the lines.
  47. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  48. creates created? by Afecks · · Score: 2, Funny

    A little help please? Does anyone have a slashdot-editor-to-enlgish translator?

    1. Re:creates created? by cowens · · Score: 2, Funny

      No, they are already speaking in enlgish. We need an enlgish-to-English translator.

    2. Re:creates created? by Afecks · · Score: 1

      pwnd!

    3. Re:creates created? by advance512 · · Score: 1

      Jeez, pwned? Come on.

      I've never seen a more obvious case of (-1, Overrated).

    4. Re:creates created? by shish · · Score: 1

      He meant "crates created" -- unlike many games, which seem to have the exactly the same crate / canister / explosive barrel duplicated millions of times throughout the world, spore will dynamically generate crates such that each of them has its own unique wood pattern.

      --
      I mod down anyone who says "I will be modded down for this", regardless of the rest of their comment
  49. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  50. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  51. Sounds rule-based. by Animats · · Score: 1

    From the description, this doesn't sound like procedural programming. It sounds like a rule engine. One of those things where there are rules that fire if the current situation meets all the preconditions. Multiple rules can fire simultaneously, and you need conflict-resolution logic to to choose which one to use when there's a conflict. If rules fire that want to set both "turn=right" and "turn=left", then some priority system or random choice has to pick one. And some hysteresis may be needed to prevent dithering between equally good choices. If non-conflicting rules fire, you can do two things at once, like "jump" and "punch". "Emergent behavior"!

    This sort of thing drives the NPCs in quite a number of games. If Spore has something new, the article certainly didn't explain what they're doing differently.

  52. Spam of Vapourware by Anonymous Coward · · Score: 0

    Get rid of this ridiculous story.

  53. I can't believe this made it to slashdot. I can understand confused articles about patent law, copyright law and politics, but this is supposed to be a web site that appeals to people who have some clue about how computer software works. The article referred to is a pile of drivel, full of technical errors written in something that is a long way from coherent English. Maybe this belongs of the OMG!!! version of slashdot, but certainly not anywhere else.

  54. bzzt, wrong. by Inoshiro · · Score: 5, Interesting

    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.
    1. Re:bzzt, wrong. by kaizokuace · · Score: 1

      i believe the main problem is that the industry and the public caused the wrong term to be used just because it sounds better. Procedural programming is much more catchy than procedural content generation. Kinda like how nuclear is now pronounced and possibly spelled nucular. heh. The cool thing about spore though imo is the creature generation or modification tool. They spent a lot of time tweaking the powerful tools in the game so it is accessible to everyone. I hope the games lives up to the hype. Other places i guess you would find procedural something is with textures. Basically the major buzz about the power of procedural content generation is that its a means to put more power in the programmers hands. And to free up mundane tedious work so the artists on the project can do the more difficult stuff. Though some people would like to believe that it is to take power away from the artists on the project hoping someday that games are drawn with code alone.

      --
      Balderdash!
    2. Re:bzzt, wrong. by fireboy1919 · · Score: 4, Insightful

      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). To continue the summary (and clarify):
      * Marshmallows do funny things if you lower the pressure enough.
      * Cheeseburgers are often considered delicious
      * Like the above comments, programming language type is a red herring. Procedural content generation is a misnomer. It just means that the content is mostly programatically generated on the fly instead of being simply rendered.

      It's all about repeated iteration over a particular type of finite automata with a particular string.

      And then then string is the content, isn't it? Interesting point here is that this is something of a continuum. You could make your procedures more complex, and then require less content to produce the something. On the other hand, you could go the other way and have absolutely every piece of content actually be written in your programming language.
      When you think about it that way, it becomes a lot more obvious.
      You're talking about whether most of the work is going into the content creation, or into the rendering engine.

      If most of the work is in the engine, it's really easy to make lots of new kinds of content since you don't have to do as much work to make the content. However, making a powerful engine sure requires a lot of work, doesn't it? You have to make your engine handle absolutely every special case that you could ignore if it wasn't normally applicable to a very specific content instance.
      --
      Mod me down and I will become more powerful than you can possibly imagine!
    3. Re:bzzt, wrong. by Chris+Burke · · Score: 1

      And then then string is the content, isn't it?

      That's one way to look at it, if you view the algorithm as a form of compression. But is the seed to your random number generator the same as the series of random numbers which follow? At the very least, it's the combination of the string input and the algorithm that together can be called "the content", and this is distinct from say the algorithm needed to decompress a jpeg texture because there you start with the end result and apply a compression algorithm. Here the "compressed" form is actually the starting point and only by applying the "decompressor" do you ever actually have anything that can be called "content'. At least content that your rendering engine can use, and certainly the rendering engine doesn't care if the polygons and textures it's asked to draw came from an artist's hand or a procedure.

      Interesting point here is that this is something of a continuum.

      Are there examples of things in the middle of the continuum? I can think of some examples of things that are mostly artist-created with some algorithmic manipulation, those are near one end. It just seems like when people decide to use procedural content they go whole-hog.

      If most of the work is in the engine, it's really easy to make lots of new kinds of content since you don't have to do as much work to make the content. However, making a powerful engine sure requires a lot of work, doesn't it? You have to make your engine handle absolutely every special case that you could ignore if it wasn't normally applicable to a very specific content instance.

      Yah, that's part of what I think is causing Spore to take a long time. Guessing from the demos they've shown, the procedurally driven content is already working quite well. The problem is probably forcing artificial boundaries on the outputs of the procedures, lest creative gamers find a way to create a beast which does an end-run around whatever game mechanics are in place.

      I think the main use for procedural content will be for allowing the user more freedom in creating things in the game. I imagine most fixed game content would still be created in the traditional manner (unless obscene size limitations are in place) because as you said it's hard. Not clearly easier than creating the art, and the output isn't as easy to control.

      --

      The enemies of Democracy are
    4. Re:bzzt, wrong. by Anonymous Coward · · Score: 0

      Are there examples of things in the middle of the continuum?

      Sure ... look at Allegorithmics' system. The artist writes what is essentially a program to generate a texture. A short program with scalar parameters is to one end of the spectrum; a longer program is in the middle of the spectrum. But a program with one "texture" node where the texture is hand-drawn is at the other end.

      I prefer "algorithmic content" to "procedural content", but in fact the parameter space makes a huge difference too. A great promise of this kind of tech is to, for instance, churn out tables which all belong to the same "product family" but which have different parameters e.g. width + height, number of legs, etc. In this case a reasonably complex program would be produced, but there is still a lot of scope to tweak the output by modifying parameters in an intuitive way (c.f. random seeds). This is the middle ground you ask for and IMHO it's the key to the whole endeavour.

  55. Procedural Programming. Would that be like... by exp(pi*sqrt(163)) · · Score: 1

    ...numerical numbers, or am I confusing it with visual graphics?

    --
    Doesn't it make you feel good to know that our freedoms are protected by politicans, lawyers and journalists.
  56. Who cares?!? by IonOtter · · Score: 2, Funny

    I just wanna play God!

    Why do you abuse my games so? - Will Wright

    --
    [End Of Line]
  57. Re:The unexplored realm of dynamic content... by michaelhood · · Score: 3, Funny

    This all sounds very interesting.. have any links to your games we could look at?

  58. misinformation anyone? by cabazorro · · Score: 1

    The article is plagued with incorrect semantics and definitions(CS Discipline).
    It's sad and troublesome to witness Slashdot plastering (posting?) this article.
    It talks against the editors and the site in general.

    --
    - these are not the droids you are looking for -
  59. Where's the "Bury" button? by Doolwind · · Score: 2, Funny

    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.

  60. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  61. Procedural Programming- The Secret Behind Spore by Cafe+Alpha · · Score: 2, Funny

    ... and COBOL

    Yes I noticed poster tagged the article "wrong."

  62. Plagiarized by Caesar+Tjalbo · · Score: 0

    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.
    Someone plagiarized that line from the description of my COBOL programs. Original: "The database seems to be insanely huge and how is it that there can be an infinite amount of different bugs created in the code? The answer is Procedural Programming."
    --
    "I'm not much interested in interoperability. I want substitutability. I want to be able to throw your software out."
  63. El-Fish by Kaenneth · · Score: 1

    Anyone recall that 'game'/screensaver?

    it would generate unique animated fish of uncountable variety, and show them swimming around, and you could breed pairs together to generate realistic children and such...

    I tried running it on a 486 once, unfortunetly, it was so much faster than the system is was designed for, it didn't work (first thing on program startup was a benchmark, seeing how many minutes it took to generate a fish... since it took less than one minute, it crashed with a divide by zero)

  64. Vaporware... by Fuzzums · · Score: 1

    The truth hurts :(

    But there wil allways be Starcraft!

    --
    Privacy is terrorism.
  65. Starflight? by PCM2 · · Score: 1

    Does anybody remember Starflight 1 and 2? Whole galaxies full of believable-enough planets fit on two 360KB floppy disks. Did these games do something similar to what the author of this article is still desperately trying to comprehend?

    --
    Breakfast served all day!
    1. Re:Starflight? by GreggBz · · Score: 2, Interesting

      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.

    2. Re:Starflight? by Corporate+Troll · · Score: 1

      Interesting game you are making. I'll try it out if (and when) I get some spare time to toy around.

      I actually just post this because you've got a two typos within the first line of your webpage: "exlploration", "theclassic" lacks a space. So, I really hope your coding skills are better than your writing skills ;-)

  66. RTFA editors by crayz · · Score: 1

    Among other things the author seems to believe that a game could fill multiple Blu-Ray discs with "IF/THEN statements", which are the main component of "sequential programming," which is "all object oriented."

    This is the worst story I've seen in quite a while

    1. Re:RTFA editors by Anonymous Coward · · Score: 0

      Even if they would've read the article, matters wouldn't change. The article is bad and wrong - not the editors. And yes, this is the worst story in a while.

  67. Nice example for procedural content generation by zaibazu · · Score: 1

    http://en.wikipedia.org/wiki/.kkrieger a FPS with just 96KBs in size. The Demo scene surely knows how to squeeze in lots of stuff in small spaces.

  68. The article in a nutshell by Dormann · · Score: 4, Funny
    • Programs use if statements
    • The more complex the program, the more if statements
    • FF7 filled 4 CDs with if statements
    • Spore is even more complex than FF7
    • Spore must be using some new programming paradigm
    • I'm confused about what the paradigm is or what it's called, but I'm sure it uses fewer if statements
  69. It's Actually Functional Programming... by lloy0076 · · Score: 1
    It actually looks as though they're describing functional programming with something akin to CLOS as an object system. Think:
    • It generates code
    • It appears the object orientation system works on some form of generic methods
    Perhaps admitting they're using one of the other well-known basis' of computing (Lambda Calculus vs Turing/Von Neumann machines) is a bit too much for them to confess or maybe, even, understand?
  70. editors chose to post the article(n/t) by Anonymous Coward · · Score: 0

    n/t

  71. Terrible. Just terrible. by Luke+Dawson · · Score: 1

    I've never been so disgusted as to be motivated to post a comment slagging off an article on ./ before as I have now. This article is so poorly written by an author who so obviously hasn't the fainted clue what they are talking about, I didn't know whether to laugh, or just cringe when I read it. Honestly, I think I lost a few IQ points just from reading this trash. Now I know ./ posts some shaky articles, but this has to be the worst I've ever seen. Bad form, editors, bad form!

  72. Re:Terrible. Just terrible. by Luke+Dawson · · Score: 1

    Of course the irony is that one should proof-read their own comments before criticizing someone else. Getting the slash and the dot around the right way would be a good start!

  73. Confusing use of terminology... by rdean400 · · Score: 1

    I think the author uses the term "procedural programming" when what he's describing is a DSL for games.

  74. Five bucks by amccaf1 · · Score: 1

    Five bucks to the first man who manages to fill "2 or 3 HD DVDs" with if-else statements!

    --
    "Flag on the moon. How did it get there?"
    1. Re:Five bucks by mfnickster · · Score: 1

      if (bytes > (3 * HD_DVD_CAPACITY))
      {
          collect_bucks(5);
      }
      else
      {
          add(IF_STATEMENT);
          bytes += sizeof(IF_STATEMENT);
      }

      --
      "Slow down, Cowboy! It has been 3 years, 7 months and 26 days since you last successfully posted a comment."
  75. Article author... by jjacksonRIAB · · Score: 0

    Went on to say that his 3d runderring was slow because it lacked "floating units"

    --
    Make a few bad jokes on /. and watch your karma become worthy of Hitler
  76. Thank you! by quax · · Score: 2, Informative

    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.

  77. He got it on this video by Anonymous Coward · · Score: 0

    "This entire world [...] is proceduraly generated" ... straight at around 2 mins in this video : http://video.google.com/videoplay?docid=8372603330 420559198

    1. Re:He got it on this video by Anonymous Coward · · Score: 0

      The whole linked video is full of "blah is proceduraly generated"

  78. Re:The unexplored realm of dynamic content... by arhavu · · Score: 1
    Artificial limitations appear because you find a place where you should be able to use a special ability, but the designers just didn't make it possible on that wall because it could be used as an exploit.

    I think a big reason why that happens a lot in games is because the developers really want to tell you a story instead of giving you a game or a world to explore. They've got this beautiful story that they feel they really want to tell and don't want you, the player, to intervene in that in any really meaningful way. So they guide you and disallow any unorthodox ways of advancing in the game so that you'll get the story they want to tell you. And that creates the feel that many modern games have of you just having to run fundamentally meaninglessly to find the speacial ability or special object you need to find in this part of the game to get to the next cutscene that will advance the story.

    Then the developers remember that they're trying to make a game and not a movie and add all kinds of extra things that you called 'advanced features', but that happens after the fact, and at that point, the story already constrains the game so much that any freedom to explore the world of the game that would otherwise be possible is already gone.

    I suppose a lot of people enjoy that type of game, or maybe it's just a safe choice for the developers in some sense; it's maybe easier to tell a story through a game that's at least relatively engaging than to come up with gameplay mechanics that would keep people interested in and of themselves (a story is probably a lot easier to market as well).

    Personally, I'd really like to see commercial games that would have game mechanics rather like what Nethack has. What I really enjoy about Nethack is that it feels like there's an actual world there where there are no artificial barriers. If something kills instantly, it kills everything instantly, all the 'boss' characters and yourself. Fair's fair and deadly's deadly. But fair is interesting, although at times extremely frustrating. Maybe for anything to be truly interesting it has to be frustrating on occasion...

    Well, I guess I went off on a bit of a tangent there, since Nethack really doesn't use that much procedural content generation (apart from the layout of the dungeon), but I suppose I felt like I had to vent my frustration at the state of modern games, which for the most part seem to be not much more than glorified computer-animated movies with some meaningless running around required to reach the next scene. And the most frustrating thing about that is that computers and computer games as a medium could be used for so much more, for all kinds of unprecedented things! Alas, such are the realities of commercial products. Maybe I'll need to check out more indie games, maybe I'd find more variety there. I hear Darwinia's quite interesting.

    Well, I hope you have good luck with your projects, they sound interesting. I hope you'll get far enough to publish something for the rest of us to see. My own projects and visions for games mostly seem to be stuck at the planning stage :-)

    End rant.

  79. "To explain this fuller..." by Torodung · · Score: 1

    This article is awful. Reading it modded my brain down.

    Thanks a bunch, editors. ;^)

    --
    Toro

  80. You might have also created a new /. meme by Anomalyst · · Score: 1

    who so obviously hasn't the fainted clue what they are talking about
    Beware the fainted clue, the jaws that bite, the claws that catch.
    (Apologies to the Rev. Mr. Dodgson).
    --
    There is no right to feel safe thru security vaudeville at the expense of everyone's freedom, privacy and tax money.
  81. Author makes it clear enough by rcastro0 · · Score: 1

    Sequential programming is essentially a gigantic looped together tangle of If/Then statements.
    (ya know, I did have a feeling programs were messy under the hood -- thanks for confirming)

    The basics of sequential programming are all object oriented.
    (of course, giant looped tangles of object oriented if/then's)

    Well in games with so many options, the IF/THEN list becomes so long it becomes scrambled. Several calls to previous points in the list are made and the whole thing gets disorganized, something which programmers affectionately call "Spaghetti Code."
    (Object oriented spaghetti, like a tipped over plate on the carpet)

    Procedural programming doesn 't use "things" as the basic building block of a program, but instead "actions."
    (I get it, sequential objects are dead like a row of peebles, and action procedures bring life, like turning the peebles into a school of fish!)

    The interesting thing about procedural programming: modularity.
    (modularity, brilliant! I bet they wish they had thought of that when they created object oriented programming)

    --
    Quem a paca cara compra, paca cara pagará.
  82. See Spore in Action Next Friday by dannyastro · · Score: 1

    As I posted last week, Will Wright will be giving a Spore preview at his Stupid Fun Club studio in Berkeley on Friday, August 10th as part of a benefit party for Bill Pullman's new play. The tickets are expensive ($250), but all proceeds go to benefit the Magic Theatre. It will be a small party so their may be an opportunity for some guests to take Spore for a spin after the preview. Besides Will and Bill, Apollo 9 astronaut Rusty Schweickart and Bill Nye the Science Guy are also expected to attend. For more info: http://www.magictheatre.org/season0708/sfcparty.sh tml

  83. No Proof by Tablizer · · Score: 1

    I've asked functional fans to objectively prove that functional improves anything measurable (and practical) in a realistic or at least semi-realistic custom business application more than 10% over procedural + relational programming; and they flat failed. They made up all kinds of odd excuses for their failure, some of them contradictory, but in the end they failed. Maybe there are subtle benefits, maybe functional fits your particular brain better, but there are no slam-dunk objective benefits, at least in custom biz apps.

  84. Didn't survive /.ed by Anonymous Coward · · Score: 0
    In the future, could you guys please be gentle enough and /.ed articles for a few hours only, so that we all can enjoy :-b Thanks.

    All I can see for this one is:

    We appreciate the honest feedback and correction regarding the content of this article. While it was well intentioned, it was inaccurate and for that we apologize. Accordingly this article has been removed .


  85. Re:The unexplored realm of dynamic content... by Tablizer · · Score: 1

    (It may also be the reason I have yet to release anything)

    It is hard to test something that is as wide open as you wish. I'm sure there would be all kinds of bugs and hacks found it in since a 99% realistic universe will either take over the world HAL style, or crash a lot.

  86. The article already removed from bonafidereviews by S3D · · Score: 4, Informative
    The link form TFA no gives:

    We appreciate the honest feedback and correction regarding the content of this article. While it was well intentioned, it was inaccurate and for that we apologize. Accordingly this article has been removed.

    Something not good going with slashdot choice of article lately.
  87. National TV by iarkin · · Score: 1

    Getting your erroneous article posted on /.
    It's as bad as embarrassing yourself on national tv, only it's not only national any more.

  88. Mod Parent +INF by mrchaotica · · Score: 1

    I've been curious about how stuff like SpeedTree works for years now, and that "Practical Procedural Modeling of Plants" article you linked appears to be the perfect reference!

    --

    "[Regarding the 'cloud,'] ownership was what made America different than Russia." -- Woz

    1. Re:Mod Parent +INF by mikael · · Score: 1

      You might also want to look for articles on L-systems - they model the animation of the growth of plants.
      Another keyword is "phyllotaxis" - the study of the pattern formation of leaves on plants.

      --
      Vintage computer adverts: http://www.vintageadbrowser.com/computers-and-software-ads
    2. Re:Mod Parent +INF by mrchaotica · · Score: 1

      Yeah, I recognize those terms from the link. It's also pretty cool how the packing of buds on the flower, etc. turn out to be based on the golden ratio.

      --

      "[Regarding the 'cloud,'] ownership was what made America different than Russia." -- Woz

  89. Article pulled by gatesvp · · Score: 2, Informative

    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 :)

  90. That's _not_ procedural programming by Moraelin · · Score: 1

    That is all informative in its all way, but that's not what Procedural Programming means. Seriously, look what the adjective or adverb applies to, because it says it all:

    - procedural texture generation: generating textures using procedures, instead of painting them the old fashioned way. I.e., instead of paying a horde of artists, you pay a smart guy to write you a piece of code.

    - procedural terrain generation: ditto for generating terrain, e.g., using fractals.

    - procedural animation: ditto for animations. The old fashioned way was to actually have a pre-defined animation file. Nowadays the procedural way is getting to be the standard, since it's really the only one which can account for physics.

    by contrast:

    - procedural programming: programming using procedures (what you may call methods or functions in other languages.) The big improvement of procedural programming back in the day was that it actually introduced the partitioning the program into functions, as opposed to the first programs being a chunk of source with GOTOs to solve the flow.

    It may seem like a simple concept nowadays, but it's sorta like the stirrups or the saddle: you'd be surprised to how many people it didn't occur to do that. The first CPUs didn't even have the equivalent of "call" and "return", and it wasn't mandated by the Turing Machine concept. Then the first ones who got that didn't have a stack yet, so you'd literally be limited to one level deep and you better be sure you never recurse.

    So, really, it's a whole different concept.

    You can have procedural texture generation, for example, without that procedure actually being procedurally programmed. It could be done with Functional Programming just as well, and in fact it even makes sense. Or you could use Logic Programming, and that makes sense too: you'll want to have _some_ rules there, so a language which is all about rules matching and inference might be all you need. Otherwise, you'll have to basically reinvent a sort of inference engine of your own. You could even use Genetic programming if, for example, you want to try to optimize the result to exactly what the player is doing there. Etc.

    Or more pragmatically a mixture thereof. E.g., even if it's procedurally programmed, chances are you'll want some rules matching, and you'll probably at least have a functional concept along the way.

    --
    A polar bear is a cartesian bear after a coordinate transform.
  91. Elite by mcvos · · Score: 1

    Elite (by David Braben and Ian Bell) probably did something similar. A 3D space flight sim with 8000 planets, each with their own government and economic system, and it ran on 64K. A stripped down version even ran on the 32K Acorn Electron (still featuring 8000 planets).

  92. Article withdrawn by ivan_w · · Score: 1

    The article seems to have been withdrawn anyway ! Ah ah..

    --Ivan

  93. From the comments linked in article by HouseArrest420 · · Score: 1

    ) If you are going to try to describe something new please do not use existing terminology. http://en.wikipedia.org/wiki/Procedural_programmin g
    2) Your desciption of what you are calling "Proceedurla Programming" actually sounds like Object Oriented porogramming (OOP). Once on the main features of OOP is getting rid of if/then/else code, another main feature is creating objects to deal with actions.

    Perhaps using OOP "properly" is new to game programmers, or perhaps I just don't understand what you are saying because of the poor use of terminology. But to me you have said that Spore is written object orientedly.
    #3 by blackperl on August 5, 2007, 1:12 pm Reply to this users post
    If anybody ever runs across this article when doing searches for procedural programming, please understand this article is full of inaccurate and misleading information and you should discard the information presented here and continue your search elsewhere, or feel free to verify my statement through your own research. This does not accurately describe how Spore functions, what procedural programming is, or how code is written for games. So hmmm....maybe try again?
    --
    This is Slashdot! Give me the latest gadget, bug, or OS project! This ain't english class so don't confuse the two!
  94. Ever wonder how Slashdot works under the hood? by saddino · · Score: 1

    The site seems to be insanely huge and how is it that there can be an infinite amount of different comments commented in the site? The answer is Dynamic HTML Programming.

  95. Article Text by SenorPez · · Score: 0

    Immortalized for the horror.

    --

    If you are a maxis fan, you probably have heard of their new project "Spore." The game which was originally dubbed "Sim Everything" allows you to do just about anything you could think of, from evolving a single celled creature, to creating advanced space faring societies. Perhaps the coolest thing about this game though, is that no two player's creatures, buildings, vehicles, or even planets will be alike, and yet they are all still fully functional. How does this work when the basic building blocks of ANY of these things are just polygons? Well, to see that first we have to examine the game itself.

    Spore is a game of editors. In each stage of the game, you will spend your points to change and improve different aspects of your society. You start with the cellular editor, followed by the creature editor, object editor, building editor, vehicle editor, until eventually you become able to terraform planets. The best thing about these editors: their sheer flexibility. Any number of body parts, with any number of joints and features can be stretched and pulled to any number of sizes and shapes and attached almost anywhere on your creature. The same thing goes for the tiny cell bits at the cellular stage, and the interacting material parts for buildings and vehicles. The key to making all this work? Procedural programming.

    Procedural programming is a bit hard to explain, but I'll give it a shot. First lets look at what procedural programming is not. Many games and programs that you are used to use something caused "sequential" programming. Sequential programming is essentially a gigantic looped together tangle of If/Then statements. This may seem simple, but its true enough. Lets take an easy example, think back to the old days, such as street fighter 2. The If/Then statement for say, Ryu's fireball would be something like: IF your command input looks like Down, Down Forward, Forward, Punch, THEN throw a fireball, or IF the fireball image is overlapping the opponent THEN deal a certain amount of damage.

    The basics of sequential programming are all object oriented. To explain this fuller, their basic building block is the object, or a thing. In the above examples, the objects were the command input, the fireball and the opponent. Programs can check whether certain objects are doing certain things by comparing their numerical values. For example if every space on the game screen is assigned a number, much like grid coordinates, the program can use simple greater than or less than comparisons to figure out where the characters, the fireballs, the floor, and everything else was.

    So why can't this be used in games like spore? Well in games with so many options, the IF/THEN list becomes so long it becomes scrambled. Several calls to previous points in the list are made and the whole thing gets disorganized, something which programmers affectionately call "Spaghetti Code." Also, that much code and that many variables simply gets huge! Even though information technology has been growing at an exponential rate, there is only a limited amount of space you can put on a CD or DVD. On the PS1 there were 4 disk games, and on the PS2 there were 2 and 3 DVD games. It is only a matter of time before we have games which fill up 2 or 3 HD DVDs or Blu Ray disks.

    The solution? Change the way the game thinks, and that is exactly what procedural programming does. Procedural programming dosen't use "things" as the basic building block of a program, but instead "actions." Taking the SF2 example from above "throw fireball" is one whole action, as is "Kick" "Jump" "Get Hit" and "Die" with all their particulars defined right there in the action itself. The interesting thing about procedural programming: modularity. Think of it like this: there is an action for jump and an action for kick, when you combine those two actions at once, you get jump kick. Of course its actually a lot more complicated than this, but this is perhaps the most simple

  96. For those who still wonder... by Anonymous Coward · · Score: 0
    1. Re:For those who still wonder... by Lord+Kestrel · · Score: 1

      It's already been nuked, so thanks for the cache.

  97. Re:The unexplored realm of dynamic content... by Kap'n+Koflach · · Score: 1
    Every game on the face of the earth advertises dynamic content in one form or another, and almost all of them fail miserably. Why?

    // flame suit on
    I almost hate to say it here, but Second Life has quite good and open-ended content creation. It's original building tools and scripting language have recently been extended with a three-D sculpting capability that can import externally generated 3-shape files. For all its faults, SL is one of the very few programming environments where you can be interrupted mid-edit by a lesbian vampire dominatrix looking for help because their scripted whip has just stopped working.

    // flame suit off


    Okay, I will now animate my cute redhead avatar so it gnaws its own legs off as a punishment for me for posting this

  98. call it by rastoboy29 · · Score: 1

    Duke Nukem SporeEver

  99. Re:The unexplored realm of dynamic content... by scribblej · · Score: 1

    If you were 1/2 as prolific a coder as you are a writer, the games would be finished (and probably well-commented).

  100. Re:The unexplored realm of dynamic content... by Foolhardy · · Score: 1

    Hear, hear. I, too am annoyed whenever some feature works only as a special case, and not as a generic part of the underlying engine. I also have dreams of building a game engine that is a comprehensive environment first and a set of particular things second. I have partially designed a pure relational data model to support it, but the code is far from being complete. The description of your game sounds just like what I want in mine.

    One reason I think many games rely on small scale features is because it's a lot safer than deep widespread features. Small features with all usage paths known can be exhaustively tested, but deep features either have the potential to be unpredictable or need careful design time planning. In your climbing example, the levels probably have a certain linear progression the player is supposed to follow, and allowing the player to do that at any time might allow him to evade that order in a way the map designers didn't anticipate. The underlying problem is that the game needs to follow such a rigid and fragile structure in order to have its storyline.

    Another reason may be related to the choice of programming language in most games: the model of small pieces with limited scope connected by a simplified base, each with a predefined set of behaviors is common to both imperative programming and rigid game design. Those that overcome that effectively build some kind of custom functional or declarative system to run the game on, in my experience (sort of like the adage that any sufficiently large project re-implements LISP, badly). From what I could tell from the article, Spore is no exception. If the designers started with a good functional or declarative language (and program in a higher-order style) it would be a big help. It's much easier to create functions that are known to work under any circumstances without having to check every combination, in higher level languages. I know that historically, such languages were too slow, and it is hard to find programmers for them, so I'm not holding out much hope for the near future. I will, however, put some more work into my project. Hopefully, one of us will have something to release soon.

  101. Procedural Programming by ShakaUVM · · Score: 1

    "The answer is Procedural Programming."

    Oh my, Procedural Programming! They must have been the first company to use the C programming language, like, ever.

    http://en.wikipedia.org/wiki/C_(programming_langua ge)

    Someone should slap the Slashdot editors.

  102. Re:Inifinite Creates? can't evolve pornstars by Teriblows · · Score: 1

    its quite artificially limited in the first place. a spore planet filled with porn stars would be brilliant, but you couldn't do it based on what i've seen so far.

  103. Re:The unexplored realm of dynamic content... by euxneks · · Score: 1

    If you were 1/2 as prolific a coder as you are a writer, the games would be finished (and probably well-commented).

    Wow, way to be a dick. I'm sure there were many other ways you could have said that - without sounding like a douche.
    --
    in girum imus nocte et consumimur igni