Outerra forum

Outerra Engine => Technology => Topic started by: corona on July 07, 2010, 03:22:24 am

Title: City generation
Post by: corona on July 07, 2010, 03:22:24 am
Hi,

First of all, I am really really excited about this new engine, if a little worried you wont get it done and abandon it. Please please please if it should come to this, and you have no choice but to do so, consider open-sourcing it so other people can continue. I would hate to see all this work for nothing in the end.

That being said, on to happier thoughts.

Now that we've seen textured buildings, I'm curious how you plan to do city generation. Will it use the same form algorithm to procedurally place buildings? So far you focused mainly on natural areas, so to be perfectly honest I'm a little bit worried about city scenes, etc.

I'm thinking you start with road vector data, combine it with data describing what type of landclass a certain area is, and then procedurally generate buildings between those roads. You can combine this potentially even with data such as average household income, population density to further differenciate.

Please don't simply go with a auto-gen type thing that MSFS uses. It really doesn't fit into underlaying road/river/vector data.

Here's an interesting paper on the topic: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.91.8713&rep=rep1&type=pdf

Specifically I am very impressed with Procedurals City Engine, first presented in 2001, making use of so called L-systems. The current version is 2010. More information can be found on there website (it is very impressive). http://www.procedural.com/

Perhaps you could consider licensing their technology for your purposes, seeing as it took them 10 years to develop :-) Of course if you can match important features on your own, that would be very impressive too .-)
Title: City generation
Post by: cameni on July 07, 2010, 05:32:01 am
Hi,

Indeed we didn't focus much on urban areas, our initial goal was to have Earth without effect of civilization. Artificial stuff should reside in a layer atop of it in the form of land class edits and various kinds of vector data; cities should be there too.

Static objects placed in the world are persistent, in theory you could build a city this way too, but certainly for the purposes of say a flight simulator this wouldn't be very effective.
 We plan to create a city block generator, pretty much along the lines of what you have written. The road network should be imported from (example) OSM or generated artificially. Resulting city blocks should have assigned a type, so that the block generator can produce the appropriate buildings.

Yes the Procedural's City Engine is nice, at least the cinematic renders :)
But I feel we'll need to tailor a specific optimized solution for our case .. not just importing some generated assets from City Engine, but to have a generator included with the engine, driven by a few parameters etc.
Title: City generation
Post by: corona on July 08, 2010, 04:25:00 am
Yes that is very nice. When the time comes I'm looking forward to reading about it :-)
IMO you should cities are at least equally important as natural landscapes, most games would feel pretty empty otherwise :-)
Title: City generation
Post by: VilaRestal on August 22, 2010, 06:17:31 am
Quote from: corona
... most games would feel pretty empty otherwise :-)

Unless it's a futuristic, post-apocalyptic world where everyone lives in underground cities (and the sky is green at night).

But otherwise, yeah I agree. Just a few template city-blocks plonked in a semi-random manner at various locations would be better than nothing.

Anyway, my 1st post so should say:

I'm not in game development, just been playing around with a spherical renderer i've written (very very crude in comparison). I thought I should look at how others do it and stumbled across links to your work:

I'm totally in awe. It's very impressive. It's also very demoralizing: It makes what I've done look pathetic.

I should point out:

Games are by no means the only use this could have.

Every modern military should be queing to get their hands on this. Every type of personel could be trained on a simulator using this engine: pilots, artillery, tank crews, generals, admirals, medics, etc, etc. I think that could be a very lucrative market for you (and it could save lives!!!!!!!).

I've heard people calling for it to be open source. I understand why they want that, and it would be nice for us all, but honestly that would be a tragic mistake imo. You should be able to make a fortune out of this.

I read somewhere on these forums that it was very procedural at the moment. I think your priority should be to address that. Maybe rebuild it from the ground up if need be. The more you develop it as a procedural program the harder it will get to convert it into something more object-oriented. Once it is, the applications for it will be easy to attach: Just a few options from a menu and import a few more objects. (I hope I've understood the issue there correctly. My advice, for what it's worth.)

Anyway, congratulations again. Truly awesome work!
Title: City generation
Post by: corona on August 22, 2010, 06:43:05 am
Quote from: VilaRestal
Quote from: corona
... most games would feel pretty empty otherwise :-)

Unless it's a futuristic, post-apocalyptic world where everyone lives in underground cities (and the sky is green at night).
Hence the word "most".
Quote from: VilaRestal

I've heard people calling for it to be open source. I understand why they want that, and it would be nice for us all, but honestly that would be a tragic mistake imo. You should be able to make a fortune out of this.
I agree it would be quite stupid to open source it right now, however its tough to keep this thing alive without good funding behind it. If things go downhill then please please open source it so at least the work isn't lost.
Quote from: VilaRestal
I read somewhere on these forums that it was very procedural at the moment. I think your priority should be to address that. Maybe rebuild it from the ground up if need be. The more you develop it as a procedural program the harder it will get to convert it into something more object-oriented. Once it is, the applications for it will be easy to attach: Just a few options from a menu and import a few more objects. (I hope I've understood the issue there correctly. My advice, for what it's worth.)

I don't understand that point at all. What are you talking about, something "object oriented"? Are you confusing procedural and OO as they refer to programming paradimns (eg. C do_something(*object) vs C++ object->do_something())? That is not what procedural means as it is used when talking about the game engine.
What they mean is procedural content generation. You can read more about this here: http://en.wikipedia.org/wiki/Procedural_generation
Title: City generation
Post by: Michal on August 22, 2010, 12:24:25 pm
Take a look at this game, maybe it would work as some kind of inspiration.

http://www.indiegames.com/blog/2010/08/preview_damzel_mindflock.html
http://mindflock.com/damzel/
Title: City generation
Post by: RaikoRaufoss on August 22, 2010, 01:25:49 pm
Quote from: _michal
Take a look at this game, maybe it would work as some kind of inspiration.

http://www.indiegames.com/blog/2010/08/preview_damzel_mindflock.html
http://mindflock.com/damzel/
Great links Michal.  I'm getting pretty interested in this as well.  I'm certain they would use a more realistic graphics engine if they could.  Brano, do you feel like contacting them? :)
Title: City generation
Post by: Michal on August 22, 2010, 01:52:48 pm
Quote from: RaikoRaufoss
Quote from: _michal
Take a look at this game, maybe it would work as some kind of inspiration.

http://www.indiegames.com/blog/2010/08/preview_damzel_mindflock.html
http://mindflock.com/damzel/
Great links Michal.  I'm getting pretty interested in this as well.  I'm certain they would use a more realistic graphics engine if they could.  Brano, do you feel like contacting them? :)

I'm big indie games fan, and while I'm not making one by myself (yet), I regularly visit many indie blogs. I've found this game few days ago and immediately I've thought about cities in Outerra.

There was a project to make a procedural city system for FSX. It's not generated 'on the fly', but pregenerated, it looks great though (in FSX limitations of course):

http://www.simforums.com/forums/forum_posts.asp?TID=30107

They've used this system for UTX Alaska addon:

http://www.scenerysolutions.com/UltAlaskaX.html
Title: City generation
Post by: cameni on August 22, 2010, 02:09:00 pm
Quote from: RaikoRaufoss
Great links Michal.  I'm getting pretty interested in this as well.  I'm certain they would use a more realistic graphics engine if they could.  Brano, do you feel like contacting them? :)
Not at the moment, AFAIK they are using the above mentioned CityEngine so they would need a city to begin with.
And from their point of view, they are constrained to the city, so an open environment will not be of much use to them ..
Title: City generation
Post by: VilaRestal on August 23, 2010, 07:35:51 am
Quote from: corona
Quote from: VilaRestal
Quote from: corona
... most games would feel pretty empty otherwise :-)
Unless it's a futuristic, post-apocalyptic world where everyone lives in underground cities (and the sky is green at night).
Hence the word "most".
Was meant to be a joke. Too subtle I guess.
Quote from: corona
Quote from: VilaRestal
I've heard people calling for it to be open source. I understand why they want that, and it would be nice for us all, but honestly that would be a tragic mistake imo. You should be able to make a fortune out of this.
I agree it would be quite stupid to open source it right now, however its tough to keep this thing alive without good funding behind it. If things go downhill then please please open source it so at least the work isn't lost.
I can't imagine how that would happen: Either things going downhill or the work being lost if they did.
I suppose you should make a will: If everyone involved dies in a plane crash with no next-of-kin then make it open source.
Quote from: corona
Quote from: VilaRestal
I read somewhere on these forums that it was very procedural at the moment. I think your priority should be to address that. Maybe rebuild it from the ground up if need be. The more you develop it as a procedural program the harder it will get to convert it into something more object-oriented. Once it is, the applications for it will be easy to attach: Just a few options from a menu and import a few more objects. (I hope I've understood the issue there correctly. My advice, for what it's worth.)
I don't understand that point at all. What are you talking about, something "object oriented"?

Yeah, you did understand. I had taken it to mean something like the code was all in a few huge functions.

Thanks for the explanation. It did seem strange to be able to produce something to this high standard that way.

I guess you'd call that an overloaded piece of jargon.
Title: City generation
Post by: LuisVargas on November 20, 2010, 07:10:02 pm
Hi, I am a 3D scenery developer. My last job was for a scenery called RioDeJaneiroV9 (Rio De Janeiro - Brazil) where I made some stuff ( http://www.fsdeveloper.com/forum/showthread.php?p=137084 ). I would like to becames a developer for Outerra too and my question is which tool to use for 3D modeling? I know Gmax (Game max - for FS9, FSX and others) and I am learning Blender.
Title: City generation
Post by: cameni on November 21, 2010, 09:30:53 am
We are using Blender here (that is, Angrypig is using Blender, I'm purely procedural programmer guy writing Povray scripts at best :)), but I believe 3D modelers who cooperate with us use mostly 3DS Max.

Otherwise it shouldn't be a problem of which tool to use, as long as it could export a Collada file that can be then imported into Outerra. Or if its output can be passed through another tool that can produce the Collada file from it.
However, our importer still needs some more work until it becomes fully usable.
Title: City generation
Post by: LuisVargas on November 21, 2010, 10:23:36 am
Ok, there is a Collada plug-in for Blender at http://colladablender.illusoft.com/cms/content/blogcategory/25/29/ . Let's see what Angrypig has to say about it. Blender is a powerfull freeware tool and I will continue to invest in it, even if only for leisure.

Just clarifying, when I said I would like to become a developer for the Outerra, I forgot to add that would be in the form of add-ons freeware.

Thanks.
Title: City generation
Post by: cameni on November 21, 2010, 11:07:33 am
Blender 2.5 already integrates Collada export/import natively. The 2.5 version has got an updated GUI that should be much better that the previous versions. Also, we are using its sequencer for cutting and syncing the movies.
Title: City generation
Post by: Abc94 on November 21, 2010, 03:25:26 pm
Well, good to hear that you are using blender for modeling!  Right now I am just learning the ropes of Blender.

BTW, is there much differnce between 3DS Max and Blender other than that one costs a fortune while the other one is free and open source?
Title: City generation
Post by: angrypig on November 21, 2010, 03:46:24 pm
Quote from: Abc94
BTW, is there much differnce between 3DS Max and Blender other than that one costs a fortune while the other one is free and open source?

I think Blender is much better for polygonal modeling than Max and is much faster. Blender starts almost instantly and it is fast even you are working on high poly objects. But it is still in BETA stage so sometimes it is unstable.
Title: City generation
Post by: Michal on November 21, 2010, 03:46:57 pm
And doesn't have NGons :)

It's just a personal preferences. Some prefer Linux, other Windows, it's the same with 3d apps.

I don't like neither Blender nor 3dsMAX. I have to work on latter though.
Title: City generation
Post by: LuisVargas on November 22, 2010, 05:36:02 pm
How about creating a topic for freeware add-ons developers could post their Collada models from major landmarks of their cities or others of their interest?
In the future would be only necessary download and put these models in the geographic positions in the 'Outerra Simulator'.
Title: City generation
Post by: cameni on November 23, 2010, 10:36:32 am
I'm sure something like that will be created at appropriate time.
I was also thinking about utilizing the built-in torrent library to be able to share the models and terrain data and modifications one made in some world region. The sharing would work by publishing a torrent link (on forums, twitter - somewhere on the web) that can be then inserted into a dialog where each mod shows its state and download progress and all the mods can be also enabled/disabled there. Since the engine includes also a web browser, clicks on such special torrent links could be even caught and processed automatically.
Title: City generation
Post by: ZeosPantera on November 23, 2010, 02:26:12 pm
Yeah my first thought was, Fly to France, Drive to Paris, Walk to the town Center, Download Eiffel tower.

You know what.. that sounds demo worthy! Kind of like a geography class but with more awesome. Go travel to the worlds greatest landmarks and initialize them.
Title: City generation
Post by: LuisVargas on November 24, 2010, 05:40:52 am
Since the subject is 3D modeling, I wonder if the engine of Outerra will have some form of 'Level Of Detail' management (LOD), since almost all the modern 3D games have one to improve graphics performance.
Title: City generation
Post by: ZeosPantera on November 24, 2010, 06:35:33 am
Quote from: LuisVargas
Since the subject is 3D modeling, I wonder if the engine of Outerra will have some form of 'Level Of Detail' management (LOD), since almost all the modern 3D games have one to improve graphics performance.

OT has a seamless LOD system. Probably why you haven't noticed it from the videos.
Title: City generation
Post by: angrypig on November 24, 2010, 06:58:07 am
Quote from: LuisVargas
Since the subject is 3D modeling, I wonder if the engine of Outerra will have some form of 'Level Of Detail' management (LOD), since almost all the modern 3D games have one to improve graphics performance.

I guess you mean LOD on 3D models. No we don't have one yet because we want to try a few ideas first. But it will come soon. LOD management is not only about 3D models and performance but also about proper texture management. Object textures are consuming a lot of GPU memory which is big problem in such big environment.
Title: City generation
Post by: LuisVargas on November 25, 2010, 03:27:01 am
Another important detail to be provided by the SDK modeling is the ability to create hard surfaces like platforms for heliports. Also a hard surface can used to build bridges where we can draw a road vector (VTP polygon) over for vehicles traffic. Finaly, support for transparency through the use of alpha channel in the textures files for UVW mapping can not be forgotten. With these three facilities (LOD, hard surface and transparecy) the set of tools for a good 3D modeling is almost completed and we could start modeling our freeware landmarks.
Title: City generation
Post by: cameni on November 25, 2010, 06:19:28 am
Just posted a short video about making pads, showing something from the terrain modding tools (very alpha at the moment).
http://www.outerra.com/forum/viewtopic.php?id=173
Title: City generation
Post by: LuisVargas on November 26, 2010, 06:23:50 am
Good tool!

Those buildings and homes shown in Lukla in the Himalayas trip video (and other videos) were modeled with Blender?

I keep insisting on Blender because it is a free software so we can post and freely distribute the generated Collada files and their sources (*.blend files). I think in this way we could have a developer community for freely exchanging information and Outerra 3D models without worrying about piracy.
Title: City generation
Post by: cameni on November 26, 2010, 06:39:30 am
Yes, those were modeled with Blender.
When placing a building there's an option to automatically level the terrain under it, that creates a pad there, with adjustable extension of object's bounding rectangle outwards.
Title: City generation
Post by: LuisVargas on November 26, 2010, 10:06:23 am
That's a great notice! I'll keep on learning Blender with much more interest from now on. As I know Gmax (a poor cousin of 3ds Max version 4) almost everything that I have been reading untill now sounds family and many things are even easier and more intuitive.
Title: City generation
Post by: Michal on January 20, 2011, 12:39:17 pm
XPlane guys showed few screenshots of their cities for XPlane 10. Houses are placed along vector roads:

http://www.x-plane.com/pg_news.html

It does look good. I'm not XPlane fan, or even user, but I'm seriously considering buying XP10. It is first release that gained some of my interest.

New post on Ben Supnik's blog:

http://xplanescenery.blogspot.com/2011/01/next-gen-cities.html
Title: City generation
Post by: corona on January 20, 2011, 12:45:10 pm
Wow, that looks really good.
Here's hoping Outerra can match (or one up!) that!

I need to take a closer look at x-plane again I think while waiting for an Outerra based flightsim :-)
Title: City generation
Post by: cameni on January 21, 2011, 02:43:05 am
Yes, looks good, for a flight sim. They took several good steps in the right direction with that version.

Though I'd like to see it in motion, for things like pop ups of geometry and shadows ..