• Advertisement

Voxelygon - Polyhedron Voxel

Recommended Posts

Hello, I`m ji-won, Kim in Korea. ;)

I`m developing polyhedron voxel middleware for Unity.

 

What`s mean polyhedron vexel? See below.

 

This middleware based on block combination. And, these blocks have various shape. So the combination of these blocks make terrain like low-poly.

Below video is result of these combination.

 

 

Like other voxel engines, CAN destroy rrain and generate terrain. Of course, can apply to Unity based physics effects like anti gravition and explosion.

 

These video recorded on i3-4160 CPU with GTX 650 system. FPS range is 45~60 over while destroying and refresh.

Support multi-threading for refreshing chunks.

 

future works

- pathfinding based on various size units.

- huge units and partial destroying.

- crafting system and support json.

 

 

If you're interested, send me a mail. lagnas2000@gmail.com or lagnas2000@naver.com

Edited by Jiwon Kim

Share this post


Link to post
Share on other sites
Advertisement
On 8/30/2017 at 5:47 PM, Jiwon Kim said:

Support multi-threading for refreshing chunks.

Is this your own multi-threading or using Unity's Coroutines?

I ask because I notice Unity has problems running simultaneous routines, chances are that with a destructive terrain I would also like destructive objects and that would need the coroutines to do smoothly.

Share this post


Link to post
Share on other sites

 

10 hours ago, swiftcoder said:

That looks pretty nice, the beveled edges break up the block structure nicely. Can it handle caves?

Of couse can handle caves. Voxelygon have block based BD structure.

To make caves, insert VACANT block as your wish. Below show like that.

example.png.616340344d3d387daa343f7d97118cca.png

 

Below blocks like pile shape consits of 4 blocks, and 3 vacant block, and 3 cubic blocks.

 

Share this post


Link to post
Share on other sites
3 hours ago, Scouting Ninja said:

Is this your own multi-threading or using Unity's Coroutines?

I ask because I notice Unity has problems running simultaneous routines, chances are that with a destructive terrain I would also like destructive objects and that would need the coroutines to do smoothly.

Yes, my own multi-threading method.

Unity support only 2 thread process, (main thread and rendering thread). Then Unity API is processed on main thread.

 

Voxelygon support multi-threading partially. Based on Unity, so using Unity API codes does NOT multi-threading. But my own codes support multi-threading(ex : refreshing chunk, pathfinding).

 

But, Unity Collider does NOT support multi-threading, so update mesh collider applied to chunks does NOT support multi-threading.

 

On test, refreshing 32x32 sized chunks spent 10~12 ms. To update mesh spents 7ms(NOT multi-threading), to update inner data 1ms (multi-threading), to update rendering process 2 ms(multi-threading).

Edited by Jiwon Kim

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Advertisement
  • Advertisement
  • Popular Tags

  • Advertisement
  • Popular Now

  • Similar Content

    • By LifeArtist
      Good Evening,
      I want to make a 2D game which involves displaying some debug information. Especially for collision, enemy sights and so on ...
      First of I was thinking about all those shapes which I need will need for debugging purposes: circles, rectangles, lines, polygons.
      I am really stucked right now because of the fundamental question:
      Where do I store my vertices positions for each line (object)? Currently I am not using a model matrix because I am using orthographic projection and set the final position within the VBO. That means that if I add a new line I would have to expand the "points" array and re-upload (recall glBufferData) it every time. The other method would be to use a model matrix and a fixed vbo for a line but it would be also messy to exactly create a line from (0,0) to (100,20) calculating the rotation and scale to make it fit.
      If I proceed with option 1 "updating the array each frame" I was thinking of having 4 draw calls every frame for the lines vao, polygons vao and so on. 
      In addition to that I am planning to use some sort of ECS based architecture. So the other question would be:
      Should I treat those debug objects as entities/components?
      For me it would make sense to treat them as entities but that's creates a new issue with the previous array approach because it would have for example a transform and render component. A special render component for debug objects (no texture etc) ... For me the transform component is also just a matrix but how would I then define a line?
      Treating them as components would'nt be a good idea in my eyes because then I would always need an entity. Well entity is just an id !? So maybe its a component?
      Regards,
      LifeArtist
    • By nickyc95
      Hi.
      I'm kind of late to this party but I thought I would ask anyway as I haven't found a concrete answer.
       
      When creating a game engine, when should you choose one methodology over another (more specifically OOP and DOD)? Which areas benefit from DOD? Which areas benefit from OOP? Do people typically mix multiple methodologies throughout a project? I.e. certain sub-systems created in one, and others in the another?  
      DOD - Data Oriented Design
      OOP - Object Oriented Design
       
      Pretty simple
      Thanks
    • By Estra
      Memory Trees is a PC game and Life+Farming simulation game. Harvest Moon and Rune Factory , the game will be quite big. I believe that this will take a long time to finish
      Looking for
      Programmer
      1 experience using Unity/C++
      2 have a portfolio of Programmer
      3 like RPG game ( Rune rune factory / zelda series / FF series )
      4 Have responsibility + Time Management
      and friendly easy working with others Programmer willing to use Skype for communication with team please E-mail me if you're interested
      Split %: Revenue share. We can discuss. Fully Funded servers and contents
      and friendly easy working with others willing to use Skype for communication with team please E-mail me if you're interested
      we can talk more detail in Estherfanworld@gmail.com Don't comment here
      Thank you so much for reading
      More about our game
      Memory Trees : forget me not

      Thank you so much for reading
      Ps.Please make sure that you have unity skill and Have responsibility + Time Management,
      because If not it will waste time not one but both of us
       

    • By mike44
      typedef struct FontInfo_t* FontHandle;
      MichaelNS::FontMgr m;
      MichaelNS::FontHandle FontGeladen;
      const char *FontPtr;
      start:
      InFileFont.append("Ubuntu-B.ttf");
      FontPtr = InFileFont.c_str();
      FontGeladen = m.loadFont(FontPtr, NULL, NULL, 14, 0);
      stop:
          m.unloadFont(FontGeladen);
          delete FontPtr;
      delete causes a crash. How to unload the class correctly?
      Thanks
    • By Cat's machete
      I need to use global vars,
      So say i have main.cpp file where i #include "globalvars.h"
      In globalvars.h i define
      extern int ppp;
      In globalvars.cpp i put #include "globalvars.h"
      int ppp;
       
       
      Now in main cpp during compilation i get UNDEFINED REFERENCE TO ppp
  • Advertisement