If you want to make games, you're in the right place. Let's help each other on the journey of indie game development.
I try to post tutorial videos every other week on Saturdays and make Quick Tip and Dev Log videos when I have the time, or when I come across something cool that might help you make awesome video games.
Check things out. If you feel I've earned it, subscribe, become part of the community, and share your own experience.
I had already started working on something way more complicated and beyond my skill level, because I thought I could maybe handle it. Luckily I googled a bit more and found this
@@sekaus9158 For the blocks, Minecraft like games usually use the CPU to generate a mesh dynamically from voxel data; one mesh per chuck. Multi-meshes won't be particularly useful for the blocks because each chuck mesh is different. However, if you have a lot of the same mesh whose properties don't need to be updated frequently cpu-side, like flowers or trees, then multi-meshes might be useful.
its insane how the new videos and tutorials are useless,need raycasts and adding some other nodes-classes,connecting them etc.While its this much easy...thank you man saved my hours
I got this to work in 4.1. When going to your second pass, choose New StandardMaterial3D instead of New SpatialMaterial as in the video. Then you'll find these options in different places: turn on Unshaded by going to Shading -> Change from Per-Pixel to Unshaded... Transparency -> Cull Mode -> Back.... Grow -> On -> then set amount. I hope this helps.
strange that this signal wouldn't include a reference to the node that was just clicked on. i have the Area3D send a signal to my camera and i want to detect which object i last clicked on to make the camera orbit around that object.
nvm, just found a solution, the argument "shape_idx" return the index of the collision shape of the area, but since there's only one collision shape, it will always return 0. So the best thing to do is to use a single Area3D and adding all the CollisionShape3D as children, as many as you want; this also mean that the Mesh must be child of the CollisionShape
Hi! I was recommended your tutorial by a friend and it looks almost like what I'm looking for. But looking at the Dialogue Editor window, do you have a way to link functions with options? For example, if I want a dialogue option to reward the player with an item via calling a method, can I do that? Thanks!
Hello. First a caveat. This tutorial won't work with Godot 4.0, it's obsolete, but the concepts presented are still solid. Also, I don't maintain this tech anymore. But, to answer your question, yes, you can link functions to options. You can include a function name in your JSON data along with any data you might want to pass that function. When your dialog player loads the text from a node, it converts all the JSON data into a Dictionary. Once your data is in dictionary form, your dialog player script can get the name of the function you want to call and use that string to get a reference to a function stored in a lookup table. This assumes you've created a "look up table" of functions; basically a dictionary where the key is the function name as a string, and the value is the actual function reference. You can call the function reference and pass it any of the parameters from dictionary that has been converted from JSON from the text in your node. The text in the node might look something like this... <choiceJSON>{"Red Potion:{"function":"player_inventory_insert", "parameters":{"item":"Red Potion"}}, "Blue Potion:{"function":"player_inventory_insert", "parameters":{"item":"Blue Potion"}}, }</choiceJSON> Hope that helps a bit.
Did you got on a regular job? I just bumped in to your videos curious what your making. Thanks for the Multimesh Vid didnt know godot have something like that.
using Godot; using System; public class YourClassName : Node3D { public override void _Input(InputEvent @event) { if (@event is InputEventMouseButton mouseButtonEvent) { if (mouseButtonEvent.ButtonIndex == (int)ButtonList.Left && mouseButtonEvent.Pressed) { GD.Print("Pressed Left Mouse Button"); } } } } Try this.
how do i access the blend_shapes from other types of scripts? this code does damage to a rock when i hit the rock, it's a staticbody script, it doesn't work if i apply it directly to the mesh. I have a blendshape called "Mined"... when i hit the rock, i want "Mined" to be reduced by damage, everything i tried so far gives me errors because the methods used in the godot documentation only work for MeshInstance scripts.. ..but then, again meshinstance script don't work with collision so it can't check if the rock is getting damage. extends StaticBody var health = 2000 var floatingtext = preload("res://UI/floatingtext.tscn") func onhit(damage): # Basic formula for damage health -= damage # Instance a floating text to show damage done var text = floatingtext.instance() text.amount = float(damage) add_child(text) if health <= 0: self.queue_free()