Search Unity

[CityGine] Procedural City Generator

Discussion in 'Works In Progress' started by dyox, Dec 26, 2014.

  1. dyox

    dyox

    Joined:
    Aug 19, 2011
    Posts:
    566
    CityGine
    CityGine is a procedural City Generator : (In Editor)
    -Procedural Seeded Cities Generation

    -Procedural Roads : 1 - 2 - 4 - 6 Way roads
    -Procedural Roads Mesh : Ultra low poly road
    -Procedural SideWalks
    -Procedural Buildings with multiple LOD
    -Fully explorable Buildings : Each floor of each building is explorable
    -Fully Multi-threaded systems : Mesh Combiner, LOD,etc..
    -Streamed Data from disk
    -Unlimited City Size
    -Multiple city support
    -Roads / SideWalks / Building Areas movable in realtime in editor. Generate your city and modify streets / move roads.
    -Optimized Collider generation
    -Generic road rules system. Create your road generation rules
    -Fully automatic intersections generation
    -Terrain Alignement

    -And more

    Unity 2014-10-11 03-49-01-94.jpg Unity 2014-12-26 21-56-44-26.jpg Unity 2014-12-26 21-57-11-69.jpg Unity 2014-12-26 21-57-22-09.jpg Unity 2014-09-16 06-37-35-05.jpg
     
    mitaywalle, Jamster, Andy3D and 3 others like this.
  2. dyox

    dyox

    Joined:
    Aug 19, 2011
    Posts:
    566
    Unity 2014-10-11 03-49-25-28.jpg Unity 2014-09-16 06-38-10-28.jpg Unity 2014-12-26 22-01-09-31.jpg Unity 2014-12-26 22-00-14-56.jpg Unity 2014-10-11 03-50-07-64.jpg
     
    Tethys and Mikael-H like this.
  3. SirStompsalot

    SirStompsalot

    Joined:
    Sep 28, 2013
    Posts:
    105
    Looks great! Looking forward to seeing more.
     
  4. carking1996

    carking1996

    Joined:
    Jun 15, 2010
    Posts:
    2,563
    Nice, be sure to leave an option for non-explorable buildings(for racing games). :)
     
  5. HeadClot88

    HeadClot88

    Joined:
    Jul 3, 2012
    Posts:
    701
    Questions inbound @dyox

    How much will this cost?
    What is performance like?
    Will there be support for physically based rendering?
    Will there be support for non-explorable buildings?
    Will we get source code with purchase?

    - HeadClot
     
  6. dyox

    dyox

    Joined:
    Aug 19, 2011
    Posts:
    566
    @SirStampsalot : Thank you

    @carking1996 : Yes off-course, explorable buildings is an option.
    It will also support custom gameobjects for populate sidewalks. Fence etc for racing game etc.

    @HeadClot88 :
    "How much will this cost?"
    -I don't know for the moment, there is still more than 6 months of work before the first release.
    "Will there be support for physically based rendering?"
    -Yes
    "Will there be support for non-explorable buildings?"
    -Yes , and support for custom mesh to populate sidewalks. With multi-threaded LOD and batching
    "Will we get source code with purchase?"
    -Yes, i will provide the source code, and i don't use any DLL.

    The solution will come with a complete mesh manipulation framework. Smooth curves, sidewalks builder, roads/ intersections/bridge builder etc.
    Like 'easy roads' and 'road architect' assets.
    It will be also possible to create futurist cities with flying roads etc.

    I will provide few demo scenes with the solution :
    -Racing : non explorable buildings
    -First person (GTA like) : Explorable buildings etc.
    I've already worked on IA for cars and pedestrians in the past, i will add it when main systems will be ready.

    My goal with Unity 5:
    thecrew5.jpg GTA-V_hud-mockup.jpg

    CityGine is my second project, i'm working on it on my spare time.
    For the moment i'm focused on TerrainEngine, but i'm absolutely sure i can provide a GTA Like solution for unity for 2017.
     
    Last edited: Feb 4, 2017
    Tethys and HeadClot88 like this.
  7. HeadClot88

    HeadClot88

    Joined:
    Jul 3, 2012
    Posts:
    701
    @dyox - You have my attention with this asset.
    That said more questions inbound at you -

    Will there be a Website that I can contact you and buy this asset at when it is ready?

    I prefer to support developers of awesome assets like this directly but at the same time having some sort of point of contact and Support via a website would be a great benefit as well as online docs.

    That said - I know you charged a fair bit for Terrain Engine. Will it be the same for this? Just a concern that I have.

    Is there anyway I can become an early adopter of this asset?

    Will this be compatible with Unity Free and Pro?

    Thank you for your time,

    HeadClot
     
  8. Tethys

    Tethys

    Joined:
    Jul 2, 2012
    Posts:
    669
    Well done Jedi Master! This is the first time I saw this but it is super impressive. Always making awesome stuff you are, strong in the force is this one! :p
     
    dyox likes this.
  9. neff11

    neff11

    Joined:
    Sep 7, 2013
    Posts:
    35
    and we can decide what buildings we want for the city? i mean if this works also if we wanto to generate custom villages for rpg's and tell the asset to produce a village or a town with our own buildings.
     
  10. BlindGuard

    BlindGuard

    Joined:
    Feb 5, 2013
    Posts:
    2
    Great work! Let me guess: Is it made by L-system theory? Or something else?
     
  11. Stormbreaker

    Stormbreaker

    Joined:
    Aug 15, 2012
    Posts:
    150
    Any updates? Looks great.
     
  12. ErickXavier

    ErickXavier

    Joined:
    May 21, 2015
    Posts:
    4
    Hey! How is this going?
     
  13. dyox

    dyox

    Joined:
    Aug 19, 2011
    Posts:
    566
    Hi, yes , i'm still working on it.
    I'm finishing TerrainEngine V10 and after i will post new videos with all features.

    Here is the intro :
     
  14. HeadClot88

    HeadClot88

    Joined:
    Jul 3, 2012
    Posts:
    701
    @dyox -

    Got some more questions -

    1. Will this be listed on the Asset store or your own website?
    2. Will the pricing be reasonable for us broke indies?
    3. Will we be able to control the generation of Buildings and will there be integration with 3rd party assets such as BuildR?
    4. Do you have a ballpark estimate for how much this will cost?
    5. Will we be able to get a non source code version? Personally I just want to have my assets to be plug and play with no conflicts if possible.
    6. Is Open Street map data being considered for real life cities?
    7. Is there any plans for Unreal Engine 4 support?

    Just curious,
    HeadClot
     
    Last edited: Sep 13, 2015
  15. Andy3D

    Andy3D

    Joined:
    Jan 31, 2015
    Posts:
    33
    REALLY like the look of this. So, same questions again really :)
    But mostly...
    - whats the projected release date for this asset.
    - is OpenStreet Map (or other procedure) going to be available to make real-world towns and cities?
    - is cost going to be < $50? If so, please take my money now!
     
  16. dyox

    dyox

    Joined:
    Aug 19, 2011
    Posts:
    566
    Hi,

    CityGine is in pause for the moment, i've worked a lot on the procedural roads/intersections system that can work : by road /lane by lane/manage auto lanes depending of intersection angle and road lanes count.
    I'm currently focused on new TerrainEngine systems/support and i don't have enough time for both projects.

    BUT,
    I'm slowly creating an unified framework between TerrainEngine/CityGine that will allow me to speed up the dev time of CityGine so, yes ! CityGine will be compatible with TerrainEngine.

    Goal with CityGine : (first release)
    -In Editor Procedural Cities Generator
    -TerrainEngine/Unity Terrain Compatible (Destructible terrain, realtime fluids, LOD,etc )
    -Assets streaming from disk
    -Procedural Roads/Buildings/Interiors LOD
    -And more

    @HeadClot88 :
    1) No, it's not planned to sell CityGine on Asset Store ( not for the moment )
    2) Yes, no price range for the moment, first release price will be low, and increase depending of the number of systems dev
    3) Yes, I always provide interface classes to override to include external systems/tools
    4) No, i will communicate a range few months before the release
    5) No, i always provide a complete source code for a project, i hate this system, a studio must be independent and able to fix a bug or change the code if needed.
    6) I do not plan to handle external data, it a complete from scratch generation system, based on seed and procedural rules
    7) No, C#/Unity only, no DLL.

    I think i will continue the dev in Jun/July. I will post here the progress.
     
    Mikael-H and Tethys like this.
  17. ciorbyn

    ciorbyn

    Joined:
    Oct 17, 2013
    Posts:
    35
    Hello, there are two Thread open of this project but write here because it is more recent! Of procedural terrain project there are several, but this is unique and deserves to be continued ... let us know the progress of the work!
     
  18. dyox

    dyox

    Joined:
    Aug 19, 2011
    Posts:
    566
    Hi, thank you for your interest.
    I've restarted citygine since 1 month now.
    I will post progress next month with screens.

    Now roads,sidewalks etc use curves, the pro procedural generator use a new rules editor using nodes gui. The asset streaming and lod are also in progress.
     
  19. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,813
    Will you be able to use your own models for the buildings?
     
  20. dyox

    dyox

    Joined:
    Aug 19, 2011
    Posts:
    566
    Yes you can use your own mesh (buildings) or use custom building textures/atlas for procedural buildings (facade,LOD,windows,hall,doors,etc).
     
    Teila likes this.
  21. ciorbyn

    ciorbyn

    Joined:
    Oct 17, 2013
    Posts:
    35
    Great ... I will follow with attention your work!
     
  22. maestroxxx

    maestroxxx

    Joined:
    Sep 13, 2014
    Posts:
    1
    Hi, looks like a really nice project. Is your street generation based on L-systems ?
     
  23. dyox

    dyox

    Joined:
    Aug 19, 2011
    Posts:
    566
    Hi, no.
    I'm working with a graph editor using rules linked to them.
    0 class, 0 garbage, project size after build = 20mo. Everything is streamed from HD.
     
  24. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    4,898
    If it's linked to terrain engine will this allow run time generation of infinite landscape?
     
  25. dyox

    dyox

    Joined:
    Aug 19, 2011
    Posts:
    566
    It's possible but with a very different loadtime depending of platform. The best is to pre-generate the world inside the editor, modify/export the final result and just let clients streaming from HD.
    It's very simple and possible for a small city to be generated proceduraly at Runtime (Like with a Procedural Terrain like TerrainEngine) but not as big like in screenshots, (XX XXX roads and buildings, etc).
     
  26. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    4,898
    I guess you are using a mostly globale algorithm, what about using something like this (inspired by worley noise) to keep local connectivity at the edge within the spatial hash of the chunk generation.



    City are generally have predictable pattern with the 3 principals being the grid, the radial and suburban, all of the other being variation and perturbation of these one. Using coherent noises it would be easy to have a decent plausible city without the global dependency other generator tend to have.
     
  27. dyox

    dyox

    Joined:
    Aug 19, 2011
    Posts:
    566
    This system can not use a heightmap system. It doesn"t depend if biome is Mountains or plains or anything else that don"t allow cities. It's not usable in real game project. I'm only working on systems that can be usable with a terrain or with a minimum of realism.
     
  28. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    4,898
    I'm not sure if I follow you?

    The system above (the video is only an example, I don't really like the actual implementation but the main idea works) can be just as efficient as any system it's only generated meta data that can be used to create continuity.

    What it does is basically creating point inside a space hash seeded on position (like worley noise), like worley noise it's only dependent on minimal data from immediate neighbor.

    But this neighbor data is only use to established continuity. The main idea is that you generate data inside the hash with neighbor for access, it's still not much difference with perlin in which corner are used for continuity between hash.

    Depending on the size of the hash you have many options to create a city pattern:

    - if the tile are big enough, they can be extended by adding extra logic to generate, inside the chunk, one of pattern modulated by the neighbor data and biomes data (or any noise mask). The pattern is connected to any neighbourg by using their metadata and the point that are close to the edge of the spatial hash.

    - if the tile are small, the generation of point inside the tile can be coherent to each other based on any noise mask, neighbourg or any metadata. The point connect to their neighbourg using whatever coherent lines algorithm, even if the chunk is not rendered determinism will connect them once it is rendered.

    Then these data are then used to instance whatever you need on whatever terrain heightmap you have, wich you can adapt or not (by spaning brush or modifying height data using whatever logic you want). Just like regular generation on terrain.

    Also since it's based on hashed data and coherent noise, it's highly efficient for game purpose, it's topology agnostic, it has all the benefit of local generation (ie persistence of plausible data) and is cheap to compute as it does not have tie breaking condition nor need extensive validity check. With hand made mask it allow very good control of city generation that does not depend on an initial state.

    Personally I'm working on extending the methodology to infinite plausible persistant character interaction by hashing not only space, but also time and population indexing to simulate traveling and scheduling (scheduling is basically a pattern in time), though I also need progressive hierarchical spatial hash with their own metadata.

    I think I can have a pedestrian system that looks like GTA where every npc are persistent and continue to be simulated even when there is no process allocated to them (works exactly like spatial coherence of landscape), so you can simply sample both a tile position and a time position and it will return only the npc that is traversing it at that very moment, and what he is doing, without any history.

    It's the only way to populate a universe made of 2^64 unique NPC that live and die and have children, that have evolved coherently once you come back seeing them after you traveled through the whole galaxy for some time. But I guess then I only need your terrain engine, I wanted to see if I had an opportunity to avoid wasting time reinventing the wheel.
     
  29. ciorbyn

    ciorbyn

    Joined:
    Oct 17, 2013
    Posts:
    35
    Hi, how is the work going? any news?
     
  30. dyox

    dyox

    Joined:
    Aug 19, 2011
    Posts:
    566
    I'm still working on it. I've done more interresting roads and better procedural system.
    CityGine first version will come September-November 2017.

    Roads will be curved. A special LOD system is made to allow a large number of roads and procedural buildings.
    I will post screens later this year.
    (It's not an EasyRoad system, it's a fully procedural and editable system that contains default preset for Cities, It manage Buildings, floor, colliders,vehicles, pedestrians, etc) (with AI)


    And now yes, CityGine, TerrainEngine (Voxel Terrain) and UniGine (Procedural Universe) will be all compatible. So it will be possible to have : planets with cities, using a voxel terain on a procedural universe.
     
  31. Mikael-H

    Mikael-H

    Joined:
    Apr 26, 2013
    Posts:
    281
    So, in essence they are all proc gen approaches on different levels? That's awesome!
     
    Tethys likes this.
  32. ciorbyn

    ciorbyn

    Joined:
    Oct 17, 2013
    Posts:
    35
    While we wait, you can post screenshots with advances? I'm really eager to know the evolution of this project.
     
  33. Lesnikus

    Lesnikus

    Joined:
    Aug 29, 2015
    Posts:
    47
    Hello! Very interested in your project! Can you publish new screenshots? Will imports be supported from OpenStreetMaps?
     
  34. BigBite

    BigBite

    Joined:
    Feb 20, 2013
    Posts:
    99
    - Roads / SideWalks / Building Areas movable in realtime in editor. Generate your city and modify streets / move roads.

    Could you elaborate? Can we go down to street level and nudge a street over a bit? Delete it even?
    How about being able to lay down roads using splines first and having the system generate from there?

    Can we drop bounding volumes where we don't want any generation to happen?
     
  35. scantsuns

    scantsuns

    Joined:
    Jun 23, 2017
    Posts:
    1
    How is this project coming along? Seems really useful and I would love to use it in my games.
     
  36. Neviah

    Neviah

    Joined:
    Dec 1, 2016
    Posts:
    234
    Hey, I was wondering if you're still working on this. It looks very promising ^_^
     
unityunity