I made Minecraft in Godot in a day, and my computer regrets it. (20 Games Challenge #10)

  Рет қаралды 17,822

SDG Games

SDG Games

Күн бұрын

Пікірлер: 31
@Sean-gx1sf
@Sean-gx1sf Жыл бұрын
"My solution was to just not do that" Words to live by; seriously though, so much of programming in video games really is choosing your battles, especially concerning stuff that doesn't really matter.
@l4zy_jake
@l4zy_jake Жыл бұрын
13:00, "Threads are like children..." ROFL!
@xen-42
@xen-42 11 ай бұрын
Was really wild randomly getting a video recommended and then seeing some very familiar looking chunk code, lol. Really cool project, glad the mesh generation tutorial was helpful!
@SDGGames
@SDGGames 11 ай бұрын
Hey, my first comment from a famous person :D Yeah, I usually try to do these videos without any prior knowledge, but I had already watched basically every Minecraft video before starting this one, so I was a bit spoiled on the challenge. Thankfully, there are a lot of problems in Minecraft beyond drawing chunks.
@GerinoMorn
@GerinoMorn 11 ай бұрын
Premature Optimisation is a problem that affects many senior developers...
@blisterfingers8169
@blisterfingers8169 2 жыл бұрын
Worth mentioning that GDScript really isn't designed for this kind of application. The Godot ethos seems to be more that GDScript is for game logic and anything performance critical like this should be done using C++. That's good if you know C++. Not so good if you don't. The Mono version is nice middle ground, performance wise, but then you have some other issues to deal with. Curious to see how well it's implemented in Godot 4.
@SDGGames
@SDGGames 2 жыл бұрын
Good point, that's exactly why I decided to do a part 2. I'm both excited to learn how to compile gdnative (I know C++, but I haven't compiled for Godot yet), and curious to see how Godot 4 compares, if there is any real difference. I also think it's worth looking at exported gdscript bytecode, it could be faster if it's optimized during export. I saw a discussion on the Godot GitHub (issue #3760) about in-lining small functions, which wouldn't be seen when running in the debugger, but would affect release builds. My slowest function from profiling is a check that can be in-lined.
@Barnaclebeard
@Barnaclebeard 2 жыл бұрын
Learning C++ is far less difficult than writing a game that requires it.
@rhakka
@rhakka Жыл бұрын
@@SDGGamesI know this is a pretty old video (and thread), but I just want to point out that this is inspiring me to do the same thing. I've written similar code in other engines (and attempted in Go + OpenGL, which was completely overwhelming to get past just rendering chunks). I think I'm going to work on doing this in gdscript first, then looking over the (basically) standard godot_voxel code to see how hard it would be to rebuild that myself (this is all education, not trying to build a clone to turn into a marketable game, at all). I do want to say specifically that I appreciate these kinds of discussion videos. I'm an app developer by day (for over 25 years now (I'm old)) and love doing things that are still creative and code related, but completely unrelated to what I do to get paid. :) Very lucky to have found your videos. I love the format. I've watched a lot of SimonDev videos and they're very similar (in case you've never seen them @SDSGames). Not tutorials, but more discussing theory by going over iterations of code. Anyway.
@MuffinMan_Ken
@MuffinMan_Ken 2 жыл бұрын
For the trees, I think I would have used a noise texture combined with a high-pass filter (basically just a curve where everything is zero except right at the top). That way you wouldn't have needed to "special case" it as much.
@MuffinMan_Ken
@MuffinMan_Ken 2 жыл бұрын
Still, impressive for a day's work!
@SDGGames
@SDGGames 2 жыл бұрын
Yeah, I was thinking in terms of logic (if-else), not functions (lerp, min, max, etc.) I was actually doing linear interpolation by manually multiplying values by X and 1-X. I finally realized that there was a mathematic function to do exactly what I was trying to do manually. There's probably a lot more mess I could clean up if I started thinking in terms of filters and functions.
@GerinoMorn
@GerinoMorn 11 ай бұрын
Listening about threading: it is certainly biased opinion, but if Godot allows it (and why wouldn't it), using C# instead of Godot Script would give you access to a huge library of everything you might want to do with threads, usually ready-made for you. ConcurrentBag ConcurrentList ConcurrentDictionary etc. which e.g. provide resolution to those common structures being used by many threads. Or Channel that can work as a producer/consumer pattern with e.g. blocking on write if queue too long, or allowing arbitrary number of readers etc.
@Rojo-Drakoxon
@Rojo-Drakoxon Жыл бұрын
Wow, very cool!!! ❤✨
@blox6180
@blox6180 2 жыл бұрын
good minecraft version *totally doesnt lag your pc!*
@SDGGames
@SDGGames 2 жыл бұрын
Back in my day, Minecraft lagged every PC and we liked it that way! Actually, I do want to try adding TNT just to see how it handles...
@blox6180
@blox6180 2 жыл бұрын
@@SDGGames bro.. yes, add tnt😁
@blox6180
@blox6180 2 жыл бұрын
@@SDGGames ooo i never knew that it lagged your pc back in you day
@generrosity
@generrosity 2 жыл бұрын
Nice video! Welcome to the Godot beta releases
@SDGGames
@SDGGames 2 жыл бұрын
Thanks! I'm excited, I've been watching Godot 4 for nearly as long as I've been using Godot 3.
@Voazar
@Voazar 2 жыл бұрын
good job 👍
@GerinoMorn
@GerinoMorn 11 ай бұрын
I've been doing some experimentation and implemented player controller with ALL steering relative to the player, i.e. up is wherever your "top of the head" points, plus usual mouse look. That was the most unplayable thing I've seen in a long time xD It's only when I made up/down to be absolute (pure Y vector) it felt like "every other game".
@thomasbjarnelof2143
@thomasbjarnelof2143 2 жыл бұрын
A Question: Do you have all blocks generated to the GPU ? As I understand it, Minecraft only sends surfaces that are transparent or next to transparent blocks to the GPU. When you digg out a block the surfaces next to that block are inserted into the game.
@SDGGames
@SDGGames 2 жыл бұрын
I forgot to talk about that part, but no, it's not drawing every block. It's only generating visible faces for each chunk, though I am generating the entire outside of each chunk. There are some faces I can still remove.
@Pov-p9c
@Pov-p9c Ай бұрын
How to make a game on Minecraft this year?
@DatYouTubeGuy
@DatYouTubeGuy 2 ай бұрын
What about different biomes?
@manuelnaim9206
@manuelnaim9206 2 жыл бұрын
what are the specs of this game?
@SDGGames
@SDGGames 2 жыл бұрын
It really depends. I just updated the version on Itch, and that can work with a dual core CPU and one gig of ram on the low end. For the final version in this video, my 8 core CPU was struggling to keep up with chunk generation, and I was pushing 40-50 gigs of ram. Optimization helps a lot!
I made an EVEN BETTER Minecraft
12:30
SimonDev
Рет қаралды 331 М.
Trapped by the Machine, Saved by Kind Strangers! #shorts
00:21
Fabiosa Best Lifehacks
Рет қаралды 36 МЛН
REAL MAN 🤣💪🏻
00:35
Kan Andrey
Рет қаралды 42 МЛН
1, 2, 3, 4, 5, 6, 7, 8, 9 🙈⚽️
00:46
Celine Dept
Рет қаралды 80 МЛН
Why 4d geometry makes me sad
29:42
3Blue1Brown
Рет қаралды 587 М.
I accidentally made Blender in Godot
10:15
SDG Games
Рет қаралды 48 М.
Making a Raycaster in a Low-Level Language
13:44
Bachware
Рет қаралды 5 М.
Can AI Code Minecraft? Watch ChatGPT Try
8:06
BadGameDev
Рет қаралды 1,4 МЛН
This Isn't Minecraft...
18:33
FundyLIVE
Рет қаралды 117 М.
I Made Minecraft in Godot
28:36
RachelfTech
Рет қаралды 71 М.
I Made a Minecraft RPG game
20:11
Toiu
Рет қаралды 3,3 МЛН
I made a retro Roguelike in Godot in a day!
17:59
SDG Games
Рет қаралды 937
Blazingly Fast Greedy Mesher - Voxel Engine Optimizations
23:35
I turned my Minecraft clone into a Godot benchmark.
43:23
SDG Games
Рет қаралды 5 М.
Trapped by the Machine, Saved by Kind Strangers! #shorts
00:21
Fabiosa Best Lifehacks
Рет қаралды 36 МЛН