OFFICIAL GMS2 Version 2.3.1 (Full Release)

Status
Not open for further replies.

xDGameStudios

GameMaker Staff
GameMaker Dev.
Now when I exit out of fullscreen mode and run my script for resizing the window, it gets stuck in some kind of loop of resizing the window, causing it to get really big and constantly flash.

My script for resizing the window:

GML:
function scr_ScreenMode() {
    if (global.display_mode = 0)
        {
        window_set_fullscreen(false);
        if global.dos_aspect_ratio = 0
            {
            window_set_size(320,200);
            surface_resize(application_surface,320,200);
            }
        if global.dos_aspect_ratio = 1
            {
            window_set_size(320,240);
            surface_resize(application_surface,320,240);
            }
        }
    if (global.display_mode = 1)
        {
        window_set_fullscreen(false);
        if global.dos_aspect_ratio = 0
            {
            window_set_size(640,400);
            surface_resize(application_surface,640,400);
            }
        if global.dos_aspect_ratio = 1
            {
            window_set_size(640,480);
            surface_resize(application_surface,640,480);
            }
        }
    if (global.display_mode = 2)
        {
        window_set_fullscreen(false);
        if global.dos_aspect_ratio = 0
            {
            window_set_size(1280,800);
            surface_resize(application_surface,1280,800);
            }
        if global.dos_aspect_ratio = 1
            {
            window_set_size(1280,960);
            surface_resize(application_surface,1280,960);
            }
        }
    if (global.display_mode = 3)
        {
        if global.dos_aspect_ratio = 0
            {
            window_set_fullscreen(true);
            surface_resize(application_surface,1280,800);
            gpu_set_tex_filter(true);
            }
        if global.dos_aspect_ratio = 1
            {
            window_set_fullscreen(true);
            surface_resize(application_surface,1280,960);
            gpu_set_tex_filter(true);
            }
        }
    }
Also, it keeps giving me errors when I try to load my game and run a DS Map check for my objects since I'm storing their state in the save file. The specific error for pretty much every object is:

ds_map_find_value argument 1 incorrect type (undefined) expecting a Number (YYGI32)

I have the following code in the creation event of each object that I want to change the state of:

GML:
key = scr_GameStateGetKey();
var _game_state = ds_map_find_value(ctrl_GameState.game_state,key);
if(!is_undefined(_game_state) && _game_state==false)
    instance_destroy();
else
;
ctrl_GameState Create event:
GML:
/// @description Create DS Map
game_state = ds_map_create();
The scr_GameStateGetKey script:

GML:
function scr_GameStateGetKey() {
    return room_get_name(room)+object_get_name(object_index)+string(x)+string(y);
}
I read the patch notes and came across this:
I guess I will have to try and refactor my code to make it work.
Is ctrl_GameState beeing created before all the other instances?!

[ALTERNATIVE SOLUTION]
You can have the gameState map stored inside a function as static variable.
Static variables are variables that are declared once and only once when the function/constructor is first executed.

For example inside a GML script add the following function:
GML:
function getGameState() {
    static game_state = ds_map_create();  // this will only run the first time you execute the function, so only one will be created.
    return game_state;
}

function gameStateGetKey(key) {
    static game_state = getGameState();
    return ds_map_exists(game_state, key) ? game_state[? key] : show_error("[ERROR] No such key in GameState", true);
}

function gameStateSetKey(key, value) {
    static game_state = getGameState();
    game_state[? key] = value;
}
From now on when you want to access a gamestate key just use:
GML:
var result = gameStateGetKey("myKey");
now you don't need an object just to create a ds_map for the game state nor you need to be sure that the creation order is right.. the ds_map will exist whenever you need it...
and the beauty of this is that if you never call the method the ds_map never gets created. it's something that is not there until you look for it.

[NOTE]
if you need extra process on the gamestate map you can still have a ctrl_GameState and on its create event you just do.
GML:
game_state = getGameState();
now you can process it on the [STEP EVENT] or wherever you see fit.

[EXTRA]
The solution/setup I'm providing, assumes the game_state ds_map is something global that should exist always when your game is running and it's not a thing that you want to destroy and create multiple times along the game execution.

[SCREEN RESIZE]
Regarding the screen resize:
I rewrote the function you posted:

GML:
function scr_ChangeScreenMode(_mode, _ratio) {
    switch (_mode) {
        case 0:
            window_set_fullscreen(false);
            if (_ratio == 0) {
                window_set_size(320,200);
                surface_resize(application_surface,320,200);
            }
            else if (_ratio == 1) {
                window_set_size(320,240);
                surface_resize(application_surface,320,240);
            }
            break;
        case 1:
            window_set_fullscreen(false);
            if (_ratio == 0) {
                window_set_size(640, 400);
                surface_resize(application_surface, 640, 400);
            }
            else if (_ratio == 1) {
                window_set_size(640,480);
                surface_resize(application_surface, 640, 480);
            }
            break;
        case 2:
            window_set_fullscreen(false);
            if (_ratio == 0) {
                window_set_size(1280, 800);
                surface_resize(application_surface, 1280, 800);
            }
            else if (_ratio == 1) {
                window_set_size(1280, 960);
                surface_resize(application_surface, 1280, 960);
            }
            break;
        case 3:
            window_set_fullscreen(true);
            if (_ratio == 0) {
                surface_resize(application_surface, 1280, 800);
            }
            else if (_ratio == 1) {
                surface_resize(application_surface, 1280, 960);
            }
            gpu_set_tex_filter(true);
            break;
    }
}
Some important things to note, avoid using global. inside the functions use arguments and then pass the global variables in:
This will make code much clean and easier to maintain.
GML:
scr_ChangeScreenMode(global.display_mode, global.dos_aspect_ratio)
Another thing.. where are you calling the function scr_ScreenMode?!
 
Last edited:

meltypixel

Member
In case anyone else experiencing random crashes with no error messages follows this thread, I got a response from YoYo on my bug report. Since I couldn't provide a sample project and didn't feel comfortable sharing the source of my game, we couldn't really help each other out, but I'm told they've fixed some issues with the garbage collector and some general functions that may be the culprit. I'm still going to try isolating my particular crash, but here's hoping it gets fixed in the next update.

As an aside, I really miss having a public bug tracker, or at least some transparency on YoYo's part so we're not wondering if anyone else is running into issues and trying to relay messages to each other in the forums.
 

Dwarfaparte

Member
In case anyone else experiencing random crashes with no error messages follows this thread, I got a response from YoYo on my bug report. Since I couldn't provide a sample project and didn't feel comfortable sharing the source of my game, we couldn't really help each other out, but I'm told they've fixed some issues with the garbage collector and some general functions that may be the culprit. I'm still going to try isolating my particular crash, but here's hoping it gets fixed in the next update.

As an aside, I really miss having a public bug tracker, or at least some transparency on YoYo's part so we're not wondering if anyone else is running into issues and trying to relay messages to each other in the forums.
Hopefully a beta will come out soon with these fixes! Really frustrating to have my project crash about 30% of the time when loading my main room.
 

Khao

Member
Was importing some objects/sprites from one project to another and noticed a kinda weird behavior.

Import an object into your project with the [Add Existing] option, and you get its sprites and parent added automatically.

The problem?

You get them added regardless if they already exist.

If you import several objects that all use the same sprite, you'll get that same sprite duplicated several times over. There's no reason this should happen, those new sprites should absolutely be checking if they already exist before being added to the project.

It was extremely annoying having to delete and reassign sprites and parents every single time I imported an object.

Another thing.

If I duplicate an asset and change its name, apparently that original asset's .yy file stays within the duplicated asset's folder. Which left me with a few objects having .yy files for multiple objects. If you duplicate objects a few times you'll have several unnecessary .yy files in the object's folder, completely unrelated to the object itself.
 
I'm having some trouble with the fonts in my game. I updated from 2.2.5 to 2.3.1 today and have been converting my project. When I run the game on windows the font is generated correctly. When I run the game on android the font looks very distorted. The font size is 40 px.
gg.png

WhatsApp Image 2020-12-10 at 3.58.07 PM.jpeg

Any help? This did not happen before in previous versions.
Edit: Increasing the texture page size from 2048 to 4096 did the trick. However, this seems very inconvinient as less devices will be able to run the game. I didn't have to increase the texture page size before and curious as to why I have to do that now.
 
R

Robovog

Guest
What a disaster, after having the room manager busted and the graphics die comepletely by "file not found, replacing with 16X16 blank image" (due to igor.exe I guess, even after whitelisting, reinstalling, restarting, etc. the graphics still didn't come back), I just rolled back to 2.3.0 both IDE and Runtime and now everything is relatively normal again, even though the room manager still doesn't show anything even after deleting cache and all that, luckyly I only have one room as the main one so by duplicating it, the duplicated one now appears in the room manager with the house icon and the game is able to start with that room alone. Hopefully next update will fix everything wihtout the need to tinker with it.

Sucks man.

But here's how things went down in case it helps.

- Delayed update for a while (precisely for fear of stuff like this happening mind you), after getting tired of the window popping up decided to update.
- After updating to 2.3.1, did some code, didn't test right away.
- Next day I tested and eveything looked fine but a new sprite I added didn't show up.
- After being upset not finding the problem, I decided to fix another small problem, an animation was playing too fast.
- So I changed the fps of that sprite in the editor, and BOOM that image dissapeared in the next run.
- Just to test again, I changed another sprite's fps and that sprite also stopped showing up.

So it was as if 2.3.1 was rendering images differently, all the ones saved before were fine, but the ones modifed even slightly or added with 2.3.1 were not rendering at all (or probably just replaced with 16x16 blank image). So of course after doing a "Save as..." and cleaning cache, no image showed up again... so I rolled back.

So yeh.
 

konjerk

Member
  • Code Editor: Folded regions are not preserved on reloading the project
This is listed as "bugs fixed" but mine aren't preserved, still. Am I missing something?

EDIT: Oh, I seem to have to close an object window completely and re-open it to apply the change I guess
 

clee2005

Member
As an aside, I really miss having a public bug tracker, or at least some transparency on YoYo's part so we're not wondering if anyone else is running into issues and trying to relay messages to each other in the forums.
I'm sure they have their reasons for not wanting to be public with the bug tracking - but I agree that it was tremendously helpful to be able to see what bugs were already logged. Often I would get work arounds from some of the exchanges that happened between QA and the Devs. I'd love to see it returned as well!
 

kupo15

Member
Any help? This did not happen before in previous versions.
Edit: Increasing the texture page size from 2048 to 4096 did the trick. However, this seems very inconvinient as less devices will be able to run the game. I didn't have to increase the texture page size before and curious as to why I have to do that now.
what are your texture groups like? Is this group checked to be able to be scaled in the texture groups window? I have the newest version and have no problems with 2048 pages with 60 pt font. All 3 fit on one page with room to spare. Check your debug console for things like "texture page too big, reducing size" or something to that effect to see what pages have been scaled

I always see this topic pop up with Manthorps's face and get excited a new version released only to find out it did not haha
 
In case anyone else experiencing random crashes with no error messages follows this thread, I got a response from YoYo on my bug report. Since I couldn't provide a sample project and didn't feel comfortable sharing the source of my game, we couldn't really help each other out, but I'm told they've fixed some issues with the garbage collector and some general functions that may be the culprit. I'm still going to try isolating my particular crash, but here's hoping it gets fixed in the next update.

As an aside, I really miss having a public bug tracker, or at least some transparency on YoYo's part so we're not wondering if anyone else is running into issues and trying to relay messages to each other in the forums.
Meh thanks, I should have read here before spending all day trying to catch an error.I keep getting random crashes with no errors(%40 of the time) when I load the game using json.But it does not happen when I compile with YYC, only in VM.Loading works fine too, it crashes after a splite second.Are you using VM or YYC?

Edit:Disabling the garbage collector fixes my issue.Thanks YYG
 
Last edited:
Please file a bug report as switching off the GC really isn't a good long-term solution... If YYG knows about the issue they can fix it for you and everyone else. :)
Thanks, I have already reported it alongside a sample project.I was working on a feature to add to my main game(which I have been developing for 2+years and is a commercial project) on a seperate project, now I will have to wait for their fix.I must say this is not a minor bug at all and I am pretty annoyed, I wouldn't call this a stable version
 

pblpbl

Member
using window_set_fullscreen() and window_set_size() at the same time no longer adjusts the window properly. The effect is weird; sometimes the window "glitches" by becoming horizontally squished and tries to fix itself.
Additionally, when I go to my rooms with lots of objects, the window has a small chance of freezing for a moment, then crashing. The output says:

elapsed time 00:00:00.0279919s for command "cmd" /c subst X: /d started at 12/15/2020 00:12:39
FAILED: Run Program Complete
For the details of why this build failed, please review the whole log above and also see your Compile Errors window.

However, there is nothing in the compile errors window.
 

Amon

Member
using window_set_fullscreen() and window_set_size() at the same time no longer adjusts the window properly. The effect is weird; sometimes the window "glitches" by becoming horizontally squished and tries to fix itself.
Additionally, when I go to my rooms with lots of objects, the window has a small chance of freezing for a moment, then crashing. The output says:

elapsed time 00:00:00.0279919s for command "cmd" /c subst X: /d started at 12/15/2020 00:12:39
FAILED: Run Program Complete
For the details of why this build failed, please review the whole log above and also see your Compile Errors window.

However, there is nothing in the compile errors window.
File a bug report as this doesn't look like normal behaviour.
 

eL-Falso

Member
using window_set_fullscreen() and window_set_size() at the same time no longer adjusts the window properly. The effect is weird; sometimes the window "glitches" by becoming horizontally squished and tries to fix itself.
Additionally, when I go to my rooms with lots of objects, the window has a small chance of freezing for a moment, then crashing. The output says:

elapsed time 00:00:00.0279919s for command "cmd" /c subst X: /d started at 12/15/2020 00:12:39
FAILED: Run Program Complete
For the details of why this build failed, please review the whole log above and also see your Compile Errors window.

However, there is nothing in the compile errors window.
Also noticed these window "glitches" when running an older project which I was working on. But it seems like it's fixed in the latest beta.
 
Last edited:

Dan

GameMaker Staff
GameMaker Dev.
17th December - Updated release IDE v2.3.1.542 Runtime v2.3.1.409

A small stability release has gone out today to address some of the most-commonly-reported issues with the original release. Fixes the following issues only:
  • Building Projects: [Switch] Crash trying to download XML during the build
  • Building Projects: macos VM should have its plist entitlement set so unsigined/third-party dylibs can be used during dev-testing
  • Building Projects: [Ubuntu] Enabling Steam causes ScpException when copying libsteam_api.so into place
  • Building Projects: NSIS macro expansion fails, causes broken Start Menu shortcut
  • Code Editor: Autocomplete shows duplicate entries for "global." variables defined in functions
  • Code Editor: Editing .gml files in an external editor updates with the changes only once if the editor with the .gml file is open in GameMaker
  • Debugger: Stepping into functions defined inside instance creation is causing IDE instability
  • Generate Project Images: GMS2 unstable when generating foreground Android adaptive icons in the attached project
  • Manual Content: Sprite Editor page details currently-unsupported playback functionality
  • Manual Content: Unwanted social sharing code, causes delays loading the manual for some firewalled users
  • Marketplace: Google Play Services asset cannot be imported as its own new project
  • Project Import: GMS2 unstable when converting attached project - Exception in YoYoStudio.IDE+<>c__DisplayClass256_0,Void b__1()
  • Project Load: GMS2 unstable, projects do not load again after renaming a Sequence's event script
  • Project Load: Duplicated assets fail to load when project reloading if project that had more than 2 "chained" duplicates of that asset
  • Sequence Editor: GMS2 hang at the point sound assets are played when previewing a sequence
  • Timelines: Attempting to copy and paste a timeline moment will give an error
  • In-Game: Animation End event not always triggered correctly when Spine lasts for non-integer number of frames
  • In-Game: Animation End event does not trigger reliably when the sprite frames and game speed result in very small values
  • In-Game: [macOS] Some Macs crash on game_end() [can cause submission rejection]
  • In-game: Garbage Collector crash when changing room in attached project
  • In-Game: window_set_size() works incorrectly when leaving fullscreen and resizing the window in same step
  • In Game: "with" scope does not close if it throws an exception inside try-catch
  • In-Game: [HTML5] Cannot access keys in structs generated by json_parse() unless using a debug run
  • In-Game: Json-encoded structs returned from a global method are empty
Merry Christmas and a Happy New Year, all!
 

Pixel-Team

Master of Pixel-Fu
A small stability release has gone out today to address some of the most-commonly-reported issues with the original release. Fixes the following issues only:
First thing I can say is that the prior Beta was destroying a room I had on my Night Of The Winning Dead game upon project import. This bug has gone away!!! Bezier curves, here I come!!! Thank you YoYo Games. This is going to be a fun Christmas. I may even join the Holiday Jam now!!
 

Kezarus

Endless Game Maker
Is there something that correct the Array/GC issue?

@Dreamknight seems to have the same problem that I do. There is a thread here about this.

I only wish that this issue was consistent enough that I could send a project with the error. But array corruption with silent crashes is making it impossible, sorry. = /
 

rmanthorp

GameMaker Staff
Admin
GameMaker Dev.
Is there something that correct the Array/GC issue?

@Dreamknight seems to have the same problem that I do. There is a thread here about this.

I only wish that this issue was consistent enough that I could send a project with the error. But array corruption with silent crashes is making it impossible, sorry. = /
Please file a bug anyway and we can take a look at the project to see if we can identify any issues!
 
Is there something that correct the Array/GC issue?

@Dreamknight seems to have the same problem that I do. There is a thread here about this.

I only wish that this issue was consistent enough that I could send a project with the error. But array corruption with silent crashes is making it impossible, sorry. = /
I have sent the project and they said that it is fixed in the current beta, I haven't tested it yet though.
Edit:It seems to be fixed in the latest stable update as well!
 
Last edited:

Kezarus

Endless Game Maker
@rmanthorp, understood. I just receive an update for GMS and all seems normal (for a short while at least).

I promisse to report any issues as soon as it crashes. Consistent or otherwise.
 

erayzesen

Member
May you add this update to steam version? I downloaded but I have 2 version of game maker in my computer now. I don't know, should I remove steam version ? :rolleyes:

edit: ok, the update came on the steam, I removed other package. Thank you.
 

FoxyOfJungle

Kazan Games
May you add this update to steam version? I downloaded but I have 2 version of game maker in my computer now. I don't know, should I remove steam version ? :rolleyes:

edit: ok, the update came on the steam, I removed other package. Thank you.
You can also download Game Maker Studio 2 from the release notes, if you have the account linked with Steam, just log in and it will work normally.
 

xenoargh

Member
Upon the 2.3.1.542 update (Steam) had several serious problems w/ fonts and texture pages.

Immediately opened project and ran Clean. Blank startup screen. Sounds were working but no display. Warnings about Fonts in the log about how they'd been replaced w/ 16X16 default textures or something.

Elements on startup screen are mainly fonts and some textures for buttons, so whatever was going on, wasn't just the fonts.

First run, blank startup screen, warnings about being unable to make font graphics.
Second run, after Clean, same.
Third run, after Clean and reinstalling one of the fonts, getting a warning from GMS about font changes in the system, etc., blank.
Fourth run, after Clean, finally it worked.

IDK what that was all about, but it was scary, lol. It's like GMS wasn't actually done rebuilding the texture atlases, but wasn't waiting until that process was over to allow compiling?
 

breakmt

Member
Cant buld for Android

Code:
9 actionable tasks: 1 executed, 8 up-to-date
W:\ru.breakmt.pogreb\src\main\java\ru\breakmt\pogreb\FacebookExtension2.java:65: error: FacebookExtension2 is not abstract and does not override abstract method performClick() in IExtensionBase
public class FacebookExtension2 implements IExtensionBase
       ^
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: W:\ru.breakmt.pogreb\src\main\java\ru\breakmt\pogreb\FacebookExtension2.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
1 error

FAILURE: Build failed with an exception.
 

Psycho-Male

Member
Gamemaker keeps resetting my .yy files even when I do not edit them in any way, like this:
1608291898341.png

I guess I'll report this as a bug since this keeps happening and messing up tons of objects I'm using, makes game unplayable and sometimes it takes tons of time to fix it, like currently I have 92 uncommitted changes and I have to find correct .yy file to discard... Discarding works fine but this is the second time it's happening today, I've encountered this problem in previous version too if I recall correctly just not this often. I'm using latest version right now: IDE v2.3.1.542 Runtime v2.3.1.049
 

Cameron

Member
I have a title sequence that isn't working (displaying) in this newest version update (IDE v2.3.1.542, Runtime v2.3.1.409)
Is anyone else having a similar issue with this newest update and if so have you found a work around? Everything was working fine before.
I'm only using this simple layer_sequence_create function like so:
GML:
layer_sequence_create("GameTitle",x,y,seq_title);
EDIT: I got to the bottom of the issue. Seems that my antivirus put a lock on gms for a second on project first compile while it was building the texture pages and the title sprite didn't get drawn to the texture page. Clearing that cache resolved the issue.
 
Last edited:
R

Robovog

Guest
Room manager problems seem to be resolved with the latest update, but is no one else having 16x16 blank replacements? It keeps happening to me, and I'm sure it's because of this version, going back to 2.3.0 it workied fine, but right after coming back to the latest update evey image in the game is getting blank replaced, meaning there's only a black screen, even after putting all the folder exceptions on AVG, is there something else I'm missing?

Edit: Seems like I was indeed missing C:\ProgramData\GameMakerStudio2 in the exceptions, after adding that one textures started building again.
 

Attachments

Last edited by a moderator:

zielok

Member
17th December - Updated release IDE v2.3.1.542 Runtime v2.3.1.409

A small stability release has gone out today to address some of the most-commonly-reported issues with the original release. Fixes the following issues only:
  • In-Game: [macOS] Some Macs crash on game_end() [can cause submission rejection]
I still have a crash after use game_end() function on macOS :/ So this is not fixed :( I have a ticket with this bug "177989"
 

gnysek

Member
I still have a crash after use game_end() function on macOS :/ So this is not fixed :( I have a ticket with this bug "177989"
Did you double checked, that you have latest runtime? I encountered problem, that when you download IDE update in first 20-30 minutes, a runtime update API still caches old version, so it doesn't updates runtime.
 
F

Fra_Blade_

Guest
I have a problem after install the latest version of GMS2 on Windows: after the download ends I can install the program but if I double click on the icon it won't open :/
I tried to run it using "Run as Administration" and even using Command Prompt doesn't work... I tried to download an older build but it give me the same error: the wheel starts to spin like it's loading something but nothing happens. Tried reinstalling, testing compatibilities, deactivated antivirus but still nothing. I'm on Windows 10 and it's a new generation notebook so the specifics fits well :/
Please, help!
 

pblpbl

Member
The fullscreen switching is sometimes laggy for me.

In my room, I have automatic update off for effect_create_above and below by using 0 and 1 for the particle system so that I can update it manually. However, I have noticed that alt-tabbing when fullscreen causes the particles to revert to updating automatically.
 
M

Manttipaa

Guest
Getting this error after update when compiling for Android (worked yesterday).

GML:
DoSplash
System.NotSupportedException: The given path's format is not supported.
   at System.Security.Permissions.FileIOPermission.EmulateFileIOPermissionChecks(String fullPath)
   at System.Security.Permissions.FileIOPermission.QuickDemand(FileIOPermissionAccess access, String fullPath, Boolean checkForDuplicates, Boolean needFullPath)
   at System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite, Boolean checkHost)
   at Igor.AndroidUtils.(String , String )
   at Igor.AndroidUtils.(String , String )
   at Igor.AndroidBuilder.Deploy(Boolean _exe)
   at Igor.AndroidBuilder.Run()
Igor complete.
1611163905771.png

Search options_android.yy file and compare icon and splash paths. Try with some other project that works and see if the path is different on the project that doesn't work. My project started working after changing some paths like on the picture.
 

Toque

Member
I’m finding on Mac with latest build. If gamemaker is open and laptop goes into sleep that often the next day it’s frozen and has to be force quit and restarted.
 

Slyddar

Member
This bug was listed as fixed :
  • DnD Editor: Renaming a script file will erase the contents of the script
But it is not fixed. It's why I put a hold on my tutorials for DnD as scripts were being deleted when renaming them, which is highly frustrating. I'm using IDE 2.3.1.542, Runtime 2.3.1.409 and the problem still exists. I'm using a project that was created in an earlier 2.3 version, but has been opened in the latest and saved there, so not sure if that is affecting it, but this problem needs addressing please.

EDIT : I've opened a new ticket on it. There was also a bug where just opening scripts opens the wrong one. Very confusing for new users trying to get to grips with Gamemaker DnD and having to deal with these types of common issues. I've replied to a few frustrated users on my youtube channel about it lately. I've logged another job on that one too.
 
Last edited:

Tornado

Member
@Dan @rmanthorp We discovered a desastrous bug in GMS 2.3.1!!! (IDE v2.3.1.542, runtime v2.3.1.409)

On some places switch...case... statements DON'T WORK when compiled with YYC.
At least on Android YYC and Windows YYC. We didn't try other platforms.
It happend to us in HTTP Async Event and in Animation End Event.
Suddenly we noticed strange behaviour in the game and it took us looooong to find out that switch...case... is guilty!!!
The comparison in some "case"-clauses simply doesn't work. For example both variables have value 3, but for some reason 3 doesn't equal 3!
It happens only for YYC, for VM is ok.
Our game in Stores is still built with GMS 2.2.5, by the end of the month we planned to release an update built with GMS 2.3.1, but obviously we can forget that now!

I'm working right now on a sample to submit to Yoyo.
 

Plura

Member
@Dan @rmanthorp We discovered a desastrous bug in GMS 2.3.1!!! (IDE v2.3.1.542, runtime v2.3.1.409)

On some places switch...case... statements DON'T WORK when compiled with YYC.
At least on Android YYC and Windows YYC. We didn't try other platforms.
It happend to us in HTTP Async Event and in Animation End Event.
Suddenly we noticed strange behaviour in the game and it took us looooong to find out that switch...case... is guilty!!!
The comparison in some "case"-clauses simply doesn't work. For example both variables have value 3, but for some reason 3 doesn't equal 3!
It happens only for YYC, for VM is ok.
Our game in Stores is still built with GMS 2.2.5, by the end of the month we planned to release an update built with GMS 2.3.1, but obviously we can forget that now!

I'm working right now on a sample to submit to Yoyo.
:eek:
 

xDGameStudios

GameMaker Staff
GameMaker Dev.
@Dan @rmanthorp We discovered a desastrous bug in GMS 2.3.1!!! (IDE v2.3.1.542, runtime v2.3.1.409)

On some places switch...case... statements DON'T WORK when compiled with YYC.
At least on Android YYC and Windows YYC. We didn't try other platforms.
It happend to us in HTTP Async Event and in Animation End Event.
Suddenly we noticed strange behaviour in the game and it took us looooong to find out that switch...case... is guilty!!!
The comparison in some "case"-clauses simply doesn't work. For example both variables have value 3, but for some reason 3 doesn't equal 3!
It happens only for YYC, for VM is ok.
Our game in Stores is still built with GMS 2.2.5, by the end of the month we planned to release an update built with GMS 2.3.1, but obviously we can forget that now!

I'm working right now on a sample to submit to Yoyo.
I saw the OP with the code sample, something like:

GML:
switch (something) {
    case variable1:
        break;
    case variable2:
        break;
}
where variable1 and variable2 are actually identifiers. I'm admired that compiled in YYG at all.
So don't know if the bug is in the switch statement selecting the wrong case or the compiling allowing variables as cases.
In C++ a switch statement cannot have dynamic case values so it really sounds weird for it to compile as YYC is actually compiled to C++, no?!
 

Evanski

Raccoon Lord
Forum Staff
Moderator
I saw the OP with the code sample, something like:

GML:
switch (something) {
    case variable1:
        break;
    case variable2:
        break;
}
where variable1 and variable2 are actually identifiers. I'm admired that compiled in YYG at all.
So don't know if the bug is in the switch statement selecting the wrong case or the compiling allowing variables as cases.
In C++ a switch statement cannot have dynamic case values so it really sounds weird for it to compile as YYC is actually compiled to C++, no?!
I dont think the issue is "this doesnt work", and the issue is more "this compiled and didnt tell me why its wrong"
 

chamaeleon

Member
Since GML is its own language and not some other language, it is of course completely free to allow expressions with variables for switch cases if the developers decide to implement it that way and document it as such. What constraints another language may or may not impose on code that looks identical is completely irrelevant with the exception of user expectations based on experiences with other languages. Regardless of whether the compile target is C++ or something else, generated C++ code for example can of course be done in such a manner that the statement is interpreted exactly as the GMS developers intended, regardless of what C++ allows. There's nothing that says GML switch statement must unconditionally be reproduced with a C++ switch statement. The only requirement is that the compiled C++ does what the GML code is defined to do.

Per the thread on the subject, the manual used to say expression. It now says constant. The compiler may or may not have been fully changed to enforce the behavior or capture erroneous code properly. Not having tried any of the myself (I have never used non-constant case entries), I'll leave it to @Tornado's bug report and YYG to fix as deemed appropriate.
 

zielok

Member
Did you double checked, that you have latest runtime? I encountered problem, that when you download IDE update in first 20-30 minutes, a runtime update API still caches old version, so it doesn't updates runtime.
Yes, I double (triple and more :) ) checked. Sitll have a crash on game_end(). If I close game in first few second I dont have a crash. After few second I have crash :/
 
I've just updated to IDE v2.3.1.542, runtime v2.3.1.409 and all of my assets folders are empty... I also get this message:
Screen Shot 2021-03-09 at 11.59.24 AM.png

I'm on Mac OS 11.2.3

I got this too:
Screen Shot 2021-03-09 at 3.06.05 PM.png

The project in question had already been converted successfully with the version previous to this current one... I'm thinking of the first update after the big release in November.
 
Last edited:
Status
Not open for further replies.
Top