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.
@SDGGames2 жыл бұрын
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 Жыл бұрын
Watching you while doing my own development in Godot is inspirational.
@jnewton10242 жыл бұрын
I know that voice... I think we went to college together. Small world that I've ended up here.
@SDGGames2 жыл бұрын
Haha, indeed we did! I haven't stopped engineering yet, but I have been enjoying my excursion into games. You been using Godot too?
@ZZKJ3962 жыл бұрын
Nicely done sir, subbed! 👍
@RedSW2 жыл бұрын
This is amazing! Subbed
@RADkate2 жыл бұрын
the most major thing in 4.0 i havent hear anyone mention is the Vulcan instancing wich works without multimeshes
@SDGGames2 жыл бұрын
I hadn't heard about that one yet, it does sound interesting!
@Smaxx2 жыл бұрын
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.
@SDGGames2 жыл бұрын
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.
@Smaxx2 жыл бұрын
@@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.
@blox61802 жыл бұрын
very cool video, i enjoyed it!
@collinvisser71082 жыл бұрын
Neat - very helpful
@kalvinarts2 жыл бұрын
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
@SDGGames2 жыл бұрын
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!
@alexale54886 ай бұрын
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?
@SDGGames6 ай бұрын
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 Жыл бұрын
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 Жыл бұрын
18:50 😂
@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 Жыл бұрын
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 Жыл бұрын
@@SDGGames oki, thank you very much for replying , amazing project u did here ^^, excited to see more,, subbed btw :3
@noahchase7854 Жыл бұрын
Hey do you have any idea how you'd make structures in the editor?
@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 Жыл бұрын
@@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 Жыл бұрын
@@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-fb6ei2 жыл бұрын
Do you feel that gdscript is limiting or are you fine not using C#?
@SDGGames2 жыл бұрын
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 Жыл бұрын
@@SDGGames C# isn't *that* boilerplate-heavy
@Snafuey2 жыл бұрын
Was the performance better?
@SDGGames2 жыл бұрын
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.
@saul85102 жыл бұрын
@@SDGGames that prob on vulkan side.Maybe the stable will work better.
@TINJ_2 жыл бұрын
you've never seen regex? I'm jealous. It's not fun.
@SDGGames2 жыл бұрын
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.
@Smaxx2 жыл бұрын
@@SDGGames Regular expressions are a nice way to overcomplicate simple string operations first, then optimize them later. You'd probably love them!😉