• Hello [name]! Thanks for joining the GMC. Before making any posts in the Tech Support forum, can we suggest you read the forum rules? These are simple guidelines that we ask you to follow so that you can get the best help possible for your issue.

Question - GML Visual Barriers to getting started with GM2

I've been looking for a suitable tool to allow my son to upgrade from Scratch and https://codewith.mu/ . Through the trial, and experimentation, there are the things that I've found that create seemingly unnecessary barriers.

Generally, I've found some frustrations, but I've otherwise enjoyed GM2, and can see potential. However, some quality issues and UX issues leave me with some doubts if I'll continue after the trial.

Here is some feedback that might help you win some future "Scratch upgraders".

1. Arbitrary and confusing differences between "Set Instance Variable" and "Assign Variable"

I wanted custom member/instance var; so I added it to the object under "variable definitions". But then it took too long to work out the "Set Instance Variable" doesn't list the custom instance variables, and I had to use "Assign" instead. Seeming arbitrary inconsistency. You "Just Have To Know".

- "Set Instance Variable" should show custom instance vars also. (Maybe optionally add a "Set Builtin Instance Variables"), but IMO there are plenty of bespoke setters already.
- Rename "Assign Variable" to "Set Variable". Note: In the Event mini icon summary the "Assign Variable" Block is actually listed as "Set", ie "Set target_x to x" in the image example below. Again, inconsistent.
- "Assign" if you want to keep it, should show up in a search for "Set". You rarely use the term "assign" elsewhere. (eg. you use "Set Global Variable").

1593853147523.png1593853250882.png
 
Last edited:
2. Poor error messaging, and poor accessability.
(I'm on MacOS Majave)

- Black on Grey error messages are not useful.
- The presentation of this common error (null reference after a destroy) could be made far less intimidating. Particularly for DnD.

This occured after pressing a key, with the event handler on an object that had been destroyed in this step.

1593854153334.png

There is a slight visual improvement when running in the debugger; but the dialog is pointlessly narrow.
1593854623457.png
 
3. IDE Hangs on MacOS Mojave, on a ~2019 MBP.

I've twice had the IDE hang, when bringing GM2 to the foreground. (Probably after MPB sleep.)

- The main IDE window unresponsive
- The Gamemaker menus open, non functional. eg "File | Quit" does nothing.
- I can successfully use "File | New IDE" to get a new functional IDE window.


4. Install of Mono Failed during first install, causing hard to diagnose failures when running first programe.

(MacOS Mojave, first mono install)
First experience of GM2 (for a simple DnD experiment) was confusing and off-putting.
I followed the standard install path. Mono silently failed to install. IDE was functional.
Output log reported "FAILED" and little else.

I eventually diagnosed by experimentallhy copying the log line from "Output" into a terminal. Through this I discovered Mono framework did not exist.
To do this, I "Just had to know" that "mono" was a framework, and deduce that GM2 uses Mono.

- "Output" Error messages are poor
- You need a "GM2 doctor" to check for basic problems (cf "brew doctor", and Mac Mail's "Connection Doctor" ).

I eventually resolved by manually installing Mono, from thier home page. This diagnosis and resolution, I'm guessing, is beyond most DnD users.
 
Last edited:
5. DND Visualisation for nested statements is unclear

- Small dark red text (eg "Empty") on Black is not clear. (Check basic accessability guidelines)
- The right and bottom connection points are not marked. You have to watch a video before it's clear how blocks connect and flow.

EG, if
1593855507404.png
 
6. Easy to loose the "Room Editor" and not know how to get it back. "Resources" Menu has arbitrary visibility.

If you close the Room Editor with (X), it's hard to get it back. To get it back, you have to notice the "Room" Magic Menu item appears when you are in the Room view. This caused frustration when attempting follow an (otherwise fantastic) online video tutorial, (from Friendly Cosmonoght), and the room props were invisble.
- "Room" should be a permanent entry in the "Windows" Menu. (Just like "Resources")

The "Resources" Menu, is only shown when you highlight the docked panel, but _not_ when selecting anything within it (eg a Sprite/Object), and _not_ when highlighting the Tab. This causes the "Resources" Menu to flick in and out of existance, seemingly arbitrarily. It's visibility seems to depends on what you last double clicked on in the Resources panel.
- Resources Menu should be permanent

- Generally these magic/dynamic menus are difficult to become familiar with; their visiblity is too subtle.
 
7. Sprite UX
It's slightly unintuative to get into the Sprite editor. (Double click in the "correct" place, or notice the "Edit Sprite" button,
- The landing UX for a new sprite prioritises setting of the center point. This seems like an odd prioritisation.
- The landing UX for a new sprite is 'noisy'/unclear

8. Starting DnD Composition/Flow for those new to programming. (IMHO)
IMO It's currently too hard to get started in DnD, just by clicking around.

There are some basic relationships that could be built automatically. Knowledge and relationship between "objects", "sprites", "Rooms" needs to be learned - but could be made easier to experiment. The new project offers no other guidance/starting/experiementation point. You auto-create a "room0" but don't auto-create anything else.

A preference for "visual" experimentation would lower barrier to entry to getting something on-screen, and would seem to be in-line with "Drag and Drop".

- IMHO, the focus for a new user/project should be based around the composition of a "room".
- Creating the first sprite should be easier/automatic
- Dragging a sprite onto a Room should automate the creation of an associated Object; currently we get this cryptic monster...
1593857597971.png

9. Naming Conventions
Friendly Cosmonaut, usefully recommends a prefix convention. "spr_", "obj_", and explains why.
You should just make this the default naming scheme for new objects.
The current longer "sprite0" "object0" makes autocomplete a pain.

10. Friendly Cosmonaut's DnD space rocks video was very good. Great teaching style.
IMO It's currently too hard to get started in DnD, just by clicking around.
The video tutorials worked around this, but it requires an considerable investment to follow along. And some of the quirks in the UI made it frustating, (eg disapperating "Room Editor" described above left us with 20 minutes of confusion).
 
11. General thoughts on getting started, and barriers.
The Bootstrap time, to get comfortable with DnD , was about 8-12 hours, over 3 days. I've been coding for a long time. IMO the barriers to entry of GN2 DnD, and general frustrations are probably losing you some potential Scratch upgraders.

- The hurdles above are frustrating.
- The IDE is quirky, sometimes inconsistent, and overwhelming in places.
- The quality issues, around the IDE hanging, worry me for a relatively expensive upgrade from eg Scratch or "https://codewith.mu/".

12. Mobile. $145 plus my time to try it - does it work?
Mobile support is a significant cross-platform benefit, over some other options.
- Is it possible to include mobile build support in the trial?
I'd usually take it 'on trust' that it works, but the quality issues above make me wonder about the smoothness of cross compilation, performance, and other possible limitations.
$145 (and my time) is alot to burn to find out it may not do what is needed.
 

Nocturne

Friendly Tyrant
Forum Staff
Admin
Hello! This is all great feedback and I'll be sure to pass it along to the relevant people! However, I feel that a few of your issues would have been resolved by referring simply to the documentation. For example, the unclear signalling for "if" actions (which I actually agree 100% with on the visual front), is explained on every document that refers to "if", eg: https://manual.yoyogames.com/#t=Drag_And_Drop/Drag_And_Drop_Reference/Common/If_Variable.htm

Error messages too are clearly explained: https://manual.yoyogames.com/#t=Additional_Information/Error_Reporting.htm

As a beginner with the product, the documentation should have been your first stop and would have helped familiarise you with the features and the way of working with the UI. That said, I also know that peoples first instinct is "play first, read later"... and I'm not trying in any way to lessen the points you raise, which as I've said I think are mostly valid, and I'll certainly be passing this along to discuss! The "Assign Variable" issue for example, has always annoyed me, and I do agree that the visual messaging in many parts could be improved.

One thing... The documentation has recently been updated and has a complete "Quick Start Guide" that is designed for DnD and GML users to quickly get a grip on the IDE and start creating small code "snippets" to do things while laearning the fundamentals of programming. I would very much appreciate any feedback that you would be willing to give on this, as the idea behind it is to mitigate many of the issues you describe. You can find the section here: https://manual.yoyogames.com/#t=Quick_Start_Guide/Quick_Start_Guide.htm

I would also ask that you file bug reports in relation to the IDE hanging, the setup issue with Mono, and the black on grey error message box... These are things that need to be looked at properly by the dev team, but YYG don't generally accept reports from the forum unless they are accompanied by a bug report through the official channels.

EDIT: URL updated (thanks @RefresherTowel ).
 
Last edited:
One thing... The documentation has recently been updated and has a complete "Quick Start Guide" that is designed for DnD and GML users to quickly get a grip on the IDE and start creating small code "snippets" to do things while laearning the fundamentals of programming. I would very much appreciate any feedback that you would be willing to give on this, as the idea behind it is to mitigate many of the issues you describe. You can find the section here: https://manual.yoyogames.com/#t=Additional_Information/Error_Reporting.htm
I believe you've accidentally copied and pasted the wrong url here. I think you mean this one: https://manual.yoyogames.com/#t=Quick_Start_Guide/Quick_Start_Guide.htm
 
Top