Should you upgrade to Godot 4? Feat. My Minecraft Clone

  Рет қаралды 8,425

SDG Games

SDG Games

Күн бұрын

Пікірлер: 36
@garrettbates2639
@garrettbates2639 2 жыл бұрын
I could be wrong, but I don't think ImmediateMesh is what you're looking for here. From what I can gather from the docs, it's meant to produce geometry in a manner similar to OpenGL 1.x. the mesh should be drawn to the screen after you call surface_end(). The docs say that it's inefficient for complex geometry, and must be cleared before drawing to it again, unless you want to keep previously drawn data around. You should be able to use an ArrayMesh to do everything you need. The Mesh superclass provides a means to get the surfaces (and their associated vertex arrays) which make up a surface in a mesh. You'll just have to access these through the ArrayMesh instance. It might be worth it to try: Getting each surface from the mesh. Getting the vertex arrays for each surface. Modifying the array data however you need. Clearing the surfaces on the ArrayMesh. And finally recreating the surfaces from the vertex array data that you got at the start. Another alternative would be to use either SurfaceTool or MeshDataTool. Though I suspect the latter may be overkill as it generates edge and face data that you probably won't be needing. Either way, very cool.
@SDGGames
@SDGGames 2 жыл бұрын
Thanks for that. I am using ArrayMesh for this with a SurfaceTool, though it sounds like I may have explained ImmediateMesh wrong. Thanks for the explanation.
@payton.a.elliott
@payton.a.elliott Жыл бұрын
Watching you while doing my own development in Godot is inspirational.
@jnewton1024
@jnewton1024 2 жыл бұрын
I know that voice... I think we went to college together. Small world that I've ended up here.
@SDGGames
@SDGGames 2 жыл бұрын
Haha, indeed we did! I haven't stopped engineering yet, but I have been enjoying my excursion into games. You been using Godot too?
@ZZKJ396
@ZZKJ396 2 жыл бұрын
Nicely done sir, subbed! 👍
@RedSW
@RedSW 2 жыл бұрын
This is amazing! Subbed
@RADkate
@RADkate 2 жыл бұрын
the most major thing in 4.0 i havent hear anyone mention is the Vulcan instancing wich works without multimeshes
@SDGGames
@SDGGames 2 жыл бұрын
I hadn't heard about that one yet, it does sound interesting!
@Smaxx
@Smaxx 2 жыл бұрын
3:45 looks like a bug in the conversion tool. The string inserted is a regular expression that may match different number formats, including some in scientific notation. It's definitely not a weird way of passing default parameters.
@SDGGames
@SDGGames 2 жыл бұрын
Oh, that makes sense. I did recognize the pattern matching part (the regex), but I haven't seen a second set of parenthesis between the parameters and the function body like that, so I assumed it was sanitizing the input somehow. What's the keyword I should be Googling here? I'm still a C programmer at heart, so there's probably a lot more to learn about higher-level languages.
@Smaxx
@Smaxx 2 жыл бұрын
@@SDGGames Nah, nothing to look for. This is really just some broken insertion. Godot's function signatures didn't change. It's still "func name(arg: type, arg: type,...) -> return type:" just as before.
@blox6180
@blox6180 2 жыл бұрын
very cool video, i enjoyed it!
@collinvisser7108
@collinvisser7108 2 жыл бұрын
Neat - very helpful
@kalvinarts
@kalvinarts 2 жыл бұрын
wow 10 years programming and you never saw a Regular Expression before? The funny thing is I learn a lot from you… There’s always more to be learnt hehe
@SDGGames
@SDGGames 2 жыл бұрын
I was actually referring to the act of calling a base class constructer. I've been making artisanal functions in C for so long that I forgot how inheritance works... Finally found a refresher, though!
@alexale5488
@alexale5488 6 ай бұрын
Do you recommend me to start learning Godot? I am a developer with background in Python and C#. I want to start game development, I used game libraries before like LibGDX (Java), MonoGame (C#) and PyGame (Python). While I love the control these libraries provide, I am also a visual artist so I'd like to spend more time on that. Do you think Godot at it's current state is a reliable bet, in terms of stability, licensing and capabilities?
@SDGGames
@SDGGames 6 ай бұрын
Honestly, most skills are still fairly transferrable. I spent a fair bit of time with Unity before switching, and I don't feel like I wasted my time learning that engine. I like the scene tree structure for Godot, and I really like the fact that it's open-source. I keep hearing that the engine has limits, but I haven't hit them yet, so at this point I'm kinda assuming that the engine will mature faster than I can grow into it. If not, switching to something else is always a viable option. I would say that if you're asking this question, then you should definitely start with a small project first! Feel out the engine, and see if it's right for you.
@rungeon83
@rungeon83 Жыл бұрын
The WORST thing about this channel? I only just heard of it today?! WHY?!?!?! KZbin?! Cmon man! Just awesome content, explained so well, I'm amazed by what you're doing, PLEASE keep going my man!
@shyhrk
@shyhrk Жыл бұрын
18:50 😂
@StarFlower86
@StarFlower86 Жыл бұрын
hii^^ this is amazing, thank you! btw I downloaded it and started it and my pc started to lag everytime i placed a block and soon enough, my whole pc freeze and had to restart my pc. i am learning, is there anything i can improve the performance?
@SDGGames
@SDGGames Жыл бұрын
It depends, what settings were you using? I wasn't optimizing for performance in all cases, so some settings will absolutely lag a machine! If you're on Windows, then you should be able to use Alt-F4 to kill the process without restarting the PC. Godot is pretty good about cleaning up memory, so it shouldn't leave anything behind when the game closes.
@StarFlower86
@StarFlower86 Жыл бұрын
@@SDGGames oki, thank you very much for replying , amazing project u did here ^^, excited to see more,, subbed btw :3
@noahchase7854
@noahchase7854 Жыл бұрын
Hey do you have any idea how you'd make structures in the editor?
@SDGGames
@SDGGames Жыл бұрын
What do you mean by structures? Data is stored in classes, there is no struct, though I'm not sure if that's what you meant.
@noahchase7854
@noahchase7854 Жыл бұрын
@@SDGGames thanks for the reply! I mean physical structures like buildings and (kinda like) trees. I'm working on a project with smooth terrain and a voxel building system, but optimization is killing me lol.
@SDGGames
@SDGGames Жыл бұрын
​@@noahchase7854 My trees are decomposed into basic shapes which I draw using some for loops. If you want randomness, then you could do the same. A wall of a house is just a rectangle, which is easy to iterate through. An easier approach is to just save an object into a 3d data array, then paste those values into the world when you want it. Just like Gimp/Photoshop allows you to copy and paste groups of pixels to form an image, you could paste a house directly into the world. My trees all start with a single "stump" block which I use as a flag to indicate that a tree should go here. The tree is then placed where the stump was.
@RD-fb6ei
@RD-fb6ei 2 жыл бұрын
Do you feel that gdscript is limiting or are you fine not using C#?
@SDGGames
@SDGGames 2 жыл бұрын
I really like using a language that was designed exclusively for games. I have yet to reach a point where I felt like the language was holding me back (though I do prefer static typing, which is more of a thing now in 4.0). In the rare moments where GDscript is causing a performance bottleneck, I'll probably just write a small gdextension library. I personally feel like combining GDscript with C++ where needed is a better choice for me that using C# everywhere. There's so much less boilerplate code this way. A lot of people who aren't programmers first are afraid of having to learn more than one language, and C# feels like a good compromise on paper, but I just don't feel like it is worth the extra hassle. I did download Godot Mono first when I came from Unity, but I switched over to the non-mono build pretty quickly.
@mariocamspam72
@mariocamspam72 Жыл бұрын
@@SDGGames C# isn't *that* boilerplate-heavy
@Snafuey
@Snafuey 2 жыл бұрын
Was the performance better?
@SDGGames
@SDGGames 2 жыл бұрын
Yeah, It was between 2 and 5 times faster. It looks like multithreading performance was improved much more than single threaded performance, but GDScript seems to be faster across the board. The frame rate does look better, but it depends a lot on the chunk variant I'm using. There's a lot more nuance than I was expecting, hence the split into a part 4. The biggest surprise wasn't the increase in performance, but the features that simply didn't work in Godot 3 but are working great in Godot 4. Visual Servers and MultiMeshes would crash in Godot 3 but just worked in Godot 4. The only disappointment so far is GridMaps, but I think I just found a bug that will hopefuly be fixed.
@saul8510
@saul8510 2 жыл бұрын
@@SDGGames that prob on vulkan side.Maybe the stable will work better.
@TINJ_
@TINJ_ 2 жыл бұрын
you've never seen regex? I'm jealous. It's not fun.
@SDGGames
@SDGGames 2 жыл бұрын
Trusting me with regex is like trusting a six-year old with a forklift. Maybe I just need more practice, but I don't usually default to regex when I need to change things.
@Smaxx
@Smaxx 2 жыл бұрын
@@SDGGames Regular expressions are a nice way to overcomplicate simple string operations first, then optimize them later. You'd probably love them!😉
How much faster is Godot 4? (Feat. My Minecraft Clone)
17:18
SDG Games
Рет қаралды 87 М.
БУ, ИСПУГАЛСЯ?? #shorts
00:22
Паша Осадчий
Рет қаралды 1,5 МЛН
Trapped by the Machine, Saved by Kind Strangers! #shorts
00:21
Fabiosa Best Lifehacks
Рет қаралды 36 МЛН
Human vs Jet Engine
00:19
MrBeast
Рет қаралды 198 МЛН
I accidentally made Blender in Godot
10:15
SDG Games
Рет қаралды 48 М.
I turned my Minecraft clone into a Godot benchmark.
43:23
SDG Games
Рет қаралды 5 М.
Voxel Engine: I Added Voxel Caves to My MINECRAFT Clone
9:50
Philip Mod Dev
Рет қаралды 4,9 М.
This is NOT Minecraft... ?!
12:14
AntVenom
Рет қаралды 1,9 МЛН
Why Starbound Failed
15:00
RoboKast
Рет қаралды 924 М.
I Remade Minecraft But It's Optimized
6:25
FinalForEach
Рет қаралды 799 М.
Godot's Quaternion Variant is Beautiful (and misunderstood)
18:52
5 Minecraft Secrets Mojang Tried to Hide
11:15
SkyBoi
Рет қаралды 122 М.
Giving Personality to Procedural Animations using Math
15:30
t3ssel8r
Рет қаралды 2,6 МЛН
БУ, ИСПУГАЛСЯ?? #shorts
00:22
Паша Осадчий
Рет қаралды 1,5 МЛН