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.
Procedural plant takeover of a city?
Started by devingprice, Dec 29 2011 06:37 PM
3 replies to this topic
#1
Posted 29 December 2011 - 06:37 PM
#2
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...
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
http://www.binpress.com/browse/c
#3
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.
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
Posted 03 January 2012 - 06:46 PM
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












