Improving GDevelop usability


Hi 4ian.

Sometime I find a bit slow to drag 'n drop or copy/paste objects to make a scene in GameDevelop,and I was looking for a better way.
I have an idea for how the scene editor can be more “fun” to use,and maybe faster in some cases.
I made an example of the scene editor in GameDevelop,so you can test my idea how it feels like to use.
You can download it from here: … sp=sharing

How to use:
You can select an object and place it in to the scene,by pressing the left mouse button.
Press it once to select an object,and press it again to place the selected object in to the scene as many as you want.
You can also rotate the selected object before place it,by pressing the Q or E on the keyboard.
You can reset the object selection by pressing the right mouse button.
You can drag and move placed objects inside the scene by moving the cursor over the object and press and hold the left mouse button.
You can delete placed objects from the scene,by moving the cursor over the object and press the right mouse button.
You can also rotate the placed objects inside the scene,by moving the cursor over the object and press Q or E on the keyboard.

No saving,loading or importing feature,I made this only to test my idea.
I think it can be more convenient and faster to make scenes.Of course we can keep the present way to rotate,move,scale objects and other settings on the top of this.
My idea is mainly about selecting an object and “drawing” inside the scene instead drag 'n drop and copy/paste every single time.
Simply just select an object only once and place (draw) selected object as many times as we need.
The way of rotation,moving and deleting of object in my example is only my solution for test but I think it fit my idea,after I have done it I just realized that I like it,so I decided to post my idea :slight_smile:

I hope you (and everybody who may try my example) like the basic concept of my idea,because I like it I would like to have something like this in GameDevelop to make scenes :laughing:


Remember that you can “clone” objects using the Ctrl Key : Click on an object while pressing Ctrl, then move the mouse and the object will be cloned. This works also with selection of objects. :slight_smile:
This can speed up the creation of a level when you need to put lots of objects.


LOL I have missed a feature of GD and complain for no reason again.I was forgot about this cloning feature :smiling_imp:
Thanks. :blush:


How about creating an empty event along with scene so people can jump right into coding instead of being taunted with message suggesting them making one?


Sorry for double post, but I’d like also GD to ask to save unsaved changes before closing project/GD instead of asking whether you want to close it/quit. In Yes/No/Cancel dialog.

The way I see it is to GD to keep boolean variable for each open project and set it to true if it was modified. Depending of how you do certain things, lot of tracking code writing may be involved. If there are unsaved changes in one or more projects, it’ll ask if you want to save, if there are no unsaved changes, it’ll just close/quit (projects and GD can be easily reopened if closed/quit accidentally).


Sorry for this, I’m completly new here but here’s my two cents:

The three and editor windows have a maximize-minimize button and also a close window button, but I could not find a way to recover a window oncw closed, other software I have used have the same buttons but with an option in the main palette/ribbon to show all windows (Take a look at wxGlade).

Also the way Stencyl handles the adding objects to the game is quicker. Of course theirs is a commercial software, but it couldn’t hurt to get this opcion on GD, I already love it even if it forces me to work on Windows instead of Linux.

Tomorrow I’ll upload some screenshots of both sugestions.


Use the ribbons buttons to show editors:
Ribbon Projects > View > Projects
Ribbon Projects > View > Start page
Ribbon Scene > Tools > Objects
Ribbon Scene > Tools > Layers

Could you describe me the workflow used in Stencyl to add an object? :slight_smile:


That way I can recover the editor or three windows in case of closing them?

Shure, first you create a game

it asks for the games name,

then it bugs you about the lack of scenes,

you create one and there you can name it and define other characteristics, events and behaviors,

then you import characters (Actors) to your game, this is by download or by putting the animations in the same folder
then you import an actor to your scene, every character opens a tab where you name it and can define automatisms, animations, behaviors, etc

as long as you have the tab open and its the one on view its active and you can edit, add or delete characteristics of said character.

it’s very intuitive and to top it all they have a book showing you how to make a game from start to finish by little increments, the pace is very slow but it can teach somebody like me who’s never before done something like that.

Don’t get me wrong I love GD and plan to keep using and learning it, and as soon as I can I’ll be making a down payment towards my copy of GD, but it could be a little more intuitive :blush:


i dont get the whole help menu, when you want to start a tutorial, i cannot switch back and forth between menu’s. So i want to read part of the tutorial and then continue with the game engine.


Yeah, IMHO it should be dockable to main window.


When making new scene, instead of explaining how to add event, how about creating empty event for user?


Anyhow, the user must learn how to add an event, so better force him to do it as soon as possible.
I’m afraid that having one default event could even let some users misundertood how the events work: They could think that there is only one event and try to add everthing into it.


OK, fair enough. Still, it would be good if there would be opt-in option in Options window so people who know what they’re doing could enable it and don’t waste time when making new scenes.


How long it takes to move the mouse and add a new event?.. 0.1 seconds?
And finally you will have to add many others events (a lot of events), save the time in one void event isn’t a good argument I think.


Yeah, but with existing events, I can just hover over some and click “add an event” next to “add subevent” instead of going out of my way (to ribbon).


Is there a way to make all the global and instance variables more visible?
currently the only way to see them (on linux version) is to open them in a new window.

I wish I could list all of my global variables somewhere in a tab of the interface. Instance variables are not visible in the object properties tab.

The window where you create/select variables could at least tell you wether it is listing global or an instance variables.

I wish I could disable a massive chunk of code with a single click in the event sheet. Currently when you disable the parent block, it’s children dont get disabled.

Do object instances have an UID? How do you pick a specific instance of an object?

A “tutorials” feed page would be a nice addition to the website. The scirra guys have been doing it for years- gathering tutorials from their community. It’s the secret to their thriving community.
It’s more accessible than a help file or a wiki. Plus the community can easily use their forum login to submit new tutorials (wait for moderation of course) or tutorial localizations.
I know you probably want to distinguish yourself from them and you have already done it fairly well.
But dont force yourself to do things different because they’ve done it first. You can instead continue to improve upon the formula.

Btw I love the debugger!! :smiley: So nice
This engine is so great. Keep up the great work. The linux port needs some more love.
You could later try doing a kickstarter or something- it will help boost popularity of the engine.


There is no search box for the “edit the action/condition” windows- when you are in “all actions” tab. It is only available in the “by object” tab.
It would be much faster for workflow if the “search” filtering was available there as well. (this seems to be a limitation/bug of the linux version)

It would be nice if the editor had auto-complete for every text field. Similar to the one found in construct.

Both of the above apply for the “expressions editor” window as well. Right now there is no search, nor is there autocomplete. This makes it really tough on new users and slow to work with for more experienced ones.

Add a “PREVIEW” button somewhere in the UI where it will always be visible. That would eliminate the need of tabbing to the scene tab every time before testing the game. And then going back to other tabs when editing it.

For the conditions- there is no “trigger once” - how do you control if actions are executed once when true, or repeatedly once true?

GUI- event sheet- in order to add another condition or action, you have to hover over the block - which makes a + icon appear. When you navigate your cursor to the plus icon- in most cases it disappears before you get to it. Is there a keyboard shortcut to add a new condition or action in a block. Or add a child? I cant even right click to do it. The only option is this hover over business. An easy fix to this + icon annoyance is to add a time delay for it to disappear. For example when not hovered over the block, wait at least 2-3 seconds before disappearing.

NAMING (minor)

  • some of the naming in the event sheet is excessively long. For example- instead of saying “scale of width” you can say only “width” or “width scale”. Try to be more minimalist when expressing logic. Less words, better picked words to fit the description.
    -Some things are unclear when worded in the event sheet. For example “do 1 to the number of current animation” is really “set current animation to clip 1” . I can pull out more examples, but I don’t want to go too hard on this, as you probably have better ways to use your time to improve the engine. Anyway, if you are interested in this aspect of the english version of Gamedevelop- I can certainly try to help. There are so many things one can improve on the wording to make it more clear.


usability wise- the way you enable/disable platforms inside the “use extension modules for gamedevelop” is not clear.
You have to right click–>enable/disable and it is not visually communicated very well which is enabled.

A simple tick box would do this job better imo. I wasnt sure how to enable a platform at first, as I found it strange that simply selecting it doesnt enable it.

When you first open the event sheet and it is empty, the new users will try to double click on the canvas in order to start creating logic. This however does not work and they are forced to look at the ribbon toolbar for the events tab–>create new event.
It would be nice if you allow to create new events on a new and empty event sheet canvas by double clicking on it.


I would like to write some comments on the image editor.

Having no idea, what format GD would expect, I had a look at several spritesheets available on the internet.
All had multiple sprites in one file (bmp, jpg, png) and most of them had a background color instead of tranparency.
So I painted my spritesheet the same way - which was all wrong.

I was not able to seperate the sprites within the image editor and I was not able to declare the background color as transparent.

So I went back to my painting tools, cut out every sprite seperately, removed the background color and saved every animation as a single file, ending up with 83 png instead of 1.
As the image editor in itself uses drag&drop functionality, I simply marked and dragged my sprite images from windows explorer to GD’s image bank and … was wrong again - there is no drag&drop from external sources into the image bank.
I solved this by marking multiple files in GDs “add an image” dialog clicking the first file, holding the [CTRL] button and then clicking the last file.
Ok, that is no big deal for me, however GD is inviting users to create things “without any coding knowledge”, so I can well imagine them adding file by file by file.

The next thing I noticed was that all the images by default are antialiased. So I went to the image properties to disable aa and enable pixel perfect precision - guess what: wrong again.
I do still remember that after quite some time searching in the online documentation I did find the required option. It popped up somewhere in the lower right corner of the image editor - nevertheless I already forgot how I got there, so I would have to search again to find that switch.
Oh - by the way - as stated before I was working with 83 png files that all had to be pixel precise - forcing me to switch off antialiasing 83 times.

Next I was working with one-color-sprites of only 16x16 pixels. I tried to use them in white, grey and even yellow.
When trying to edit the collision masks or add some points within the sprite I found it annoyingly difficult.
The editor window uses the standard white and grey checkboard in the background to indicate the transparency, just like most painting tools do - that’s very good for understanding why there is this checkboard.
Now - what do you expect when working with a sprite that’s partly white and partly transparent?
You will see the white pixel that are in front of the grey background squares and you will not see the white sprite pixel in front of the white background squares. The same thing (only vice versa) happens if you chose the wrong grey for the sprite.
Even with a yellow and transparent sprite of 16x16 size it is very hard to work, because it’s almost invisible.
Painting programs usually solve this by allowing the user to zoom in and out, enlarging the view of the sprite or making it smaller but keeping the size of the checkboard grid.
In addition to that I suggest to give the GD users the option of having a temporarily colored background instead of the checkboard.

What else to say?
Using the image editor worked for me. I was more or less able to do the things I wanted to do with it and I even understood most functions I needed without much reading in the forums or wiki or online documentation.
So the image editor is already a very useful and a very usable tool.

I hope by descibing the mistakes I made and the difficulties I had when working with the image editor that you can get some inspiration on how to improve it.


Wouldn’t it be better if there could be getters and setters generated for the global variables you want and then access the game from outside. :smiley:

Moreover construct 2 has an additional feature of multitouch which is not possible only with mouse functions.