OFFICIAL GMS2 2.3.2 Stable Release

Status
Not open for further replies.

Dan

GameMaker Staff
GameMaker Dev.
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

As ever, PLEASE check the Required SDKs FAQ before/during updating and ensure your antivirus/OS permissions are correct after you do the new install - User Permissions and Internet Access Required by GMS2 - before you submit any bug reports or post issues here.

You should post here if:
  • Something has changed between the previous version and this one, breaking your game (i.e.: code that worked previously now does not)
  • Something reported as fixed in the release notes is not actually fixed
  • You are having IDE or system issues related to something new in this update
  • You are having issues with new features introduced in this version
  • You are having issues updating to this version
  • Everything works and you want to tell us we are great (seriously, let us know if it all works correctly for you)
When reporting issues to the Helpdesk, please try to add as much information as possible, for example:
  • If the issue is with the IDE, then please give a screenshot if you can to help illustrate the problem
  • If there are error windows, then a link to the "ui.log" file found via the "Open Log in ..." Help menu command inside GMS2
  • If it is a code issue, then link to or attach a YYZ showing the most basic project possible which exhibits the behaviour
  • If you receive any error dialogues, please screenshot them
  • If it is a system issue (like compiling to a specific target) then please provide details of the PC being used as well as the software versions involved
Again: posting a comment in these release threads is not a replacement for filing a bug!


Release Notes

Runtime Release Notes


What's New In 2.3.2? Companion Helpdesk Post


Current Release - IDE v2.3.2.560 Runtime v2.3.2.426 (Apr 16, 2021)

Just the one change to fix runtime 423 stalls on game_end() or gc_collect() and the accompanying gradual increases in memory seen in some games


Updated Release - IDE v2.3.2.558 Runtime v2.3.2.423 (Apr 14, 2021) (Please update)

Note that you must update to the matching runtime 423 before you will get any of these changes. IDE 558 with runtime 420 would behave identically to IDE 556.
  • Fixed that if you tried to build iOS using the Windows IDE it could error with "The variable Xcode is not defined" (when the Mac IDE worked fine with that same Xcode install)
  • Fixed an issue stopping ARM builds of Ubuntu YYC
  • Fixed an issue where projects which contain a large number of audio files could fail to build
  • Added a compiler optimisation to speed up texture page generation during builds
  • Added a small optimisation to speed up loading projects
  • Fixed a CPU usage issue with the garbage collector, so now usage values should be much lower again on all platforms and also gives a slight performance boost compared to 2.3.1
  • Re-fixed that the Animation End event does not trigger reliably when the sprite frames and game speed result in very small values


Initial Release - IDE v2.3.2.556 Runtime v2.3.2.420 (Mar 31, 2021) (Please update)
 
Last edited:
How long does it take for the update to come over? My runtimes aren't updating :(

Edit: Just got the update!
 
Last edited:

Shut

Member
Updated my current project that is already quite big, everything is working fine with no issues at all. Thanks for the stable release!
 

HalRiyami

Member
  • camera_set_begin_script() and camera_set_end_script() now have support for manipulating your surfaces
Thank you for fixing this!
@Dan Just to clarify. Is it intentional that the camera_begin event targets the view's surface while camera_end event targets the back buffer by default? The latter requiring surface_set_target to draw to the view's surface.
 

dT_

Member
Writing Chunk... SPRT

Doesn't build at all, stucks on this line.

UPD: It works, but builds much longer, than it did on previous version.
 
Last edited:

dT_

Member
That's interesting, as they added some caching for many things :D
I should to mention that it happens at first time building, further buildings are extremely faster compared to previous versions. But first time building takes 50 minutes or more, previous versions take 10-20 minutes. I'm scared to imagine, how much will take YYC building, because YYC building on 2.2.5 take 50 minutes.
 
Last edited:

FoxyOfJungle

Kazan Games
Thank you very much for the update!
I look forward to testing. It's installing now, I will bring news if something goes wrong and if everything is ok. 🙂
 
There seems to be a little shady "bug" here.
If you look in the "All Instances" tab of the debugger, there's a strange toString() function there, for whatever reason? Am I missing something, or this is expected behavior?
Untitled.png


Edit: Playing around with it, when I do this
GML:
for(var i=0; i<_len; i++){
    _unit = unit_list[i];  
    var _wtf = _unit.toString();
    show_debug_message(string(_wtf));
}
I get this output:
Code:
{ x : 627, color : 16711680, y : 372, draw : "Warning: recursive struct found" }
 
Last edited:
There seems to be a little shady "bug" here.
If you look in the "All Instances" tab of the debugger, there's a strange toString() function there, for whatever reason? Am I missing something, or this is expected behavior?
If I remember correctly, objects are internally structs which means they have toString method which is built into any struct. It's what used implicitly if you did something like show_debug_message(string(some_struct)); It's not a bug, just not well known. Someone correct me if they can explain it better though.
 
If I remember correctly, objects are internally structs which means they have toString method which is built into any struct.
I can get they are "built-in struct methods", but I'm pretty sure they weren't there (in debugger) before (and there's no reason to), plus, it's probably not the only such "built-in struct method", so why would this one be showing, and not the others?!? This still seems strange.
 

Roldy

Member
Downloaded newer IDE.
Switch runtime to previous: 2.3.1.409
Seems fine except debugger fails.

Is this known? Can anyone confirm IDE v2.3.2.556 cannot debug runtime 2.3.1.409.
 

drandula

Member
Downloaded newer IDE.
Switch runtime to previous: 2.3.1.409
Seems fine except debugger fails.

Is this known? Can anyone confirm IDE v2.3.2.556 cannot debug runtime 2.3.1.409.
Seems that IDE wasn't updated, only runtime. You can see on top right corner of GMS which versions you are currently using. Both of them should start with 2.3.2.
 

Roldy

Member
@drandula Maybe I wasn't clear. I am intentionally using IDE v2.3.2.556 with runtime 2.3.1.409. This is accomplished by choosing the runtime via GMS2 preferences. I know 2.2.x runtimes are not compatible with 2.3.x IDE, but did not see any statement in release that IDE 2.3.2 would not be backwards compatible with runtime 2.3.1.

However, the problem seems to be with a specific project. I'll try to narrow it down.
 

MacGregory

Member
I installed version 2.3.2 and half of the scripts were sent to me and there were a lot of errors in the project, I rolled back to 2.3.1

how to revert the old version to 2.3.2? but now a lot of errors the project does not work !!!!

in 2.3.2 Scripts and Cycles have all been sent! the && sign is finally not recognized as end
 

gnysek

Member
in 2.3.2 Scripts and Cycles have all been sent! the && sign is finally not recognized as end
I managed to find out that "end" == "and" (this is crucial, as GMS have keyword "end" too), but what you mean by mentioning "cycles" and "sent"?
 

Jam373

Member
After upgrading I get a compile error saying my macros HEIGHT and WIDTH are already defined? Is this a bug, are those names taken or do I need to change where I define my macros now?

Edit: nvm I had the script defining them duplicated, and I guess the new version now cares about that
 

gnysek

Member
Roadmap now can be updated, as there's no more beta period :p

 
S

Sam (Deleted User)

Guest
I'm hoping selfishly 64-bit arm linux will be supported before GMS 3 when I'll likely need to pay again. But that won't be the end of the world if it happens. Thanks for all you are doing guys! These are great updates! I haven't installed yet but I'll let you guys know in an edit to this post if I run into any issues or not after upgrade.
 

Ricoh5A22

Member
If I disable the option to use the online manual, it downloads an outdated version (as point out in the manual_info.json file).

JSON:
{
  "English": {
    "LocalFilename": "GMS2-Robohelp-en.zip",
    "UrlFile": "GMS2-Robohelp-english-2.3.1.5.zip",
    "Signature": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "Version": "2.3.1"
  }
}
 
Ever since updating, my game has been getting a lot of volume level and sound repeating issues for HTML5. Some music wouldn't be stopped and some wouldn't play. The sound would be normal volume, but then it would hijack very loudly. Some sounds would be way too quiet as well. Could be just me, still investigating. It doesn't happen on Windows though.

Edit: Rolled back to v2.3.1 and it is still occurring.

Edit 2: Seems I found a workaround.
 
Last edited:

Zhanghua

Member
IDE BUG 2.3.2
If you create a new Tileset Layer and draw the tiles, the Tilemap can't be update to draw automatically.
(You should do this by yourself, the key operation is creating a new layer. if hide and show the layer or re-open the project, the problem will be normal.)

@Dan
 
Last edited:

ZigZag

Member
Anyone else having issues with iOS export from windows? I get the following error with a new empty project:

GML:
CreateiOSExecutable
RunCommandOnMac bash -l -c "xcode-select -p | sed 's/.app.*/.app/'"
bash -l -c "xcode-select -p | sed 's/.app.*/.app/'"
RunCommandOnMac bash -l -c "osascript -e 'tell app "Xcode" to quit'"
bash -l -c "osascript -e 'tell app "Xcode" to quit'"
9:14: execution error: The variable Xcode is not defined. (-2753)

System.Exception: Error running command 'bash -l -c "osascript -e 'tell app "Xcode" to quit'"', exitcode=1
9:14: execution error: The variable Xcode is not defined. (-2753)


   at ..(String , String , Boolean )
   at ..(String , String , YYDictionary`2 , String , Boolean , String , Boolean )
   at Igor.iOSBuilder.Package()
Igor complete.
elapsed time 00:00:10.9851175s for command "C:\ProgramData/GameMakerStudio2/Cache/runtimes\runtime-2.3.2.420/bin/Igor.exe" -j=8 -options="C:\GM2Assets\GMS2TEMP\build.bff" -v -- iOS Package started at 04/03/2021 19:47:42
"cmd"  /c subst Z: /d

elapsed time 00:00:00.0488969s for command "cmd" /c subst Z: /d started at 04/03/2021 19:47:53
"cmd"  /c subst Y: /d

elapsed time 00:00:00.0389779s for command "cmd" /c subst Y: /d started at 04/03/2021 19:47:53
"cmd"  /c subst X: /d

elapsed time 00:00:00.0379766s for command "cmd" /c subst X: /d started at 04/03/2021 19:47:53
FAILED: Package Program Complete
For the details of why this build failed, please review the whole log above and also see your Compile Errors window.
No idea why this is happening:
execution error: The variable Xcode is not defined.
All worked fine with previous stable release, any help is very much appreciated.


Sincerely
 

chamaeleon

Member
Double quotes around Xcode need to be escaped to prevent the string from being split up around that word. Why this has changed our how it is different from previous releases I have no idea, I have no interest in Apple products. In any case, a temporary fix may be to edit some build file in the runtime directory somewhere, similar to how a bug for raspberry pi builds can be circumvented until fixed properly.
 

Khao

Member
Ran into a weird issue. My game works perfectly fine after the update, except for one visual bug that I just can't figure out.

Whenever one of my multiple playable characters has a jumping animation that contains only one frame, the game alternates between that frame and nothing at all. Like every frame. Almost as if there was an empty frame in the sprite, but there absolutely isn't. This doesn't happen when there's multiple frames in the animation, where the animation just plays normally.

I'd normally assume that this is due to some unexpected quirk in my code, but this has never happened before with any other version and I haven't touched the code that deals with either jumping or animations in ages. I can't even think of a reason for this.
 

Roldy

Member
Ran into a weird issue. My game works perfectly fine after the update, except for one visual bug that I just can't figure out.

Whenever one of my multiple playable characters has a jumping animation that contains only one frame, the game alternates between that frame and nothing at all. Like every frame. Almost as if there was an empty frame in the sprite, but there absolutely isn't. This doesn't happen when there's multiple frames in the animation, where the animation just plays normally.

I'd normally assume that this is due to some unexpected quirk in my code, but this has never happened before with any other version and I haven't touched the code that deals with either jumping or animations in ages. I can't even think of a reason for this.
Most likely it is going to be 'a quirk' in your code. Sprite animation had subtle (and erroneous) changes in 2.3 and changed again in 2.3.2:
  • Following recent GMC feedback, modifying image_index manually to set new values will not modulo the resulting image_index value until the following frame (as 2.2.5-and-older used to do it)
  • Now, you will NOT get any sprite broadcast message(s) if you set image_index directly
  • Animation End events will still be fired as before if you set image_index to the final frame or beyond, there's no change here
If you took that same animation and put it into a new empty object (no GML code), does it exhibit the same behavior. If not then what you are seeing is most likely due to some piece of your code dealing with your objects. If it did show the same thing then the problem may be internal to GMS but more likely not.
 

Khao

Member
Most likely it is going to be 'a quirk' in your code. Sprite animation had subtle (and erroneous) changes in 2.3 and changed again in 2.3.2:
  • Following recent GMC feedback, modifying image_index manually to set new values will not modulo the resulting image_index value until the following frame (as 2.2.5-and-older used to do it)
  • Now, you will NOT get any sprite broadcast message(s) if you set image_index directly
  • Animation End events will still be fired as before if you set image_index to the final frame or beyond, there's no change here
If you took that same animation and put it into a new empty object (no GML code), does it exhibit the same behavior. If not then what you are seeing is most likely due to some piece of your code dealing with your objects. If it did show the same thing then the problem may be internal to GMS but more likely not.
Just figured it out. Absolutely a quirk in my code hahaha. My animation_end event sets image_index to image_number-4 when jumping. When sprites have a single frame, this leads to image_index = -3.

Weird that it worked before this update though. It's kinda weird that a negative image_index results in an empty image altogether, I'd assume it'd work the same as when you go beyond the frame number. Not too sure if this behaviour is intended. At the very least, it's certainly not how it worked up until 2.3.2.

Either way, it has a simple fix: don't let image_index go into negatives.
 

ZigZag

Member
Double quotes around Xcode need to be escaped to prevent the string from being split up around that word. Why this has changed our how it is different from previous releases I have no idea, I have no interest in Apple products. In any case, a temporary fix may be to edit some build file in the runtime directory somewhere, similar to how a bug for raspberry pi builds can be circumvented until fixed properly.
Thank you for the reply, I have tried several things, but found no solution to this. The only thing which worked for me is installing GMS2 on my Mac and exporting from there, quite anoying.
 

chamaeleon

Member
Thank you for the reply, I have tried several things, but found no solution to this. The only thing which worked for me is installing GMS2 on my Mac and exporting from there, quite anoying.
There's a file C:\ProgramData\GameMakerStudio2\Cache\runtimes\runtime-2.3.2.420\interpreted\mac\bin\quitxcode.sh that contains
Code:
osascript -e 'tell app "Xcode" to quit'
Maybe it would be worthwhile trying to change it to
Code:
osascript -e 'tell app \"Xcode\" to quit'
and see if this does the right thing.. Can't tell if this is in fact the file used in your case or if it just looks the same, but worth a try?

Yes, if this was just plainly executed by a bash shell it wouldn't be necessary due to the single quotes, but it looks like this is treated as a string, and inserted into a double quoted string, turning the single quotes into characters instead of string delimiters.
 

markysoft

Member
physics collision mapping has changed, and is inconsistent between desktop and web.
I'm binding a physics fixture to tiles by looping through the tilemap, creating an empty object and setting a physics fixture depending on the tile id.

I have a 'top girder' that occupies a 32x32 sprite with 8 pixels of 'space' at the bottom. Previously I was creating a box based on the size of the girder, then offsetting it:

GML:
girder_top_fixture = physics_fixture_create();
physics_fixture_set_box_shape(girder_top_fixture, 16, 12)
// later when setting from the tilemap loop
var pid = instance_create_layer((i * 32) + 16,(j * 32) + 16, "Instances_1", obj_nowt)
physics_fixture_bind_ext(girder_top_fixture, pid, 0, -4)
This gives the wrong shape on desktop, like it's ignoring the y offset on the bind ext, so my objects sink in to the floor of the girder. The exact same code works OK on HTML5 though.

I resolved the problem by changing the box to a polygon, so I didn't have to use the y offset of -4, which seems to be the problem part:

GML:
girder_top_fixture = physics_fixture_create();
physics_fixture_set_polygon_shape(girder_top_fixture);
physics_fixture_add_point(girder_top_fixture, -15,-15);
physics_fixture_add_point(girder_top_fixture, 15,-15);
physics_fixture_add_point(girder_top_fixture, 15,4);
physics_fixture_add_point(girder_top_fixture, -15, 4);
set_fix_props(girder_top_fixture)
// the when setting from the tilemap loop
var pid = instance_create_layer((i * 32) + 16,(j * 32) + 16, "Instances_1", obj_nowt)
physics_fixture_bind(girder_top_fixture, pid)
Maybe I'm doing something wrong, but it's aggravating that an update changed behaviour, and the behaviour is different between web and desktop.

Happy to send my small project to the bug report system, but I don't have time to create a simplified version.
 

ZigZag

Member
There's a file C:\ProgramData\GameMakerStudio2\Cache\runtimes\runtime-2.3.2.420\interpreted\mac\bin\quitxcode.sh that contains
Code:
osascript -e 'tell app "Xcode" to quit'
Maybe it would be worthwhile trying to change it to
Code:
osascript -e 'tell app \"Xcode\" to quit'
and see if this does the right thing.. Can't tell if this is in fact the file used in your case or if it just looks the same, but worth a try?

Yes, if this was just plainly executed by a bash shell it wouldn't be necessary due to the single quotes, but it looks like this is treated as a string, and inserted into a double quoted string, turning the single quotes into characters instead of string delimiters.
I worked with that file before and tried different things, but always getting the same error. Now I tried your suggestion and again getting exactly the same error as above :confused:
So I think this is not the file where the fix should be done, but with a search I can not find any other file with this string, so no idea what to do.

Thank you for the suggestions, very much appreciated :)
 
S

Sam (Deleted User)

Guest
For the absolute longest time there was an issue with how GMS internally handles Win32 window styles in such a way it made changing the window styles with extensions nearly impossible, as the window would glitch out like crazy getting bigger and bigger without stopping until it reached the display size limit, and there was no obvious workaround to this oddity.

I haven't verified which version introduces this, but i do know this is the most recent version of GMS I tried that doesn't have this problem anymore, and I was able to toggle borderless mode with my extension as I would normally in an ordinary C++ project--which is great! My question for @Dan is, did you guys intentionally fix this issue (I am one among several who I think may have reported it) or was it a happy accident? In either case, PLEASE don't change your internal handling of the window border related stuff on Windows, my extensions can actually work now, and I'm really crossing my fingers hoping it will stay working for the long term this time. :D


This is a particular asset that when unofficially supported through extensions and not a built-in feature, for whatever reason it gets flaky and stale pretty fast. Apart from video support, this is one of the very few features a lot of people really miss from legacy GM versions. I'd love to submit a suggestion it gets added to GameMaker, but from past experience I'm a little hesitant to get my hopes up. Whether a task is big or small, no matter how much demand there is, if YoYo finds any reason in their mind it won't be worth it, it could take a lot of years to happen, or ideally, never. There certainly has been a turning point with a lot of stuff you guys did recently I very much appreciate--such as Raspberry Pi and 64-bit Windows support, Sequences, inline functions--these are all very great things to have.

The only thing missing at this rate is built-in cross-platform borderless toggle and *ahem* non-broken and fully implemented file browser dialogs on Windows (stay on top of game window), MacOS (multiple file filter popup-box in the accessory view), and at the very least GTK+ Linux if you guys don't want to use my implementation that runs zenity from the shell.

That's pretty much all I'm missing in GameMaker that other engines already have. Pretty please with a cherry on top? :D This doesn't replace a helpdesk ticket, but iirc I already made one for these things about a decade ago when GM because GMS. Not all that encouraged. Although, still very happy with what you guys have done up until now, so don't take this as a huge complaint! You rock!
 

rologfos

Member
I submitted a bug report for this already but just in case this is relevant info for image_index related discussion:
Currently if a sprite has 5 frames and runs at 20fps it will not trigger the animation end event.
Ran into this a bunch of times in my game after updating to 2.3.
I wonder what other frame count/fps combinations line up in a way that causes this.
 

Roldy

Member
I submitted a bug report for this already but just in case this is relevant info for image_index related discussion:
Currently if a sprite has 5 frames and runs at 20fps it will not trigger the animation end event.
Ran into this a bunch of times in my game after updating to 2.3.
I wonder what other frame count/fps combinations line up in a way that causes this.
That is an interesting one. I can only reproduce it when the room speed is 60. With any other room speed then the animation end event is called e.g. 20, 30, 59, 61, 90, 120 etc..
 

rologfos

Member
That is an interesting one. I can only reproduce it when the room speed is 60. With any other room speed then the animation end event is called e.g. 20, 30, 59, 61, 90, 120 etc..
Wow fascinating! Thanks for looking into it further. That's so strange that the room speed also has to be at 60, I didn't think to change that.
 

rwkay

GameMaker Staff
GameMaker Dev.
Please file bugs and attach a project that illustrates the problem, please make the project as simple as you can make it (the bigger the project, the more time it takes to work out what the problem actually is).

To File a bug start GMS2 then go to Help -> Report a bug (it will then open a web browser and you should be able to file a bug there).

I am particularly interested in the Animation End event issues so if you have something that shows that we would like to see that, though all bugs are of interest

@Samuel Venable - I did rearrange some of the window style code during the last version Beta period, good to get some feedback that it is working.

Russell
 

Dimadim

Member
In the collision mask settings, reduce the collision rectangle, but when you turn on the nine slice and stretch the picture, the collisin mask becomes smaller. I wanted to remove the collision rectangle from all sides by 5 pixels, but when I stretch the picture, the collision becomes smaller.
It turns out that I cannot use nine slice if I change the collision mask manually.
 

rwkay

GameMaker Staff
GameMaker Dev.
@Dimadim - please file a bug with an example project and we will take a look at what is happening there...

Russell
 

Shut

Member
So, I kind of got back to tilesets with my project after working on other stuff meanwhile.. and unfortunately the bug that I reported 4 months ago is still present in the latest stable.

Ticket id: #178027

Description: Every time I update the sprite of a tileset and run the game it fails to draw until I check/uncheck disable source sprite export each time.

:/

Also, submitted 2 feature requests that I really hope to see in future updates.
 

clee2005

Member
Anyone else having issues with iOS export from windows? I get the following error with a new empty project:

GML:
CreateiOSExecutable
bash -l -c "osascript -e 'tell app "Xcode" to quit'"
9:14: execution error: The variable Xcode is not defined. (-2753)

System.Exception: Error running command 'bash -l -c "osascript -e 'tell app "Xcode" to quit'"', exitcode=1
9:14: execution error: The variable Xcode is not defined. (-2753)
Hi @ZigZag. Did you figure anything out or log a ticket for this? I haven't moved to the update yet, but iOS not working would be a major problem for us.
 
Status
Not open for further replies.
Top