Search Unity

GAIA - AAA terrain generator, procedural texturing, planting and scene creation

Discussion in 'Assets and Asset Store' started by AdamGoodrich, May 21, 2015.

  1. AdamGoodrich

    AdamGoodrich

    Joined:
    Feb 12, 2013
    Posts:
    3,783
    Just having fun :)

     
  2. BackwoodsGaming

    BackwoodsGaming

    Joined:
    Jan 2, 2014
    Posts:
    2,229
    Hey Adam.. One thing that I've had problems with TC doing easily is generating islands. I know Nathan has a demo of how to take a splat map and generate an island but I'd love to have a tool where I could just go in and say, "I want an island" and it automagically generates terrain with all of the edges of the tile at 0. Or even better, have it be able to generate the underwater terrain as well in the negatives. Not sure if the last part is even possible. Do you think it would at least be possible to do some type of island toggle so we can automatically generate a terrain that would be surrounded by water?

    Screenshots look AMAZING, btw!
     
    AdamGoodrich and John-G like this.
  3. AdamGoodrich

    AdamGoodrich

    Joined:
    Feb 12, 2013
    Posts:
    3,783
    Thanks :) Yep absolutely. Will make one and do a demo screenshot of that today.
     
    John-G and BackwoodsGaming like this.
  4. AdamGoodrich

    AdamGoodrich

    Joined:
    Feb 12, 2013
    Posts:
    3,783
    Yep it can - you add the objects to the spawner and the maximum instances, and it goes from there.
     
  5. AdamGoodrich

    AdamGoodrich

    Joined:
    Feb 12, 2013
    Posts:
    3,783
    @Shawn67 Here you go - i have to stop playing and keep working :)

    I really love what you can do with water and good lighting. I could just hang out in this environment. Again - all from scratch, terrain & texturing in about 5 mins. Rest in about an hour as I haven't integrated the new spawner in yet.

    Imho, tools like mine are good to get you the first 80% of your environment, then you tweak the rest to your personal preference.

    If you would like to see more images from this set then check out : https://www.facebook.com/proceduralworlds



    Hope you all don't see this as spam - if so then I will lighten up on the imagery and just announce the milestones.

    As much as anything else its to show whats possible with good tools and a little creativity.
     
  6. AdamGoodrich

    AdamGoodrich

    Joined:
    Feb 12, 2013
    Posts:
    3,783
    @Shawn67 Here is an image of the island itself in the editor, rather than an in-game view.

    Please ignore the poor lighting... hopefully what you can see is a very large island (its actually 2km x 2km) with quite an interesting topology.

    There are lots of fairly flat areas which makes for good game play, but it's not so flat that it is boring. There are some good high points which provide a sense of space and interest and a nice backdrop.

    The size of the trees should give you a sense of how far zoomed out we are - that's why the terrain on the mountain looks a little funny - Unity is doing its zoomed out thing, and it is not showing as it would appear in-game.

    The screen shots in my previous post are in game, and taken from the smaller island at the bottom left.

     
    Rick-, John-G and BackwoodsGaming like this.
  7. BackwoodsGaming

    BackwoodsGaming

    Joined:
    Jan 2, 2014
    Posts:
    2,229
    Love the looks of it! At least from this angle. Is it possible to get it to generate edges like this all the way around though? From the looks of the screenshot, I'm picturing an overhead map looking like someone sliced the Z and X sides straight and dropped them into the ocean. Hoping to get something that will generate this view all the way around in the center of the tile. If that makes sense.

    Heading off to look at and Like your Facebook page so I can follow images out there too... heheh
     
    AdamGoodrich likes this.
  8. AdamGoodrich

    AdamGoodrich

    Joined:
    Feb 12, 2013
    Posts:
    3,783
    Yep, was just about to delete it, but will put images both sides up on facebook. Its completely up to you how you make your islands, and you can create any form of shoreline you want.

    I also have a 'beach nibbler' :) I might add that in there as well. It looks for water level and then makes beaches, so you can get much nice beaches rather than drop off's. If you look back through the facebook site you can see it in action.
     
    John-G and BackwoodsGaming like this.
  9. Baldinoboy

    Baldinoboy

    Joined:
    Apr 14, 2012
    Posts:
    1,526
    Definitely not spam. Love to see your environment screenshots. Really beautiful. Great island too.
     
    Teila and AdamGoodrich like this.
  10. John-G

    John-G

    Joined:
    Mar 21, 2013
    Posts:
    1,122
    I think the only spam this thread will generate, is the cash that's being thrown at the screen to buy this amazing tool. Facebook page added to my likes, look forward to any pics you post :D
     
    AdamGoodrich likes this.
  11. BackwoodsGaming

    BackwoodsGaming

    Joined:
    Jan 2, 2014
    Posts:
    2,229
    Agree.. Pics you have been posting on Facebook are AMAZING as well! Any idea when you think you'll have something to release? Soon(tm), a couple months out yet, etc? Not really looking for a date, just a general idea of when to try to budget for it.. heheh
     
    AdamGoodrich likes this.
  12. AdamGoodrich

    AdamGoodrich

    Joined:
    Feb 12, 2013
    Posts:
    3,783
    Thanks Guys - I posted an image to Imgur that had a link to the Facebook page - and some dude swore at me for spamming (as if 2 images in total is spam!), and it got down voted. I was pretty surprised because it was the jagged mountain image from the previous page which i was sort of proud of. Won't post there again :(

    There are a lot of things I would still like to add to it, but as soon as the Spawner is done then its essentially a usable system as it will enable you to create cool terrains, texture them and then populate them with grass, trees and animals / monstors.

    At worst case the Spawner will be done by end of this week, then I have to test across multiple terrains. It was a real pain the last time I did that as it needs to be pixel perfect when you cross borders so that they line up properly. Things like multi terrain smoothing can be quite difficult.

    Then assuming no or limited issues there then its its just a matter of doing some documentation and some video tutorials and its ready to go.

    There is much more cool stuff that I want to do, but I am thinking that I will do something like Cobus has done and put a roadmap out and release expansions over time.

    So if all going well then it might be submitted in a couple of weeks :)
     
  13. AdamGoodrich

    AdamGoodrich

    Joined:
    Feb 12, 2013
    Posts:
    3,783
    One more thing - i wrote this cool little tree growth script once - will chuck it in as well - its rather a cool when you see the world around you sprout trees that grow in real time :)
     
    John-G and BackwoodsGaming like this.
  14. Wylaryzel

    Wylaryzel

    Joined:
    Sep 13, 2013
    Posts:
    126
    First of all, I really like those fantastic pics :)

    To get a better feeling of the tool. Are the spawner something like defining biomes?
    And how complicated to create our own set of spawners to differentiate different types?
    If you are ready - a pic of the UI you are creating would be very nice (hope there will be a UI and it has not everything to be set in code :)

    Watching this thread.

    BR
    Wyl
     
    AdamGoodrich likes this.
  15. AdamGoodrich

    AdamGoodrich

    Joined:
    Feb 12, 2013
    Posts:
    3,783
    You could easily use them like that - Spawners can spawn any prefab you like, so you could place them at different locations and have biome specific objects being spawned.

    The intention is to make them the key driver behind anything that is placed into the environment in a procedural way, from mountains and rocks, to trees, grass and any monstors. So in addition to placing biome specifc grass, trees and monstors, you could also place biome specific landscape features.

    The screenshot below is an early version of it. I will adapt it so that it can run at both design time and run time. You might notice from the stats that it also supports instance pooling. It's not currently active in the screenshot below, so there are no current instances.

    In the scenario below, it will spawn up to 57 Alaskan Cedar's within the constraint's defined there.

     
    Last edited: May 25, 2015
  16. John-G

    John-G

    Joined:
    Mar 21, 2013
    Posts:
    1,122
    Have you tried RTP with it yet, should be no issues as it's standard unity terrain. But just wondering will RTP work with the real time generation?
     
  17. AdamGoodrich

    AdamGoodrich

    Joined:
    Feb 12, 2013
    Posts:
    3,783
    Good question :)

    I have used it with RTP in the editor and that works just fine, but haven't tried modifying the terrain at run time with RTP. I can't see why it wouldn't work, but then again I am not an RTP expert and I don't know what optimizations Tom uses to make his magic - would imagine that tessellation feature probably wouldn't work, but the rest maybe might.

    It might be a good to ask Tom whether or not RTP supports real time height map modification in the RTP thread. If it does then we are good to go.
     
  18. AdamGoodrich

    AdamGoodrich

    Joined:
    Feb 12, 2013
    Posts:
    3,783
    Here ya go - the growth script is so much fun that I had to make a video of it. It is set on the same island in the earlier screen shots :)

     
    BackwoodsGaming and John-G like this.
  19. John-G

    John-G

    Joined:
    Mar 21, 2013
    Posts:
    1,122
    Wow that is pretty good, are they speedtrees?
     
  20. AdamGoodrich

    AdamGoodrich

    Joined:
    Feb 12, 2013
    Posts:
    3,783
    Yep :)
     
  21. BackwoodsGaming

    BackwoodsGaming

    Joined:
    Jan 2, 2014
    Posts:
    2,229
    Hmmm... So that could probably also be used with other speedtree plants to simulate growing farms, shrubs, etc, right? Is there control over the rate of growth in the script? And is the script just scaling the plant or would we be able to do stuff like flowers starting as a tiny plant, growing, and then blooming? I know.. I don't ask for much, right? rofl
     
  22. AdamGoodrich

    AdamGoodrich

    Joined:
    Feb 12, 2013
    Posts:
    3,783
    He he, yeah I included because I thought it was rather fun and might stimulate some creativity.

    It is simple scaling script that uses co-routines to do the scaling. It is only active when its growing, so there is only a brief impact on performance.

    The only param you can change at the moment is the rate of growth. I found that setting it to a relatively short time periods works fairly well. Looks sort of cool when a tree shoots up.

    I might make another version that rises the prefab up out of the grounds as well... And maybe surrounds them with dust. Then you could also use it as a simple way to simulate buildings being built.

    This leads onto the concept of DNA. The majority of the objects used by the system have a DNA. This tells the system about that object. So for example, a tree has family and species, as well as metrics about its size, seed throw distance, size variability etc.

    The DNA is used by the spawner to group similar trees, to add a natural order to the way it is spawned, and make sure two trees aren't spawned in the same place.

    The growth script also takes this into account. That way you get variability in the trees that are grown this way.

    I have tried a whole lot of different approaches to this, and the final detail are still being locked down, so will elaborate more on this as it stabilises :)
     
    BackwoodsGaming and John-G like this.
  23. mwituni

    mwituni

    Joined:
    Jan 15, 2015
    Posts:
    345
    Looking awesome.
    Been watching some of your other posts.

    I know you said you still need to work on river generation etc, but I'd love to see what it can do on some lower lying areas ... coastal - beaches, small bays, perhaps even some desert areas etc. All pics so far seem to be mountains and hills, have anything coastal etc?

    Some in-game editing will be really useful ... along the lines of multi-player games that allow users to do some editing on plots they have purchased etc. I'm not sure how you would go about it, but might be a range of shapes they can add and/or subtract.

    I guess those making combat games will appreciate being able to create some craters from explosions etc
     
    AdamGoodrich likes this.
  24. AdamGoodrich

    AdamGoodrich

    Joined:
    Feb 12, 2013
    Posts:
    3,783
    Thanks for the suggestions. Next screenshot i make will be of something low lying. I have tended to stick with the same textures and grasses etc because I am focused on the core functionality.

    Just got the Spawner working at both edit and run time :)
     
    Teila and DefinitionUK like this.
  25. AdamGoodrich

    AdamGoodrich

    Joined:
    Feb 12, 2013
    Posts:
    3,783
    Here is a video of the new Spawner system running, combined with SpeedTree's and the growth script I mentioned the other day.

    There are 4 different SpeedTree models being used here - each one has it's own configuration in the Spawner so that it is placed according to its own rules, and you could layer multiple Spawners into a scene to create different biomes.

    The Spawner makes sure that trees are only placed on the terrain itself, and that the trees do not collide with each other. Some overlap however is ok, as this makes it look more natural.

     
  26. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    This would be great coupled with the ability to chop down the trees. That is the hard part. It is beautiful!
     
    AdamGoodrich and BackwoodsGaming like this.
  27. John-G

    John-G

    Joined:
    Mar 21, 2013
    Posts:
    1,122
    One thing I noticed in video is orientation of all the trees appear to be the same, could you add a random rotate to the spawner script.
    Also not sure if it would work well but many Speedtree varieties come with younger versions of the tree as well as seasonal, would it be possible to have the script swap out the models depending on age/heigth of tree and season. :)
     
  28. AdamGoodrich

    AdamGoodrich

    Joined:
    Feb 12, 2013
    Posts:
    3,783
    Yeap a random rotator and also height / size variation is on the agenda - had this in an earlier version - still making some decisions about how to make the underlying rule set more robust.

    It may not be obvious in the video - but I am actually using the two different age versions of the Alaska Cedar model and treating them as separate spawns. End result is a more interesting height and growth variation.

    I have an underlying resource manager as well and it has slots for both mobile and desktop versions of the trees. The intention is to have a system that could be rendered equally well on mobile or desktop. I did some prototypes of this ages ago where I swapped mobile and desktop assets at run time in a scene that ran as well on an ipad 2 as it did on desktop.

    That said, device specific asset management is not on my roadmap at the moment and not the intention of this tool for now. Maybe if there is enough interest I could add as a later enhancement.
     
    John-G likes this.
  29. AdamGoodrich

    AdamGoodrich

    Joined:
    Feb 12, 2013
    Posts:
    3,783
    Yeah - would be cool. Seems like someone should make one and sell it. A good tree chop asset is a problem i have thought about too :)
     
    Teila likes this.
  30. John-G

    John-G

    Joined:
    Mar 21, 2013
    Posts:
    1,122
    Cool I'll have another look for the Alaska Cedar to see how it looks with the younger version transition.
    With Speedtree it would be possible to create a variety of age states from sapling to fully grown and swapping between them for growth stages they also do stumps too. Cant wait to try that out with speedtree modeler and your system.

    For tree-cutting speedtree don't do capped ends for the base where tree would be cut, but this was raised on there forums and they are looking into it due to so many games now featuring tree-cutting.
     
  31. AdamGoodrich

    AdamGoodrich

    Joined:
    Feb 12, 2013
    Posts:
    3,783
    I like what this guy did - the cut and fall bit anyway :



    http://forum.unity3d.com/threads/surviving-pangea-wip-pre-alpha.262056/
     
    Baldinoboy and chingwa like this.
  32. AdamGoodrich

    AdamGoodrich

    Joined:
    Feb 12, 2013
    Posts:
    3,783
    I have to say - am blown away - I just plugged Suimono in - have had it for ages but never used it - the latest experimental beta is just amazing !!





    You guys need to get Tenkoku and Suimono - and of course this :)
     
  33. Hikiko66

    Hikiko66

    Joined:
    May 5, 2013
    Posts:
    1,304
    Hi Adam.

    Some of us are using solutions for areas with lots of trees. We have tree prefabs with colliders attached. In TC we add trees to the terrain but we do so without the colliders, via the checkbox. We then add and manage the colliders at runtime ourselves.

    Can your seed system omit the tree colliders in the same way, and will that affect the "placed trees do not collide" functionality?
     
  34. chingwa

    chingwa

    Joined:
    Dec 4, 2009
    Posts:
    3,790
    @NA-RA-KU Interesting, I've been thinking of doing this on my own terrains, but haven't built a realtime collider manager to test it out. I assume you get a noticeable performance increase by not including the colliders until you need to?
     
  35. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    Yeah, the problem is that with terrain placed trees, you can't really interact with the tree. That means it is impossible to chop them down.

    I am not worried about an end cap. Just replace the tree with a trunk....but again, not possible with terrain trees.
     
    AdamGoodrich likes this.
  36. mwituni

    mwituni

    Joined:
    Jan 15, 2015
    Posts:
    345
    This looks really good.

    How is this on resources? Do you have like an event management system dealing with 'growth intervals' etc instead of each running its own timer scripts etc? And what about trees not loaded ... I assume they'd be "maturing" too so when they are loaded they show up as more "mature" trees.

    So for trees chopped down, would it be easy enough to get them to start respawning in same location?

    Also, I'd advise some type of synchronization method ... ideally with one broadcaster so it can be server initiated - as many games are going multiplayer - so you want a way for trees on multiple clients to both to be spawned at same location and time as well as matured at similar times etc.

    I assume the granularity of growth is quite configurable too - so to minimize overheads I might run a script hourly specifying a larger % growth instead of every second/minute etc
     
  37. mwituni

    mwituni

    Joined:
    Jan 15, 2015
    Posts:
    345
    Thanks for the water-level landscapes.
    Yes, lovely lighting and water, and foliage brings the scene to life

    The reason I was asking about some beach and water scenes etc earlier is because terraforming near water edge is a lot more involved that the typical hills, valleys and mountains. Usually it requires more processing with advanced erosion etc which form sloping beaches, eroded banks and rocky outcrops etc. From seeing your previous landscapes I'm pretty sure you know what I mean.

    The opposite banks and Isle in the above pic seem to be more straight-forward hills and slopes type terrain.

    Its obviously early days for your tool, but is that something you will be adding support for? Otherwise terrain at waterlevel becomes the same as terrain on hills and valleys ... just with the water level moved up. Which isn't going to be too nice.

    When I read the inital posts, I assumed that you had some sort of plug and play tech you could develop "water level" solutions for too. I would assume if thats the case you'd add things like eroded plateaus, rocky outcrops etc that can be used at waterlevel.
     
    AdamGoodrich likes this.
  38. AdamGoodrich

    AdamGoodrich

    Joined:
    Feb 12, 2013
    Posts:
    3,783
    Hi, the past few days have been busy with day job and between this which is currently a 7 day a week effort (and has been for some time), and kids n work I get pretty tired. I tend to change what I do based on tired level so I can still get something out. Creating scenes is actually the easy bit :)

    I do have something to show you re beaches but just haven't plugged it in yet. It was just an experiment i did at one point based on some research I was reading about agent based terrain transformation, but i quite like it.

    Screenshot soon :)
     
    Archania likes this.
  39. AdamGoodrich

    AdamGoodrich

    Joined:
    Feb 12, 2013
    Posts:
    3,783
    Interesting idea ! I have done this on another component of the system. I will look into a Strip Collider feature today on the Spawner.

    Currently the Spawner does a ray cast before placing an object. But I could just as easily do a bounds or proximity check.

    Hmm... That would mean I need to link all spawners in a scene together... Doable but more complex :)
     
  40. AdamGoodrich

    AdamGoodrich

    Joined:
    Feb 12, 2013
    Posts:
    3,783
    More thinking on the collider thing. I could make an API into the spawner that would allow you to check a location and get and object placed there.

    Could be useful for tree chop scripts.
     
    Teila likes this.
  41. AdamGoodrich

    AdamGoodrich

    Joined:
    Feb 12, 2013
    Posts:
    3,783
    I had another prototype in which I grew around 10000 trees and perf was fine. What was interesting about it was that those trees grew, reproduced, died of old age.

    Essentially this meant I needed to periodically traverse a list of 10000 objects and give them a chance to 'Live'. I did a bunch of tricks to achieve this while still maintaing good frame rates. The growth script here is from that simulation.

    I had not really intended to do something that sophisticated for this asset though as the focus was more for environmental generation rather than what comes next.

    Speaking of what's next, I have been collaborating with a very talented guy from Sweden to make a cloud based living worlds system. Most of what is out there is very limited. What if you could not only have a pretty world, but one that lives as well. Entire ecosystems of living and interacting creatures and NPC's... But that's a story for another day :)
     
  42. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    Between you and Tony, our worlds really would come to life! :)
     
    AdamGoodrich likes this.
  43. AdamGoodrich

    AdamGoodrich

    Joined:
    Feb 12, 2013
    Posts:
    3,783
    Ok, today I was lucky enough to get some time with Cobus's new Exteriors pack - you can find it here, and on the asset store very soon now :)







    Didn't get much coding done :)
     
  44. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    Oh, I am so jealous. I want to play with Cobus' pack! :)
     
  45. BackwoodsGaming

    BackwoodsGaming

    Joined:
    Jan 2, 2014
    Posts:
    2,229
    Ditto, Teila! As well as Adam's terrain tool! I've been kludging through Terrain Composer again. Seems like every time I go back to use it I have to go back and relearn everything I learned before. Really hoping this tool is a lot more intuitive.. Well, not that TC isn't. It just has such a steep learning curve, at least for me. If you need someone to test user friendly factor, Adam... Hit me up.. lol
     
    AdamGoodrich and Teila like this.
  46. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    Yep, same here. :) I think Shawn and I are the poster children of "user friendly factor". lol
     
  47. chiapet1021

    chiapet1021

    Joined:
    Jun 5, 2013
    Posts:
    605
    And me as well. I quit my computer science major in college for a reason: I'm a terrible coder lol :p
     
    AdamGoodrich and Teila like this.
  48. BackwoodsGaming

    BackwoodsGaming

    Joined:
    Jan 2, 2014
    Posts:
    2,229
    And by poster children she means the whole campaign was probably started because of us... rofl
     
    AdamGoodrich and chiapet1021 like this.
  49. BackwoodsGaming

    BackwoodsGaming

    Joined:
    Jan 2, 2014
    Posts:
    2,229
    Hey Adam... Another question.. With your tool would we be able to import terrains that we have already created with something like Terrain Composer? I'm currently wading through getting terrains built in TC to start working around building with Cobus' exteriors kit when it is released. Would be great if I could load your tool on existing terrain to apply some of your features to it.. Mainly thinking of the erosion and tree scripts... Oh and the shore nibbler that you mentioned..
     
  50. AdamGoodrich

    AdamGoodrich

    Joined:
    Feb 12, 2013
    Posts:
    3,783
    Hi Shawn, yeah, absolutely, my system can take existing terrains and modify, texture and then plant things in them.

    It's working quite well now and I would really love to show this in action but I want to wait until just before launch before I show it off. I had my BFO after a time consuming and frustrating experience designing a big map using a range of tools and wishing that there was a better way.

    My approach is quite different, and I think you will be pleasantly surprised at how simple, precise and intuitive it is. Every image here is from the same Unity scene. I just hit the Flatten button and start again with an empty terrain and have a new and interesting result in a matter of minutes. It feels like a little part of me dies every time i hit that Flatten button :)

    There are some other big reveals coming soon as well that I think you will like - again its completely new stuff and the possibilities excite me - but more on that closer to launch :)
     
    John-G and BackwoodsGaming like this.