OFFICIAL GMS2 Version 2.2.4 (BETA RELEASE)

Status
Not open for further replies.

rmanthorp

GameMaker Staff
Admin
GameMaker Dev.
Beta IDE Release Notes
Beta Runtime Release Notes
Beta Opt-In FAQ(How to get on the Beta Channel)

This topic is for the discussion of issues relating to the update of GameMaker Studio 2. However, this does not replace our normal bug reporting system and you should report all bugs as normal using https://accounts.yoyogames.com/contact-us#studio2

2.2.4 introduces a big update of the build toolchain to match the requirements of Android 10 and also macOS/iOS/tvOS following Apple's recent announcements - please update to this version if you're using macOS Catalina. IAP support has been greatly updated - including subscriptions support and receipt verification functionality! Plus, there has been another big push on making HTML5 games work more closely to how they do on other platforms. There have also been some changes to how and when files are created and a clean-up of some redundant game options, which should result in less confusion when working on your projects.
We have a few threads for feedback on specific parts of the 2.2.4 update:

Google Update: https://forum.yoyogames.com/index.php?threads/gms2-google-updates-2-2-4-feedback.67329/
Apple Updates: https://forum.yoyogames.com/index.php?threads/gms2-apple-updates-2-2-4-feedback.67328/
IAP Updates: https://forum.yoyogames.com/index.php?threads/gms2-iaps-updates-2-2-4-feedback.67330/


Please note that the release notes mention several new or updated extensions are required for use with 2.2.4 - these are downloadable HERE until the Marketplace has been updated. The Marketplace will not be updated with these new extension versions until 2.2.4 is out fully!


Current Release: IDE v2.2.4.456 with Runtime v2.2.4.362
  • Build Mac: Mac IDE "elevated permissions project cleaning" support, matches the Windows IDE changes in beta 2
  • General: Changed GPU memory allocation for editor windows, which should result in better performance when moving between workspaces and/or running GMS2 for a while
  • General: Fixed Help > Release Notes / Runtime Release notes link to be https versions, not http, to avoid issues where some users could not see the contents of the notes
  • General: Fixed those above two links to send you to the correct versions of the notes if you're currently using a beta release without actually having opted-in
  • Extension Editor: Fixed an issue with newline characters in Gradle injection text boxes could cause Android builds to fail in the Mac IDE
  • Game Options: Re-enabled Google Cloud Saving checkbox, as this is still required by the asset compiler
  • Game Options: Fixed enabling the Google Play Services extension to work off if your Google Services ID is filled-in, fixes issues with "NULL" sign-ins in beta 2
  • Game Options: UWP now has a "Description" field which is passed into the game binary, stops a submission error from Microsoft
  • Code Editor: Custom code snippets will now override the defaults if you re-use a keybinding, rather than append the duplicate
  • Fixed various issues with HTML5 variables not working properly in beta 2
  • Fixed macOS gamepad support being broken in 2.2.4 betas - note that macOS/Apple still only supports a small number of pads natively. You will need to install third-party drivers if a pad is not being detected (this includes Xbox One pads if connected via USB rather than Bluetooth!)
  • Fixed landscape games launching in a broken portrait view on iOS 13 devices.
  • Fixed persistent rooms not firing layer scripts when you returned to the room later on.
  • Fixed room_assign() not triggering the Create events for instances in that room when you enter it.


Second Beta Release: IDE v2.2.4.451 with Runtime v2.2.4.357 - PLEASE UPDATE!


macOS Catalina Support
  • Changed the "clean" button to confirm if you need elevated permissions in order to clean files in your build folder (e.g., Apple Sign-In information) and then prompt you on the Mac if required (Windows IDE only just now - Mac IDE will be changed in 452.)
Extra Name Verification For Included Files
  • Changed the new behaviour to be that you are only warned about the invalid filename when you're building on the affected platform AND that included file is also enabled for that platform...
Other Notable HTML5 Changes
  • Fixed a number of functions not working and/or causing debug builds to fail to start because the code was missing a semicolon



Initial Beta Release: IDE 2.2.4.449 with Runtime 2.2.4.356 - PLEASE UPDATE!

Everything else in the release notes which is not mentioned above...
 
Last edited by a moderator:

chmod777

Member
Hmm, HTML5 is crashing on startup:
Code:
SyntaxError: unexpected token: keyword 'if'
ReferenceError: GameMaker_Init is not defined
... obviously because there is a missing semicolon at the top of the function "audio_emitter_pitch" (even if I don't use it):
Code:
index = yyGetInt32(index) if(_PW[index] == undefined) return;
 

Dan

GameMaker Staff
GameMaker Dev.
Whoops - fixing that just now, will get a new runtime out asap. Sorry!

EDIT: We will continue with releasing an updated runtime, but see my update two below...
 
Last edited:

Amon

Member
Hmm, HTML5 is crashing on startup:
Code:
SyntaxError: unexpected token: keyword 'if'
ReferenceError: GameMaker_Init is not defined
... obviously because there is a missing semicolon at the top of the function "audio_emitter_pitch" (even if I don't use it):
Code:
index = yyGetInt32(index) if(_PW[index] == undefined) return;
Did you let it install the 2.2.4 runtime also with the new 2.2.4 IDE. I ask because I get no crashes on startup with my games or with the IDE.

edit - Dan said there's a fix so my post is defunked. :)
 

Dan

GameMaker Staff
GameMaker Dev.
No, it isn't defunct at all... There is definitely an issue with a missing semicolon there and we will definitely fix it. However, I can run projects fine in HTML5 also, so your question is entirely valid.

You need to have that function in your game in order to hit the issue.

We in the office read the original comment "(even if I don't use it)" and for a moment took it to mean "all projects crash because of this, even if the function isn't called in your project", which is why I said we would rush out a runtime. Seeing your comment and doing some testing here, we won't rush one out today, but we have now fixed this for the next beta runtime release.

We have confirmed that no projects run in debug mode.

The updated runtime will be tomorrow/Friday, after we have allowed a little more time for feedback and gotten the extensions out, in case there are other issues found, rather than right now at the very end of the working day to fix one issue.
 
Last edited:

chmod777

Member
Ah yes, the game actually crashes if the function is used OR if you run it in debug mode (whether you use the function does not matter in this case).
 

Mert

Member
No separate inject boxes for build.gradle in ProjectFiles & RootFiles for Android.
Deeply heartbroken :(

(Yeah, sent ticket and got a response that they'll consider this)
 

Amon

Member
Ah yes, the game actually crashes if the function is used OR if you run it in debug mode (whether you use the function does not matter in this case).
Yep, confirmed that in debug mode it crashes. None of my projects work when debugging is activated.
 

Ricardo

Member
@Dan About "Included File names now cannot start with a number" (bug 31277). Is it possible to disable this check or make it a warning that doesn't stop compilation? I have several pay projects which I need to update frequently that has hundreds of included files that start with a number and they run just fine in the platforms I need. Now I can't run them in 2.2.4 anymore. This is an HUGE breaking change for me, and update all the projects and included files will cost me a lot of work hours (and therefore money). If files starting with numbers doesn't work on Android, iOS and Mac, then the warning/error should only appear when compiling to these platforms. Block all the other exporters from using these files is unnecessarily disruptive.
 
Last edited:

Dan

GameMaker Staff
GameMaker Dev.
@Dan About "Included File names now cannot start with a number" (bug 31277). Is it possible to disable this check or make it a warning that doesn't stop compilation? I have several pay projects which I need to update frequently that has hundreds of included files that start with a number and they run just fine in the platforms I need. Now I can't run them in 2.2.4 anymore. This is an HUGE breaking change for me, and update all the projects and included files will cost me a lot of work hours (and therefore money). If files starting with numbers doesn't work on Android, iOS and Mac, then the warning/error should only appear when compiling to these platforms. Block all the other exporters from using these files is unnecessarily disruptive.
We'll discuss internally what we can do here.
 

Nettub

Member
We'll discuss internally what we can do here.
Same here, I've several projects with included files started with numbers in their names.

Updated:I finally mass renamed the files with Rename Master, and renamed all the references to those files inside .yy files and project file with sublime text, and everything is working fine :)
 
Last edited:

Ricardo

Member
@Nettub according the bug page, they'll change it so the warning will only happen on the affected platforms (the ones that doesn't support included files starting with numbers). Perfect solution IMO.
Thanks a lot for bring up my concern to the devs, @Dan. That new rule was going to screw me over by a lot.
 

Dan

GameMaker Staff
GameMaker Dev.
That is an issue with your browser allowing redirects and scripts on http:// links - change the address to be https://... and you should find it all works fine again.
 

Dan

GameMaker Staff
GameMaker Dev.
@Nettub according the bug page, they'll change it so the warning will only happen on the affected platforms (the ones that doesn't support included files starting with numbers). Perfect solution IMO.
Thanks a lot for bring up my concern to the devs, @Dan. That new rule was going to screw me over by a lot.
No problem - that's my job ;)

And yes, I was waiting for the final confirmation before I responded, but it has now been changed so the resource tree doesn't enforce anything, and instead if you have made an included file which starts with a number AND you're building for Android/Amazon or any Apple platforms AND that included file is set to be exported on that target, then you will get a compiler error telling you that file won't work in-game and you need to fix the filename. Your build will fail and you will have to fix the name in order to compile on those platforms (or disable that included file from exporting).
 

Dan

GameMaker Staff
GameMaker Dev.
A download link for all the IAP extensions and the wider Google Play Services extension has now been added to the first post in this thread ("HERE").

The Play APK Expansion extension is not ready yet - that will be fixed asap and then will be added into the Google Play Services asset alongside IAPs, Licensing, and Google Play Services itself, as the APK Expansion extension relies on the Licensing extension being in your project anyway....

A couple of other extensions will be added to that downloads page on Monday also.


EDIT: That's Apple Sign-In, an updated Apple IAPs which now contains the mini-manual, and an updated Google Play Services all uploaded. The Google Play Services asset now contains the fixed APK Expansion extension also (all we changed here is fixed it to build using AndroidX rather than Support Library v4 - no in-game changes).

Google Push Notifications is still to be fixed so it builds using AndroidX (again, no in-game changes) - will upload when it's ready.

EDIT2: Google Push Notifications is now uploaded also...
 
Last edited:

Dan

GameMaker Staff
GameMaker Dev.
You should also see IDE v2.2.4.451 and Runtime v2.2.4.357 available for download soon - this update is rolling out now. That fixes the HTML5 debug issue with missing semi-colons and also has the changed behaviour for included files starting with a number.

All sorted ready for you all to play with over the weekend!
 
Last edited:

chmod777

Member
You should also see IDE v2.2.4.451 and Runtime v2.2.4.357 available for download soon - this update is rolling out now. That fixes the HTML5 debug issue with missing semi-colons and also has the changed behaviour for included files starting with a number.
Thanks for the release. ;)

layer_background_create() is broken in HTML5. Bug has been reported (ticket #162150)
EDIT: And also some troubles with rectangle_in_rectangle (https://bugs.yoyogames.com/view.php?id=31259 - even the sample has issues: if you move the square up or down, the game will crash).
EDIT2: With some bitwise operators too (ticket #162217).
 
Last edited:

chorrus

Member
Hi!

I'll try to create a bug report as soon as i have some time to create a sample project, but the system event isn't triggering or something, at least when trying to connect gamepads.
Code:
switch(async_load[? "event_type"])
{
    case "gamepad discovered":
    pad = async_load[? "pad_index"]
    global.gamepad = true
    break;
 
    case "gamepad lost":
    global.gamepad = false
    pad = -1
    break;
}
This code has always worked. I've been using it to detect gamepads but isn't working in 2.2.4 I have downgraded and it is working again, so it is definitely related to the new release.
 

TheSnidr

Heavy metal viking dentist
GMC Elder
Having trouble drawing vertex buffers that use custom vertex formats in HTML5. The game crashes as soon as I use vertex_submit. Submitted a helpdesk ticket. Here's a demonstration, in case somebody would like to test it on HTML5:
https://www.dropbox.com/s/1oigh92otuepfea/HTML5 Vertex Format bug.yyz?dl=0
This works in HTML5 in 2.2.3.345 but not in 2.2.4.357
Also, another problem is that matrix_build_projection_perspective creates a projection matrix that's flipped vertically in HTML5 compared to Windows.

EDIT:
These errors have been filed in the following bug reports:
https://bugs.yoyogames.com/view.php?id=31362
https://bugs.yoyogames.com/view.php?id=31363
 
Last edited:

Dan

GameMaker Staff
GameMaker Dev.
I'll try to create a bug report as soon as i have some time to create a sample project, but the system event isn't triggering or something, at least when trying to connect gamepads. ...
Is that the only gamepad functionality in your game? There is a change in 2.2.4 that the gamepad stuff won't be there unless you actually call a gamepad_...() function. We have found some people have the async events for pads being lost/found, but don't actually do anything with the pad thereafter - if this is the case for your project also, then this is why your project no longer gets those events. This would not be a bug - either use the pad functions to do something with the pad, or remove the redundant event code and don't worry about it ;)

Gamepads definitely do still work in 2.2.4 (I have just confirmed again right now, using a PS4 pad).
 

FrostyCat

Redemption Seeker
The release notes for 2.2.4.451 seems to be blank, there's a "Release Notes" header and that's it. Can someone fill it in?
 

FrostyCat

Redemption Seeker
I've finally brought myself to report 2 long-standing IDE bugs that can cause crashes on my work environment. I've filed them at the helpdesk already, but I'll post here as well for posterity.

The first is a severe memory leak when switching between code tabs. It's about 1-2MB per switch, and it just goes up and up during routine use. It's the reason why I can't keep the IDE on for more than about an hour. Once it gets beyond that and the RAM usage grows to 2-3GB, the IDE crashes silently and loses all unsaved data. I have to give the IDE "restart breaks" so that it doesn't lose my data.

The second is a silent crash when sleeping. I do my work on public transit a lot, and when it's my stop I have to quickly close up the lid and run. Starting with 2.2.3 or so, the IDE started disappearing without a trace after I wake my laptop. I've lost some work this way, but now that I know of the issue, I'm doing quick saves one stop in advance.

Please chime in and help bring awareness to these issues if you experience them yourself as well.

It shows up fine on my browser. Try clearing your browser's cache. The release notes pages tend to be aggressively cached for some reason.
Ctrl+Shift+R did it, but only after half a dozen tries. It's probably cached aggressively due to its frequent traffic, but I'm unsure why the copy with just the header and no content got to be cached in the first place.
 
H

HW.

Guest
Ctrl+Shift+R did it, but only after half a dozen tries. It's probably cached aggressively due to its frequent traffic, but I'm unsure why the copy with just the header and no content got to be cached in the first place.
If refreshing the page can't. Just change https:// to http:// or vice versa will bypass the cache instantly in my case it will then reload the page correctly.
 
The second is a silent crash when sleeping. I do my work on public transit a lot, and when it's my stop I have to quickly close up the lid and run. Starting with 2.2.3 or so, the IDE started disappearing without a trace after I wake my laptop. I've lost some work this way, but now that I know of the issue, I'm doing quick saves one stop in advance.
I had the same problem but I noticed this was related to windows 10 silently installing updates and restarting the laptop when it's sleeping without any notice.
 

Bruchpilot

Member
This would not be a bug - either use the pad functions to do something with the pad, or remove the redundant event code and don't worry about it
I suspect this is a trap many people will fall in when starting to use gamepads. First thing you do is implement the async event, just to check if it does anything. If the compiler strips this when no other gamepad functions are used, people will assume there is something wrong with their setup or their code. I would consider returning to the old behaviour.
 

JasonGames

Member
Is that the only gamepad functionality in your game? There is a change in 2.2.4 that the gamepad stuff won't be there unless you actually call a gamepad_...() function. We have found some people have the async events for pads being lost/found, but don't actually do anything with the pad thereafter - if this is the case for your project also, then this is why your project no longer gets those events. This would not be a bug - either use the pad functions to do something with the pad, or remove the redundant event code and don't worry about it ;)

Gamepads definitely do still work in 2.2.4 (I have just confirmed again right now, using a PS4 pad).
I'm having the same issue and am using plenty of other gamepad...() functions elsewhere in the game. I can see that the gamepad is connected but none of my gamepad_button_check_pressed(x,x) etc events are doing anything. Is there something else I'm missing?
 

Dan

GameMaker Staff
GameMaker Dev.
I'm having the same issue and am using plenty of other gamepad...() functions elsewhere in the game. I can see that the gamepad is connected but none of my gamepad_button_check_pressed(x,x) etc events are doing anything. Is there something else I'm missing?
Send us a sample project / make your own thread on here, and give a small sample which shows just your gamepad code. As I say, pads (and those two events being mentioned above) definitely work in 2.2.4, so at the moment, yes, I would assume a coding issue in your project.

Hey @Dan! Any though on this issue? It'd be lovely to see it fixed for 2.2.4. I've reported it already (#162299) but no answer yet.
We saw your ticket and were looking into this a bit yesterday, some more this morning already also, and we have now confirmed we are using the function Samuel suspected. We're looking into how big a change this would be in order to see if it makes it into 2.2.4 or not - no decision on that yet. Your ticket will be responded to shortly.
 

chorrus

Member
Is that the only gamepad functionality in your game? There is a change in 2.2.4 that the gamepad stuff won't be there unless you actually call a gamepad_...() function. We have found some people have the async events for pads being lost/found, but don't actually do anything with the pad thereafter - if this is the case for your project also, then this is why your project no longer gets those events. This would not be a bug - either use the pad functions to do something with the pad, or remove the redundant event code and don't worry about it ;)

Gamepads definitely do still work in 2.2.4 (I have just confirmed again right now, using a PS4 pad).
I’m using many other gamepad functions and are for sure correctly coded(unless something has changed in 2.2.4 on how gamepads should be managed).

I have tested with a Nimbus, a Gamevice and a PS4 controller. If it is working for you maybe something has changed and I am missing it, should I add any other gamepad functions in the gamepad detection code for it to be triggered? Because I have many other functions, but in different events.

Thanks!
 

JasonGames

Member
I’m using many other gamepad functions and are for sure correctly coded(unless something has changed in 2.2.4 on how gamepads should be managed).

I have tested with a Nimbus, a Gamevice and a PS4 controller. If it is working for you maybe something has changed and I am missing it, should I add any other gamepad functions in the gamepad detection code for it to be triggered? Because I have many other functions, but in different events.

Thanks!
Same thing on my end. When I revert back to the stable runtime release my gamepads work correctly. If I get time today I’ll make a separate demo project but my code works 100% on the stable runtime.
 

Biosyn

Member
The first is a severe memory leak when switching between code tabs. It's about 1-2MB per switch, and it just goes up and up during routine use. It's the reason why I can't keep the IDE on for more than about an hour. Once it gets beyond that and the RAM usage grows to 2-3GB, the IDE crashes silently and loses all unsaved data. I have to give the IDE "restart breaks" so that it doesn't lose my data.
Something similar happens on my end, in that overtime the IDE starts lagging substantially unless I restart it. Could be related.
 

FrostyCat

Redemption Seeker
Something similar happens on my end, in that overtime the IDE starts lagging substantially unless I restart it. Could be related.
The lags come from thrashing once the memory usage approaches or exceeds RAM capacity and goes into paged memory.
 

Dan

GameMaker Staff
GameMaker Dev.
Can see a couple more comments about gamepads not working - please do file a sample project asap, so we can see what you're doing. As I say, I am not replicating any issue here just now.

Are you customising the pad mapping at all?
 

JasonGames

Member
Can see a couple more comments about gamepads not working - please do file a sample project asap, so we can see what you're doing. As I say, I am not replicating any issue here just now.

Are you customising the pad mapping at all?
No custom mapping on my end. I've created a very simple demo project that can be downloaded here: https://www.dropbox.com/s/4p1denbotu7jrgb/Gamepads_test_runtime.yyz?dl=0

- The gamepad variables respond 100% correctly on the stable runtime but don't on the current beta.
- Both runtimes show that the gamepad is connected.
- This was tested with a PS4 and an 8bitdo SN30 controller on macOS.
- One potential outlier is that I'm running the stable IDE release while using the beta runtime...could that make any difference?

Let me know if you'd like me to make an official bug report for this. Thanks!
 
I’m using many other gamepad functions and are for sure correctly coded(unless something has changed in 2.2.4 on how gamepads should be managed).

I have tested with a Nimbus, a Gamevice and a PS4 controller. If it is working for you maybe something has changed and I am missing it, should I add any other gamepad functions in the gamepad detection code for it to be triggered? Because I have many other functions, but in different events.

Thanks!
My gamepad functions work same as before, with detecting, input switching, mapping etc.
What happens after you update the IDE? Also, the bug might be limited to macOS.

IDE 2.2.4.451
Runtime 2.2.4.357

Gamecube controller on Windows 10
 
Last edited:

Dan

GameMaker Staff
GameMaker Dev.
No custom mapping on my end. I've created a very simple demo project that can be downloaded here: https://www.dropbox.com/s/4p1denbotu7jrgb/Gamepads_test_runtime.yyz?dl=0

- The gamepad variables respond 100% correctly on the stable runtime but don't on the current beta.
- Both runtimes show that the gamepad is connected.
- This was tested with a PS4 and an 8bitdo SN30 controller on macOS.
- One potential outlier is that I'm running the stable IDE release while using the beta runtime...could that make any difference?

Let me know if you'd like me to make an official bug report for this. Thanks!
Your sample was "fluking" working with your specific gamepad, as it's hardcoded to look for input on pad index 0 only. Your code would not have worked with a wide variety of gamepads - and indeed, using a PS4 pad, your sample does not work for me on Windows in runtime 2.2.3, despite what you mentioned earlier.

You can download a fixed version of your sample here. This project works just fine with a selection of pads I have tried here (Windows), but I don't have the "bitdo SN30" pad you mention, so I can't guarantee that one - if that one definitely did work in 2.2.3, then I don't know why that one happened to stop working between 2.2.3 and 2.2.4, but I suspect that's due to the Steam pad mappings library being an updated version now.

However, macOS VM does seem to have an issue in 2.2.4, so I will get that fixed asap - when I have modified your sample to detect the pad properly, I can see that my PS4 pad is now being detected as a "iOS Standard Controller" and the face buttons are not being read correctly. My sample works properly in 2.2.3 and detects the pad as a PS4 Controller. macOS YYC works correctly, btw.


@chorrus Please review your code against my fixed sample linked above, see if you're doing the same thing. If so, please update your code accordingly.
 
Last edited:

Dan

GameMaker Staff
GameMaker Dev.

Dan

GameMaker Staff
GameMaker Dev.
For those of you with macOS gamepad issues in the last 2.2.4 betas, all okay now?

We are aware that without third-party drivers, many popular pads aren't detected by the native gamepad support in the OS (e.g., an Xbox One pad only works via bluetooth, it doesn't work over USB unless you install extra drivers), so just a heads-up that if you previously had to install drivers to make your pads work, then you very likely still need to do this even on Catalina.
 

JasonGames

Member
For those of you with macOS gamepad issues in the last 2.2.4 betas, all okay now?

We are aware that without third-party drivers, many popular pads aren't detected by the native gamepad support in the OS (e.g., an Xbox One pad only works via bluetooth, it doesn't work over USB unless you install extra drivers), so just a heads-up that if you previously had to install drivers to make your pads work, then you very likely still need to do this even on Catalina.
Thank you for following up. Yes! Gamepads are working 100% for me now.
 

Dan

GameMaker Staff
GameMaker Dev.
2.2.4 is now out (you should see the update notifications sometime today) and the Marketplace asset pages have been updated.
 
Status
Not open for further replies.
Top