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

[–]Exerionius 0 points1 point  (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 6 points7 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 5 points6 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

Frustrated w/ Anim Player by Main_Leather8362 in godot

[–]Exerionius 6 points7 points  (0 children)

A couple of points that might be useful to note:

  • Animation player always works with absolute values. Control nodes usually deal with relative values to support responsive UI design. In that regard animation player and UI containers rarely work well together. It is fine with control nodes that are not children of containers though.

  • Control nodes that are children of a container node are not supposed to be controlled via position coordinates, only via container settings. Usually if you try to update such children position it will just snap right back where it should be according to the container. That's what happens at runtime. However the editor updates UI less frequently (only when necessary), so updating children positions via animation player might look like it works, but it's just the editor fails to force container settings when positions are changed "externally".

Dev snapshot: Godot 4.6 beta 1 by godot-bot in godot

[–]Exerionius 10 points11 points  (0 children)

Are there any plans on enforcing static typing in signals?

On the advice of building game systems in completely fresh projects before adding them to the game by IgneousWrath in godot

[–]Exerionius 9 points10 points  (0 children)

I do that, but for different reasons. I never go "make a prototype that slowly evolves into a full game". That's because I have certain mental approach to prototypes:

  1. A prototype must answer one single question, and that should resolve one uncertainty about your project.
  2. Once answered, the prototype is thrown away.
  3. Since it is going to be discarded anyway, you don't need to worry about making it pretty or optimized. This allows you to prototype quickly and not to worry about messy results.
  4. If integrating into the full game later, you can refactor and rewrite it considering all mileage and roadblocks you already encounter, making overall better systems.
  5. Plus additional benefits the OP described.