My PERFECT Minecraft clone now has TERRAIN GENERATION
Вставка
- Опубліковано 15 жов 2024
- So remember that minecraft clone I made 3 months ago and then disapeared after, I made a little update and I 100% had a great time making it with no issues no siree.
Also Dear Mr Mojang, Dont sue me, sincerely CoolScaszMan
My livestream channel / @scaszlive
Discord Server - / discord
Itch io - makingfromscra...
Also check out Vitanova, an Evolution simulator I have been making for a while
github.com/4t-...
sell it for $20 and call it "Minceraft"
Yes and he should change the texutres hex value by like 0.1% so he doesnt get sued (if that makes sense)
@@RSMR029 yes
fun fact: making a joke about a joke about a joke which the guy made gives you 11 likes
Edit: 78*
Edit 2: 278*
You're a freaking genius
@@matheuspires2462 thanks, they should hire me for Minecraft 2
5:52 the "юр мом гай" text on the whiteboard lmao. To anyone who doesn't know how to read Cyrillic it roughly reads as "your mom gay"
legendary
"Юр" is also the name "Юра" (Yuri) in the appeal case I want to believe that he addressed a specific Yuri, and not everyone Your
It's not that deep bro@@AntonXCM
except he used а instead of е so it'd actually be read "ur mom guy"
@@passerbypassinbi more like "Yoor mom guy", cuz "your" has a vowel that afaik is not really present in any cyrillic using language
As soon as he mentioned terain generation i new he was going to experience all 5 stages of greif
greif
greif
new
@@4wdthinks you're just ruining it
@@bungler3000 is it really that serious
13:16 "It's a bit of a strech calling them people." 💀
Me when Blacks.
@@AB-uj9et sooo edgy
@@AB-uj9etplease do not
@@Aveisinpain Do not what?
@@ФдФ No, I'm completely serious. I hate them.
this guy is like code bullet if code bullet could actually code ☠️
Old codebullet 😢
Code Missile
@@rnts08 Old code bullet got killed by defunct ai
You should add gu-
2:03 why did you have to trick me like that
fr
I WAS WAITING FOR A CALL 😭
Im quite confident that you already know and there’s a reason you did it in a different way but your short grass is rotated incorrectly. Like, the faces should be diagonally across the block
He knows, he would need to rewrite a bunch of code to make that possible though.
i think the reason why is because the ingame model is positioned like that
@@nikkiofthevalleythen why doesn’t he do it in a future update, or if he’s going to, tell us about it?
2:03 I’ll have you know that I am fully paying attention to this video with no other distractions
14:17 he has brung back the monoliths from minecraft infdev by accident
Ive seen a video (maybe from antvenom?) in which minecraft's world generator is shown in visual steps, all the noise layers, all the chunking and cellular automata, and special conditions.
8:46 multithreading is when a slime splits and they work together
if done correctly they work together...
you are evil for that discord ping
ikr
i fell for it too
NGL thought I was crazy for a second 🤣
Didn’t affect me because I don’t have discord
@@im_a_tide_pod Lucky.. don't get Discord, you'll develop cancer in a matter of seconds 😂
3:08 I genuinely fucking screamed when heard "each face is being send to the GPU one by one"
wtf💀💀💀
Did it really sound that bad?
@@Joseph-sRevolting
@@Joseph-sI really didn’t know that not batching made rendering that bad (unless scasz is actually wrong and it’s an oversimplification) so it didn’t sound like that to me
@@joechristo2 It does make rendering that bad. If you think about it, which games store and render models as individual triangles instead of meshes?
Something like 1999 Toy Story 2 game.
Half Life, released in 1998 already used meshes for many things.
2:04 Discord ping noise
Edit: dang, I didn't know an argument in the replies could end so wholesomly.
I opened discord I’m an idiot 😭
@@Pickletron275 me too 😭😅
I immediately thought it was from the video since I was watching it sped up
I rewinded to make sure it really was the video. This happens way too often
@@Spartan_Tannerwhy were you watching it sped up?
I may not actually be able to make games but all the game dev videos I've watched have made this video completely comprehensible
well you can if you have a device, sometimes you can be mistakenly mislead into thinking your device can’t do it when it just can
@@joechristo2 android users need better game engines lol
Like you need a better battery charger?@@justsomerandomguy6042
i watched the first video about your minecraft clone today and now the second video comes out, very epic
misode's mcmeta github's "data" branch has a "data/minecraft/dimension/overworld.json" file
it's an absolutely massive file that contains biome generation stuff & the erosion/continentalness/depth/etc values used for each biome
we're so up!!! this comment was procedurally generated by me!!
This comment was procedurally generated by my dog.
We're so DOWN!!! this comment was NOT procedurally generated by SOMEONE ELSE!!!!!
i generated this message using neurons from my official intelligence
this comment was meticulously constructed with established rules by me
undercut the lousy competition.
One thing that I notice a lot of clones don't seem to pay attention or detail to is the movement engine, you should definitely give movement parity a shot if you feel so inclined :pray:
Maybe I'm just autistic but game engine movement always peaked my interest in a very special way, especially source engine movement.
A dream game I've been brainstorming up is some type of voxel open world survival game with source engine style movement.
That is something im going to do as in my last video i spent days trying to figure out and learn all the quirks minecraft has with movement, what i have is close but isnt perfect because it doesnt host a local server like minecraft does, but i do want to do that to complete that minecraft “feel”
I've been working on various voxel projects and made source engine movement a primary focus and it's easily worth all the pain and suffering I went through trying to understand the original source code (mainly TF2 cause I always wanted rocket jumping parity)
I probably spent hours just bhopping around in my games lol
@@IMH_Turtle Whenever I hop on Garry's Mod for anything I always start bhopping for like 10 or 15 minutes before I snap out of it
@@scaszI don’t think hosting a whole server is the solution nor is it what is wrong with your movement, perhaps there is no problem at all and yours just runs better so it’s just placebo
I use a Minecraft inspired approach in my voxel setup. Here's how I use splines to inform terrain shape:
Inside of looping through each voxel position in a chunk:
1.) Sample noise value using the horizontal axes of each voxel, make sure you interpolate the output of the noise sampling process to a 0 to 1 range if it's not already. This will give us a generic float which we can interpolate using our spline to represent a final height value for a given voxel, as below.
2.) Use the noise sample as an input for sampling your spline curve, ensuring the curve is expecting a 0 to 1 range as input.
3.) Set your spline's min and max output values to whatever you please, this value does not need to be unsigned. Treat the zero crossing point as if it were surface level, with positive values being added to the surface in a convex fashion, and negative ones being subtracted from the surface in a concave fashion.
4.) Create points on your spline curve such that the curve looks like the general profile/silhouette of the terrain you'd like to see.
5.) Starting at the lowest possible value along your height axis, compare each voxel's height using its world coordinates against the sampled value of your spline curve, such that all voxel height values that are less than your curve output are assigned a particular type of voxel.
6.) Optionally, nest your entire height checking step in a another loop which can check an array of these spline samplers, starting with the spline responsible for shaping the bottom-most layer of terrain, moving towards the top.
For clarity, every voxel samples the height noise exactly one time. This ensures each subsequent spline that uses this noise sample as an input value to determine a voxel's true height will always follow the same general topology of the terrain surface, only scaled/interpolated to the heights. It makes it appear as though gravity has indeed influenced the way time has shaped the terrain by rolling rocks and dirt from the tops of peaks into the lowest valleys.
Using this approach, you can layer together splines that pertain to different regions of height and have the advantage of destructively interfering with previous spline samples, creating more interesting and natural results in my opinion. In this setup, the splines are allowed to overlap each other height-wise, which means splines that are responsible for higher regions of space will overwrite voxel types which were already determined by a spline responsible for a lower height. This also allows for an unlimited number of these spline layers to inform layers of your terrain height. I use this to create more geographically accurate layers of terrain generation that stack on top of each other. Because they're sampled from bottom to top, and because each voxel checks each spline until it finds a matching comparison for height, this CAN get bloated. Previously I had a unique noise pattern associated with each spline layer, but that quickly became really slow, and I found that the singular noise topology I mentioned above looks significantly more natural. I'm searching for a more implicit way to do this still, but I hope this helps.
public static byte GenerateType(Vector3 voxelSTruePosition, Biome biome, WorldSettings worldSettings)
{
// This is the noise sampler, which uses a signed position in world coordinates.
// Your coordinate system may differ, working in unsigned values has its advantages.
float heightNoise = biome.HeightNoise.GetNoise2D(voxelSTruePosition.X, voxelSTruePosition.Z);
// Layers here is reflective of how many spline curves will be sampled.
int layerCount = biome.Layers.Length;
// Loop through each spline curve // 0 index is top-most layer height-wise, thus the reversed loop.
for (int layerIndex = layerCount - 1; layerIndex >= 0; layerIndex --)
{
// Here I retrieve the biome containing each set of spline curves.
BiomeLayer biomeLayer = biome.Layers[layerIndex];
// This is the spline curve sampler.
float voxelHeight = biomeLayer.HeightDistribution.Sample((heightNoise + 1) * 0.5f);
if (voxelSTruePosition.Y
you can talk to Minecraft modders who made mods like terrablender
“The decided to make it a slide now” 😭😭 that was funny asf
Woah! you even perfectly replicated minecraft's oldest ambient occlusion bug that everyone on this planet except for me pretends not to notice!
Or we don't care
1:30 the fireplace just says "no animation " lmao
It's always saying that
i dont even watch minecraft content but the algrothim pushed your video on my recommended, this really shows how powerful minecraft content is
5:55 why would you think that my mom is guy? 💀
It says "your mom gay", learn Russian
@@DiamondNoobie было бы гей, а не гай, я бы поверил
@@Fh-jz9lq это мок-ап английского написания
@@DiamondNoobie Да
Finally a game developer that actually puts effort into making their minecraft clone (no offence to others) look like the actual game keep it up man!
your game's rendering looks like bedrock with the vibrancy of java and thats a good thing.
I hope to one day see the fire place animation. But for now, it eludes me…
There is a video somewhere on this channel where the fireplace is animated, I wont say which one though...
@@scaszit’s the ai creatures smarter one
Hearing Sky Cooper OSTs made me smile immediately
I recognize the half.cool music, glad to see more and more people using it 😀
Celsius is the better temp system because "below room temp IQ" hits way harder
6:17 Not the Sly 2 Museum track when talking about a heist 😭
"I think I might be racist towards Swedish people... well okay it's a bit of a stretch calling them people"
I am so glad this was recommended to me, I love more science-y videos and like seeing people make my programs look like a dumb hello world script lol. Keep it up, you earned my sub :3
This single man could become Mojang's greatest rival. He could literally add updates that the community has been asking for for years instead of op situational weapon.
make it so that the further you get from a block, the more proportionally low quality it is. allot of games do this, and it makes it so that you can load more without it making your entire pc combust
You should get in touch with someone who knows minecraft modding/datapack dev to help you with this project. For example There's a good amount of datapack/mods that completely change how the terrain generation works so they would most likely know the exact 1 to 1 details about terrain generation in the base game.
Man that’s crazy I just finished watching the other one and when I check your channel I see this video
You could ask the guy who made the terralith mod / datapack for information about the value-location.
(Not sure if he knows the defaults though, because he made custom [but very good looking] terrain)
Btw. I just had Computer Graphics in uni at a level that is about 100x easier than what you did. And i decided to use that power to make an Amongus fight scene... XD
Love your work and good luck with your other non-mc projects. But i am definately looking forward to the third part ... eventually XD
Sly cooper music 6:16
❤
12:36, hello from Sweden 🇸🇪
that discord ping completely had me lmao
that aint minecraft thats mycrack
Hi! Your content is amazing! I am super surprised that you only have 10k subscribers, your editing is brilliant, you explain the concepts intuitively, and most importantly, you create innovative, unique, and original content.
Constructive critique for your Video in general:
Play it at 1.25x speed -> Try to speak at that pace or just increase it in post by 20-25%
bro is gonna get dmca'd
Maybe
FINALLY! I’ve been wishing for this video for a while now!
Should totally make thing into Minecraft: Legacy Console Edition
: ( yes )
Alright I have one request. Add a survival mode and port this to as many obscure devices as possible. I wouldn't mind if it had as many features and blocks as the alpha versions, I unironically just want to play this on a Nokia NGage.
Incredibly underrated channel - good comedy and good content. Can't wait to see you grow!
13:03 Least Norwegian Nationalist
Ok, so since it uses resource packs for stuff like blocks or textures, would it be possible to avoid mojangs ban hammer by making the player include the resource pack yourself, maybe even opening the jar file thats basicly an zip archive, and maybe even automating it since minecraft is usually in the same directory, it has all the stuff needed, it wouldnt be piracy, it would require a copy of minecraft, so yeah, if i would want to avoid trouble id probably make a system like that, also cant wait for biome implementation, its not like you hard codes 1 value for the grass color, right?
sly cooper music! :D
bit strange how you didn’t attacked by the dutch before releasing this video.
That optimized renderer sounds like complete madness, in a bad way. I think you should be simply building an optimized mesh on the CPU, where you can then do stuff like greedy meshing, face culling, etc. Then send that optimized mesh once to the GPU. Then render that optimised mesh every frame. Also, your vertex format can be optimized. For each block vertex, store the position as 3 4-byte integers, texture ID as 1 byte, lighting level as 4 bits, and ambient occlusion state as 1 bit. Cast the position integers to floating point in the shader and then apply the MVP transforms and there you go. Only 14 bytes of data per vertex. With greedy meshing, the bytes per block can vary from 112 bytes all the way down to almost zero bytes. Will probably require a complete rewrite of your renderer, but your current one is complete insanity. Also geometry shaders are slow on modern GPU architecture due to pipeline stalling, so it's best to avoid it completely.
I can smell a lawsuit coming your way bro, be careful
14:10 it works, it just alpha minecraft world generation
Looks cool i think
this stop motion is absolutely hilarious, i love it haha, nice work!
btw how terrain works is it probably has the 3 values, and then the value that overrides the other 2, does something like if value is > x then -- othervalue = 0
13:17 The graphs are independent of each other and then all of the values are joined together with some math to get the overall value, also minecraft doesn't use 2d noise it uses 3d noise so you can't get the height of the terrain easily, you need to iterate over all of the blocks to get it. Also just use the minecraft wiki's article on world generation.
Mojang gon sue yo ahh buddy
He ain’t selling it tho
ah the minecraft bodyclone is gaining more power, how excellent. we will continue observing its career with great interest
Been enjoying your content. Makes me want to revisit this conundrum myself. Granted I was trying click rocks together and you seem to have a solid understanding of what you at least don’t know. I don’t know what I don’t know. And that frustrates me the most.
Regarding "Plan #3", where exactly are you going to find the "Teddy Bear", and how are you going to deliver it to "Suzie"?
FYI: This was a joke message, 3 letter bois pls no kill my dog after killing me while I sleep.
Continental spline when low, makes the continental map affect the terrain little, when continental spline high, continental map affect a lot. All you have to do is multiply the continental map by the spline. duh. (Also try dividing the result by 3)
you should add particles to the block breaking and an inventory (maybe even a survival mode someday)
if you want to make a perfect minecraft clone you are going to have to add datapack support so if i were you i'd make everything data driven now and not bother with it later
pls keep developing!
You can actually tell that the Minecraft screenshot is the one with the logs, because of the weird shadow in the corner that it likes to do for some reason.
4:40 The ''My IQ is above room temp'' had me dying💀
As a norwegian i totally agree with your plan.
you’re doing the algorithm tickling, love the video
10:46 a near perfect recreation of 2b2t, just need to add the hacks, chat, and lavacasts.
You should call it cave game
or minceraft (mince-raft [c & e swapped :3])
"Fuck you mean i need to pay for it?!" *then makes a perfect clone*
minetest but better lol (I want to think so at least)
5:00 for asmr
Next you shoud make a inventory system and a creative menu and mabye add a hand with the block that is selectilected in it
Shouldn't be scared of mojang but microsoft my man
Bro is gonna make Minecraft great again
the reason his animation is more pose be pose, is because he is lagging from the difficulty of the creation process of his minecraft carbon copy
You probably realized this, but the real benefit to sending all the mesh data at once is that the gpu can process all of it in parallel. If you send a single cube at a time (which I think is what you are still doing?), the cpu will wait until the gpu finishes that cube before sending the next, vs rendering them all at once as a single mesh.
I would be interested to see if your voxel compression hacks could be modified to work with larger meshes (and whether it would actually be faster lol,) may be something to look into
5.55 the lamp highlight goes through your shadow so through you lol
Alternate Title : My PERFECT Minecraft clone is now closer to a lawsuit by MICROSOFT
Configuredcarver: am i a joke to you? Sorry? How did you not see me?
something that minecraft does is only load textures of blocks that are visible to you, so lets say you make something with 4 blocks on the bottom and 4 on top, the blocks on the bottom wont load their top surface because they are connecting with the other one, so the ones on top wont load it either since theyre not visible, so basically if blocks touch, unload the surfaces that touch until they stop. if the blocks on the bottom were touching something else like dirt, the dirts top surface wont load and the bottom blocks bottom surface wont load either.
also exclude the blocks that arent full, so like fences, grass (bug you mentioned), cobwebs,, etc. just anything that you can see through, even if its a pixel. so like glass and stuff.
First video of yours that I have come across! A+ for the animation and humor!
9:30 you’ll actually want to use 9 different noise maps which I’m pretty sure don’t use splines.
should keep the "bug" that made floating islands and some "alien" terrains. These is what made the OG minecraft so good
This man is programming Minecraft almost 1:1 with C++ and OpenGL, while I can't program a calculator with interface on python.
Big respect to you, programming is kind of hard, and you have done so much with this project. Wish you luck.
Can't wait till you catch up with modern Minecraft and can start making better updates 💯
You should add things that mojang doesnt want to add but the community wants. Like every mob in the mob vote.
Dude Minecraft on my computer only ever gets to like 41fps, rarely above 40
At least this won't have phantoms in it
Can't wait to play Minecraft 2 🔥
Edit: I take that back he has no idea what he is doing (I'm not being rude I actually really like this concept.)
I agree, this looks so good, and it would be awesome if this became available to the public
9:01 It looks like the basalt place in the nether...
IVE BEEN WAITING FOR THIS. JUST STARTED TO WATCH
Can I just say, this man has the most calming voice I’ve ever heard.
imagine pirating games by just recreating them lol
Dude I love your (especially visual) humour, it's been prob more than a year that I haven't legit laughed (like fully voiced laugh for more than half a sec) on my own on internet which I did at the "It's a stretch" bit.
(Also you mentionned climate change after meatballs so I'll smoothly use my previous compliment to mention maybe considering eating less meat to decrease eco-footprint + ethical reasons + food poisoning)
(I mean HEY NEW SUB Hope to see more!)
(((Also def agree, I dont think purely copying minecraft is as interesting as what you can end up just by following the insipiration it gave and then your own process. On that note, do you plan on using your own texture for the blocks later on? I must say I also kind of like some of those weird terrain generation, maybe you could include them in some regions or generation modes?)))