Search Unity

Voxel Farm

Discussion in 'General Discussion' started by Don-Gray, Apr 4, 2015.

  1. mittense

    mittense

    Joined:
    Jul 25, 2013
    Posts:
    168
    I was able to borrow a friend's TE license for evaluation so I didn't have to shell out $6000 on a black box.

    It's kind of a pain in the ass. I had to set the line of sight and update the hit position and then restore the line of sight back to what it was before hand. But, that was able to pretty reliably do it. There's no simple way to say "update the build cursor to this position," which is how you'd want to do it... always and everywhere.

    I did just do a post on how I create my terrain datasets for Voxel Farm, though: http://joy-machine.com/blog/2015/8/2/constructing-a-terrain-dataset
     
  2. malkere

    malkere

    Joined:
    Dec 6, 2013
    Posts:
    1,212
    Looks good =D

    That's a good workaround for the hit position too, albeit a pure workaround. Its unfortunate that there aren't yet more obvious remedies to some of the more obvious frustrations of voxelfarm. I'm slowly moving back to VoxelStudio as coding a bundle is just crazy hard. The upside was that my worlds are totally 3d, bypassing the heightmap 2d'ism completely. Trying to work in placement rules and voxel instances has taken far too much of my time though, I'm putting it on the back burner for now.
     
  3. mittense

    mittense

    Joined:
    Jul 25, 2013
    Posts:
    168
    What I really want are placement rules for Unity prefabs, which I believe is on the roadmap. Once those are in, I could see less of a reason to code a bundle (though that, for now, seems to provide the best results).
     
  4. malkere

    malkere

    Joined:
    Dec 6, 2013
    Posts:
    1,212
    That would be great!
    The placement rules are really the most important. I can make land and shape in any way, but without random additions all over it it's boring as dirt. I was hoping extensions would improve that, but you can't -reapply- the placings after adding extensions/etc... that's really my only problem I'm hoping to work out down the road. MatIDs and direct placement I think will be easier to get working than that =3
     
  5. mittense

    mittense

    Joined:
    Jul 25, 2013
    Posts:
    168
    Yeah, right now my focus is on improving the Unity lighting model so that it's more PBR-driven. This is proving difficult, but I think it'll be worth it.
     
  6. malkere

    malkere

    Joined:
    Dec 6, 2013
    Posts:
    1,212
    Voxelfarm is so hard I've put it down several times now... but I keep coming back *_*
    Everytime I get a little better at it though.

    Really need to figure out how to get cheap trees and grass into the world... that would add so much to the first person perspective like you can do in ten minutes with Unity's terrains. Unity's terrains are of course not voxels and writing engines to load them endlessly is exactly what I got tired of doing that made me get Voxelfarm!

    I'm taking the same step as you've mentioned on your blog @mittense . There's plenty of stuff that just doesn't work right being run by the voxelfarm engine like particle systems, grass, bad guys, buildings... the ability to move 20km west and still have a whole new world though I've made such a prerequisite to my game since day one... grrr...

    the learning continues
     
    Last edited: Aug 25, 2015
  7. mittense

    mittense

    Joined:
    Jul 25, 2013
    Posts:
    168
    I modified Voxel Studio to accept specular/AO/roughness maps and made my implementation all PBR-friendly. I also made a modified shader to use GGX lighting.

    I ALSO made a tessellation shader for Voxelfarm that looks really good if you're only looking at isolated scenes. It cracks all over the place, though. :(

    And I cannot FOR THE LIFE OF ME get parallax mapping working. I've tried to implement it, like, five different ways.
     
  8. malkere

    malkere

    Joined:
    Dec 6, 2013
    Posts:
    1,212
    I kind of figured out how to selectively remove blocks. technically I'm only removing areas, if the hitpos is a specific material, so the bigger the brush, the more it can eat out of surrounding materials... I want it to go through those one by one to check if they're rock or ore for example and only remove what the player is allowed. Not quite to that stage yet though...

    I remember in one of the proc world posts them talking about how you could dig an instance and its full material'd self out of the ground if you dug carefully enough. I wonder if you could layer rock -> ore -> gem, and have the gem be its own self-contained object within the ore, or at least the voxels it occupied and their math. hmmm... I shouldn't be thinking this far ahead *_*

    I've been working on my UI all month though. Damn day job...
     
  9. malkere

    malkere

    Joined:
    Dec 6, 2013
    Posts:
    1,212
    well it's been a long hard battle with VoxelFarm... it certainly has some amazing technology and great potential especially in certain situation, but not in my situation. I was rewriting the engine to bypass voxelstudio and just take in my math directly, but there's really no support for doing something new with it and there's still many many steps that I never figured out.

    all in all i bought voxelfarm because I want to go fully procedural. getting deep into it though I've come to understand voxelfarm really is not procedural. if you make a biome, which is made by hand, or world creator etc. it copies that biome over and over in perfect tiling to make a big world. there's no noise input support outside of placement rules, and porting it all into unity is very difficult.

    if you hand crafting a world that needs to use voxels its probably the best engine now and for some time to come. there updates are very technical and impressive, im glad i bought a license. but for procedural seed based terrain, which is what I'm doing it really just doesnt let us play with the splat maps heightmaps and everything like we need to be able to do openly for truly procedural content.

    I'm switching to unity terrain, which means i will lose the ability to dig caves. only 2d holes will work, but i will also be gaining a lot.

    perhaps on another project.
     
  10. XDragor

    XDragor

    Joined:
    Jan 8, 2016
    Posts:
    2
    Well, looking at you guys struggling with VoxelFarm is devastating for me. I really don't know much code (I don't think i know any at all.) Usually i just play around making 3d assets, and loading em into unity or unreal, making beautiful 3d scenes that are void of any scripts.

    Anyhow, so I decided to put my time into creating a small game, at least at the skeletal basic level. (cover the basics at least on my own, before I invest into opening a gaming studio with a hired team of devs, which will happen regardless if I fail in my little venture of trying to conjure up something remotely close to being playable.)

    (I wanna know what i'm doing before I make serious money investment.)

    So far Everything is going smoothly with community assets, tutorials and so on, (eventually it will all get reworked, regardless). Basically im trying to make a last stand survival game, nothing major, just a 4 man co-op with fun melee combat against waves of monsters (Killing floor, Warhammer Vermintide and so on.) But the (new?) features i wanted to mix in, is have it more like a castle Siege. With NPCs on both sides, (Your own soldiers, and enemy monsters.) Eventually Large monsters would arrive, and they would start tearing down the walls, and you'll have to close these gaps with makeshift defenses.

    So the biggest problem for me is having a destructible environment, that isn't scripted. Walls falling apart neatly and adding to the immersion of the whole thing, etc. So the only thing i could think of, is making it out of voxels, taking a big example from Crowfall. And I thought Voxelfarm would save my soul in that department, but i couldn't even get it to work. (it looked like it would save so much time, turning my levels into voxels, so mayhem and fun could ensue!)

    Anyhow sorry for the long post, but i don't think I have it in me to get VoxelFarm to function or do what i'd like it to do, is there any other alternatives you guys could suggest, at this point? Would truly appreciate it! Also apologies for the long post and not being able to chip in into your dilemma!
     
  11. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,569
    That's one of the toughest gamedev problems, that hasn't been properly solved, pretty much. Very few games feature unscripted destruction. So , good luck with that.
     
  12. malkere

    malkere

    Joined:
    Dec 6, 2013
    Posts:
    1,212
    I spent a solid three months of dedicated study and re-writing of VoxelFarm with very little to show for it before abandoning it. I bought it for the specific purpose of modelling worlds in 3d (meaning hundreds of floors+) but it was a complete memory hog as soon I wasn't using a flat surface anymore and regularly crashed. It also does not produce the heightmap procedurally and only uses the visual input directly so I worked hard to input perlin math into it but it was really really hard to get the engine to smooth the data, etc.

    anyway...
    I would suggest you do not use voxels. voxels are cool because they do not move. The more you try to make them move the more and more complicated everything gets. Crowfall uses them for a very specific purpose and I'm sure has a team of people working specifically on that. Any other voxel engine is going to have a very hard time controlling moving voxels and collisions like that.

    Look into using rigidbodies if you want to minimize scripting. Set a stone walls mass way up and a character will not be able to simply move it by walking into it, though a heavy boulder tossed at speed can. You can very easily script stuff to take damage and crumble (destroy itself and spawn a crumbling wall directly in its place) or explode using the same method and just adding an explosion force.

    some people are really good at it


    I would suggest very basic scripting though. Click to attack and if it hits a wall instead of an enemy just run different math. you can make a wall be sixteen blocks very easy and combine them for performance, then break them off if that area gets broken or whatever, etc. there are a lot of ways to go about it.
     
  13. XDragor

    XDragor

    Joined:
    Jan 8, 2016
    Posts:
    2
    @neginfinity with all the voxel business going around, I was under the illusion that this issue was no more, but It seems I was greatly mistaken, especially after seeing the amount of work needed in implementing voxelfarm. Regardless I am not looking for easy solutions and so on, I just wanted to work on the project on my free time, build most of the basics on my own, see how far I can go, and regardless, I'd like to have some first hand knowledge so I don't look so ignorant when I actually hire my team hahahaha.

    @malkere That video you included, splendid work they have done, might actually serve my purpose. Thank you!
     
  14. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,569
    Afaik (might be wrong about it), the problem hasn't been dealt with.
    Mostly because dealing with any kind of destruction or boolean opeartions on polygonal 3d models is HARD.

    You have Nvidia's APEX destruction that splits object into pregenerated prefabs, you have voxel solutions where a voxel is usually quite big, and the most interesting voxel tech is still being developed at the moment.
     
  15. malkere

    malkere

    Joined:
    Dec 6, 2013
    Posts:
    1,212
    I've done stuff like in their newest video "soft voxels" I don't know much about their engine, I haven't done destructibles much, but that kind of movement/manipulation isn't super hard. The problem with it for me was that everything takes so much memory. Even with Voxelfarms super optimized LOD system anything more than a couple levels of structures and you were up in the 8Gigs plus of RAM realm and all of that before any sort of game mechanics, player mechanics, monster mechanics, etc. If I wanted everyone to need a super high-end computer to play my game I might have kept on with Voxelfarm, but the demands of any voxel engine were way out of alignment with the whole core of my game design.

    If you don't need distance you can have details, if you don't need detail you can have distance, but voxels really can't deliver both yet, and won't until computers get closer to that level.