Jump to content


Procedural plant takeover of a city?


3 replies to this topic

#1 devingprice

    Member

  • Members
  • PipPip
  • 14 posts

Posted 29 December 2011 - 06:37 PM

I've found tools like CityEngine that can procedurally create a city, and there are plenty of tools to procedurally create plants. Is there any way to make them work together? I'd like to create an apocalyptic city for use in a game, something like I am Legend.

I'd like to procedurally create the buildings of a city, and add in the details like cars and miscellanious street objects into the street. Then I'd like to apply forces to the streets to flip cars and blow things around to add some chaos to the mix, cause a few windows to break and the like. Those I know how to do. But what I'd like is to add the generation of plant life, as if nature was retaking the city. L-systems can simulate real life growth, but I'm not sure how I'd use them to accomplish this. Any ideas?

It'd be even better if the creation was done by the game, like the data for the map/objects was all that had to be stored in order to generate the map. That way the map information could be transfered over a network for multiplayer.

#2 v71

    Valued Member

  • Members
  • PipPipPipPip
  • 355 posts

Posted 30 December 2011 - 07:12 PM

You should create your planst, and put manually in the procedural city, i don't know if there is a tool which can model both actually, but maybe the guys behind cityengine are reading this post...
Incidentally i had researched some months ago a procedural city generation, you gave me some ideas about what to add next , like computation of fluid paths along buildings, and vegetation spawning like the city had been abandoned for so long time...
Check my code in the c/c++ section :
http://www.binpress.com/browse/c

#3 Stainless

    Member

  • Members
  • PipPipPipPip
  • 582 posts
  • LocationSouthampton

Posted 31 December 2011 - 09:51 AM

You could use the same techniques as they use in CityEngine.

It basically works by using a mix of supplied 2d bitmaps to define parameters, and a library of objects to fit into the map.

You can then build your own rules for plant viability.

So say you have a building with a mud floor, that has a high viability. A concrete floor has low viability. A park has a viability of 1, tarmac a viability of 0.001

Then you can run a simple algo that generates a 2d bitmap of initial plant growth. Different plant types can exist in different viability levels.

Each plant type has a damage value, this is the amount of damage the plant can do to the fabric of the city. This increases the viability of regions next to the plant.

Iterate this a few times till you have the result you want.

Then use the final viability table to do two things.

1) Damage the buildings, bring down walls, smash windows, etc.
2) Add 3d plant meshes

From the viability table you can tell what meshes to add where, I would probably keep another bitmap as well which holds plant age so you can use that to define the size of the meshes. Small tree, large tree, that sort of thing.

#4 alphadog

    DevMaster Staff

  • Moderators
  • 1716 posts

Posted 03 January 2012 - 06:46 PM

You've seen Life After People, right?

Maybe get in touch with the production studio...
Hyperbole is, like, the absolute best, most wonderful thing ever! However, you'd be an idiot to not think dogmatism is always bad.





1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users