Search Unity

VOXL - Unity Multiplayer Voxel Sandbox

Discussion in 'Assets and Asset Store' started by mischa2k, Nov 20, 2016.

  1. arnesso

    arnesso

    Joined:
    Mar 3, 2015
    Posts:
    96
    it looks interesting,
    How much support these features what would i do :
    - vehicles ( even flying vehicle, and a space scene where asteroids generated and other starships)
    -shooting (FPS)
    - killing other players
    -Level up, save inventory,
    ?
    Thank you for you anwears.
     
  2. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Level ups and inventory saving are already implemented. The other features would be up to you to implement. Vehices aren't planned any time soon.
     
  3. neshius108

    neshius108

    Joined:
    Nov 19, 2015
    Posts:
    110
    Hey @vis2k, any updates on:

    - Biomes
    - Equipment
    - Critters

    Also, I noticed that the blocks are very visibly updated in rows, are there settings to get a somewhat smooth experience on low-end systems?
     
  4. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    No update there yet, sorry.
    Each Voxel is a NetworkIdentity, that's the main performance bottleneck right now. There is no easy way around it, except using less NetworkIdentities or making it completely LLAPI based.
     
  5. CornerCase_Studio

    CornerCase_Studio

    Joined:
    Nov 17, 2016
    Posts:
    15
    Hello Vis2k,

    You getting sick of updating and administering this asset yet? I ask because I am currently building a voxel-based game (not another Minecraft clone.. something different), but I've been using Cubiquity for my initial testing and now I've run into its limits - it seems to be time for an engine upgrade.

    However, just about every other decent voxel terrain engine on the asset store seems to be outdated/abandoned at this point. I'll purchase your asset, but only if you swear you'll never die.



    Just kidding obviously ;) but seriously though, do you think you'll be around and working on this for a while yet?
     
    Last edited: Jun 29, 2017
  6. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    It's not my highest priority at the moment with all that uMMORPG and uMOBA work. But I still update VOXL, mostly by applying the latest uMMORPG improvements to it.
     
  7. neshius108

    neshius108

    Joined:
    Nov 19, 2015
    Posts:
    110
    @vis2k: since you are not going to implement critters and equipment soon, would you have some sort of documentation for adding new entities to the game?

    As I understand it, the main problem is not adding things to the game (which is pretty straightforward in Unity) but to make them work on the multiplayer level. Say I add a new game object (i.e player skin/skybox/critter/etc..), where/how can I make that persist on all clients? Some sort of documentation to share data between all the clients would be very useful to understand how easy it is to expand on this package (as you don't seem so active on it).

    Btw, I am not familiar with both uMMORPG and uMOBA.
     
    Last edited: Jul 10, 2017
  8. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Check out the UNET manual: https://docs.unity3d.com/Manual/UNet.html to get a basic understanding of how it all works. The manual has gotten really good lately, read through it a few times and I am sure you will learn something!
     
  9. neshius108

    neshius108

    Joined:
    Nov 19, 2015
    Posts:
    110
    Ok, I will look into it!

    By the way, any plan to add proper liquids (e.g. water, lava, etc.) anytime soon?
     
  10. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Last edited: Aug 10, 2017
  11. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Progress: next VOXL version was submitted for review.

    V1.5
    • Upgraded to Unity 2017.1.0p1
    • PlayerDndHandling moved into Player class
    • Item.ToolTip uses StringBuilder for performance
    • Login button rapid clicking bug fixed
    • Player.onlinePlayers dict added for performance
    • NetworkManager initialization moved from Awake to Start
    • Inventory moved from Player to Entity
    • Entity components made public to be assigned in the Inspector. Reassign them in the Inspector when updating.
    • NetworkManager GlobalConfig threadpoolsize increased from 1 to 3
    • NetworkManager ConnectionConfig optimized
    • Entity.InventorySlotsFree improved
    • FaceCamera only updates while visible
    • NetworkProximityCheckerCustom only checks player layer now
     
  12. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Update: next version was released!

    V1.5 [released 2017-08-23]
    • Upgraded to Unity 2017.1.0p1
    • PlayerDndHandling moved into Player class
    • Item.ToolTip uses StringBuilder for performance
    • Login button rapid clicking bug fixed
    • Player.onlinePlayers dict added for performance
    • NetworkManager initialization moved from Awake to Start
    • Inventory moved from Player to Entity
    • Entity components made public to be assigned in the Inspector. Reassign them in the Inspector when updating.
    • NetworkManager GlobalConfig threadpoolsize increased from 1 to 3
    • NetworkManager ConnectionConfig optimized
    • Entity.InventorySlotsFree improved
    • FaceCamera only updates while visible
    • NetworkProximityCheckerCustom only checks player layer now
     
  13. AceSV

    AceSV

    Joined:
    Dec 16, 2012
    Posts:
    20
    Any interest in releasing a one player version?
     
  14. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    You could run it in 'Server & Play' mode and go from there.
     
  15. AceSV

    AceSV

    Joined:
    Dec 16, 2012
    Posts:
    20
    Sure, but it sounds like the multiplayer network function is dragging down some of the performance and I don't want to pay for a multiplayer engine that I never want to use. It's a good minecraft engine, but I've got zero interest in multiplayer.
     
  16. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Yes, what I meant was that it will run okay in host mode and you could then learn how it all works and strip out networking if needed.
     
  17. waxx

    waxx

    Joined:
    Apr 1, 2013
    Posts:
    48
    How coupled is this with UNET? Looking to get this asset as a baseline for voxels + MP though I'd might change the actual network solution later on.
     
  18. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Very much. Changing the networking will be really difficult because it uses SyncLists etc.
    I still believe UNET is the way to go though. The LLAPI is insanely powerful. What's holding VOXL back is the HLAPI, but we are getting there slowly.. (HLAPI Pro etc.)
     
  19. waxx

    waxx

    Joined:
    Apr 1, 2013
    Posts:
    48
    Hm, I still might get it even if I'll refactor most of it. What kind of performance can we realistically expect? I won't use massive terrains (game set underground with low visibility) but I'd probably get a much higher density of voxels (lower size of individual voxels).
     
  20. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    What you see in the WebGL demo is pretty much the limit for WebGL. So for a gaming PC maybe twice that. It's definitely not on a minecraft level yet - but a start.
     
  21. Casperdre

    Casperdre

    Joined:
    Nov 22, 2015
    Posts:
    2
    can anyone help me to figure out what the hell is this ? KeyNotFoundException: The given key was not present in the dictionary.
     
  22. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Does it happen in a fresh VOXL project?
    When does it happen?
    Can you post the call stack?
     
  23. Casperdre

    Casperdre

    Joined:
    Nov 22, 2015
    Posts:
    2
    it happens only when i use any other unity version other than 2017.1.0 callstack is :
    KeyNotFoundException: The given key was not present in the dictionary.
    System.Collections.Generic.Dictionary`2[UnityEngine.Vector3,Chunk].get_Item (Vector3 key) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Collections.Generic/Dictionary.cs:150)
    WorldGenerator.Update () (at Assets/VOXL/Scripts/WorldGenerator.cs:290)

    this happens +999 times
     
  24. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    I recommend staying at 2017.1.0p1 for now until I upgrade VOXL officially.
     
  25. orubel

    orubel

    Joined:
    Jun 3, 2017
    Posts:
    2
    Following instruction for palying in editor and keep getting following error:

    KeyNotFoundException: The given key was not present in the dictionary.
    System.Collections.Generic.Dictionary`2[UnityEngine.Vector3,Chunk].get_Item (Vector3 key) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Collections.Generic/Dictionary.cs:150)
    WorldGenerator.Update () (at Assets/VOXL/Scripts/WorldGenerator.cs:290)
     
  26. orubel

    orubel

    Joined:
    Jun 3, 2017
    Posts:
    2
    I still have this error
     
  27. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Make sure to use Unity 2017.1.0p1.
    2017.2 is known to have a few new bugs, we are still waiting for fixes.
     
  28. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Update:
    V1.7
    • Upgraded to Unity 2017.1.2p3
    • Name overlays are now udpated in Entity.UpdateClient
    • Player: public chat component instead of GetComponent call
    • Chat: public player component instead of GetComponent call
    • UIChat: AddMessage keepHistory check deletes half the history each time to avoid lag
    • Entity.IsWorthUpdating made virtual
    • Player.Start: equipment setup moved to OnStartClient so it's not done on the server anymore
    • Changed all Scrollbar movements to clamped
    • Entity.RpcShowDamagePopup improved
    • NetworkTime fixed
    • NetworkManager universal quit function to also work in Editor
    • UnityVersionCheck added so people know the recommended Unity version for VOXL
    • Removed old equipment update workaround for Unity 5.6
    • Player.equipmentTypes+Locations now in one struct
    • Player.OnDragANdDrop inventory slot to inventory slot uses configurable keys now
    • NetworkManager RegisterHandler calls moved to OnStartServer so that reconnecting works
    • Database CharacterLoad: health is assigned after everything else was loaded
     
    Artaani likes this.
  29. Artaani

    Artaani

    Joined:
    Aug 5, 2012
    Posts:
    423
    Hello.
    I bought VOXL in order to learn a specific aspect about UNET. I would like to understand how it is possible to load a game world for newly connected players without a pause for the players who already in the game.

    Seems like in VOXL it is achieved with simple NetworkServer.Spawn () for each cube (it works since .Spawn() is buffered)
    Right?

    However this solution is not correct because in real Minecraft game, world consist from chunks, not a cubes. And the world should be transferred to the connected client as a file.

    Could you please help me and explain what to do in that case?

    Maybe I explained my question not too correct.
    It is also explained here: https://forum.unity.com/threads/how...isted-sandbox-game-with-async-loading.522780/
     
  30. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Sounds like you are looking for a completely different architecture.
    It's possible of course. The goal with VOXL was to have each block be it's own NetworkIdentity for simplicity & learning.
    Of course, there are a lot of other architectures with pro's and con's that could also be used.
     
  31. Artaani

    Artaani

    Joined:
    Aug 5, 2012
    Posts:
    423
    I realize that this question is not related to VOXL, but you are an expert in HLAPI and LLAPI and if you now something about how to implement this architecture, could you please share your knowledge?

    Besides that, it could be interesting for other people who bought VXOL and plan to develop own full minecraft-like game.
     
  32. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    I guess I know HLAPI quite a bit. The two ways for displaying more voxels would be either to have NetworkIdentities on chunks instead of on each voxel, or to use LLAPI without HLAPI.
     
    Artaani likes this.
  33. volfase

    volfase

    Joined:
    Nov 15, 2016
    Posts:
    42
    when update
     
  34. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    which part needs an update?
     
  35. volfase

    volfase

    Joined:
    Nov 15, 2016
    Posts:
    42
    I think new main menu and add server list pause menu. And if i host game does i need port formating?
    And better rendering.
    And does it support unity 2018.1?
     
    Last edited: Jul 2, 2018
  36. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    2017.4 LTS is recommended because of the 2018 bugs.
    Not sure what you mean with better rendering, it's just cubes with textures?
    You don't need port forwarding, just host it on a dedicated server.
     
  37. volfase

    volfase

    Joined:
    Nov 15, 2016
    Posts:
    42
    i mean render distance/chunk size allmost all in feedback say it need to be better there are exambles form your feedbacks;Great potential, but the render distance/chunk size makes this not usable.
    PLEASE fix the incredible lag/very small render distance.
    By default the chunk draw distance is very small, changing the view range in chunks to 12 is about half of what minecraft would class as a renderdistance of 12 But sadly even at View Range in Chunks with a value of 12 it is very slow and freezes unity

    and are you planing new main menu pause menu and server list.
    and can you add fall damage, better water, armors and tools (like pickaxe)
     
    Last edited: Jul 2, 2018
  38. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    More menus aren't planned right now.
    Sorry about the voxel distance. Calling NetworkServer.Spawn is a huge bottleneck in the HLAPI. You can try HLAPI CE which should be a little bit faster: https://forum.unity.com/threads/unet-hlapi-community-edition.425437/ but it's not going to be on minecraft's level.

    I am still working hard on the HLAPI improvements because I really don't want to do VOXL in just LLAPI, that wouldn't be very easy to understand anymore. Right now, while being a bit slow, it's still kind of a cool learning experience to see how to do multiplayer procedural voxel worlds in Unity with not too many lines of code.

    I can give you a refund if you don't want to wait for HLAPI CE improvements, just send me your invoice number.
     
  39. volfase

    volfase

    Joined:
    Nov 15, 2016
    Posts:
    42
    I just thinking if i buy it but are you thinking armors and tools.
    and is there pvp (can i hit other player)?
    and are you making crafting table.
     
    Last edited: Jul 3, 2018
  40. volfase

    volfase

    Joined:
    Nov 15, 2016
    Posts:
    42
    When i but class to ground i see void
     

    Attached Files:

  41. volfase

    volfase

    Joined:
    Nov 15, 2016
    Posts:
    42
    what is coming in next update and when it comes?
    can you make roadmap?
     
  42. tobischw

    tobischw

    Joined:
    Aug 28, 2012
    Posts:
    21
    I know this is old and the asset hasn't been updated in a while, but before anybody purchases it - it's completely useless.

    Not to hate on the dev since they do great work with uMMORPG/uNet in general, but the rendering/chunk bottleneck is most certainly not the networking stuff. It's the fact that every single voxel is an actual GameObject. Anyone who has worked on a voxel engine before will tell you that this is insanely inefficient and not the way to do it. Usually, each chunk is its own GameObject with a custom renderer to "fake" each individual voxel by building a custom mesh.

    If you want something similar to Minecraft, stay far away from this package. The dev even says that its not meant as a terrain engine and only intended for a "small" voxel game, but all the marketing material implies otherwise. I am sure the dev must be aware of these issues, but the asset is still up on the store, even though it ends up being completely useless. Complete waste of money.