15
\$\begingroup\$

When I think of a dynamically generated game, I think of things like Diablo with randomly generated levels. When I think of a procedurally generated game, I think of things like Flappy Bird and other infinite runners.

But both of these just randomize a level. Is it that procedurally generated games are constantly being generated and dynamically generated games are all generated up front? Or are these terms interchangeable?

What is the difference between a dynamically generated game and a procedurally generated game?

\$\endgroup\$
22
\$\begingroup\$

"Procedural" means that some algorithm made the content. This is opposed to content being created manually by a human.

"Dynamic" means that the content changes over time. This is opposed to "static" content that does not change after being created, or only changes in predefined ways e.g. key-framed character animation.

You can also have in-game player-created content. That's a game feature that allows players to alter the levels or game during game play rather than using external tools to mod the game. For the sake of the next few paragraphs, I'm assuming that we're not talking about player-created content.

You can use code to generate something that never changes; such content is static and not dynamic, despite being procedural. All dynamic content is procedural, but not all procedural content is dynamic.

You can mix manual, procedural, static, and dynamic content in all kinds of ways, too. For instance, an artist might create a building model manually, use a tool to procedurally generate various texture maps for the model, and then setup data for physics or gameplay systems to dynamically destroy the building and spawn static debris during play.

Note: these definitions are not formal. You could argue semantics about these words forever. You are likely to run into people with different definitions of these words and neither of us would necessarily be wrong. Even technology jargon is far more fluid than us programmer types tend to prefer. :)

\$\endgroup\$
  • 1
    \$\begingroup\$ "All dynamic content is procedural" - What about content created from other players' actions? For example in Eve Online there are ever-changing orbital outposts that are entirely player-made. \$\endgroup\$ – Mołot Aug 16 '15 at 18:04
  • 1
    \$\begingroup\$ @Molot: and there's the first example of my last paragraph. :) I guess I was only really thinking about developer-published content for this answer, and I suppose you could consider developer- vs player-created content to be yet another axis aside from dynamic/static or manual/procedural. e.g., in many games, players can build structures in a building mode but then the map is static for the rest of the game, so you can have static player-created content. But again, I'm not overly particular about the terminology. :) \$\endgroup\$ – Sean Middleditch Aug 16 '15 at 18:45
4
\$\begingroup\$

"Dynamic" means

"(of a process or system) characterized by constant change, activity, or progress."

(says google.)

To distinguish those two terms, I'd go with "dynamic generation" meaning "created just in time, on the fly, while you play"...

And "procedural generation" meaning algorithmically generated, either up front or on-the-fly.

\$\endgroup\$
  • 1
    \$\begingroup\$ So the opposite of my initial thought? \$\endgroup\$ – Evorlor Aug 15 '15 at 18:16
  • 2
    \$\begingroup\$ @Evorlor: I'd say so. "Procedural" just means that some algorithm made the content. "Dynamic" means that the content changes over time. You can use code to generate something just once, so it would be static and not dynamic. All dynamic content is procedural, but not all procedural content is dynamic. You can mix the two in all kinds of ways, too; e.g. a dynamic level that procedurally fills itself with static content. :) \$\endgroup\$ – Sean Middleditch Aug 15 '15 at 18:55
  • \$\begingroup\$ @SeanMiddleditch convert to answer please :-) \$\endgroup\$ – Evorlor Aug 15 '15 at 18:58
  • \$\begingroup\$ @Evorlor: done, but I'm not sure I said anything more than what david van brink already did. \$\endgroup\$ – Sean Middleditch Aug 15 '15 at 19:57
  • \$\begingroup\$ @SeanMiddleditch perhaps not, but your explanation was clearer to me. Thanks! \$\endgroup\$ – Evorlor Aug 15 '15 at 20:11
1
\$\begingroup\$

Here's a quick little overview.

  • Dynamic Generation

The word 'dynamic' means changing. The word 'generation' means creation of things therefore 'dynamic generation' is changing generation. Therefore 'dynamic generation' refers to content that is constantly changing.

  • Procedural Generation

The word 'procedural' refers to content created by a computer algorithm and not a human. As we established 'generation' means creation so therefore 'procedural generation' refers to content which are generated via a computer algorithm.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.