Voxeltests - a voxel world demo

This is what I’ve been working on for at least a month now, a minecraft-style voxel ‘playground’ with babylon.js. It’s still early days as you can see. I don’t want to go too far down the MC-clone route, I think the world has enough of them. I just want to get to a base-level functionality where I can make a minimalist voxel-type game with ease.

My primary focus has been on performance, I want a silky-smooth 60 without noticeable hitches. I’m not quite there yet. I’ve used greedy-meshing on the chunks, used a custom shader to texture them properly without the need for additional materials (all one object), and have offloaded their generation to a webworker. This has got me close, but as you can see in the video there’s a good half-second delay when the next batch of chunks need to be loaded. I’ve got a few ideas on tackling this though, and more performance optimizations up my sleeve. This is going at ~60fps apart from those instances though the recording might not bear that out as its recorded on an old laptop so apologies about that. It’s been a heck of a learning experience so far, and I know I’ve got a lot more learning ahead of me before this project is in a presentable / uploadable state. Ah well, gotta keep on climbing mount improbable!

I must admit I’m finding staying motivated about a fairly big project to be super hard, especially when 90% of my development time is me sifting through docs and reading up on techniques & algorithms. All have to start somewhere I guess.

12 Likes

Congrats, this looks amazing.

Stay motivated! I guess you are learning a lot constantly :grin:

1 Like

It is beautiful indeed :slight_smile:

1 Like

This is very cool! It sounds like it’s been fun and challenging! Motivation comes in waves! Find something that truly inspires you and live that magic for a little bit. I always find that taking the time to let myself be inspired by something usually gets the motivation fired back up again! Keep it up! Love how it’s shaping up so far!

2 Likes

Thank-you for the kind & supportive messages :slight_smile:

That is good advice PirateJC. I find myself getting frustrated implementing certain features, so I take a break and do something I find interesting for a bit (like looping clouds). Gives me a bit of motivation and keeps the project going, even if I’m not doing the important stuff first :stuck_out_tongue:

I’ll post an update when I hit the next milestone.

2 Likes

Minor update:

  • Pixelated text rendering
  • Command / chat bar
  • Block breaking animation
  • Block placement and selection
  • A few basic sounds

I recorded it on my desktop instead of using some dodgy software capture on my laptop, so the video should be a lot smoother.

Nothing much to report. Added basic commands like ‘/tp x y z’ and ‘/generatecubemap’, along with a standard chat history. Finally got around to changing the chunk loading logic, there’s no noticeable lag at any point while walking now, and chunks continually load around the player as opposed to once every so often when they pass the thresh-hold distance.

I’ll try to tackle the menus next, then on to player animations.

1 Like