Divine-Star-Software / DivineVoxelEngine

A multi-threaded, renderer independent, fully customizable TypeScript voxel engine.
MIT License
209 stars 13 forks source link

Is it possible to set the voxel scale? #8

Open mmckegg opened 2 years ago

mmckegg commented 2 years ago

I have a project in mind that might be able to use your engine. I haven’t had a chance to dig very deep yet, but I’m curious to know if it’s currently possible to set the voxel scale to be more like Teardown’s 10cm³ than Minecraft’s 0.5m³.

(Pictured above is a screenshot from the awesome voxel based game called Teardown)

lucasdamianjohnson commented 2 years ago

Hello, thanks for the issue. Currently, at this time DVE is not explicitly designed to do this. It may be theoretically possible, however. Some things you could try:

So, either it is possible through an optical illusion or by changing the code to suit your needs.

But I will personally not be pursuing implementing this into the engine. As my personal vision is to create 3d pixel art games rather than something like Tear Down.

mmckegg commented 2 years ago

Thanks for the response. I will investigate :)

I suspect my use case is quite different from yours, but since you’ve put all this work into this awesome engine, definitely worth seeing if I can leverage it :)

lucasdamianjohnson commented 2 years ago

@mmckegg Thank you! So, some things to consider.

If you do get something working and it does not bloat or break the current engine, please set up a pull request and I will implement it and try to maintain it.

If you need hooks implemented please let me know and I will find a way to add them. I will be adding them later.

Also, keep in mind this engine is made with the game engine Babylon.Js. So, you can look into that more to figure out all that you could do.

There currently is not a dynamic lighting or shadow system set up but in the future, I will work on implementing the ones provided by Babylon.Js. But you can replace all the materials with your own to implement that.

I've been working on this engine basically 20+ hours a week for the past 7 months so none of this is easy or trivial lol. The hardest part has just been making it build chunks and do light updates in parallel.

mmckegg commented 2 years ago

Yes, I have some experience with Babylon.js which is what drew me to your voxel engine.

I haven’t yet decided what 3D aesthetic I’ll be going for with this project, but I’m quite keen on a semi-high resolution voxel style (like teardown but without the physics and hifi lighting). My motivation for this is the ease of creating world content (magicavoxel style) and the solidity it adds to a space. I also find the pixel-y lo-fi appearance quite charming :)

It’s going to be multiplayer and browser based and ideally support mobile browsers.

Anyway, if things line up in the right way, I’d gladly contribute code where I can to this engine. I really don’t want to start from scratch 😩

lucasdamianjohnson commented 2 years ago

All right awesome. So, I guess the engine would be a great starting point at least for you. I also started some work for it to run a Node.Js server. As about 90% of the engine is "headless" or just runs in a worker. There is already a system in place to determine what environment it is running in (node or a browser).

As I said I am personally not going to work to add a "tiny mode" lol into the engine but I am happy to help and add things to the engine to make it work.

I might consider opening some form of communication like a discord server or something so people can ask questions and get direct help.