Search Unity

Voxel Master - Create voxel terrains with ease!

Discussion in 'Assets and Asset Store' started by AshkoreDracson, Mar 14, 2016.

  1. AshkoreDracson

    AshkoreDracson

    Joined:
    Jul 6, 2014
    Posts:
    24


    v1.1.1.0

    Voxel Master is an editor extension that allows you to dynamically create your worlds with voxel terrains!
    It is a powerful, yet simple and easy to use voxel engine.
    It is capable of generating simple shapes, all the way up to infinite procedural terrain, in a few lines of code only.


    Features
    • Powerful, fast & easy to use voxel terrain
    • Real-time terrain editing
    • Customizable blocks (Name, textures, durability)
    • Integrated infinite procedural terrain generation customizable to your wishes
    • Included procedural terrain generation example with biomes, trees and more!
    • Heavily documented extension & code, along with snippets (Easy shape creation)
    • Overrall optimization (Dynamic batching, chunk disposal, render distance)
    Screenshots







    Links


    Web Demo

     
    Last edited: Jul 11, 2016
  2. AshkoreDracson

    AshkoreDracson

    Joined:
    Jul 6, 2014
    Posts:
    24
  3. Player7

    Player7

    Joined:
    Oct 21, 2015
    Posts:
    1,533
    You web demo movement keys are a bit messed up.. [q] left (normally [a]) [d] right [s ] back [z] foward (normally [w]) .. :S ..the arrow keys work fine though.

    Anyway are there any future plans with this or just sold as is?
     
  4. AshkoreDracson

    AshkoreDracson

    Joined:
    Jul 6, 2014
    Posts:
    24
    Haha, whoops, I forgot to configure the input back to QWERTY as I am french and using the AZERTY layout, will fix this right now! (Fixed)

    Future plans for Voxel Master are the following:
    • Better overrall optimization
    • Smart loading/saving system
    • Voxel Terrain Editor, to be able to edit voxel terrains from within the Unity Editor
    • UNET support (Not after a little while, I still need to experiment and fiddle with UNET properly)
     
    Last edited: Mar 21, 2016
  5. Player7

    Player7

    Joined:
    Oct 21, 2015
    Posts:
    1,533
    Future plans look promising.

    For anyone else the asset has one feature that's not even mentioned as a feature that I discovered, multiple voxel instances with seperate generation settings, render distances, scale, collision on/off, chunk settings and block dictionaries etc can be setup in the same scene... Not really something you find that is supported in all voxel implementations I've tried anyway.

    All in all I place this voxel asset somewhere between cubiquity (only this has actual block textures) and voxelmetric right now, in terms of price both of those are free to use right now. But I think the future for this asset could be pretty good. Other cubed voxel implementations are kinda abandoned not supported or just not that well priced for any indie to use.

    So good job so far :)
     
  6. AshkoreDracson

    AshkoreDracson

    Joined:
    Jul 6, 2014
    Posts:
    24
    News time! I will be pushing an update soon.

    Changelog (for now)
    • Slightly better performance
    • New helper functions (IsBlockGround, IsBlockVisible, and more!)
    • New disposal distance property, procedurally generated chunks further than this distance will get disposed & destroyed (Previously locked to render distance)
    • New property to ignore the Y axis for render & disposal distances properties.
    • New 32x32 tileset texture as example
    • More examples that illustrate the new features (Incl. demo)
    Just need to polish a few more things, maybe add a little more, and then hopefully this update will be live at the end of this week or next week!
     
  7. Player7

    Player7

    Joined:
    Oct 21, 2015
    Posts:
    1,533
    Cool looking forward to it.
     
  8. kenlem1

    kenlem1

    Joined:
    Mar 20, 2014
    Posts:
    40
    Does this run on mobile?
     
  9. AshkoreDracson

    AshkoreDracson

    Joined:
    Jul 6, 2014
    Posts:
    24
    I believe it would run on mobile, but be wary because Voxel Master can be fairly CPU intensive in procedural generation.
     
  10. kenlem1

    kenlem1

    Joined:
    Mar 20, 2014
    Posts:
    40
    Hi,

    Just bought Voxel Master more out of curiosity. I don't have a specific need at the moment but wanted to see your code. It's clean and well organized and is a great base to build on.

    It does have a number of issues that would prevent it from running as well as it is on mobile but those are pretty minor.
     
  11. AshkoreDracson

    AshkoreDracson

    Joined:
    Jul 6, 2014
    Posts:
    24
    Thank you! I tried to keep the code as clear as possible.

    By the way, big news again! I managed to implemented basic multi-threading for Voxel Master, performance is slightly better, I believe the update will be ready today, just need to upload it and hopefully it will be live in a few days!

    Final changelog:
    • More optimization (Basic multi-threading, smart batching, marked meshes dynamic, collider construction buffer).
    • New helper functions (IsBlockVisible, IsBlockGround, IsBlockCeiling, IsBlockWall, ContainsBlock)
    • Voxel Terrain dispose distance, choose at which distance procedurally generated unused chunks will get destroyed.
    • New Voxel Terrain property to ignore the Y axis for render & chunk disposal distance.
    • New 32x32 tileset terrain texture as example.
    • More examples that illustrates the new features (Incl. Demo soon)
     
  12. Player7

    Player7

    Joined:
    Oct 21, 2015
    Posts:
    1,533
    Anyway we can get on a mailing list to get a download link for newer updates.. waiting on Unity asset store to approve things is somewhat annoying, they should have a beta test repository for purchase holders.
     
  13. AshkoreDracson

    AshkoreDracson

    Joined:
    Jul 6, 2014
    Posts:
    24
    Haha I agree! I'll look into some sort of mailing list for updates "On Hold" today, though i'm pretty sure that the update should be live either today or within the next few days hopefully.
     
  14. AshkoreDracson

    AshkoreDracson

    Joined:
    Jul 6, 2014
    Posts:
    24
    Voxel Master 1.0.1.0 is finally live! Also updated the demo to reflect this update. See changelog above.
     
  15. Player7

    Player7

    Joined:
    Oct 21, 2015
    Posts:
    1,533
    Good updates so far.. less stutters now with chunk loading.

    What will be coming next?
     
  16. AshkoreDracson

    AshkoreDracson

    Joined:
    Jul 6, 2014
    Posts:
    24
    Right now, I think i'm going to start focusing on a loading/saving system from disk.
    Then perhaps even more optimization when I find new ways to do so.
     
  17. Player7

    Player7

    Joined:
    Oct 21, 2015
    Posts:
    1,533
    Well if there is a bunch of blocks on the edge of a chunk, and the chunk right next to it has blocks right next to those blocks.. shouldn't they have invisible faces thus no mesh or collider for those parts.. much like blocks within a chunk that have no air block next to them.. you can fly below your terrain and see those edges of each chunk with mesh and colliders still being drawn even though not at all visible above surface. Not sure if the extra code and calculations to avoid that would be all that beneficial in performance though maybe for larger view distances with less drawn and reduction in memory usage per chunk because of less mesh/collider data that is not even visible or used once the chunk next to it is loaded. Performance still kills in chunk generation and exploring.. so once its loaded its pretty fast but not optimized as it could be.. but yeah loading/saving from disk would be good.
     
  18. AshkoreDracson

    AshkoreDracson

    Joined:
    Jul 6, 2014
    Posts:
    24
    When I began developing Voxel Master, I was originally aiming to not generate obstructed faces by other chunks, however, this meant that it would have to check for blocks on a per Voxel Terrain basis (which is slightly slower), and also it would mean that in some cases, you would need to regenerate a whole 8 chunks by breaking a single block. (To generate the previously hidden faces in neighboring chunks).
    I'm going to implement some kind of occlusion culling in order to reduce draw calls even more, and perhaps even use this to generate only terrain that can be seen only.
     
  19. Webbstre

    Webbstre

    Joined:
    Mar 7, 2015
    Posts:
    41
    I'm curious as to how the chunk generation and biomes are coded. Are they one chunk per XY coordinate like Minecraft, or smaller chunks with a XYZ coordinate, allowing for potential infinite vertical play as well?
     
  20. AshkoreDracson

    AshkoreDracson

    Joined:
    Jul 6, 2014
    Posts:
    24
    They are smaller chunks with an XYZ coordinate, I recently added an "Ignore Y axis" option to avoid chunks below and above you from being hidden because it's "too far" in case you have a small render distance, it does not affect generation at all and generation in all three axises is in theory infinite.
     
  21. Player7

    Player7

    Joined:
    Oct 21, 2015
    Posts:
    1,533
    Any updates?
     
  22. AshkoreDracson

    AshkoreDracson

    Joined:
    Jul 6, 2014
    Posts:
    24
    Currently implementing loading/saving system into Voxel Master, Ludum Dare 35 is getting in the way but expect news next week.
     
  23. Gaxel

    Gaxel

    Joined:
    Sep 30, 2012
    Posts:
    17
    I was thinking of buying this, but I have some questions before:

    1) Can I render the "cubes" using color per vertex and not textures?
    2) Can I change the mesh creation to support marching cubes and other techniques (not needed right now, but maybe in the future I could use such possibility)?
    3)Is it easy to use this to create tile-based games with finite levels... like eschalon? Or it is useful only to creare infinite minecraft-like games?

    Thanks
     
  24. AshkoreDracson

    AshkoreDracson

    Joined:
    Jul 6, 2014
    Posts:
    24
    Hello Gaxel!

    1) As of now, Voxel Master doesn't support vertex color, I suppose you could fake it with textures but it wouldn't be cheap.
    2) Voxel Master's mesh generation is fairly strict right now, it only supports regular cubes and adding support for marching cubes would be a lot of work, if it's ever added, it will be in a far future where all my other future goals are met.
    3) You can use Voxel Master for finite levels as well for infinite levels, or even both! Right now making finite levels are a bit hard since I still need to add an editor (Which will come soon!)
     
  25. Gaxel

    Gaxel

    Joined:
    Sep 30, 2012
    Posts:
    17
    1) So, it isn't possibile to pass the color information per vertex to the shader and ignore the uv for textures, and then change the shader to use the color instead the texture?
    3) I was meaning finite procedural levels, a dungeon for example.

    Also, is it possibile to pass a procedural material as the cubes texture?
     
  26. AshkoreDracson

    AshkoreDracson

    Joined:
    Jul 6, 2014
    Posts:
    24
    1) For now, no it isn't possible
    3) Yes, Voxel Master can handle procedural finite generations like dungeons.

    Also, yes, you can pass a procedural material as the blocks texture, just make sure to get the tiling right.
     
  27. Gaxel

    Gaxel

    Joined:
    Sep 30, 2012
    Posts:
    17
    Ok, thanks
     
  28. AshkoreDracson

    AshkoreDracson

    Joined:
    Jul 6, 2014
    Posts:
    24
    Good news!
    I am about to update Voxel Master 1.1.0.0 today!

    Changelog:
    • Added smart loading/saving system (Includes voxel generation saving too)
    • Added a "BaseGeneration" class to make it easier & more flexible to assign custom generations. (Examples & usage updated)
    • More examples that illustrates the new features
     
  29. Player7

    Player7

    Joined:
    Oct 21, 2015
    Posts:
    1,533
    Looking forward to trying it out.
     
  30. AshkoreDracson

    AshkoreDracson

    Joined:
    Jul 6, 2014
    Posts:
    24
    Voxel Master 1.1.0.0 has been accepted and is now live! I will update the demo either today or tomorrow with the new examples.

    EDIT 1: I have updated the demo and it seems like there is a bug in the smart loading/saving system for Web Builds, investigating... (Standalone builds shouldn't be affected)

    EDIT 2: Unfortunately, it seems like the Unity Web Player forbids the use of System.IO, which is used by Voxel Master to write world data into the hard-drive, this means that I cannot show those features in a web demo, but also that until I find another way which may be included in future updates, you cannot take advantage of the loading/saving system of Voxel Master if you are building for web applications. As I said, Standalone & Mobile builds remain unaffected by this glitch.
     
    Last edited: Apr 25, 2016
  31. jessejarvis

    jessejarvis

    Joined:
    Aug 9, 2013
    Posts:
    303
    Bought this in a heartbeat. Followed a loooooong and extensive tutorial on Voxel Generation for Unity.. then I thought... Oh crap I need biomes. There were no tutorials for biomes.

    For the price this is well worth it, might I ask what the Roadmap looks like?

    I'm wondering as well about stuff like Cave Generation. Can't have a voxel game without Spelunking! :p


    Edit: Hm, can't seem to get terrain generated. Looking around at how to.

    Edit 2: Nvm never noticed the Example maps... :p They got me going.
     
    Last edited: May 22, 2016
  32. Player7

    Player7

    Joined:
    Oct 21, 2015
    Posts:
    1,533
    Progress seems to have slowed down.. I did check out the save/load system in last version it works.. though I believe it required manually triggering a save. Not really an issue actually.

    However performance is still an issue, one of the main things that's a bit disheartening to really invest any time with it so far, also some more examples like on terrain generation.

    Well I get around to spending more time with it sometime though admittedly I'm torn between this and voxelmetric at github, both sort of in limbo with bugs and various issues though the later has more features (but more code to understand).. for me its just too many things for me to dive in with it yet.
     
  33. AshkoreDracson

    AshkoreDracson

    Joined:
    Jul 6, 2014
    Posts:
    24
    Hello!

    I've created a Trello for the roadmap of Voxel Master: https://trello.com/b/WQVt3ZIw/voxel-master
    I'll add more generation examples in the next update (Caves, perhaps rivers)

    Performance is still sadly an issue for some people, but i'm coming to a dead end in terms of optimizing the currently existing code more, I investigated the sources of the performance loss and I believe I can optimize it a tad more, but unless I find a miracle solution, it isn't going to get this much better performance-wise without rewriting the entire code, and by extent, making it harder to understand & work with.
     
  34. AshkoreDracson

    AshkoreDracson

    Joined:
    Jul 6, 2014
    Posts:
    24
    Good news!

    I've recently found that "foreach" looping generates a lot of garbage that is then collected by garbage collection, the lag spikes of garbage collection are proportional to the amount of bytes it should delete.
    "foreach" looping is used widely in Voxel Master, when I replace every "foreach" loop by classic "for" loops instead, the performance should be greatly improved, very likely even more than multi-threading implementation & other optimizations.
     
  35. Webbstre

    Webbstre

    Joined:
    Mar 7, 2015
    Posts:
    41
    I totally forgot about this until I stumbled across it again today. I've put it on my wishlist for now but I'm definitely picking it up when I have the time to play with it.
     
  36. AshkoreDracson

    AshkoreDracson

    Joined:
    Jul 6, 2014
    Posts:
    24
    Voxel Master 1.1.1.0 is live!
    Updated demo coming tomorrow!

    Changelog

    • * More optimization
    • - Removed majority of foreach loops.
    • - Single IEnumerator per VoxelGeneration instead of hundreds.
    • - Removed useless allocations for IEnumerator (WaitForEndOfFrame -> null)
    • - Native timer in ChunkManager instead of InvokeRepeating calls.
    • - Native timer in VoxelTerrain for batching instead of InvokeRepeating calls.
    • - More efficient FastRefresh()
    • - More efficient properties in VoxelTerrain (batchDirty & dirty)
    • - Various small other optimizations (Removal of useless garbage collections, etc...)
    • + Added UV Padding property for Voxel Terrain
     
  37. RoyArtorius

    RoyArtorius

    Joined:
    Jul 11, 2013
    Posts:
    73
    Hi
    I'm very interested in a voxel terrain engine and, unlike practically every other voxel engine on the asset store, this is seems to still be active which is awesome.
    My only question, and will likely still get this asset regardless of the answer, is how hard would it be to smooth out the voxels and remove the blocky nature, basically, is it possible to adjust the vertices of the voxels?
     
  38. Player7

    Player7

    Joined:
    Oct 21, 2015
    Posts:
    1,533
    Just imported the 1.1.1.0 into fresh project.. it seems it got a little broken

     
  39. AshkoreDracson

    AshkoreDracson

    Joined:
    Jul 6, 2014
    Posts:
    24
    Hmm, for now I don't think I will be adding voxel smoothing any time soon, very likely for the post-goals of Voxel Master.

    First error seems because you didn't add the scene "Voxel Master Loading-Saving" to the build settings which is very important for Unity to load scenes.

    As for the second error, make sure you apply a correct & updated Block Dictionnary for the Voxel Terrain. If your Voxel Terrain contains a block ID which is not contained within the Block Dictionnary, this will cause this error.
     
  40. Player7

    Player7

    Joined:
    Oct 21, 2015
    Posts:
    1,533
    It was just imported directly from asset store, so figured the example stuff would work. Totally sick of unity asset packages being completely broken most the time. It's like wtf is the point your in your useless package manager unity? :p
     
  41. Hertzole

    Hertzole

    Joined:
    Jul 27, 2013
    Posts:
    422
    Hi,
    This seems like a really awesome package and I would totally buy it if some of these features are possible.
    When it comes to generating trees, can I create custom trees with different shapes and heights for each tree, and if so, how easily can this be done?
    Is it possible to generate caves with different blocks, like ores, at different layers, like Minecraft does it?
    Lastly, is it possible to generate structures like villages, random houses, etc?
     
  42. AshkoreDracson

    AshkoreDracson

    Joined:
    Jul 6, 2014
    Posts:
    24
    Yes, you can generate trees of different shapes and height, you can either generate them via a noise function to determine where they are, or have a list ready in advance with the "tree root" position.

    Yes it's possible to generate caves with different blocks and ores at different layers, once again via a noise function (You'd be amazed all of the amazing things you can procedurally generate with noise alone!)

    Yep, you can generate structures like villages and houses, although this would be harder to generate, once again same principle with the trees, noise function just to determine the "root" of the buildings and from there you generate the structure.
     
  43. Hertzole

    Hertzole

    Joined:
    Jul 27, 2013
    Posts:
    422
    That is awesome! Going to the assets store to pick this up right after I've posted this reply! I'm really looking forward to play/work with this! :)
     
  44. Black-pearl

    Black-pearl

    Joined:
    Mar 20, 2014
    Posts:
    55
    Just bought this great work on the terrain generation!

    I have a question though, how can you implement block addition and destruction to this?

    My current game works on a block to block basis but using it in this way removes a whole chunk?

    Can you remove blocks out of the chunks?

    Thanks in advance
     
  45. mast3rillusion

    mast3rillusion

    Joined:
    Nov 29, 2014
    Posts:
    2
    Is it possible to make the chunks have a higher level of blocks on the y-axis? also the rivers and caves examples will def be awesome. Thanks for this truly well written asset. Ive tackled infinite voxel terrain on my own but could never figure out the biome thing but your code is making it clearer to me. I just need some more perlin noise examples. And maybe examples to randomly put ores in the ground like Minecraft. Thanks again!
     
  46. neshius108

    neshius108

    Joined:
    Nov 19, 2015
    Posts:
    110
    Hello,

    I was wondering if your asset also works on WebGL and mobile builds. Have you tested them?

    Cheers,

    N.
     
  47. neshius108

    neshius108

    Joined:
    Nov 19, 2015
    Posts:
    110
    Ok, answering my own question: about mobile, it seems from the previous comments, that it should work. There was something about the Web build not allowing System.IO, has that been fixed/workedaround? Btw, I am going to send you a PM, check it out!
     
  48. Slastraf

    Slastraf

    Joined:
    Aug 30, 2015
    Posts:
    6
    The web demo doesn't work, so I can't test if theres milliseconds lag between generation of terrain ...
    Don't want to buy it if theres no video or web demo available.
     
  49. neshius108

    neshius108

    Joined:
    Nov 19, 2015
    Posts:
    110
    Yeah, sadly the developer seems to not be available anymore..
     
  50. Tsilliev

    Tsilliev

    Joined:
    Jan 21, 2014
    Posts:
    34
    Hello, is there any pathfinding/navigation included?