• 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.

OFFICIAL GMS2 Version 2.1.5

rmanthorp

GameMaker Staff
Admin
GameMaker Dev.
Release Notes

Runtime Release Notes


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 http://www.yoyogames.com/bug

You should post here if:
  • Something has changed between the previous version and this one, breaking your game (ie: 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, 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 in the ProgramData folder for GMS2
  • If it is a code issue, then link to or attach a YYZ showing the most basic project possible which exhibits the behavior
  • 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!
 
J

joakimFF

Guest
Fantastic news! does that mean the Switch open beta is now live?

Scratch that, just found it in the developer portal wooo!
 
Last edited by a moderator:

rIKmAN

Member
Good stuff Ross, thanks.

In the "General" section of the Runtime Release Notes it lists "Fixed various issues with Spine collisions", but I can't find anything specific in the fixes list or Mantis changelog other than the new licencing popup and the sprite preview window fix when loading json files one after the other.

Any idea what the actual issues/fixes were?
 

rmanthorp

GameMaker Staff
Admin
GameMaker Dev.
Good stuff Ross, thanks.

In the "General" section of the Runtime Release Notes it lists "Fixed various issues with Spine collisions", but I can't find anything specific in the fixes list or Mantis changelog other than the new licencing popup and the sprite preview window fix when loading json files one after the other.

Any idea what the actual issues/fixes were?
The issue there was the Fast Collisions were not handling Spine collisions properly at all… so this was fixed, as part of that there were several issues that had to be fixed once that was fixed. Spine collisions should now be fixed with the default GMS collision system (i.e. Fast Collisions).
 

JeffJ

Member
I can vouch for that out of firsthand experience. This was one of those pesky bugs giving Russell and I a world of trouble.

Also, having gotten Switch devkit way back in march, I'm super excited to finally cross the one final remaining barrier: getting into that beta.

Good news - thank you.
 
B

basement ape

Guest
This function throws an error at me now:

Code:
collided_list = collision_rectangle_list(x-32, y-56, x+30, y, obj_chr);

Script: Chr_Update at line 2041 : wrong number of arguments for function collision_rectangle_list
I see it's got a couple of new arguments; list and ordered. What do they do? Can I just feed them zero?

[EDIT] Oops, nevermind. I had some custom scripts in there that I forgot about.
 
Last edited by a moderator:

gnysek

Member
OK, I found first bug (maybe a feature in your opinion).

GMS2 now requires to use ASSIGMENT operator in "FOR" loops. I was using previous behaviour in my "foreach" engine - https://marketplace.yoyogames.com/assets/6054/foreach-loop , and now it's not working anymore. I used the fact, that you just need to put any statement in any of 3-parts of for-loop. As docs says:
Code:
for (<statement1> ; <expression> ;<statement2>) <statement3>
it was possible to write:
Code:
for(1; 1; 1) { ... }
and this code was valid, even if it caused infinity loop. This could be used in favor, to put scripts instead of statements/expressions, and for-loop was executed as long, as "expression" (middle argument) was true. Now first statement need to be some kind of assigment, sadly.
You can read more about how it was working here: https://gnysek.github.io/docs/foreach/index.html
 
Collision list functions are nice.

Small issue in the documentation. For the new function instance_place_list, the ordered argument is described wrong, the description for the "ordered" argument reads: "Whether the calling instance, if relevant, should be excluded (true) or not (false)." I am assuming it should not talk about excluding instances, but say: "Whether the list should be ordered by distance (true) or not (false)." as it is with instance_position_list.

Not big issue, but did throw me for a loop for a second, and I thought I'd mention it.
 

acidemic

Member
With the new runtime 2.1.5.246 when I try to ryn my game both in VM/YYC compiler crashes and I get an AssetCompiler error message box which says "Index was outside the bounds of the array". I switched back to runtime 2.1.4.218 and everything runs smoothly there.
 

rmanthorp

GameMaker Staff
Admin
GameMaker Dev.
OK, I found first bug (maybe a feature in your opinion).

GMS2 now requires to use ASSIGMENT operator in "FOR" loops. I was using previous behaviour in my "foreach" engine - https://marketplace.yoyogames.com/assets/6054/foreach-loop , and now it's not working anymore. I used the fact, that you just need to put any statement in any of 3-parts of for-loop. As docs says:
Code:
for (<statement1> ; <expression> ;<statement2>) <statement3>
it was possible to write:
Code:
for(1; 1; 1) { ... }
and this code was valid, even if it caused infinity loop. This could be used in favor, to put scripts instead of statements/expressions, and for-loop was executed as long, as "expression" (middle argument) was true. Now first statement need to be some kind of assigment, sadly.
You can read more about how it was working here: https://gnysek.github.io/docs/foreach/index.html
This was a bug fix as supposedly valid GML (which were not valid at all, just the compiler allowed it) were being accepted and generated incorrect C++ and Javascript - but they were not true valid GML in the first place, it was a compiler bug.
 

gnysek

Member
This was a bug fix as supposedly valid GML (which were not valid at all, just the compiler allowed it) were being accepted and generated incorrect C++ and Javascript - but they were not true valid GML in the first place, it was a compiler bug.
How it was invalid, if I used it for 10+ years in GML, even before GMS2?

Also, its valid for both JS and C++:

C++ ( run online here: https://onlinegdb.com/SJNBy2xBQ ):
Code:
int main()
{
    int i = 0;
    for(i; i<3; i++) {
        cout<<i;
    }

    return 0;
}
JS ( run online here: https://jsfiddle.net/gnysek/dzy8fwej/ ):
Code:
let i = 0;
let r = document.getElementById('r');
for (i; i < 3; i++) {
  r.innerHTML += i;
}
 

FrostyCat

Redemption Seeker
It appears from the runtime release notes that 32-bit binaries are still on the iOS export, and Android API 26 adaptive icons are still unsupported. If I'm not mistaken, this means the Mobile export is still useless for production.

Please make a follow-up release containing the iOS 64-bit-only and Android API 26 adaptive icon patches ONLY, as soon as possible. Make it in 2 separate runtime updates, if one takes much longer than the other to fix. Professional users with products being unshelved from mobile app stores because of this need the fix NOW, they don't want it half a year down the road bundled with other small fry.
 

rmanthorp

GameMaker Staff
Admin
GameMaker Dev.
How it was invalid, if I used it for 10+ years in GML, even before GMS2?
That was how I understood the fix. Let me check and get back to you.

EDIT:
You could specify other things that were incorrect and generated bad code.

It was suggested to use while( 1 ) { } to achieve the same thing.
 
Last edited:

Amon

Member
Woah! I'm noticing a major improvement in speed and responsiveness when using the IDE. In fact, it is quite substantial so much so that it gave me a little shock. lol. I'm going to continue my project now and put the new IDE and runtimes through some testing but overall I am very happy with the IDE responsiveness and Loading times.
 

gnysek

Member
That was how I understood the fix. Let me check and get back to you.

EDIT:
You could specify other things that were incorrect and generated bad code.

It was suggested to use while( 1 ) { } to achieve the same thing.
Still, even after that fix it shows error only if there's variable as first argument, not when script (but compiler correctly shows error for both):

upload_2018-8-2_18-35-55.png

Can't use while(1), as it won't allow me to put only scripts as arguments to for-loop, like:

upload_2018-8-2_18-37-16.png

Which allows to make a mimic of foreach-loop in GMS2 :) Of course there's a solution - I just need to write var i=a(); as first argument, and all seems to work, already fixed it in my game this way.
 

Dan

GameMaker Staff
GameMaker Dev.
Just to confirm, 2.1.5 already has 64bit-only iOS packages - there was a mistake with the release notes and that got left out, so we've fixed that just now.

As for the adaptive icons, we have just identified a way to add the icons into packages built with 2.1.5, so there will be a FAQ on how to achieve this published tomorrow morning. The next GMS2 release will then, of course, add this support in directly.
 

YellowAfterlife

ᴏɴʟɪɴᴇ ᴍᴜʟᴛɪᴘʟᴀʏᴇʀ
Forum Staff
Moderator
This was a bug fix as supposedly valid GML (which were not valid at all, just the compiler allowed it) were being accepted and generated incorrect C++ and Javascript - but they were not true valid GML in the first place, it was a compiler bug.
How it was invalid, if I used it for 10+ years in GML, even before GMS2?
I've first-hand experience with what this means, if you use a GML statement that produces multiple JS statements, the output can be like
Code:
for ({
    act1;
    act2;
}; cond; post) things
which is invalid JS because the initializer is now mistaken for an object literal due to being an expression by spec.

However, it's totally fine to have function calls (or other non-statement expressions) in there. The measures are slightly excessive and it could be solved without affecting the existing code by moving "suspicious" expressions out of the for-loop "upwards" (enclosing the entire thing in {}) - GML has no block scoping so there are no side effects to that.
 

Toque

Member
It appears from the runtime release notes that 32-bit binaries are still on the iOS export, and Android API 26 adaptive icons are still unsupported. If I'm not mistaken, this means the Mobile export is still useless for production.

Please make a follow-up release containing the iOS 64-bit-only and Android API 26 adaptive icon patches ONLY, as soon as possible. Make it in 2 separate runtime updates, if one takes much longer than the other to fix. Professional users with products being unshelved from mobile app stores because of this need the fix NOW, they don't want it half a year down the road bundled with other small fry.
iOS export is not 64-bit right now?
The only reason I moved to GMS was to do mobile.
But I’ve played GMS2 iOS releases that have posted on the forum. Must be 64-bit??
 

gnysek

Member
However, it's totally fine to have function calls (or other non-statement expressions) in there.
Not in GML anymore.

------

Another question/observation:

There are new collision masks types (Rectangle / Rectangle with rotation). I understand, that rectangle is always a not-rotated rectangle (but x/yscale apply to it), and "Rectangle with rotation" takes image_angle into account.

However, in my game, it seems, that "Rectangle" setting also takes image_angle into account, so... what's the difference then ? From my test both behave same (as I want).

upload_2018-8-2_18-54-1.png
 
D

Dawn

Guest
After the update I need to double click an event of an object to open the script and I cannot find the option to change it back in the preference. How do I fix this?
 

Cpaz

Member
It seems that this new update broke collision events. That or they work differently now.
Also the IDE seems to freeze if I alt tab windows.
 

GMWolf

aka fel666
Not in GML anymore.

------

Another question/observation:

There are new collision masks types (Rectangle / Rectangle with rotation). I understand, that rectangle is always a not-rotated rectangle (but x/yscale apply to it), and "Rectangle with rotation" takes image_angle into account.

However, in my game, it seems, that "Rectangle" setting also takes image_angle into account, so... what's the difference then ? From my test both behave same (as I want).

View attachment 19921
Yes I've used rotated rectqrect collisions in a few projects with no issues.
Indeed, what is the difference?
 

acidemic

Member
Hey, please file a bug report with the project here: https://accounts.yoyogames.com/contact-us#ingame
I filed a bug. I did some tests on my PC and it seems the problem is in the "C:\ProgramData\GameMakerStudio2\Cache\runtimes\runtime-2.1.5.246\bin\GMAssetCompiler.exe". After I replaced this exe file with the one from previous runtime version, the problem gone.

Seems that the new asset compiler crashes when it's processing sounds, but I am not sure of that.

Screenshot:
error_screen.jpg
 
Yes I've used rotated rectqrect collisions in a few projects with no issues.
Indeed, what is the difference?
I'm not quite sure how you are doing rotated rectangle collisions. It doesn't work for me with the rectangle mask. It does rotate correctly with the new collision mask.

Runner 2018-08-02 10-10-39-146.jpg

I can't show a picture of the new collision mask type, since my method here of displaying them is just drawing a rectangle (what I use in nearly all cases), but I tested the collisions and can confirm that at least now, for me, with this specific setup, that the two events are different in the way intended.

But @GMWolf and @gnysek seem to have a different experience. Maybe full image works or something? I don't know. Or maybe it's changed (but I definitely had this problem before so...) Some elucidation might be nice.
 

GMWolf

aka fel666
But @GMWolf and @gnysek seem to have a different experience. Maybe full image works or something? I don't know. Or maybe it's changed (but I definitely had this problem before so...) Some elucidation might be nice.
Maybe the feature was removed, before now being introduced again?
I think I made use of it in my platformer tutorial.
 
A

Aes

Guest
Hello. I've been experiencing some things that are rather weird with Game Maker Studio 2 today, since I updated the program It's very slow and opens to a white screen (and then the whole interface loads) and I can't run any of the games! Not even the YoYo Games demos. Is there any fix regarding this issue?
 
M

MarceloP

Guest
Not in GML anymore.

------

Another question/observation:

There are new collision masks types (Rectangle / Rectangle with rotation). I understand, that rectangle is always a not-rotated rectangle (but x/yscale apply to it), and "Rectangle with rotation" takes image_angle into account.

However, in my game, it seems, that "Rectangle" setting also takes image_angle into account, so... what's the difference then ? From my test both behave same (as I want).

View attachment 19921
As mentioned by @Cloaked Games, this seems to be a feature for collision itself. Before (now on Rectangle only option) your collision would be detected by a non-rotated rectangle always, this non-rotated rectangle would only scale based on the x and y components of your collision mask, like a non-rotatable box superscribed your sprites mask (as shown on @Cloaked Games pics).

This rotated rectangle seems to take in account the image angle when actually detecting the collision, meaning that it will ignore those areas of the superscribed rectangle that are not part of your rectangle when colliding. This is really nice ^_^
 
Last edited by a moderator:
1

1BusyGuy

Guest
Release Notes

Runtime Release Notes


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 http://www.yoyogames.com/bug

You should post here if:
  • Something has changed between the previous version and this one, breaking your game (ie: 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, 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 in the ProgramData folder for GMS2
  • If it is a code issue, then link to or attach a YYZ showing the most basic project possible which exhibits the behavior
  • 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!
 

Andrey

Member
It seems that the model audio_falloff_set_model does not work. Sounds do not decrease in space.
Did someone notice a similar with 3d sounds?

ps.: :mad: From the update to the update, the audio engine just breaks! OMG!
 
Last edited:
A

afK47

Guest
With the new version, I'm getting this error for all my sprites. You can see the screenshot I added.



Due to this the project's running but with all sprites missing (things like lines drawn by code still show up). The console error only happens once after I add or edit a sprite, but the issue of not seeing them when I run the project happens every single time. I've tried closing and reopening GMS2 and rebooting my PC, but nothing helped. I'll try to reinstall this version and reinstall an older version to see if that solves it.

I'm also able to reproduce this by just creating a new empty project, adding any sprite and trying to run it. I get that this isn't happening to other people, or at most it's happening to them for very few sprites, but for me it's affecting me globally.
 

Smiechu

Member
WOW! Thank you very much! My v-sync bug ticket was never replied, it's not present in the mantis and/or release notes, but it's actually resolved with this release! Thanks!
 

Smiechu

Member
With the new version, I'm getting this error for all my sprites. You can see the screenshot I added.



Due to this the project's running but with all sprites missing (things like lines drawn by code still show up). The console error only happens once after I add or edit a sprite, but the issue of not seeing them when I run the project happens every single time. I've tried closing and reopening GMS2 and rebooting my PC, but nothing helped. I'll try to reinstall this version and reinstall an older version to see if that solves it.

I'm also able to reproduce this by just creating a new empty project, adding any sprite and trying to run it. I get that this isn't happening to other people, or at most it's happening to them for very few sprites, but for me it's affecting me globally.
Have you cleaned the cache folder after new update??
 
S

Sam (Deleted User)

Guest
I hope this fixes my issues with running and building my projects from the Mac IDE.
 

John Bailey

Member
So the update seems to have broken my scipt-based state system. In my state system I have a dodge-roll state which used to work whether the player was moving or not, but now it doesn't work if the player is idle/not moving, and won't work at all if the sprite assigned to sprite_index only has one image frame. After doing some experimenting, my guess is the image_index function is bugged in some way?

EDIT: It seems animation definitely isn't working correctly if the sprite only has one image frame. Could possibly be an issue with image_index, animation itself, or the animation end event.

EDIT 2: I've reported this as a bug, hopefully it gets fixed soon.
 
Last edited:
A

afK47

Guest
If you refer to
ProgramData/GameMakerStudio2/Cache/
then yes, I've tried deleting that. I'm still experiencing sprite errors.
I'm also seeing similar issues reported on the GMS subreddit, under the new version post.

Edit: Reinstalling fixed the issue. I started to get "Access to path denied" errors but that's because I had to re-enable running as Admin after reinstalling.
 
Last edited by a moderator:

gnysek

Member
OK, so I've made another test, one sprite have collision set to rectangle, and one to rectangle+rotation. In this test, there's a circle object, which have gravity set to 0.5. No matter what "collision type" is set, when instance have image_angle changed, both collision masks rotates (as in 2.1.4).

upload_2018-8-2_23-24-40.png


You can download this example here - https://www.dropbox.com/s/ckj1qs09sqaqeg9/rectangle_collisions.yyz?dl=0, and I'm reporting it as a bug.

Edit: in bug report form, it's still 2.1.4...
 
G

Ghoster

Guest
I was coding for most of the afternoon on the previous version and everything was fine... But then I updated and after the update many sprites aren't being drawn, not only from objects but also background layers in some rooms.
I tried going back but it now seems the issue is also occurring on the previous version.
As far as I can tell there's no errors. I have checked every object variable I could think of that might make it so the sprite isn't drawn and if shaders were running, all I could come up with but so far I can't pin-point the cause...
 

Khao

Member
So there's new collision functions, but did the previous collisions change in any way? Because they're not behaving like they used to. My character has different states depending on whether or not it's colliding with the floor, and that affects both its animations and the actions it can perform. Before the update, it worked fine. With the newest update, the character changes states constantly (from standing to jumping) while running forward, as if it was getting pushed away from the floor for a few frames. A huge chunk of the code relies almost entirely on collision_line, if that's relevant.

EDIT: Something stranger is going on here. I installed 2.1.4 once again and the problem persists. I opened an older version of the project in 2.1.4, and the problem persists. I never had this issue before, but now it's as if the code never worked in the first place.

EDIT 2: Never mind that, I was still using the 2.1.5 runtime, so yes, this new update simply broke collisions in my project.
 
Last edited:
L

Ludorverr

Guest
Love the collision list functions, very much appreciated.

After the update I need to double click an event of an object to open the script and I cannot find the option to change it back in the preference. How do I fix this?
I hope this is taken seriously despite it seeming like such a minor thing. This was one of the changes from 1.4 I thought was great. You have to use the mouse to double-click on everything all day every day, it's tedious and it only makes sense that the very basics of use should be simplified. We're going backwards now.
 
Love the collision list functions, very much appreciated.


I hope this is taken seriously despite it seeming like such a minor thing. This was one of the changes from 1.4 I thought was great. You have to use the mouse to double-click on everything all day every day, it's tedious and it only makes sense that the very basics of use should be simplified. We're going backwards now.
I don't think it will change as it was done to fix a defect:
  • Object Editor: Changed opening events to require double-clicks - fixes issues with single-click to select the event changing focus to the script and causing event copy/paste/delete workflow problem
 
D

Dawn

Guest
  • Object Editor: Changed opening events to require double-clicks - fixes issues with single-click to select the event changing focus to the script and causing event copy/paste/delete workflow problem
That's on the level of Google removing backspace in Chrome. Nice job making the UI worse than it was.
 
OK, so I've made another test, one sprite have collision set to rectangle, and one to rectangle+rotation. In this test, there's a circle object, which have gravity set to 0.5. No matter what "collision type" is set, when instance have image_angle changed, both collision masks rotates (as in 2.1.4).

View attachment 19926


You can download this example here - https://www.dropbox.com/s/ckj1qs09sqaqeg9/rectangle_collisions.yyz?dl=0, and I'm reporting it as a bug.

Edit: in bug report form, it's still 2.1.4...
I'm getting similar results, rectangle and rectangle+rotation gives the same results when I rotate an object.

However, for me, the results seem to vary based on the collision function used.

If I use place_meeting() function, the collision is based on the non-AABB collision box.

If I use collision_point_list() function on the same object, the collision is based on the AABB rectangle, the same as you would get if you used the bbox_ variables.

I checked the docs for the two functions, they both say that if you are not using precise collisions, the functions will default to the bounding box.

However, as I mentioned above, place_meeting() uses the new non-AABB rectangle if the instance is rotated, where collision_point_list seems to use the old bounding box AABB method.

Not a deal-breaker for me, just interested to know if this is intended or not.
 
That's on the level of Google removing backspace in Chrome. Nice job making the UI worse than it was.
I didn't know Chrome removed that feature! I used to use it a lot.

I like the change myself, it was a headache when I wanted to edit an event and would click on the object and the IDE would jump straight to the code window.

As I am making an editor myself, I understand the frustration when IDE behaviours change, my end users always complain if I make a change that I think is for the better, but it breaks what they are used to doing and have to relearn what to do.

Perhaps log a bug report / suggestion to add an option in preferences to choose which method to use. Maybe they will be able to figure out a way to do it without re-introducing the bug that this change fixes.

EDIT : Sorry for double-post!
 
Perhaps log a bug report / suggestion to add an option in preferences to choose which method to use. Maybe they will be able to figure out a way to do it without re-introducing the bug that this change fixes.
Yeah, there would definitely need to be found a different way to fix the problem if they allowed this. Otherwise people switching back to the single-click could then start raising bugs again for the focus issue. I suspect it would end up as a low priority because a double-click is not really much more effort over a single click (at least that's my opinion).
 
Top