Search Unity

  1. Good news ✨ We have more Unite Now videos available for you to watch on-demand! Come check them out and ask our experts any questions!
    Dismiss Notice

[WIP ASSET] Project "INfiniDy" REVEALED !!! - Automated Procedural Design and Manipulation Framework

Discussion in 'Works In Progress' started by nasos_333, Sep 22, 2014.

  1. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    8,660
    UPDATE (29 SEP 2014):

    The base of the framework is now working and there are already very cool results. I decided to open up the development if there is an interest with an alpha and beta releases, before the final pack is out.

    More info in the last post.




    Older news:

    Hi everyone,

    I have strated working on a new asset project that will make my other tools look like a weekends excerise :)

    Please refer to Particle Dynamic Magic and GI Proxy for the assets already created the last few months.

    Now i am just warming up to the possibilities with Unity and i have so many cool systems ready from the above systems, that i decided to go the extra mile and offer something that (PR notice) "revolutionalize" the world of gaming.

    Q/A

    1. Can you finish it ?

    I cant answer that, i have a clear idea of how to start working on the first version and the experience and intermidiate tools to make it happen, but from an idea to practical use is a whole different matter

    2. Is it coming soon ?

    Depends, if there is lots of interest/support i could release versions until the initial idea is fully realized, and these would be at far lower prices too so everyone can jump in and support the project.

    As a general rule, such a thing would not come soon.

    3. What will it do ?

    This is a secret for now, but imagine what is one of the most major needs of every small developer.

    4. Can i back the project up ?

    Sure, after i have a first go at it and see if i can actually pull it off, i will accept paypal donations, with additional (TBD) perks for every supporter.

    5. What will you do if it cant be done ?

    I will try to enhance/back up development with other smaller assets or just announce it is not possible.

    6. What will be its upgrade policy ?

    The system is envisoned as modular / expandable, so people may actually create assets based on it, for maximum customer satisfaction. I will upgrade the pack too with my assets regurlarly (based on sales and response)

    And finally some keywords :)

    God :), Procedural, AI, rule based, modular

    Please dont take this asset for granded until i have the first version, this is just a first announcement to keep people updated on what i have started working on next.
     
    Last edited: Sep 29, 2014
    johaswe, twobob and mathias234 like this.
  2. mathias234

    mathias234

    Joined:
    Sep 9, 2012
    Posts:
    239
    Well you got my attention i know that what you do is good

    + Watch thread
     
  3. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    8,660
    Thanks :), i will try to deliver something trully special and unique with this one.
     
    mathias234 likes this.
  4. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    8,660
    UPDATE:

    Development is going smoothly, I have programmed the basis of the system and now I am optimizing so it can be ready to expand upon.

    Also doing some functions to better manage the code.

    I think i will have something to show by friday if all goes well :)

    EDIT:
    A question for code experts.

    I have a class of an item i want to instantiate and need to declare its type with an enum.

    Should the enum definition go inside the class of the object or in the main class that uses it ?

    Thanks
     
    Last edited: Sep 23, 2014
    mathias234 likes this.
  5. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    8,660
    UPDATE:

    Just finished the base for the other main type of the system's items and going fast towards a complete picture.

    Also I have made the base for local controls of the system, for extra possibilites without sacrificing performance.

    And another keyphrase:

    "Complete environment control"

    :)

    Static is nice, dynamic is better

    Also i have been thinking of the extra possibilities this system could have in AI, maybe later versions will have an integrated AI solution as well.
     
    mathias234 likes this.
  6. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    8,660
    UPDATE:

    Two extra systems i have been working on (one is for Terrain manipulation) will also make it in this new pack.

    The plan is to make a super pack with many systems that will give an amazing result combined and then split to smaller packs for developers that need a specific one.

    Same as my Particle Dynamic Magic pack, that is a collection of 10+ packs (spline particles and editor, gameobject particles, particle forces and manipulation, turbulence, music module, transitions module, cartoon collection, Water, shields systems, Fire and Ice propagation and effects, static and dynamic batching and more) and i will split them to indiviual packs later.
     
    mathias234 likes this.
  7. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    8,660
    Hi everyone,

    I would like to ask about having this pack released as an alpha stage at a far lower of the final price, so everyone that wants can support the development and also may use the already created parts up to a point.

    The pack will be huge and offer lots of systems and a complete framework (terrain tools, construction tools, destruction framework, assets for sample, maybe an AI system later), so i think would be best to have it released little by little, than have everyone wait until is perfect, this way developers can participate in the development of the tool and have individual needs covered much better.

    If there is interest, i will release more info and an alpha pack soon, if not i will keep developing it until perfected or i am closer to beta and release then.

    Thanks for the input in advance :)

    PS. Everyone interested can also contact me through PM, email or facebook etc for more info on the system.
     
    Last edited: Sep 29, 2014
    mathias234 likes this.
  8. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    8,660
    UPDATE:

    Spline tools will also be added to the system, for more versitility and control.

    L-systems are already implemented and tweaked (this is just some of the many support systems alongside the main one)
     
    mathias234 likes this.
  9. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    8,660
    UPDATE:

    The Spline system has been added, thus the pack will now include 2 different ways of construction, that will cover different scenarios and needs. A 3rd way is also planned, but i am not sure if it will make the first alpha version or come later.
     
  10. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    8,660
    UPDATE:

    I have now super optimized both construction system's bases for supreme dynamics in game and building on that.

    Also worked some cool dynamic effects that will come as bonus to the main systems and complete the vision i have for the pack :)

    UVs for the spline method is proving to be rather hard to manage, but i will find a versatile way, probably will give more than one options to handle it.
     
  11. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    8,660
    UPDATE:

    Some news on the system.

    The spline part of the pack is going very well, the UVs matter is still WIP but the first big step is working great, so it is close. UV mapping is rather hard to master :).

    There has been a lot of work done also on mesh modifiers and i will even include a mesh sculptor, hopefully in the initial release (already working).

    I have also decided on a plan about the development of the full pack.

    I will post the "INfiniDy: Advanced mesh generator" pack to the store for 50$ and this will get upgraded to the full 150$+ pack of INfiniDy suit.

    This way all early adopters will get the benefit of using the advanced tools as i create them and get constant upgrades until the complete vision is realized.

    I would love to see opinions on this approach and suggestions :)

    Also what do you think of this as final pack name ?

    "Project INfiniDy: The everything creator"
    or
    "INfiniDy: The everything generator"

    .
    EDIT: And another major question, usually when i work i hate going through special menus and GUIs to do anything or find any functionality, this usually slows down my productivity to zero, since i do so much stuff at once that is impossible to keep track of even a single needed extra GUI menu. Also is a nightmare to open multiple drawer like menus to find some value or option, when in the inspactor can be readilly visible at all times. That is my experience though, so i cant speak for everyone and would love to hear opinions on this matter as well.

    The pack will focus on providing all usuability through the inspector directly, with full visibility (without drawer like menus) and inside the editor itself. What is your opinion on this approach ?
     
    Last edited: Oct 26, 2014
  12. OnePxl

    OnePxl

    Joined:
    Aug 6, 2012
    Posts:
    307
    But… what is it? What does it do?
     
  13. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    8,660
    Fair question, i think at this stage i can reveal what it does :)

    At first stage it will be a mesh deformer and creator, which will also have a spline based system and an object distribution system. Also will include a static and dynamic batching sysem.

    Imagine something like the Megashapes, Megascatter and Megafiers packs functionality. This will allow to create details and items to use in the advanced constructor.

    The automated constructor part that will be released later (there will be a free upgrade to "INfiniDy Complete suit" pack from the initial "INfiniDy: Advanced mesh generator" pack for everyone that supports it early), will be used to create buildings and dungeons, plus whole castles with outside towers, walls etc, that the goal is to be fully or partically destructible and also have procedurally created details and complete room by room control. The partly destructible will be 100% in and is very much possible with the current stage of the system.

    Also will include terrain tools for plant growth andterrain deformation and L-systems for dynamic tree growth (but not on mass scale, this will be for effects like the one tree you see in Game of Thrones)

    Generally this will be my next superpack and will contain 5-6 packs in one, like Particle Dynamic Magic does, but will be about meshes and automatic creation. Later i will make smaller packs available with parts of the functionality, plus keep this super pack with everything in.

    Also as a plus i will include spline growth, retargeting, terrain conformation and various dynamic mesh creation modes, this will make a large number of dynamic effects possible.

    The modifiers right now contain bend, twist, noise, sine waves and much more are planned. There will be a vertex painting mode as well, a sculptor mode.

    Also like Particle Dynamic Magic that beyond the systems provides 200+ samples to readilly use in the game, this pack will also have a growing collection of ready samples to be used.

    I will post some pics with the WIP of the full vision asap.
     
    Last edited: Oct 27, 2014
  14. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    8,660

    .
    Here is a first showcase pic collection, much more will follow to cover the whole idea and current WIP.

    The castle is fully locally destructible right now, of course the system is bound by physics calculations, so in practical use i will have a variable to mark walls as "destroyable", so only outer walls of the castle will go down and not the whole structure.

    I think this makes sense from every standpoint, since it will have the spectacular factor of destroying the castle and will keep performance high, plus will let you walk in all rooms than block some completly.

    Opinions on the system and suggestions/ideas are most welcome :)
    .
     
  15. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    8,660


    Another pic showing another group of systems that will come, specifically the spline based mesh creation module. More pics will follow, there are many more systems to cover.
     
    mathias234 likes this.
  16. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    8,660
    UPDATE:



    Some more tools and functionality that will be included in the pack.

    All the systems will be working in real time and be completly controllable.
    .
     
    mathias234 likes this.
  17. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    8,660


    Some of the deformation tools
     
  18. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    8,660


    And this the last part of the systems to be included in the pack.

    I would love to have also suggestions on systems that would make building things inside Unity easier as well.
     
    mathias234 likes this.
  19. SirStompsalot

    SirStompsalot

    Joined:
    Sep 28, 2013
    Posts:
    110
    This looks pretty rad. Will watch this. Keep us posted.
     
  20. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    8,660
    Thanks, i will definitly be posting as it goes ahead.
     
  21. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    8,660
    UPDATE:

    Due to the demand, i will be working as a priority on the L-systems and procedural tree system and release as standalone as soon as possible.

    Also the INfiniDy pack is now a priority, since Sky Master first version has been submitted to the store.

    And please remeber to leave a review when buying one of my packs, since this helps me keep creating cool systems for the store and faster :).
     
  22. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    8,660



    UPDATE:


    Some progress on the L-systems, i have much better control of the tree form now and i can emit leaves on top of branches (pointy red ones), besides the leaves that come with the brances (green in pics). I can also have individual control of everything, to apply things like wind etc.

    The standard Unity wind can be applied directly if the instantiated prefab is a Unity tree, but that increased draw calls a lot. The first solution i have for draw calls is to apply my batching system, which reduces the draw calls from 150-500 to just one per material (4-5). Then i may apply the dynamic batching and rotate the leaves slowly to add a wind effect. I will apply the recombination every x frame to lessen the dyanamic batching performance impact.

    The other solution is to try and make the tree so that Unity dynamic bathing will apply by default, this is more tricky though and will have some limitations in the visual aspect.

    A clever shader might also do the trick, i could apply it to the combine leaves mesh, i will do some research on how i could create such a shader.
     
  23. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    8,660

    UPDATE:


    Your wish is my command :), i managed to lower the draw calls to the procedural trees to just 5 per tree !!! and poly counts to a minimum as well

    I will be making the leaf motion, the manual and some promo stuff and will release as the first INfiniDy pack, probably this week.
    The pack name will be "INfiniDy Trees - Procedural tree generator"

    These trees are completly controllable and i have two methods for the leaf motion

    - by script that controls the leaves with dynamic batching (that is not free and needs optimization and spread of motion in various frames to get a good result, but is fully controllable and can do rotation around pivot etc). This mode is perfect for less trees or enable when hero is close, to give that small cool detail in each leaf rotation.

    - by shader (that is rather free, but is less controllable). This mode is perfect for the mass of trees.

    Of course these scripts can co-exist and be enabled/disabled as required, for LOD adjustement based on camera position.

    The trees can also grow gradually !!! and any effect is possible, maybe in the next update i attach a particle system from Particle Dynamic Magic and can have all leaves fly away at any point etc

    And trees is just one thing, the system with some tweaking and more parameters exposed can do any kind of plant i guess, will be a cool journey ahead for the next updates.

    "INfiniDy Trees - Procedural tree generator"

    Features:

    - Super optimized procedural tree generation. Only 4-5 draw calls per tree and low poly counts.
    - Tree growth and gradual creation
    - Uber tree control, scale them, sqeeze them, rotate them, copy them, chop them, burn them, split them on the fly during gameplay, anything the terrain system prohibits can be done with these trees !!!
    - Leaf motion by shader or by script (or both)
    - Fully featured custom static and dynamic batching system to control and lower draw calls

    Future work:

    - Why only trees ? The system will provide a library of plants, flowers etc and a Prefab Manager to hold them
     
    Last edited: Dec 14, 2014
  24. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    8,660
    UPDATE:

    The system has now got multithreaded mesh batching (made and optimized for the tree system) and is already working with the castles, increasing the wall destruction performance dramatically and removing CPU usage spikes.

    I will now work on optimizing the system further around this new batching method.
     
    Last edited: Jan 3, 2015
    twobob likes this.
  25. twobob

    twobob

    Joined:
    Jun 28, 2014
    Posts:
    1,785
    +1 for awesome
     
  26. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    8,660
    Many thanks :)

    I have sent the notes on the issue with the "Grow in editor" prefab in email and PM. Glad you like the pack.

    I will make sure that each update will bring even more spectacular features.

    The next demo will have the mesh growth sample grow around an item (for spells like entaglement with the actual tree branches growing and circling around the target) and also vine creation (downwards branching, with physics to detech the ground or other architectural elements).

    These new systems will also be adapted and used in the rest of the InfiniDy suit assets.
     
  27. twobob

    twobob

    Joined:
    Jun 28, 2014
    Posts:
    1,785
    As long as the focus is on "performance", "Minimum Garbage" and "reliability" I will be a happy customer.

    I have lost count of the amount of "Amazing" systems, with incredible feature lists, that I have purchased that are so under-performant they can be used for nothing serious, much more than running their own demos.
    It is absolutely clear in many cases that zero serious thought has been put into using the system "in-game".

    Give me a system I can put in a game, that actually works every time I use it, that doesn't grind my android tablet to a standstill after 2 minutes (or has a "MOBILE" option), that doesn't create stupid geometry counts or draw calls more than 200 at any point. Then I will be a happy bunny. Ears and everything. I will even help.


    thanks
     
  28. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    8,660
    The performance part is always a bit tricky. The focus of the pack is tree dynamics and L-tree growth and both are rather expensive to get right.

    My system can guarantee that when a new tree is grown, it will handle the integration very fast and when there are interactive trees, the draw calls will be increased only for the tree group that is activated locally. All grouping, LOD and revert to static for performance is handled by the system.

    The draw calls that will be created in this case can range from few more than when nothing interacts, to really big numbers (with my demo trees that are rather unoptimized and use many growth levels). There will be a trade off between performance and L-tree growth levels and tree detail.

    The static case is handled instantly with the multithreaded batching, so the local point of insertion of a tree to the forest group is almost unoticable on my old laptop. The batched trees after insertion or ineraction are super fast, you can have any number and with the LOD even polygons is not an issue

    So to sum up, there are three levels of performance

    - static case (any detail possible, endless grass / forests with LOD)

    - static - tree growth and insertion in forest group (non dynamic), reverts instantly to static case, rebatching is fully multithreaded

    - dynamic - tree growth and insertion in intractive tree group (2-3 trees) and opening of each tree group only when ineracting with hero / world. Rebatching and revert ot static when not interacting, all automatic. Draw calls and performance in the dynamic region depend on tree type and detail.

    Keep in mind that the system is not made to destroy anything, so there could be a memory issue with very detailed trees before there is a garbage collection one.

    I am actively looking into ways to reduce the memory footprint and any suggestions on this are welcome.

    The castle and construction case is far more forgiving than the trees system, since there is no need to have non uniform scales for most items, thus even Unity's own dynamic batching will kick in for most items.
     
    Last edited: Mar 1, 2015
  29. twobob

    twobob

    Joined:
    Jun 28, 2014
    Posts:
    1,785
    Thanks for that refresher there. My use-case will be mainly VERY low poly mesh with a few levels at most I think.
    Will have the see what is cheapest :)

    I did give your videos, the manual, your website, your threads and the code a read.
    The manual could do with a bit of expansion but making decent documentation is a real time-soak so I understand why that is.

    No pressure, I will do my best at this end to "Keep my expectations real"
     
  30. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    8,660
    Frankly my demo trees are very unoptimized. Also the algorithm for growth does not yet have a per level elimination, which means that full branches are grown in each level, when this could (and should) be a lot lower. This creates a lot of draw calls in the full dynamic case, when more sparse branching could be used in mid growth levels.

    This option to limit growth spawns per individual level is the top priority for the next update, since it a core addition to the current system.

    If you use lower tree parts and less growth levels the system will be much faster in dynamic case, but even with my trees it runs fast on my old laptop, trees are grown and the multithreaded is working so good that the integration is almost transparent and instant. The dynamic trees also work fine, when in groups of 2. The fact that they create more draw calls for each group is not so much of an issue, since the LOD can eliminate these draw calls in distance.

    The manual and videos are my weak spots :), i always have extremely little time to do them and i am not good at either, but i do try my best. Also i can provide support at any time, so if something is not clear just write here and i will try to answer in detail as fast as possible. Both the manual and videos are planned to get updates in the next version.
     
  31. TKDHayk

    TKDHayk

    Joined:
    Dec 22, 2015
    Posts:
    85
    Hi there, we are considering inifniTree on our Oculus Quest app. Does Ininitree work with Universal Render Pipeline and Unity 2019.3.x? Thanks.
     
  32. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    8,660
    It should work, but need to supply a URP shader, i will see to this the coming week. I suppose could directly use the URP InfiniGRASS shader with it as well, but have not tried it.
     
  33. TKDHayk

    TKDHayk

    Joined:
    Dec 22, 2015
    Posts:
    85
    Hello Nasos,

    I bought the InfiniTree asset and opted to use the built-in rendering pipeline for simplicity, with Unity 2019.3.14f1

    We are making a VR game where the player can destroy various buildings by throwing seeds which grow into trees.

    Here is a quick prototype I made by simply scaling a tree ,model at runtime, please have a look :



    Now I'm interested in using infiniTree to control the growth of each branch individually (For example by grabbing and pulling the branch in VR, or grabbing and moving around the sun, and having branches always grow towards the sun).

    I have tried to find a tutorial or read your documentation on dynamic tree growth (spline based?) but cannot find anything.. Please point me in the right direction so I can investigate and see if your asset is right for our purposes.

    Also please feel free to email me at hamirbekyan@yahoo.com if that works better.

    Thank you

    Hayk
     
  34. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    8,660
    Hi Hayk,

    The system core uses L-Trees, so you can direct how overall branching will be, but not per branch.

    That said, the system has a Beta branch growing system (video above) that runs at run time, so since the batching is controllable (e.g. system that chops tree etc), you can inject this system into the L-Tree creator and do anything before batching for performance. This is something i work on for v2.0, but i dont have a set date for it.

    The branch grower is in the WIP folder.

    If need all to be interactive is a little more tricky, as the batching would have to be controlled when interactor is close like in tree interact sub module, but i think is possible. The branch maker is having a demo where you can put branches like in video above, but is one specific implementation which you may use as base.
     
    Last edited: May 29, 2020
unityunity