No video
Making my Voxel Engine Really Fast
Wishlist Lay of the Land on Steam: store.steampowered.com/app/27...
Support development and play the game early: / tooley1998
Hey everyone. A bit of a different video for today. I’ve been making some improvements to the voxel engine in my game. I've made use of GPU Compute to accelerate voxel data generation.
This basically speeds up everything from mesh generation, voxel physics, fire/water simulation etc. I think the results speak for themselves.
linktr.ee/tooley1998
Пікірлер: 438
Wishlist Lay of the Land on Steam :) store.steampowered.com/app/2776090 Support development and play the game early: www.patreon.com/Tooley1998
it's prob not a priority rn, but i'd love to eventually see walking smoothed out. so its not all bumpy thanks to each tiny block
@FireNLightnin
Жыл бұрын
I was thinking this same thing. I recommend using a logistic curve to interpolate the camera and smooth out the bumps from walking. This would allow the camera to move slowly at the beginning and end of the movement, but still move quickly in the middle of the movement.
@puppergump4117
Жыл бұрын
@@FireNLightnin Or instead of teleporting the player up it could just create a slope to walk on.
@Deathington.
Жыл бұрын
@@puppergump4117 take this one back to the drawing board
@puppergump4117
Жыл бұрын
@@Deathington. There's no issue with it, as it will be temporary and reevaluated as you move. The "slope" itself is simply saying you move diagonally at some min and max angle and your y position increments slowly like a polished game instead of sharply teleporting like a dull game. I mean, it's so simple, just replace teleporting events with some interpolated y movement. idk why people have difficulty with this lol
@zentoa
Жыл бұрын
@@puppergump4117 performance but camera smoothing would not have as much performance problems if at all
i absolutly got shocked by the water and fire simulation....absolutly amazing
To get rid of the lag when the player creates floating voxels you could start the query with voxels adjacent to the ones last edited. Doing it this way could also prevent having to search the whole area for floating geometry.
@player6769
Жыл бұрын
exactly what I was thinking. although I suppose he might already be doing that
I am pretty blown away with how on earth you managed to do this. I don't know an awful lot about computing things on the GPU - but it seems really difficult, especially with just how the GPU works - not really having access to much information outside of each individual calculation.
@Tooley1998
Жыл бұрын
Thanks 🙂. I made my system in such a way where I don't need any neighbour information to generate a voxel
@havenselph
Жыл бұрын
@@Tooley1998 I'm extremely curious as to how you've tackled that? Do you mean actually terrain generation doesn't require information about neighboring cells, or the rendering doesn't? No matter what, this is beyond my level of understanding and just really impressive. Great job!
@beholdergamedesign
Жыл бұрын
@@havenselph I've worked on a similar project. The physics system here obviously would require information about neighbouring cells, everything else can just refer to the world gen data (a bunch of noise maps and random vector fields basically). Some structures would need to know data about the cells they want to replace, but not neighbor data.
@Lingu42
Жыл бұрын
@@havenselph Terrain generation itself can use a noise function (like Perlin or Simplex noise), which does not need information about neighbouring cells. But I think when it comes to objects like plants it gets more difficult.
@arbitervildred8999
Жыл бұрын
I'm also working on a game and i was using my CPU to do all the frame updates, objects placement, computing and stuff. Got to the point i had too many thing going on and had to switch to GPU, honestly there was not much to change, just some flags for my window, made a new virtual screen where i would render everything with my GPU and then pass it back to original window. was a weird code injection but hey, it works and i don't have to touch that part ever again xD. the neat part is that i can use steam overlay now, post-processing, masks and shaders
Here is a trick for you to make the 60ms the gpu takes at 2:00 appear instant: create an animation when the user destroys blocks (for example the blocks disappear one by one or vanish in some way) that takes about 50ms :) then the physics calculation (gravity) would feel instant
@Jmac2110
Жыл бұрын
smart
@hoveringgoat8061
Жыл бұрын
Theres gotta be an easier way to check two grids are not connected that takes less than 50ms. Thats an eternity. I'm confident you could do this in under a frame
@duckner
Жыл бұрын
@@hoveringgoat8061 you do it
@bobsmithy3103
Жыл бұрын
@@hoveringgoat8061 In the game Ace Of Spades - a fps with minecraft building mechanics - they allowed players to collapse buildings with thousands of blocks instantly. There is a way but idk how'd they do it. I myself was kinda stuck on how to code a basic 2d version of it. If anyone knows a good way pls let me know.
@ayylmao.mp3
Жыл бұрын
@@bobsmithy3103 my first instinct would be to utilize a tree data structure that would show which blocks rest on top of which others. Then if you destroy a node then it'd be easy to propagate the change or lack of parent node to the others.
this game development journey you're on is fantastic and am looking forward to the final product!
So lovely to see you also focus on optimisations. Love this project.
Man videos like this always make me want to get into graphics programming, but at the same time it just seems so damn difficult. Awesome video, keep up the great work.
Definitely a hidden gem. It's definitely not minecraft despite what KZread might call it.
I am astonished you only have 3600 subscribers and so little support for this game. This is incredible and transcends Minecraft in every way, you’re definitely going to succeed if you keep this up!
@Guhhhhhhhhhhhhhhhhhhhhhhhhhhhh
Жыл бұрын
Fr
@blvckbytes7329
Жыл бұрын
If they manage to create an equally good or even better atmosphere than Minecraft, I'm in. Imagine this game with a proper modding system, without having to fight obfuscation. Just writing mods and plugins, building a huge community and exploring everything the game has to offer. That would be great.
@ShiroCh_ID
10 ай бұрын
the fact that this guy have the same trial and error notch has on his YT Channel on the past can speak itself that this game can or may became the next "Minecraft"
I can see ur burning passion in this project man! Hope u succeed in your development journey!
I'm saddened that this is the first video of this project that was suggested to me, but your game looks awesome! I love games that feel like the world interacts with you, but of course those are also really hard to design and make work logistically. This video seems to be doing well, so hopefully this will get you some good attention! Great job!
It looks amazing so far. Keep up the good work!
I would love to see a technical deep dive into some of the challenges and inner workings of this engine! I'm genuinely blown away at how performant and beautiful the graphics and physics looks 🙂👍
@largiegorgle
2 ай бұрын
Im pretty sure its developed in unreal engine 5, which is designed to run great looking graphics as efficiently as possible
I love this!!! First reaction is to help out in any way. Keep it up!
this reminds me of teardown so much! i love these style of games, and great work making the engine run on lower end hardware!
Seems like you're making a lot of progress, i hope stuff comes out well, keep the good work up!
This looks epic, can’t wait too see where this goes !!
damn, you're voxel world looks beautiful! especially love the water with the gradient to the light blue, reminds me of jamaica
Nice work ! I loved burning tree part , really beautiful desgins there
this is so cool :] i havent seen ur other devlogs yet but this seems really impressive to my peabrain
damn, impressive. cant wait to see more progress on the game!
you are doing awesome
I have to say this looks gorgeous. The higher fidelity (sub-voxels? texels?) of the blocks makes it look infinitely better than other voxel games like Minecraft or Cube World.
wow! i’ve dreamed of making a voxel survival game but don’t know enough to make one yet, it’s cool to see it be done!!
Only now discovered this through recommended, what an impressive project. Makes me want to learn how to render voxels like that.
I am excited by the progress you have made! Also haha same graphics card.
Looks INSANELY promising. Can't wait to see what you come up with. I'd love to support this project in any way I can but I don't see a Patreon. Keep us updated!
This looks incredible dude!
Really nice update mate, its looking really good
Bro is really out here showing us the best game to be made since 2019 bit by bit and I am already ridiculously excited.
I forgot the name of your channel and finally got it recommended again
I really like this idea, reminds me of teardown but with survival haha
@ChuckSploder
Жыл бұрын
and magic and exploration and enemies
This is really cool. It still looks like you're going to need an absolute monster of a PC to run a game made with this once you have environmental stuff going on where there are ticking entities.
holy idk why I was recommended this but god damn does this game look beautiful, I'd def play it upon release!
I somehow came across your channel in my recommend and am blown away. Some tutorials would be amazing!
I don't know what this is or how I ended up here, but holy SHIT. This looks absolutely stunning! I'll definitely be following along to see how this goes. Voxel sandbox games are still loaded with potential and this looks like a really unique and amazing take on the genre.
I love to see that this game is still progressing, good luck
That looks actually amazing bro
The engine looks wonderful, well done!
This is an amazing game even without GPU Compute yet you managed to make it so much better
Congrats on going viral!
The world of your game looks beautiful so far. I will say that the HUD does seem to create a bit of a "minecraft knockoff" vibe, but the general look of the world you are building is fantastic. I hope you come up with a amazing name for the game and sell a billion copies.
The world is beautiful, can't wait to see what kind of game this engine serves!
What I learned from coding in scratch is that ray casting directly with the tile information is faster than having a sort of hitbox middle man like a mesh. Probably only applicable to RT, and that's in contrast to scratch's hit detection.
This is so cool I cannot wait to play this if it ever gets fully fleshed out and released as a game.
@couldntgivafuk
Жыл бұрын
It’s out right now… it’s called minecraft
This is so cool, i have had some similar projects but I never got close to this good. I need to try again sometime.
nice work :) the fire is very pretty
Just found your channel and... I think you might actually beat hytale to the punch. I always wanted a more detailed and realistic voxel environment that I could still easily build in with larger voxels. Nice work. Might make a video on this.
Can't wait to play your game, hope you post it soon
Wow that render distance at that voxel detail and graphical fidelity is mad impressive
this looks like teardown... i LOVE teardown... keep it up
woah this looks amazing! It will be really cool once you get everything finished and release the game if you do decide to make this game available to buy and play. Also wow I forgot how old my pc was getting since I have the same GPU and CPU lol
Yo that looks amazing!
Bro is making Teardown 2! Jokes aside, this is sick! I love highly optimized voxel tech that allows simulation and modification in abundance.
unique suggestion: when breaking the base of structures, calculate the total units on the side which does not make contact with the ground. Then, use a ratio to assign the minimum amount of “bridging” units before triggering a collapse. This way you can mimic the idea that very heavy object can’t be supported by just 1 single unit, and you could build on this program by assigning different support ratios for different material types.
This game looks amazing, i love the style.
I realize this might be a lot of work but I think if you smooth out the Z axis when moving it could make movement feel less jarring. Right now, It's like you're teleporting up and down with each step you take to keep your feet to the ground (which makes sense, the ground isn't smooth by design) it's honestly not a problem, moreso a quality of life thing I thought of watching this really cool demo!
This is incredible! You should make a patreon for this! Maybe give out early access builds or something
Keep up the great work this is awesome! If you need any additional hardware testing let me know I have a few gpus (RTX 3080, GTX 1070, GTX 1660S).
it's crazy I would love to take a look at the projects files, just to learn that's really impressive
having some cube craft vibes i love this
very nice project, keep going !
really satisfying seeing things go silky smooth once on the gpu
i really like this concept i have an i5 4570 and a gtx 1050, and i can barely run teardown on 1080p at the lowest settings while getting a solid 70 frames but something like cube world gives me no issue at all looking at modern games, usually triple a ones, not a lot of games are optimized, new stuff comes out that most of the time ends up looking worse than what came before with double or triple the computing power required to run it
this voxel engine looks really neat!
Wow! This is an awesome game engine! I wonder if it'd be better suited to a true sandbox like Minecraft, or if it's better suited for a progression oriented game like Terraria. Either way, thanks for sharing! That's amazing!
amazing work!!
Epic video as always. As someone who always wants to play games with friends but is limited by their not being able to play certain games due to hardware, I really appreciate you making playability on lower end devices a priority. I'm sure you've been asked this question before, but I haven't seen it at the top of comments lately. Do you have a name for this project?
This looks great, well done. On your twitter you showed off a spell cast or something on a monster, but that laser spell didnt cut off the grass :( I think that'd be cool if it did. Keep it up!
Excellent. Just a small detail, I don't know if it's feasible, but I think it would be better to smooth out the way the explorer falls off the little voxels, so it doesn't look like it's bouncing down the platforms, with a similar solution for climbing.
I think the biggest reason why more people don't use GPU compute shaders for this (Despite the benefits of parallel execution times) is because of the frame hitches, especially from higher complexity procedural noises. I implemented a procedural generation system in 2D with a compute shader and due to the amount of processing there was an ~160ms frame hitch each time a set of chunks were generated. Of course I could optimize the algorithm a bit more, but when you're doing Warped FBM with high samples on voronoi with nearest points or more complex layered noises, there's no getting around the frame hitch that occurs. And the frame hitch feels a lot worse than lower fps or catching up with terrain generation imo. Thats why I at least just do it all in cpu and leave the gpu budget to effects and higher fps.
This is really cool to see. Though it is funny to see my GPU is still less powerful than the low end you tested here
Also, an idea for the building system I am not sure if you've implemented already is to have a way to create custom ingame assets but placing 1 voxel at a time, thus allowing the player to then later use the saved asset as a sort of pre-made object that they can place so long as they have the materials required to build it. Hopefully I articulated that clearly.
For me this compenents are still very actual and dear, the most of game should run on 4GB GPU thank to optimisation. Hoverwer, you do a very great work of optimisation. Good continuation 😁😁
Amazing work!! 😍
To smooth walking perhaps a small mesh could be calculated based on the slope from the corner of one voxel to the next, if the height difference between adjacent voxels is within a certain limit, otherwise the slope could be treated as vertical as it appears to be now.
Wow!!! This is a great application of graphics cards! Quick question, how are you rendering millions of voxels? Do you merge them into one giant mesh?
This game looks absolutely GORGEOUS!
bro you just revived my cube world dream
this looks amazing.
as someone with an "old by today's standards" cpu, this looks especially incredible :o this is pretty mindblowing even regardless of that
Отличная работа, продолжай совершенствовать игру и снимать периодически видео. Алгоритмы Ютуба благословили тебя!
looks really cool!
This looks amazing! I have watched a lot of the videos and I think, with a few animation and performance improvements, I would pay $30 or even $40 for this! I'm a huge fan of Teardown and I love how this looks and the creativity that's poured into it! Is there any way for me to know when/if this releases and where? Great work!
That's actually beautiful
looks pretty sick tbh
God damn I can see this being used for a lot of cool stuff, will you make the engine available any time in the future? I'd love to see something like this with your water, fire propagation and falling stuff etc. mixed with some automation, machines and stuff If you have a "pipe" mesh (hollow cylinder), would the water propagate through it as it all is coded right now, as long as the pipe is lower than the source water? This could be amazing, making it flow through the pipe and over a waterwheel to produce power etc.
Hey Tooley, so I'm not sure if ive mentioned this yet, but the water in your game looks beautiful. I love the reflections, but I really wanna see it well to appreciate it. You see, I'm colourblind, and I have a lot of trouble seeing the water in your demo, as it blends in with the sandy background. Could you perhaps make it slightly more opaque, or perhaps give it some solid particles flowing through it? I can see clearly when the depth through the water is larger, such as looking out into the open ocean, but shallow water is... well its pretty much not there hah. Even if you just had a setting to make it more opaque, thatd be amazing. Thank you for reading!
Боже мой! Это шедевр! Надеюсь ты доведешь игру до ума и в будущем в нее можно будет поиграть
Hi. YT algorithm recommended me this. I do not know game development, so take this with a truck load of salt. Suggestion: When the stone at 2:00 barely hangs on, let very tiny voxels with low resolution fall off of it randomly. This will make it feel like it's barely hanging on. Even with a 60ms delay, it would make it feel better. Anyhow, Godspeed on your game. Love the visuals. PS: If there is a way to stop the jittery camera when walking down a steep hill, that'd be amazing. Like in 0:59.
This is really awesome! OMG !
the option in choosing between what voxel data generation you want to use would be nice
wow those are amazing speed ups! I really wanna try and end see how it runs on my high end gpu
First time on this channel. Impressive work. So far I only played Minecraft. And for me the small plants in your game look chunky, and make the look a bit "messy" (but maybe it's because the voxels are small). MC uses sprites for small plants, which can show more details. You're already realistic sky, why not small plants?
Saw some of what this game has. Question is how about building if you can break the voxels only uncontrolled ways there wont be a way to build easily (not sure if you even want the game to have building) Well you could always add a chisel tool that while holding the material you are building with places missing voxels / chips away at the voxels in the way. Would be a nice way to make you run out of items if you break blocks carefully you would have to replace less while building making replacing using the chisel tool cost more would increase the need for those items if you do go that route you would also have to make mechanics that renew every rescourse, but it is a pretty cool idea to enable building while still allowing details perhaps using the chisel without holding the material chisel could also work with multiple material types at once randomly / in a pattern placing chosen voxels.
Hi! Love your work! I know you are far in development, but have you tried UE5 with nanite for each voxel? It also uses mostly GPU rendering, each voxel acting almost like particles and when the voxels are behind an object from the player view cone they are de-rendered or computed as a cluster. For mesh generation you have blueprints with easy procedural generation and many other functions. I don't know if this method works better than what you created, but is worth giving it a try! Keep up the good work!
Yooo this is awesome!
Since I played teardown I thought a game in this style crossed with a game like Project Zomboid would be amazing. The depth and features of PZ with the visuals of this where you could build up a base anywhere you wanted would be amazing. Some kind of mishmash with PZ, this and 7 days to die.