Multiple possible GDevelop improvements

Hi everyone,
I’ve started to use GDevelop 5 for less than a week but found multiple features/bugs/etc… and I wanted to post all of them. I’m not sure if creating one big post instead of multiple little one was the best idea that I ever had but, please tell me it if I should remove it. However if you need any further explanations on anything from that post, ask for it and I will respond later. In general, I think that GDevelop is really nice to use but a little bit more polishing will help.
Thanks in advance for any responses.

1) General

  • When reopening a project, all of the previous open should open back (editors and events).
  • Automatically closing the debugger window when closing the preview.
  • The arrow for the scrolling menu in “Add action”, “Add condition”, etc… is to far appart on the right.
  • The possibility to select from an object/variable/line to another one should be added → Shift + Left_Click.
  • Adding the possibility to modify the copy/paste/redo/undo keyboard shortcuts.
  • Some inconsistencies when right clicking in different places, options names are written with uppercases in the middle and sometimes not. Some examples:
    • In the “Editor” it’s “Zoom in” and in the “Event Editor” it’s “Zoom In”.
    • In the “Event Editor” it’s “Toggle disabled” (no uppercase) and “Add New Sub Event” (all uppercase).
    • In the “Preferences” it’s “Code editor Theme” (no uppercase for editor) and “” (all uppercase).
    • Etc…

2) Editor (Scene)

  • Showing the properties of the selected object in the “Objects Editor” in the “Properties Panel” when none of the instances are selected and maybe also deselecting every instance automatically when you select it.
  • Adding the possibility to align not only with the grid but also with another object like in Office(Word, PowerPoint).
  • Regrouping the “Objects Group Editor” with the “Objects Editor” and transforming it into a drag and drop with a cascade interface.
  • For the debugger instead of having to choose the type when left clicking, there should be a drop down menu on the bottom of it to check or uncheck one or another.
  • The object “Text input” is still experimental, is it normal ?

3) Event Editor (Scene(Events))

3.1) Layout

  • “Add a new event” and “Add…” should be the same button, with an arrow (drop down menu) next to “Add a new event” or at least next to each other (closer).
  • When hovering the mouse on the bottom right of a condition (not of action) a “button” should appear “Add Sub Event” and/or “Add Event Below”.
  • When there are multiple errors in a “Value”, then writing them on another line improve readability.
  • When you “Add condition” or “Add action” and select an object in “Objects” a lots of conditions aren’t in a drop down menu compared to other conditions where even if there is only one possibility, there is a drop down menu.
  • Decreasing the number of actions/conditions by regrouping some of them and adding an option inside of them instead:
    • For all types of variables → Option to choose (Global/Scene) and another one for the type (Value/String/Boolean).
    • Hide and show the cursor into one action instead of two.
    • Etc…
  • Some of the names aren’t consistant compare to “Add a new event” in the bottom:
    • “Add action” ->“Add an action”
    • “Add condition” → “Add a condition”

3.2) Automatically

  • Function name is to long and should be shorter “ToString()” to “ToStr()”.

3.3) Keyboard shortcuts

  • Using “Ctrl” to select multiple objects and “Shift” to select from a line to another one.
  • Some shortcut doesn’t show on right click. For example:
    • “Add New Event Bellow”.
    • “Add Sub Event”.
    • Etc…

3.4) New conditions or actions

  • Change or add “Raycast” and “Raycast to position” as an action and not a condition.
  • Being able to access and use the “ID’s” (number written with a #) of the “Inspector” inside the debugger and also making them depending on each object.
    • Before in the “Inspector”:
      • Etc…
        • Instances
          • Sprite(1)
            • #1
            • #2
            • #3
          • Sprite(2)
          • #4
          • #5
          • #6
    • After in the “Inspector”:
      • Etc…
        • Instances
          • Sprite(1)
            • #1
            • #2
            • #3
          • Sprite(2)
            • #1
            • #2
            • #3

3.5) New functions

  • For “Raycast” and “Raycast to position” maybe adding a step property for less or more precision.
  • Adding an option to “The cursor/touch is on an object” and “Point inside object” to choose between the lowest or highest Z-Order or making it do the opposite (choosing the highest Z-Order by default).
  • For the min/max value you should be able to put as many arguments as you want.

3.6) Others

  • When an error of typing occurs and if it’s a simple one (missing parenthesis for example) put it in Yellow then fix it automatically when the edit is finished.
  • When there are too many parenthesis in a “Value”, there aren’t any error.
  • If you create a comment and write anything inside then add a new sub condition specifically and finally undo that last part, it will erase the comment.
  • Variable names are to long and should be shorter:
    • Variable() → Var()
    • GlobalVariable() → GVar() or GlobVar()
    • Etc…

4) Inside of variables

4.1) General

  • Increase the size of the small icons for the types.
  • Being able to drag and drop a variable inside of a structure even when there isn’t already one inside.
  • If a variable is deleted and still used in the “Event Editor” then ask if the user is sure about deleting it and if he agree, destroy all references.

4.2) Automatically

  • After pasting, enter the name variable to modify it.
  • If multiples are selected and the type or value is change but not the name then change for all of them.
  • When a variable is renamed or moved in/out of a structure, then in the “Event Editor” rename it to, just like the objects names.
  • Being able to detect if a variable doesn’t have a valid name:
    • Using a minus “-” makes the variable hidden anytime you want to use it.
    • Using a space " " makes everything after hidden anytime you want to use it.
    • Etc…

4.3) Keyboard shortcuts

  • Those shortcuts aren’t working in “Variables”:
    • Copy → Ctrl-C
    • Paste → Ctrl-V
    • Delete → Del
    • Undo → Ctrl-Z
    • Redo → Ctrl-Y

5) Objects

5.1) Shape painter

  • Being able to select only were there is a colored pixel with an event cause when you draw a circle for example, the event “The cursor/touch is on an object” even where there is nothing.

6) Behavior

6.1) Destroy outside

  • It could become destroy outside of a perimeter by adding more parameters:
    • An independent margin for each sides (left/right/top/bottom).
    • The possibility to choose between:
      • All sides.
      • Only left and right.
      • Only top and bottom.
    • Maybe even the possibility to choose between destroying and teleporting on the other side .

7) Bugs

  • All of the “Code editor Theme” in “Preferences” doesn’t change anything for me (I didn’t try to reinstall GDevelop).

8) NEW ADDED IDEAS

9) Extensions

9.1) UI

  • “Functions”, “Behaviors”, and “Behavior functions” panels on the left side by default (on top of each other) seems more logical and the function configuration on the other with the events sheet in the middle.
  • There are no cancel button in the “Edit behavior properties” window.
  • When you scale the right panel (bigger), it will hide some of the code behind it, cause the conditions aren’t getting smaller.
  • All the options on the right (+ Add a parameter, +,…) in the “Function Configuration” panel aren’t anchored to the right (not enough), they become invisible if you shrink down the panel.
  • Being able to move up/down a behavior parameter with the mouse (drag and drop).

9.2) Others

  • In a behavior the action “Create an object” doesn’t work with the parameter 0 “Object” doesn’t work, sometimes nothing happens, others it teleports the object.
  • When changing a parameter name, automatically change all the references in the event sheet.
  • If you modify the name of a behavior in the extensions while using it on an object in your scene, it doesn’t change it automatically in the object behaviors.
  • When entering an author name in the “Edit extensions options” window in “Authors”, it will stop you from writing when it’s searching for corresponding ones.

10) Event Sheets

  • Having an action or an option to delete all linked objects (not by their name) and/or having a condition to select all objects linked to another one without the specification of a name.
  • Ctrl-F doesn’t search or replace in the text of the Repeat/While/… conditions.
  • If you click on an event already selected, then deselect all the other ones unless Shift or Ctrl is hold.
  • There aren’t any option to paste events next to the “Add a new event” when you have something copied but it exist next to “Add condition” and “Add action”.
  • When entering a file directory (path) in an action, using “\” instead of “/” doesn’t work and it throws an error.
  • Adding a new function to be able to modify a specific variable in a json file and not having to load the entire file.
  • Being able to change a type of conditions into another one more easily. Examples:
    • “Repeat” into “For each object”.
    • “While” into a normal event.

Hello!

Not one of the engine devs, but It wanted to touch on some of the ones here that I can speak to outright:

The Text Objects from PixiJS don’t support mixed formatting within them, so unfortunately as far as I know this wouldn’t be possible. However, the BBText object supports mixed formatting, and has formatting markup you can use: BBText object [GDevelop wiki]

Unfortunately, in these cases double quotes are important and likely should remain as-is. These fields need to be able to differentiate between strings and expressions, and you can’t have expressions in strings.

As an example for the change text action, if you want to change it to “MyObject’s current X position is (object position here)”, you would do "MyObject’s current X position is " + MyObject.X(). If you instead wanted it to say “You can show MyObject’s current X position with MyObject.X()”, you can do that today.

If your change was made, that second scenario would no longer work, either it would always interpret MyObject.X() as the expression, or it would always interpret it as text, and in either scenario it would break functionality people need.

Outside of the above two, some of these are good fixes, while others are more subjective changes, so we’ll have to see if any of the devs have input.

Thanks for taking some of your time to respond.

I simply didn’t see the BBText object so, this change is completely useless, thank you for pointing it out.

And for this other one, I didn’t see all of the use cases ^^’
So, instead of removing them, they could change the ToString() to become ToStr().
Same reason as the variables in my proposition, when you have a lots of them it makes the value field to long.

1 Like