Hey That's pretty cool ! I plan to create a multiplayer game using voxel technology. If you are interesting, here is my last video : /watch?v=NsqlU0DCqPM
Is it possible to have a look on how you render this, and how you put all those cubes into vertex buffers? I found an example, pointing my on how to use a vertex buffer for every single cube in the map, which makes it impossible for me to draw more than 12 chunks before it goes haywire. When you got about 51k DrawCalls at 32 chunks, I go down to 12 fps. ;<
@103150162151163 You shouldn't use a buffer per cube. That would be madness :p. Use 1 vertex buffer + 1 16 bit index buffer PER CHUNK. In other words: merge all cubes into a single mesh per chunk. That will result in 1 draw call/chunk.
@hyperz2006 Yea but what happens if you have some blocs with transparency like water? Then you need 2 vertices buffer per chunk. Or you could use an octree to merge all cubes of the same drawing type together. But then if you want the player to change blocs really fast, you'll need the vertices buffer to be smaller, which reduce the fps. You could also have an algorithm to build vertices buffer really fast but I don't know how. Which choice to make! Do you have an idea of how I should do this?:(
@AnimationSector Nope. From my experience HWI would be a lot slower. HWI generally lowers the memory footprint but it's not well suited for this task because it would mean drawing whole blocks whereas this can remove invisible quads.
May I have the source/tutorial for this? I want to do something for my school final year project and I hope you may let me study your code for reference purpose. It would been of great help if you may be generous enough to do so and I'll be grateful.
@mryoyoyo700 C# is my favorite language by far but you really cant say it is better than C++ because the whole clr was written in C++ and you would be able to run any .net executable without it
Looks good! But wouldn't it be better to make 3D Perlin for the Terrain as well? Since you will probatly can't make hanging cliffs and stuff like that^^
I would love to see how much performance you get from taking voxels, are there any tests?
@RadicalMrHat The hills (heightmap) in the video was 2D noise, but the coal and "caves" were actually done with 3D noise, but everything above 64 height was thrown away. That's why there are no overhangs. I can't tell anything about terrain manipulation performance. This was purely generating + rendering terrain. No interaction.
@hyperz2006 Okay, well cuz I should read the Desc^^ It would be cool to see 3D Perin in heights too. The terrain reminds of the Himalayas. To you take a heihgt of 128 Blocks too or do you intend to make it heigher?
And you really rendered every block with 200 fps? thats amazing, how fast is it if you just render the visible areas.
@RadicalMrHat 128 height yes. I doesn't actually render every block each frame. It does view frustum culling on the terrain chunks so that it doesn't draw stuff that is not in camera view. See the memory in the top left debug info. It's "visible (drawn) terrain data size" / "total terrain data size".
Awsome job, I've been working with C# for a little while now and I want to give Voxels a try, do you know where I can go to get started with XNA and Voxel rendering?
I would like to start learning XNA , but is it worth it . I mean, can I make some serious games, can I make games similar to Minecraft, does XNA have those kind of capabilities to do advanced stuff.
@Pr3fixProducts Yes to all those questions. But worth noting is that XNA is alot more focused on XBox and Windows Phone these days, which is not always a good thing if you are focused on PC only. Regardless, it's still a good place to start learning. It makes some stuff easier than going directly to DirectX (SlimDX).
But can you tell me, what is THE best framework to use to build 3D Games, I personally hard experience to mess with VB.NET, GDI+ Class when it comes to drawing . I create a simple game using GDI, but nothing too advanced.
@Pr3fixProducts There is no "best" framework. It all depends on personal preference and requirements. If you're new to game programming I'd suggest you go with XNA because it's beginner friendly and it simplifies alot of things. Once you're good with that you MIGHT want to go to DirectX 9/10/11 using SlimDX.
@hyperz2006 How do you manage all these chunks rendering and still keeping FPS high? With my OpenGL code I can only render one chunk since it lags all the client...
@MatheusMK3 Basic optimization. A few tips: pack your vertices; use (16 bit) indices where possible; view frustum culling; batch all verticies within a chunk to a single mesh (= vertex/index buffers, called VBO's in opeGL); while batching, cull (remove) all cube faces that are invisible, for example if you have 2 cubes next to eachother you can remove 2 cube faces - the ones that touch eachother - since they will never be visible. You can do other smart tricks but these are easy steps.
@newtubetubetube It ain't fluctuating. It's constantly at 142.82 MB. The part that you refer to is just a calculation of the size of the number of vertices drawn per frame. If it would be allocating and disposing that amount of memory per frame it would look like a diashow.
How exactly did you get the amount of memory in use. Would be useful for my project as I am working on level generation and would like to see how much memory is in use for each level approx. Ty ;D
@seandewar5 it's a sum of the all indices (16 bit each) plus the sum of all vertices (forget the size). It's not actually a calculation of the total memory usage, but the largest part of it.
@natedog9145 The source for this thing was pretty useless. There are better sources out there for this type of terrain. Maybe I'll release my DirectX 11/DirectCompute version one day, if it ever gets any good.
Nice! (Although you might want to be a tad more careful about directly copying graphics. If "someone" decided to get you for that, they probably could.)
Any plans on building something more out of this and/or releasing code/open sourcing?
@robholx I'm not ripping textures since this is a 100% private project (if you could even call it that, heh) so nobody is gonna get me for anything. I'd never use another persons work for something available to the public if the license doesn't allow it. The primary reason I used the MC textures is to be able to better compare terrain generation etc. I don't really have any plans to do much with this, if anything at all. This was made mostly out of curiosity and to learn some 3D programming (:
@DeathScytheBR Heh. When I made this video is was still tuning the rendering performance and memory consumption. Making it generate chunks endlessly is not a problem really. My latest video shows that. Although it renders height maps instead of chunks. I think I'll write a new demo one of these days and make a new video. Haven't really worked on it since I made this video.
@hyperz2006 hey dude im a complete bigginer and when i was watching it it made my simple ball game look dumb you only have to hit the spacebar to make the ball bounce XD
How are you actually doing the rendering? Raycasting/octree? Painters algorithm? Do you have the entire visible area in a vertex buffer? Or the entire area around you in a vertex buffer? Do you have any special rendering order for these blocks? Looks awesome!
@meyerphillip2008 The rendering is actually really basic at the moment. I divide the terrain in chunks of 16x16x128 blocks (x,y,z). The whole terrain in this video is 16x16 of these chunks. For each chunk I have a vertex/index buffer that has only the visible cube faces of that chunk in a custom vertex format to reduce its memory footprint. I just draw all these chunks (with view frustum culling culling).
@skyJets I guess that depends on who you ask. To get it to this point isn't that hard since Perlin noise is well documented. But to get something on the level of Minecraft would be fairly hard for any beginner I think.
stranngely enough, me and a friend habe been working on a very similar idea :D
I wonder how much it will slow down when you add some code to detect whch block you're pointing at and on which face (to allow adding and removing blocks like Minecraft).
@UOAlien The best way to learn XNA is getting a good book and reading it front to back IMO. Online tuts can be handy but they don't go in depth and are often hard to understand if you're new to 3D etc.
Impressive ! How much time have you spent working on that project so far ? You're progressing quite quickly. In the next video, it would be nice to see some of the code you've written for this. Really interesting. :-)
@SteveHemondVideos Well It's hard to put a number on the amount of hours I've spend on it in total so far. I'd guess 1.5 days total or something like that. But most of that time was spend on learning. I'm just a hobbyist, I'm new to 3D and I'm poor at maths so a lot of time is lost on trial and error coding. The reason I haven't shown code so far is because it looks like a mess (again, learning ^^). But I'll show code at some point. Either in a video or by releasing the project. In time... :)
Comment removed
FauxNinja314 1 week ago
Hey That's pretty cool ! I plan to create a multiplayer game using voxel technology. If you are interesting, here is my last video : /watch?v=NsqlU0DCqPM
betalexotiger 4 weeks ago
is there a tutorial for this?
aleexx77 4 weeks ago
Your video is popular on Macedonia
albell616 1 month ago
Better the wolfs is the best mod in minecraft
MrTheswagger121 1 month ago
Creative mode is very cool just amagen you doing that mode it's the 2 best
MrTheswagger121 1 month ago
I got 1.1 and I did creative mode
MrTheswagger121 1 month ago
you should release the source so others can have a peek at what you did
CrewOfMasters 2 months ago
MAKE A TUTORIAL!
alfaxen1 2 months ago
This video is a favorite on India
ozawablog 2 months ago
What in the holy fk is that noise? Is my speaker connection lose?
LycaonX 2 months ago
man thats many mountains!
TheMountainDewOsse 3 months ago
Is it possible to have a look on how you render this, and how you put all those cubes into vertex buffers? I found an example, pointing my on how to use a vertex buffer for every single cube in the map, which makes it impossible for me to draw more than 12 chunks before it goes haywire. When you got about 51k DrawCalls at 32 chunks, I go down to 12 fps. ;<
103150162151163 3 months ago
@103150162151163 You shouldn't use a buffer per cube. That would be madness :p. Use 1 vertex buffer + 1 16 bit index buffer PER CHUNK. In other words: merge all cubes into a single mesh per chunk. That will result in 1 draw call/chunk.
hyperz2006 3 months ago
@hyperz2006 I'm a complete beginner when it comes to 3D and XNA, how do I merge all my vertice-arrays into a single mesh? ;D
103150162151163 3 months ago
@hyperz2006 Yea but what happens if you have some blocs with transparency like water? Then you need 2 vertices buffer per chunk. Or you could use an octree to merge all cubes of the same drawing type together. But then if you want the player to change blocs really fast, you'll need the vertices buffer to be smaller, which reduce the fps. You could also have an algorithm to build vertices buffer really fast but I don't know how. Which choice to make! Do you have an idea of how I should do this?:(
PierreRocheRousse 3 months ago
Looks a bit hilly for me...
firecracker999999 4 months ago
C++ > C# > Java.
MKSGH 4 months ago 2
@MKSGH I like java better than others as it is more fun to do,i like difficulty.I dont see what Java cant do.
chrisall76 2 months ago
@chrisall76 Java isn't difficult at all. Do a 3d game in c++, then come back here and tell the results.
MKSGH 2 months ago
@MKSGH I hate C++ and i already have learned java.No need
chrisall76 2 months ago
was this done with instancing?
AnimationSector 4 months ago
@AnimationSector Nope. From my experience HWI would be a lot slower. HWI generally lowers the memory footprint but it's not well suited for this task because it would mean drawing whole blocks whereas this can remove invisible quads.
hyperz2006 4 months ago
Hey, can I get the source of it?
FanAsEW 5 months ago
May I have the source/tutorial for this? I want to do something for my school final year project and I hope you may let me study your code for reference purpose. It would been of great help if you may be generous enough to do so and I'll be grateful.
cybercrashx 5 months ago
trees?
lexay1414 5 months ago
imagine your playin in survival mode on that map
PinoyBullet101 6 months ago
C++ < C#
mryoyoyo700 6 months ago
@mryoyoyo700
c++ > c#
nur schwerer :) aber performance von c# kommt nie an c++ ran :)
thefiloe 6 months ago
@mryoyoyo700 C# is my favorite language by far but you really cant say it is better than C++ because the whole clr was written in C++ and you would be able to run any .net executable without it
gruntlover2 5 months ago
This is roblox new terrain generator
nejihyuga901 6 months ago
Looks good! But wouldn't it be better to make 3D Perlin for the Terrain as well? Since you will probatly can't make hanging cliffs and stuff like that^^
I would love to see how much performance you get from taking voxels, are there any tests?
RadicalMrHat 7 months ago
@RadicalMrHat The hills (heightmap) in the video was 2D noise, but the coal and "caves" were actually done with 3D noise, but everything above 64 height was thrown away. That's why there are no overhangs. I can't tell anything about terrain manipulation performance. This was purely generating + rendering terrain. No interaction.
hyperz2006 7 months ago
@hyperz2006 Okay, well cuz I should read the Desc^^ It would be cool to see 3D Perin in heights too. The terrain reminds of the Himalayas. To you take a heihgt of 128 Blocks too or do you intend to make it heigher?
And you really rendered every block with 200 fps? thats amazing, how fast is it if you just render the visible areas.
RadicalMrHat 7 months ago
@RadicalMrHat 128 height yes. I doesn't actually render every block each frame. It does view frustum culling on the terrain chunks so that it doesn't draw stuff that is not in camera view. See the memory in the top left debug info. It's "visible (drawn) terrain data size" / "total terrain data size".
hyperz2006 7 months ago
Awsome job, I've been working with C# for a little while now and I want to give Voxels a try, do you know where I can go to get started with XNA and Voxel rendering?
GunsAreToys 7 months ago
Let me download ):
TheWatdaheck 7 months ago
Hello.
I would like to start learning XNA , but is it worth it . I mean, can I make some serious games, can I make games similar to Minecraft, does XNA have those kind of capabilities to do advanced stuff.
Pr3fixProducts 8 months ago
@Pr3fixProducts Yes to all those questions. But worth noting is that XNA is alot more focused on XBox and Windows Phone these days, which is not always a good thing if you are focused on PC only. Regardless, it's still a good place to start learning. It makes some stuff easier than going directly to DirectX (SlimDX).
hyperz2006 8 months ago
@hyperz2006 Okay.
But can you tell me, what is THE best framework to use to build 3D Games, I personally hard experience to mess with VB.NET, GDI+ Class when it comes to drawing . I create a simple game using GDI, but nothing too advanced.
Pr3fixProducts 8 months ago
@Pr3fixProducts There is no "best" framework. It all depends on personal preference and requirements. If you're new to game programming I'd suggest you go with XNA because it's beginner friendly and it simplifies alot of things. Once you're good with that you MIGHT want to go to DirectX 9/10/11 using SlimDX.
hyperz2006 8 months ago
too many hills imo
CycloneGaming1 8 months ago
@hyperz2006 How do you manage all these chunks rendering and still keeping FPS high? With my OpenGL code I can only render one chunk since it lags all the client...
MatheusMK3 8 months ago
@MatheusMK3 Basic optimization. A few tips: pack your vertices; use (16 bit) indices where possible; view frustum culling; batch all verticies within a chunk to a single mesh (= vertex/index buffers, called VBO's in opeGL); while batching, cull (remove) all cube faces that are invisible, for example if you have 2 cubes next to eachother you can remove 2 cube faces - the ones that touch eachother - since they will never be visible. You can do other smart tricks but these are easy steps.
hyperz2006 8 months ago
@hyperz2006 I'm doing the culling already, in the render phase (just check if the block at each side have transparency and remove the face.
I only didn't understood what you meant by "batch all vertices to a single mesh"...
MatheusMK3 8 months ago
@hyperz2006 Note: I'm using quads instead of vertices, would that work too?
MatheusMK3 8 months ago
@EpilepticElbow yes. worthless terrain in this version, but yes.
hyperz2006 8 months ago
Why the memory usage keep fluctuating? it would be faster if you would just alloc a large block and work with it. Memory is cheaper then cycles.
newtubetubetube 8 months ago
@newtubetubetube It ain't fluctuating. It's constantly at 142.82 MB. The part that you refer to is just a calculation of the size of the number of vertices drawn per frame. If it would be allocating and disposing that amount of memory per frame it would look like a diashow.
hyperz2006 8 months ago
This has been flagged as spam show
Java > C#
C# is a Java rip-off.
ra4king 8 months ago
C# > Java
Momo5775 8 months ago 41
@Momo5775 I agree but in terms of compatibility Java > C#
demonwx10 7 months ago
@demonwx10 I agree with you.
Our last hope is the C++. You can do everything with C++. The big question is "how"?
Momo5775 7 months ago
@Momo5775 C++ > C#
C > C++
Python > Nothing
NorthAnticipated 6 months ago
@Momo5775
C# == Java
RandomnessProducts 2 months ago
@RandomnessProducts You obviously don't know those 2 languages, how they work.
Momo5775 2 months ago
@Momo5775 C++ > C#
DrunkenWaffle 2 months ago
@DrunkenWaffle I agree. C# -> Windows only, C++ -> Linux, Mac, Windows.
Momo5775 2 months ago
@Momo5775 Yeah. Plus the fact C++ is slightly more level, although lower level.
DrunkenWaffle 2 months ago
Looks faster than the original game...
MatheusMK3 9 months ago
@MatheusMK3 it has to draw alot less too ;)
hyperz2006 8 months ago
Why you don't want this seed?NO TREES!!!!
jaysonman890 9 months ago
got seed for this?
23Firejet 9 months ago
How exactly did you get the amount of memory in use. Would be useful for my project as I am working on level generation and would like to see how much memory is in use for each level approx. Ty ;D
seandewar5 9 months ago
@seandewar5 it's a sum of the all indices (16 bit each) plus the sum of all vertices (forget the size). It's not actually a calculation of the total memory usage, but the largest part of it.
hyperz2006 8 months ago
Source pl0x
natedog9145 10 months ago
@natedog9145 The source for this thing was pretty useless. There are better sources out there for this type of terrain. Maybe I'll release my DirectX 11/DirectCompute version one day, if it ever gets any good.
hyperz2006 8 months ago
its not really a clone its just inspired
halo122706 10 months ago
Now, MINECRAFT FOR XBOX 360!! :D
Nikiz001 10 months ago
I wish coal was that easy to find...
brentyn123 11 months ago
I realy like it. Btw haters be quiet!
1) minecraft is amazing, so what's the Problem hacing a cool clone of it?
2) it is just a terrain with notch' tectures (which is quite awsome!)
3) it will never be as amazing as minecraft, because here he is using 2d Perlin noises,and notch uses 3d Perlin noises.
You can't make things like overhangs with the 2d noise.
And I'm not talking about the biomes yet!
But still...realy good job.it looks amazing.
Tspider4 11 months ago 4
I think it's gonna be a good clone.
tutlex 1 year ago
why the fuck would you clone this piece of shit FAD?
supermortalhuman 1 year ago
Cool :)
epicbattler 1 year ago
Mountainy ;)
szymonmatuszewski 1 year ago
This is the oposit of what i want minecraft to be ;)
imthewatchman 1 year ago
Are you planning to release the sourcecode for this? I'm trying to get into 3d programming and I would like to study your code.
akaten916 1 year ago
That would be a frikken hard level...
robloxer5001 1 year ago
Awesome performance :3
oskenso 1 year ago
is this entirely random and if it is can i have the source for a reference
9lk00583 1 year ago
Comment removed
robholx 1 year ago
Nice! (Although you might want to be a tad more careful about directly copying graphics. If "someone" decided to get you for that, they probably could.)
Any plans on building something more out of this and/or releasing code/open sourcing?
robholx 1 year ago
@robholx I'm not ripping textures since this is a 100% private project (if you could even call it that, heh) so nobody is gonna get me for anything. I'd never use another persons work for something available to the public if the license doesn't allow it. The primary reason I used the MC textures is to be able to better compare terrain generation etc. I don't really have any plans to do much with this, if anything at all. This was made mostly out of curiosity and to learn some 3D programming (:
hyperz2006 1 year ago 23
@robholx Actually they couldn't as he is not selling the software currently...
danthekilla 1 year ago
@robholx doesn't mean anything if hyperz2006 isn't using it for commercial gains, he can plagerise graphics gameplay whatever
karlosdukos 11 months ago
O.O Thats like a exact replica with trees, water, or sand/snow...... Its awesome
MrLegendman3 1 year ago
Just basically looks like bumps with caves ):
Jasper2428 1 year ago
There must be a way to make it generate chunks constantly. Try to set a no-limit on chunks generation.
DeathScytheBR 1 year ago
@DeathScytheBR Heh. When I made this video is was still tuning the rendering performance and memory consumption. Making it generate chunks endlessly is not a problem really. My latest video shows that. Although it renders height maps instead of chunks. I think I'll write a new demo one of these days and make a new video. Haven't really worked on it since I made this video.
hyperz2006 1 year ago
@radishassasin yes, you !
part of your username partially resembels my first name :D :P
hassanselim0 1 year ago
@radishassasin I did read what he wrote, and he didn't say how long it took him to do this !
hassanselim0 1 year ago
Oops, I meant 33x33 (x, z) chunks.
hyperz2006 1 year ago
@hyperz2006 hey dude im a complete bigginer and when i was watching it it made my simple ball game look dumb you only have to hit the spacebar to make the ball bounce XD
who885 9 months ago
How are you actually doing the rendering? Raycasting/octree? Painters algorithm? Do you have the entire visible area in a vertex buffer? Or the entire area around you in a vertex buffer? Do you have any special rendering order for these blocks? Looks awesome!
meyerphillip2008 1 year ago
@meyerphillip2008 The rendering is actually really basic at the moment. I divide the terrain in chunks of 16x16x128 blocks (x,y,z). The whole terrain in this video is 16x16 of these chunks. For each chunk I have a vertex/index buffer that has only the visible cube faces of that chunk in a custom vertex format to reduce its memory footprint. I just draw all these chunks (with view frustum culling culling).
hyperz2006 1 year ago
Comment removed
1gn1t0r 1 year ago
is it hard to create the terrain generator ?
skyJets 1 year ago
@skyJets I guess that depends on who you ask. To get it to this point isn't that hard since Perlin noise is well documented. But to get something on the level of Minecraft would be fairly hard for any beginner I think.
hyperz2006 1 year ago
How long did it take you to do this ?
stranngely enough, me and a friend habe been working on a very similar idea :D
I wonder how much it will slow down when you add some code to detect whch block you're pointing at and on which face (to allow adding and removing blocks like Minecraft).
hassanselim0 1 year ago
3D math breaks my tiny mind, but this is damn impressive!
TheFold25 1 year ago
This has been flagged as spam show
Any suggestions on places to go to learn? I apparently am not finding the right places. I'm still struggling with a first-person camera :)
UOAlien 1 year ago
Any suggestions on places to go to learn? I apparently am not finding the right places. I'm still struggling with a first-person camera :)
UOAlien 1 year ago
@UOAlien The best way to learn XNA is getting a good book and reading it front to back IMO. Online tuts can be handy but they don't go in depth and are often hard to understand if you're new to 3D etc.
hyperz2006 1 year ago
Wow.. That's so badass! Like your other vid.. Good work! :D
TheNordbjerg 1 year ago
Hey, that's impressive! All but the music
Rafaelinux 1 year ago
Impressive ! How much time have you spent working on that project so far ? You're progressing quite quickly. In the next video, it would be nice to see some of the code you've written for this. Really interesting. :-)
SteveHemondVideos 1 year ago
@SteveHemondVideos Well It's hard to put a number on the amount of hours I've spend on it in total so far. I'd guess 1.5 days total or something like that. But most of that time was spend on learning. I'm just a hobbyist, I'm new to 3D and I'm poor at maths so a lot of time is lost on trial and error coding. The reason I haven't shown code so far is because it looks like a mess (again, learning ^^). But I'll show code at some point. Either in a video or by releasing the project. In time... :)
hyperz2006 1 year ago