Тёмный

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

SDG Games
Подписаться 4,3 тыс.
Просмотров 16 тыс.
50% 1

I'm teaching myself video game design by re-creating 20 iconic games in 720 hours or less. In this episode, I make my own version of Minecraft, but I forget to optimize anything...
All games in this series are available on Itch, and the source code is freely available.
sdggames.itch.io/20-in-30
gitlab.com/20-games-in-30-days
I used a few quotes and some music for this video:
www.azquotes.com/quote/721036
www.azquotes.com/quote/721020
freesound.org/people/Migfus20...
I do have a Discord! / discord
------------------------------------------------------------
00:00 Intro and quick updates
01:50 What is a chunk?
06:53 Player Movement and Infinite Terrain
12:00 Threading!
16:33 Making some Noise
20:27 Threading Strikes Back
25:28 More Noise!
28:03 Adding trees
34:21 Caves!
37:37 Wait, shadows are a thing?
39:50 Thanks for watching!
------------------------------------------------------------
Check out some of the awesome tools I use for this series.
Godot: godotengine.org/
1BitDragon: 1bitdragon.com/
Gimp: www.gimp.org/
LibreSprite: libresprite.github.io/
Music and sound effects used in this series:
freesound.org/people/SDGGames...

Игры

Опубликовано:

 

8 июл 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 29   
@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 7 месяцев назад
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 7 месяцев назад
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.
@blisterfingers8169
@blisterfingers8169 Год назад
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 Год назад
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 Год назад
Learning C++ is far less difficult than writing a game that requires it.
@rhakka
@rhakka 9 месяцев назад
@@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.
@DrunkenHyena
@DrunkenHyena Год назад
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.
@DrunkenHyena
@DrunkenHyena Год назад
Still, impressive for a day's work!
@SDGGames
@SDGGames Год назад
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.
@Rojo-Dracochon
@Rojo-Dracochon 9 месяцев назад
Wow, very cool!!! ❤✨
@Voazar
@Voazar Год назад
good job 👍
@generrosity
@generrosity Год назад
Nice video! Welcome to the Godot beta releases
@SDGGames
@SDGGames Год назад
Thanks! I'm excited, I've been watching Godot 4 for nearly as long as I've been using Godot 3.
@GerinoMorn
@GerinoMorn 7 месяцев назад
Premature Optimisation is a problem that affects many senior developers...
@blox6180
@blox6180 Год назад
good minecraft version *totally doesnt lag your pc!*
@SDGGames
@SDGGames Год назад
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 Год назад
@@SDGGames bro.. yes, add tnt😁
@blox6180
@blox6180 Год назад
@@SDGGames ooo i never knew that it lagged your pc back in you day
@GerinoMorn
@GerinoMorn 7 месяцев назад
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".
@GerinoMorn
@GerinoMorn 7 месяцев назад
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.
@thomasbjarnelof2143
@thomasbjarnelof2143 Год назад
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 Год назад
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.
@Unexplained65
@Unexplained65 Год назад
What did you use for references to learn how to make the world generation?
@SDGGames
@SDGGames Год назад
I did watch a tutorial by xen-42 (ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-Q2iWDNq5PaU.html) while getting the mesh chunk generation up and running. Other than that, it was just a basic understanding from watching too many devlogs. The most complex looking parts (noise and filters) are actually the easiest, it's just playing around with numbers until things look nice. If you can generate a superflat world, the rest won't be too hard.
@Unexplained65
@Unexplained65 Год назад
@@SDGGames Thanks for the quick reply! I intend to do my own in unity, but lack the knowledge of how to use my baby level experience with terrain maps to actually make the game. I will check out that tutorial and see where I can go from there. I know sebastian lague has a really in depth thing he has but it wasnt specifically geared to MC.
@manuelnaim9206
@manuelnaim9206 Год назад
what are the specs of this game?
@SDGGames
@SDGGames Год назад
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 Snake Game with just redstone!
14:31
Просмотров 359 тыс.
I Remade My Scratch Game in Godot
10:04
Просмотров 344 тыс.
Optimizing my Game so it Runs on a Potato
19:02
Просмотров 467 тыс.
I accidentally made Blender in Godot
10:15
Просмотров 47 тыс.
Building The 3 Best Roblox Art Styles
19:05
Просмотров 5 тыс.
I Made a Minecraft RPG game
20:11
Просмотров 3,1 млн
Can AI Code Minecraft? Watch ChatGPT Try
8:06
Просмотров 1,2 млн
Optimizing My Minecraft Clone With GREEDY MESHING
6:27
Playing Minecraft with ChatGPT | Mindcraft
18:34
Просмотров 128 тыс.
How much faster is Godot 4? (Feat. My Minecraft Clone)
17:18
I Made a 1D Game 🎮
11:18
Просмотров 1,7 млн
БЕРУ ОТМЕТКИ НА Т62
3:25:05
Просмотров 107 тыс.
VALVE Починили Ранги в CS2! / PUBG
18:19
Просмотров 330 тыс.
Brawl - The Skibidi Saga 10
6:05
Просмотров 1,6 млн