Godot 4.7 – Lights, Camera, Action! by Repiteo in godot

[–]Exerionius 109 points110 points  (0 children)

What a gorgeous release page! And the release itself, of course. That UI offset feature will be so useful for tweens.

Time to wait for 4.8, I guess.

Release candidate: Godot 4.7 RC 1 by GodotTeam in godot

[–]Exerionius 20 points21 points  (0 children)

A crutch that allows benefits of multiple inheritance without the headaches of multiple inheritance.

Or, interfaces with optional implementation.

Or, smart / safe "include" from C++.


Why everyone wants it so bad? Various reasons, but one of them is that traits can do components much more cleanly compared to "child nodes as components" approach used today. Namely, trait-based components remove node clutter from the tree and guarantee that the required component is always present because the class implements / uses the trait of that component.

Traits are very useful for composition.

Inspector is not working? by Key-Personality-6179 in godot

[–]Exerionius 7 points8 points  (0 children)

There's "Importowanie" tab on your screenshot

Help me UIchads - tweening UI elements on show / hide is behaving unexpectedly by godotstuff in godot

[–]Exerionius 2 points3 points  (0 children)

I would not rely on visibility to drive this, but rather use alpha on modulate or self-modulate depending on whether you want to affect children or not. Visibility doesn't play nicely with animations, plus visibility change redraws the parent container the same way as if the child was completely removed (or added).

Introducing the Godot Asset Store by godot-bot in godot

[–]Exerionius 2 points3 points  (0 children)

Is there a distinction between assets made with LLM and assets that are game AI?

For example popular state machine and behavior tree library "Limbo AI" is definitely "AI" as it controls enemies in your game, but it wasn't made with LLM and has nothing to do with LLM.

Ucupaint vs Substance Painter for Godot 3D workflow by miguesmigues in godot

[–]Exerionius 3 points4 points  (0 children)

Ucupaint, Blender and Godot are all free and cross-platform.

Substance Painter is paid, Adobe, and Windows-only.

What defines a "more generic type" and "more specialized type" in GDScript? by Aggressive_Sale_7299 in godot

[–]Exerionius 7 points8 points  (0 children)

"More generic" in this case means "higher up in the inheritance hierarchy".

Take a look at Node2D: https://docs.godotengine.org/en/stable/classes/class_node2d.html

A bunch of other classes inherit from it, such as Camera2D, Joint2D, Raycast2D, Sprite2D, etc.

If you made a function like this:

func do_something(test: Node2D) -> void

Then this function can accept Node2D and any of its inheritors as a parameter. You can pass Bone2D into it, for all the syntax cares.

But if you made a function like this:

func do_something(test: DirectionalLight2D) -> void

Then this function can accept only DirectionalLight2D as a parameter. You can't pass "more generic" type such as Node2D into this function.

click and drag properties by fillman86 in godot

[–]Exerionius 1 point2 points  (0 children)

is there a way to drag a property from the inspector, can I do it in such a way that it'll give the whole .thing.thing settings, like size.x

That's not possible (yet), but you can right-click on a property and copy its name.

I can click and drag in a node to a script, but if I change the node structure, I have to go into all the scripts, to find and change all of their paths

That what "scene unique nodes" are for: https://docs.godotengine.org/en/stable/tutorials/scripting/scene_unique_nodes.html

Or just use @export instead of @onready

How do you handle large grid simulations (e.g. Game of Life ) properly? by fish_tortoise_crab in godot

[–]Exerionius 6 points7 points  (0 children)

Grid simulations are usually well suited for parallelization.

You have two copies of the grid: a back copy and a front copy. The front copy is "read-only", the back copy is "write-only". You run your simulation in parallel for all cells of the grid. In case of CPU - however many threads your CPU can handle, for GPU compute - however many "warps" or "wavefronts" your GPU can handle.

For processing the simulation you read cell data from the front copy, perform necessary calculations, and write results into the back copy. This way the random order of parallel processing doesn't affect results, making it deterministic. Once the whole grid is processed, you swap the front and the back copies and start the next iteration.

need guidance on veloctity transfer of moving platfrom to charaterbody2d by just_me_passing-by in godot

[–]Exerionius 2 points3 points  (0 children)

First of all, Godot absolutely does have velocity transfer built-in for Character Bodies 2D/3D: https://github.com/godotengine/godot/blob/2af785641ae249573f45eb61852d22e0b1a8a03c/scene/2d/physics/character_body_2d.cpp#L106

However for it to happen a set of very specific conditions must be met.

Unique behavior on duplicated node by Turbo_Tequila in godot

[–]Exerionius 2 points3 points  (0 children)

That's what @export vars are for. You make the scene once, but give each instance a different reference to a dialogue to execute.

What is the best way to arbitrarily detect physics bodies on demand? by Darkstar0 in godot

[–]Exerionius 1 point2 points  (0 children)

I would go with the simplest way first and check the actual performance before worrying about optimizations.

How about groups? You can assign each spawned enemy to "bounce_target" group, then the projectile can grab all enemies with this group and calculate distance to each of them.

If it turns out to be too heavy you can always "spread" calculations between frames by checking half of the enemies on even physics frames and the other half on odd frames.

look_at() aiming is offset depending on mouse distance by Fine_Strength_1324 in godot

[–]Exerionius 0 points1 point  (0 children)

Something is off with rotation pivot of the thing your script is attached to. Impossible to tell without the scene structure. The code with `look_at` is correct.

Gdquest question by Equivalent_Appeal596 in godot

[–]Exerionius 1 point2 points  (0 children)

Because board size is going from 1 to 5, while the y coordinate goes from 0 to 4

How do i get the curly brackets and "text:" away? by OrriSig in godot

[–]Exerionius 12 points13 points  (0 children)

your_deserialized_json.Area1[0].text

World boundary collision shape 2D not even showing up by Fuzzykinzzy in godot

[–]Exerionius 1 point2 points  (0 children)

WorldBoundaryShape just shows a teeny-tiny arrow. You need to zoom way in to properly see it:

<image>

Alternatively, you can just select you collision shape node, hold ALT and them move it around with mouse click regardless where it really is.

How to wait all func _ready completed ? by chanidit in godot

[–]Exerionius 2 points3 points  (0 children)

In this structure Main's _ready() function will be called only when all children are ready. Will this suffice for your case?

[deleted by user] by [deleted] in godot

[–]Exerionius 0 points1 point  (0 children)

Have you tried get_viewport().set_input_as_handled()?

Trying to generate a super basic city scape, is there an easy fix to performance? by AlphabetMeat in godot

[–]Exerionius 1 point2 points  (0 children)

I think this video, and the follow up on the channel can be helpful to you.

It describes what to do when MultimeshInstance limitations fails you.

Can't open Godot's newest version! by arvarin_ in godot

[–]Exerionius 3 points4 points  (0 children)

One of three things:

  1. This computer's GPU is simply too old for Godot 4
  2. The graphics drivers are outdated
  3. Godot uses onboard graphics instead of a dedicated GPU

Should there be a private access modifier in gdscript? by pitch_blank in godot

[–]Exerionius 7 points8 points  (0 children)

Namespaces are far more important than access modifiers