Is Godot somewhat buggy or is it just me?

:information_source: Attention Topic was automatically imported from the old Question2Answer platform.
:bust_in_silhouette: Asked By Nichefect
:warning: Old Version Published before Godot 3 was released.

I’ve noticed some strange things happening in Godot and I’m wondering if anyone else has experienced and maybe figured out these problems. Here are my two most annoying issues:

  1. I create a tile map of staticbody2D tiles, each with a rectangle collision shape of equal size to the tile sprite. When I implement the tile map in my main scene, the collision shape will be about 75% the scale it was set to when I made the tile map. If for example, my kinematic body is falling onto one of these tiles it will sink into it a bit before stopping. I can clearly see that the size of the collision2D rectangle for the tile is exactly the size of the corresponding sprite texture (as denoted by the transparent blue scaling rectangle). If I delete the collisionshape2D child and remake it exactly as before and create a new tilemap, it will then work correctly. For a tile I typically have a sprite that is a parent of a staticbody2D, that is a parent of the collision2D shape. I do no scaling on any nodes except to get the collision shape the same size as the sprite texture.

  2. Many times if I try to select an object in the scene editor Godot will select a completely different object every time, forcing me to do all kinds of combinations of scene and hierarchy locks which I feel should be unnecessary. This happens especially if there is a tilemap in the scene, no matter what object I try and select it will ALWAYS select the tilemap, causing me to accidentally move all set tiles. Also sometimes I’ll try and select the parent to move it with its corresponding children, but the lowest child will always be selected instead.

I’m really enjoying Godot and I’m gonna work through these issues, but I just wonder if problems like these are problems with Godot, or me just not having a good grasp on it yet.

:bust_in_silhouette: Reply From: uheartbeast

Hey Nichefect,

Good questions. I’ve only been using Godot for about 2 weeks now but I also really enjoy it. There are some minor quirks that you will need to learn but I still feel the engine is one of the best free engines out there (Even better than many paid engines).

I’ll do my best to answer your questions.

  1. This is caused because you are scaling the collision shape. You cannot scale collision shapes. You will need to press the little white arrow next to the shape type and modify the Extents in order to get the size you need for the tile.
  2. As for the object selection I agree with you. It can be frustrating. I’ve had to just lock all child nodes on a main node when I’m not moving the children around. You can lock multiple nodes at a time so it isn’t too bad but that is something I think you will have to get used to. I wish the selection defaulted to the node you have selected in the tree but it always seems to select the children of that node.

I hope this helps.

Thanks for the help! This forum is proving to be very informative. Modifying the extends instead of scaling the shape worked like a charm. I was thinking the same exact thing that whichever object that is selected in the scene tree should be the first object available for selection in the scene editor. Could you elaborate more on why manually scaling the collision shape doesn’t work?

Nichefect | 2016-04-23 03:11

You can manually scale the collision, but you must use the red dots of the blue area, and not the ones to scale the actual Node2D of it. If you look closer you’ll see that in the right and up sides of the blue box there are red dots.

mateusak | 2016-04-23 14:34

:bust_in_silhouette: Reply From: mateusak
  1. In the right and upper sides of the blue area, there are red dots that can be used to directly modify the Extents of it.

  2. You can press “Alt” to move only the selected object, instead of locking the children of the object you want to move.

Observation: This is a complementary answer.