Fully dynamic worlds

Started by
2 comments, last by PolyVox 16 years, 10 months ago
So, I'm cooking up this idea in my head of a fully dynamic world that can be manipulated by players and I'm looking for feedback on some of the ideas. The basic idea is to build up the world from nodes of different "elements" (for the sake of giving it a name). A simple example: 10 nodes of "life elements" stacked on top of each other would be rendered as a tree. And a lot of "earth elements" clustered together would be a mountain. Something along the lines of that. In case of the 10 "life elements" stacked on top of eachother, the way they are stacked could even represent the shape of a tree. For example, if the third node is displaced a tad to the right that would be a branch. I believe you can get quite a versatile world like this if you made them modify themselves, such as a tree generating new nodes over time. The game element would be achieved by giving players the ability to manipulate these nodes or generate new nodes of a certain type. This is very vague, but think of things like a player/magician manipulating the earth nodes around him to create a wall of earth. Or have the player throw fire nodes that consume life/tree nodes. Ofcourse everything would have to be rendered procedurally and it could be slow as hell. Perhaps I could generate meshes in memory on the client side to speed that up. Memory usage would be OK-ish I guess since I will not have an extensive set of meshes and textures in memory, since most of it will be rendered procedurally. A node (or a lot of nodes) would not take up much memory compared to a mesh. CPU load might become a problem if the nodes are going to interact with eachother. Such as water falling from the sky, landing on the earth and moving to the lowest point. And last but not least, networking such a huge amount of data is something different than sending the position of a player once in a while. This whole idea is radically different from existing main-stream technologies and my goal is to find a way to make a game world more dynamic without sacrificing too much performance or gameplay. But I foresee a tonne of problems concerning performance mainly. If you have any idea how to tackle any of these problems, or if you have completely different ideas on how to achieve a fully dynamic game world, then I would love to hear.
Advertisement
It's not an entirely new idea, it seems to have a lot in common with deformable terrain (in this case, additive instead of purely subtractive), which is certainly doable -- and some overlap with procedural model generation (think Spore).

Entirely elemental nodes might be interesting for a toy/simulation type deal, although an extendable hybrid system might be even more so. A "genetic" system might work though. I'd probably use a pixel or voxel based system for prototyping the idea on. Think worms, only with a lot more than just the dirtbomb.
Alright, so I was a bit too quick calling this "new". Your voxel suggestion is interesting though. I heard the word before, and now I'm reading up on what it exactly is it seems as if it is what I'm looking for for rendering purposes.
At risk of making a shameless plug have a look at my project here - it uses a volumetric representation (voxels) for the world:

http://david-williams.info/index.php?option=com_content&task=view&id=24&Itemid=37

and also here:

http://www.ogre3d.org/phpBB2/viewtopic.php?t=27394

If you want to see a more substantial (though older) engine then have a look at Ken Silvermans Voxlap here:

http://advsys.net/ken/voxlap/voxlap05.htm

Feel free to ask any questions about it...

This topic is closed to new replies.

Advertisement