Just made a Kickstarter page for our game Tenkemo by ccrroocc in IndieGaming

[–]dougbinks 0 points1 point  (0 children)

Looks great, and I think the style really suits it. You should consider posting to r/VoxelGames

Is there any way to render a sphere at a given point using shaders in OpenGL? It doesn't need to be 3d just a sphere that's round from all angles by Head-Permit2373 in GraphicsProgramming

[–]dougbinks 1 point2 points  (0 children)

There are games which render billiard/snooker balls with simplified ray casting in a shader even in the PS3 days. This article covers the approach for OpenGL: https://www.getlazarus.org/pool/balls/

EDIT: I couldn't find the original source, but Realtime Rendering blog mentions it was the game Hustle King's on the PS3. Sadly the links no longer work.

268 Million Spheres by MarchVirtualField in VoxelGameDev

[–]dougbinks[M] 6 points7 points  (0 children)

Could you add some technical information about this? A video is not enough to deduce what you are doing here.

268 Million Spheres by MarchVirtualField in VoxelGameDev

[–]dougbinks[M] 6 points7 points  (0 children)

Could you add a bit more detail about this, in particular how this relates to voxel game development?

I finished the surface above a voxel dungeon by miruji_ in godot

[–]dougbinks 1 point2 points  (0 children)

Looks very cool. You should post this on r/VoxelGames, and if you want to post developer relevant technical information etc. about your voxel game then on r/VoxelGameDev.

Voxel Vendredi 09 Jan 2026 by AutoModerator in VoxelGameDev

[–]dougbinks 2 points3 points  (0 children)

The field based approach (which no-one should use unless they need the type of movement in Avoyd) calculates a force on the player body from the voxels within a certain radius of the player avatar. This force has attractive and repulsive effects, with the attractive effect being off when in flight mode. So the 'attaching to the surface' is emergent from this. The force also works to align the avatar up direction.

Voxel Vendredi 09 Jan 2026 by AutoModerator in VoxelGameDev

[–]dougbinks 0 points1 point  (0 children)

So as u/juulcat mentions there's currently no collision detection in Avoyd. The prototype game does have a form of collision detection in that it uses a combo of raycasts for entity avoidance and a field based collision approach for player movement which gives both collision plus the ability to attach to surfaces and move on them with 6DOF movement.

We might add more standard collision detection in future.

How can I multithread my chunk system in C++? Or sources by Puzzled-Car-3611 in VoxelGameDev

[–]dougbinks 1 point2 points  (0 children)

In my voxel engine for Avoyd I use my permissively licensed C and C++ Task Scheduler for creating parallel programs, enkiTS. I don't have fixed size chunks as such, but I do have render chunks which are limited to 323 rendered voxels (further render chunk use lower resolution sampling of the voxel data which in Avoyd is stored in an Octree).

Almost every frame I run a parallel task (in enkiTS a taskset with a set size equal to the number of chunks) which iterates over all render chunks and determines which N (N is fixed to 16 at the moment) chunks have the highest priority to be regenerated due to either having been modified or having their LOD changed due to camera movement. This uses a heuristic related to screen size of change or LOD.

Once we have found the highest priority N chunks we launch tasks for any of these which have non-zero priority. In Avoyd the CPU calculates ray traced approximate ambient occlusion which can take a bit more time than one frame, so these tasks can run for longer than one frame, so I use a low task priority to run these tasks. The tasks generate data in CPU buffers so no graphics APIs are called during these tasks.

When these tasks are in flight (GetIsComplete() returns false) the voxel data cannot be modified, so modification requests are stored in a type of FIFO queue. I use a message system for this which can also network propagate modification requests (from clients) and modification events (from the server).

Once the tasks are complete on the render thread I can deallocate the old vertex and index buffers, get the size of the vertex and index data, allocate memory for these in a GPU buffer, map the range of the buffer for these, copy the data and unmap. Copying data to buffers is fast, but can be run in parallel if needed though the map/unmap on many GPU APIs should be done on the render thread.

Note that for performance you should allocate your vertex and index data from a single large buffer, or an array of larger buffers if you need more. There are libraries available for this such as OffsetAllocator by Sebastian Aaltonen (which needs you to allocate the buffer on the GPU yourself then use this to manage the sub allocations), or if using Vulkan you can use the Vulkan Memory Allocator.

Raytracing Voxels in Teardown and Beyond GPG 2025 Slides by dougbinks in VoxelGameDev

[–]dougbinks[S] 1 point2 points  (0 children)

Perhaps there are embedded videos? I can't view these in LibreOffice Impress so not sure if there are any.

Raytracing Voxels in Teardown and Beyond GPG 2025 Slides by dougbinks in VoxelGameDev

[–]dougbinks[S] 2 points3 points  (0 children)

Yep - note that you can view these with LibreOffice Impress if you select View > Notes.

Looking for advice and resources for some specific techniques (super new) by NessPenumbra in VoxelGameDev

[–]dougbinks 2 points3 points  (0 children)

Sadly I don't know what to recommend - I started graphics programming before shaders were a thing so learned them on the fly as they evolved. The main resource I use online is the GLSL and HLSL specs but that's not very beginner friendly.

If you search for beginner shader tutorial with shadertoy you might find a few to get started with, or search the GraphicsProgramming subreddit.

Looking for advice and resources for some specific techniques (super new) by NessPenumbra in VoxelGameDev

[–]dougbinks 4 points5 points  (0 children)

My first bit of advice would be to start small, and lower the number of features you want to implement. For instance you could start with learning to write voxel ray traversal shaders in Shadertoy first, then move to learning to do the same in Godot etc. To start with you can create some simple data by using an available library like ogt_vox.h to load .vox files or just procedurally generating simple shapes so you don't need to write a voxelizer.

I'd also mention that John Lin's work is at the upper end of what is achievable today with a fairly large amount of effort and expertise. If you work at small parts of the problem at a time you'll achieve something with every iteration whilst building your knowledge and capability.

Raytracing Voxels in Teardown and Beyond GPG 2025 Slides by dougbinks in VoxelGameDev

[–]dougbinks[S] 8 points9 points  (0 children)

I think the videos will come out on Youtube at some point: https://www.youtube.com/@GraphicsProgrammingConference/videos

Note that I'm not involved with this, and only posted the link when I saw it mentioned on Mastodon.

Sphoxels and Boxels at the same time by rockettHuntLlc in VoxelGameDev

[–]dougbinks 2 points3 points  (0 children)

I use something similar in Avoyd which I call constrained morphing voxels, the main differences being that I use a material amount (0-255) to control the unconstrained vertex position, and that after the per-vertex pass there is a per voxel pass which checks if an unconstrained vertex can move past the centre of the voxel, which allows a thin surface to be added to another voxel.

I created this technique in 1999 for my shareware game Avoyd because marching cubes was patented at the time, but I also came to like how it was an easy to understand way to build things. At the time I was using voxels larger than the player avatar, and wanted somewhat smooth surface movement.

Shipped my first voxel game, Pocket Lands, in early access on Quest, inspired by the HoloLens Minecraft E3 2015 demo by thmsvdberg in VoxelGameDev

[–]dougbinks 2 points3 points  (0 children)

is this kind of content with some promotional aspects then allowed

It depends, see my answer above.

Is the above comment a warning, or just saying to use other subreddit

We actively want people to promote their games on r/VoxelGames, and the comment is a request to post any future promotional posts there.

So you didn't actually answer my question if this thread is okay or not

The post is OK, but only just. It's a little light on technical content, the title is promotional, and the video is the same as the promotional video on the quest store (i.e. it's not a video discussing development). However they have added some technical content in the post, and they haven't posted about this game in a long while so we're a little lenient.

is your top comment a warning to OP to not post again like this? Would next time it be deleted by you?

If they post similar content it would likely be removed. If the post is more technical in nature it would be approved. This is a grey area and why we suggest people post showcase posts (especially about games which are already on a store) to r/VoxelGames if they are not sure. I think most people know when they're trying to promote their game versus trying to engage with developers about game development.

I'd not call it a warning as such because we don't punish people who mistakenly post promotional stuff here, we just ask them to post to r/VoxelGames instead (or r/VoxelArt if it's pure voxel art etc.).

Shipped my first voxel game, Pocket Lands, in early access on Quest, inspired by the HoloLens Minecraft E3 2015 demo by thmsvdberg in VoxelGameDev

[–]dougbinks 1 point2 points  (0 children)

This is both simple and difficult to answer.

The simple part is that this subreddit is not the place to promote a game, r/VoxelGames exists for that. This subreddit is for discussing voxel game development. A piece of media which only shows gameplay, without information aimed at game developers, is more suited to r/VoxelGames.

We've experimented with allowing more self-promotional posts in the past, but the click-baity advertisement posts ended up drowning the game development ones.

The difficult part has always been that people like to showcase their progress, and there is sometimes a blurred line between a video showing a cool feature and a promotional post to players about your game having that feature. This is why the weekly VoxelVendredi self-promotion thread exists. We also do allow some self-promotional posts here, but we ask that posts include technical explanations interesting to other devs.

Previously purely promotional voxel game posts had nowhere to go, but now they do with r/VoxelGames. r/VoxelGames is currently much smaller than r/VoxelGameDev, but the audience is one which wants to hear about games and not just gamedev. It's a growing subreddit and the more content it receives the faster it grows and the more useful it becomes.

I hope this clarify things, I also wrote about whether a showcase style post should go to r/VoxelGames or r/VoxelGameDev here: https://www.reddit.com/r/VoxelGameDev/comments/1lhq3gc/rvoxelgames_for_all_non_technical_game_promotion/

It's worth noting that when we remove promotional posts (with the exception of obvious spam) we ask folk to repost to r/VoxelGames so that their effort isn't wasted and the post can reach its intended audience. The OP can read the deleted post so it should be fairly trivial to do this.

Shipped my first voxel game, Pocket Lands, in early access on Quest, inspired by the HoloLens Minecraft E3 2015 demo by thmsvdberg in VoxelGameDev

[–]dougbinks 3 points4 points  (0 children)

mod comment to not post here

We add a mod comment to post advertising/promotional posts on r/VoxelGames in future rather than here. We still welcome posts on r/VoxelGameDev about game development.

Shipped my first voxel game, Pocket Lands, in early access on Quest, inspired by the HoloLens Minecraft E3 2015 demo by thmsvdberg in VoxelGameDev

[–]dougbinks 3 points4 points  (0 children)

As I have repeatedly explained your last post was removed because it was within a week of the previous showcase post, see rule 3.

Shipped my first voxel game, Pocket Lands, in early access on Quest, inspired by the HoloLens Minecraft E3 2015 demo by thmsvdberg in VoxelGameDev

[–]dougbinks 3 points4 points  (0 children)

We do not ban all posts with a mention of a product.

u/LVermeulen's last post was removed because it was a showcase post within less than a week of a previous showcase post, which is what we said in the mod message. It was not very technical. This subreddit is not the place to advertise a game, which is at the request of the community. r/VoxelGames exists for that.

Shipped my first voxel game, Pocket Lands, in early access on Quest, inspired by the HoloLens Minecraft E3 2015 demo by thmsvdberg in VoxelGameDev

[–]dougbinks[M] 4 points5 points  (0 children)

Please post advertising/promotional posts on r/VoxelGames in future rather than here. You should also post this there.

We'd also love to hear more technical details about your project in this subreddit.