Hi, I posted in the suggestions thread about Citys how they could procedurally done. And i thinked about it, i’m asking wether when i program a noise routine to put random 3D objects instead of normal noise on the planets it will be used in I:B. I will give you the code for free, and i hope i’ll get supported by the community by this to archive this.
What i’m thinking of is that i design some sample skyscrapers as .obj file, use the height values from the renderer choose which building, and use a vertex reduction algorithm, if that not yet exists already, to reduce the rendering data before rendering when far away.
of course this will take some optimization for speed and looking when done, but what do you think of it?
well honestly been doing planet rendering for almost 5 years (in my spare time offcourse), thinking about ideas is quite easy and passionate thing to do, but unfortunately when you get down to technical details you are hit up by a lot of hurdles which dont seem apparent initially. The dev team knows what they are doing and how to optimize the game with respect to their work. Your contribution might not be optimal for them to integrate even if you give your code for free. Furthermore already there are several free implementations available online for procedural city systems. But integrating it is the real deal where things fall apart.
But we can use this thread for learning to develop a procedural city system. In procedural city generation i would love to know your approach regarding how you will place roads onto a rough terrain, placing buildings is the easy part. Try something along this line and post screenshots if possible. Thanks.
The official plan is to eventually have procedural cities in-engine. The buildings right now are artist placed for now to allow for more control and because they don’t have the tech in place atm. The plan is also (AFAIK) to have a limited amount of procedurally generated buildings as well, with buildings having ‘blocks’ of them stacked from a set of artist-built assets.
But if there is a way to mod, someone else will probably go for it, regardless of how low-level the mod capability is.
I’m somewhat of a resident community programmer when it comes to such pretty research projects, there are a few other members that did some interesting work. I did some work on procedural cities and building generation somewhat recently, even have a blog post about it. Long story short, you can go ahead and do your own research, but in all honesty, don’t expect it to be used for official I-Novae business.
Procedural City Generation
I corrected you spelling @MarcelBusse, hope you don’t mind.
But, would we even need roads? Back in the days of community contributed models, we pretty much assumed that small civilian “cars” would be flying around the cities 5th Element style. This would make roads somewhat redundant, instead all buildings should have landing pads / garages. For building placement, you would still need a large enough flat enough space, but checking for that should be easy.
It seems to me that the real challenge is going to be integrating cities and terrain. The engine needs to be able to determine which areas are habitable (which I imagine is fairly simple) and also to figure out appropriate placement and connection of cities. For example, a land mass would be generated with numerous rivers and inlets around which most cities would be placed. This of course applies only to Earth-like worlds, but we can probably assume other types like desert and volcanic won’t have widespread habitation, only industrial/scientific/military facilities.
This city renderer seems too slow for me for large citys and not optimized for procedural terrain when anyways there is a overhead for the surrounding terrain.
Rather i would predefine the buildings, because of speed, and if i had a planet renderer (i had one) then replace the output of a noise routine within a certain area to in the 1st step to be flat terrain, in the 2nd step the height values which are generated by the noise routine (could be at start very basic one like PI+offset i think) define the type of building and in the 3rd step build from the 3D data of the buildings for every building “local” “noise” that will grow with eyery LOD you come more nearby to the max vertice count of the 3D data. It is like “generating the buildings”. the textures would be a second problem, but i would just focus on the vertice data.
well in additional steps , one could go and generate the 3D building data which is the input for the noise routine from predefined sub 3D data to randomize the buildings more.
I have not thought about the streets, i think of course we need streets because civilians run along and i think even in far future there will be cars, because e.g. no one in present time stops playing soccer because this is so easy to play you just need a ball, therefore there will every time exist guys which have no money or driving license to buy an expensive hovering vehicle, anyways it looks more populated if you put some cars , persons and trees into the street, if you are at the very highest LOD, you would anyways because of your viewport near ground see only 1 to 10 buildings at the same time.
Later maybe if you build a city at a shore you could place a habour and ships for example in it if you have the 3D data.
It seems to me that if we get to the full galaxy MMO stage, procedural cities and stations will be a necessity to make the playable area truly huge.
I have a question mark about the complexity of integrating a city generator with the planetary engine, as has already been pointed out. Would it be too much work to make the cities convincing? On the other hand, it might save work in the long run.
oh damn you hrobertson, and here I thought I knew about some nifty tech demo that hadn’t been mentioned yet xD
Anyways, @Marcel of course you can output a city simply based on noise with predetermined buildings, however the city wouldn’t be believable if you took more than a random glimpse at it. One (popular) way to look at cities is as a sort of organism. Organisms aren’t chaotic (something your noise based approach suggests to me), organisms are highly diversified, so is a city (with different ‘areas’ like industrial areas, residential areas, suburbs, market districts etc pp).
On the other hand, we also have Judge Dredd, where people live their whole lives inside monumental skyscrapers, which are basically a city in and of itself… so yeah … Noise might work.
on a second, rather offtopic note: @cybercritic your stuff still looks as amazing as back when I saw it first