OFFICIAL GMS 2.3.0 BETA ANNOUNCEMENT

COWCAT

Member
I'm testing GMS 2.3 beta for the first time.
Using latest Beta 10 (Runtime v23.1.1.167, Runtime v23.1.1.159) :

- Positive aspect : my game compiles and runs without errors.

- However, when I do some actions in the IDE such as making code changes or using the scroll bars in the scripts editor, it uses 100% of CPU for a few seconds and stalls, blocking inputs. My guess is that it's checking syntax/compiling the scripts but it's painfully slow compared to GMS 2.2! (it was basically invisible) It's as if syntax check is now synchronous instead of asynchronous in previous versions...

- Performance in-game for the *exact same* source code is awful...
Task manager displays 25% CPU use and 10% GPU use, when it is 2% CPU and 7% GPU with GMS 2.2.
When unlocking FPS in my game, I get ~700 FPS in the beta 2.3 and ~1800 FPS in 2.2 (in the exact same room) so it's not just an issue with the task manager.
With an "empty" project (one room with basic text displayed), I also get the same issue (20% CPU use instead of 1-2%)
Sleep margin is the same (10 ms)
Using profiler does not show any particular script using more CPU than usual.

Did anyone experience that?
 
Last edited:

Cameron

Member

The updated manual is now live for everyone to check out, and all previous links (docs/docs2) will soon be set to redirect there... Note that, BACK BY POPULAR DEMAND, it has an index again (as previous iterations of the manual in the 2.3 beta didn't). :)
I know you're doing a spellcheck pass right now. It's not a spelling error but I found this bit of awkwardness:
"In general when you start working with 3D, special effects, complex drawing processes or shaders you don't need not worry too much about the vertex format being used"
https://manual.yoyogames.com/#t=Additional_Information/Guide_To_Primitives_And_Vertex_Building.htm
 

FrostyCat

Member
I'm quite pleased with the direction that open beta v10 is taking. Aside from UWP YYC and HTML5 which are still demonstrably broken, the rest that I could get at are reasonably usable now:
  • Windows VM+YYC (takes 100% of a core, but still usable)
  • Mac VM
  • UWP VM
  • Ubuntu VM+YYC
  • Android VM+YYC
I don't have access to the exports for consoles, Mac YYC, Amazon Fire or iOS, though. It would be great if other testers could provide some news on the stability of GMS 2.3 on those fronts.

This is a massive improvement over the previous builds, where only Windows VM and Android VM exports are even remotely usable. The type loss bugs in v9 and the dead HTML5 and Ubuntu exports from v8 and before were particularly egregious.

Now I can finally take steps towards pushing my new OOP-driven GML libraries to the public, just over half a year in the making. Good job to all the developers at YoYo involved.
 

Plrox31

Member
Can I disable this function - folding brackets? or Is that exists the hot key to only fold the #region - #endregion?
2.3 is so great, but this folding function makes me uncomfortable.
주석 2020-07-03 183546.png
 
I like the new asset browser and the freedom we can do with it but I also had no problems with the old system. I find making new assets a bit of a hassle. It's not too hard to right click, hover create, hover to desired asset, left click. But compared to the older versions, its a drag. The shortcuts still work but they don't get sorted. It kind of makes the shortcuts obsolete.
 

Yal

🐧 *penguin noises*
GMC Elder
I like the new asset browser and the freedom we can do with it but I also had no problems with the old system. I find making new assets a bit of a hassle. It's not too hard to right click, hover create, hover to desired asset, left click. But compared to the older versions, its a drag. The shortcuts still work but they don't get sorted. It kind of makes the shortcuts obsolete.
Just to chime in, I'm really missing the old behavior where clicking on an asset and selecting "insert <resource type>" would add the new asset right next to the old one - it's really handy if you want to add something new in the middle of a list that's in a particular order. (Making subfolders for everything makes this less of an issue, but it also slows down actually finding things).


Here's a suggestion that'd help with both mine and GrizzliusMaximus's issues: when using the Ctrl-T fuzzy-matching-finder, make pressing Ctrl+Enter (instead of just Enter) on something in the list focus that asset in the resource tree rather than open it directly. Right now, it's much faster to find something with Ctrl-T than finding it in the resource tree, so why not combine them? To add a new asset somewhere when you care about sorting it, you'd use the ctrl-T ctrl-enter functionality to bring up some asset close to where you want it (e.g. typically something in the same subfolder) and then you can right-click --> add there.
 

kburkhart84

Firehammer Games
Here's a suggestion that'd help with both mine and GrizzliusMaximus's issues: when using the Ctrl-T fuzzy-matching-finder, make pressing Ctrl+Enter (instead of just Enter) on something in the list focus that asset in the resource tree rather than open it directly. Right now, it's much faster to find something with Ctrl-T than finding it in the resource tree, so why not combine them? To add a new asset somewhere when you care about sorting it, you'd use the ctrl-T ctrl-enter functionality to bring up some asset close to where you want it (e.g. typically something in the same subfolder) and then you can right-click --> add there.
That sounds like a good suggestion. Have you added it to the beta forum?
 

Yal

🐧 *penguin noises*
GMC Elder
That sounds like a good suggestion. Have you added it to the beta forum?
I don't have access, I've opted out of the beta. I didn't even know the beta forum existed, to be honest. Feel free to steal the idea and post it in my stead.
 

kburkhart84

Firehammer Games
I don't have access, I've opted out of the beta. I didn't even know the beta forum existed, to be honest. Feel free to steal the idea and post it in my stead.
Will do.

EDIT***********

@Yal I did post the suggestion. I also thought you should be aware though that the new asset browser in 2.3 does have filtering and searching. So if they don't include your suggestion, you can still search for resources directly, just using a different search bar that resides right above the tree.
 
Last edited:
  • Like
Reactions: Yal

Zhanghua

Member
What the Funk.......
I just downloaded the whole runtime 159 by hand, you tell me there is the 160 instantly???
My poor network......
 
Last edited:

gnysek

Member
Just to chime in, I'm really missing the old behavior where clicking on an asset and selecting "insert <resource type>" would add the new asset right next to the old one - it's really handy if you want to add something new in the middle of a list that's in a particular order.
Just click on existing resource with right button, and you can create same type resource in same folder.
1593820431867.png
 

Zhanghua

Member
Does anyone occurs this problem with newest runtime 2.3.1.1.160
"Variable <unknown_object>.<unknown variable>(100006, -2147483648) not set before reading it."

So the local variable "i" is un-valued.
Just ask somebody who has same situation like this.
This is an occasional issue, and the project is a bit large, and I can't minimize and report it to the beta-forum.
123.png

All Stake errors list here:

Variable <unknown_object>.<unknown variable>(100006, -2147483648) not set before reading it.
at gml_Script_anon_OFiniteStateMachine_gml_GlobalScript_FSM_Interface_4470_OFiniteStateMachine_gml_GlobalScript_FSM_Interface (line 160) - for( i=0; i< nLen; i++ ){
############################################################################################
gml_Script_anon_OFiniteStateMachine_gml_GlobalScript_FSM_Interface_4470_OFiniteStateMachine_gml_GlobalScript_FSM_Interface (line 160)
gml_Script_anon_OCardItem_gml_GlobalScript_OCardItem_MsgCtrl1_7254_OCardItem_gml_GlobalScript_OCardItem_MsgCtrl1 (line 189) - static run = function(){ oExe.update(); }
gml_Script_anon_anon_OCardItem_MsgCtrl_gml_GlobalScript_OCardItem_MsgCtrl1_1496_OCardItem_MsgCtrl_gml_GlobalScript_OCardItem_MsgCtrl1_1600_anon_OCardItem_MsgCtrl_gml_GlobalScript_OCardItem_MsgCtrl1_1496_OCardItem_MsgCtrl_gml_GlobalScript_OCardItem_MsgCtrl1 (line 45) - IterArrayElement(m_itemCards,function(i,n,e){ e.run(); });
gml_Script_IterArrayElement (line 5) - func(i,num,arr[@ i]);
gml_Script_anon_OCardItem_MsgCtrl_gml_GlobalScript_OCardItem_MsgCtrl1_1496_OCardItem_MsgCtrl_gml_GlobalScript_OCardItem_MsgCtrl1 (line 45) - IterArrayElement(m_itemCards,function(i,n,e){ e.run(); });
gml_Script_anon_OCardItem_MsgCtrl_gml_GlobalScript_OCardItem_MsgCtrl1_3369_OCardItem_MsgCtrl_gml_GlobalScript_OCardItem_MsgCtrl1 (line 99) - StepAllCards();
gml_Script_anon_IMsgCtrl_gml_GlobalScript_Base_IEvent_1247_IMsgCtrl_gml_GlobalScript_Base_IEvent (line 49) - PreDispatch();
gml_Object_OCard_ItemCtrl_Step_0 (line 1) - ctrl.Dispatch();
 

Zhanghua

Member
And If I change the "i" to "j" that's fine.....

Maybe I use the iteration function, the external uses the same "i" as passing argument as inner local variable,

GML:
//Caller
IterArrayElement(m_itemCards,function(i,n,e){  e.run(); });

//Definiton
function IterArrayElement( arr, func ){
    var num = array_length(arr);
    for( var i=0; i<num; i++ ){
         func(i,num,arr[@ i]);
    }
}
 

Yal

🐧 *penguin noises*
GMC Elder
@Yal I did post the suggestion. I also thought you should be aware though that the new asset browser in 2.3 does have filtering and searching. So if they don't include your suggestion, you can still search for resources directly, just using a different search bar that resides right above the tree.
The 2.2 resource tree also has it, it's just slow to
1) move your hand over to the mouse
2) switch over to a standard workspace (from a code editor / room editor),
3) un-minimize the sidebars if they were minimized,
4) click the very small textbox in the corner
5) move your hand back to the keyboard
before you can start typing, compared to just hitting a hotkey and keep typing.
 

rob2d

Member
is it me, or does the JSDoc still not seem to do anything? e.g.

GML:
/// @function do_something(_somevars)
/// @description a description
^ if it cannot parse these out, why is it in the documentation and everything else? also, if so, it's a pretty big limitation as the script system is already a bit free-floating compared to something like C# or standard programming languages :/
(nobody seems to have replied to that question posted earlier and I can't seem to see any help while typing functions in scripts, so this is why I've come to that conclusion)
 

Misu

The forum's immigrant
Im using GMS 2.3 and I notice something is terribly wrong with the use of global variables

I initiated one in create event as so:
Code:
vertex_format_begin();
vertex_format_add_position_3d();
vertex_format_add_texcoord();
vertex_format_add_normal();
vertex_format_add_color();
global.FORMAT = vertex_format_end();
But I get this error on compile time:
Code:
ERROR in
action number 1
of Create Event
for object <undefined>:

global variable name 'FORMAT' index (100043) not set before reading it.
at gml_GlobalScript_m3d_model_create (line 4) - vertex_begin(bvert[i],global.FORMAT);
Is there some changes to global variable that Im not aware of or is this some sort of bug?
 

FrostyCat

Member
Im using GMS 2.3 and I notice something is terribly wrong with the use of global variables

I initiated one in create event as so:
Code:
vertex_format_begin();
vertex_format_add_position_3d();
vertex_format_add_texcoord();
vertex_format_add_normal();
vertex_format_add_color();
global.FORMAT = vertex_format_end();
But I get this error on compile time:
Code:
ERROR in
action number 1
of Create Event
for object <undefined>:

global variable name 'FORMAT' index (100043) not set before reading it.
at gml_GlobalScript_m3d_model_create (line 4) - vertex_begin(bvert[i],global.FORMAT);
Is there some changes to global variable that Im not aware of or is this some sort of bug?
That is not a compile-time error, that is an execution-time error. On top of that, the dangers of racing Create event dependencies against each other are already well-known. This would have had the same chance of falling face-flat on GMS 2.2 to start with.
 

Hyomoto

Member
I was also able to get my Final Fantasy project mostly ported over to 2.3 but it's definitely not there yet. I needed a tool to repair the project a few dozen times because moving folders still has a MASSIVE corrupting effect on the project, and even just moving resources can cause weird errors. The copy-on-write behavior is broken, arrays are being passed differently than 2.2 and the order in which things are loaded is different than in 2.2 (undocumented behavior, my fault for using it :p). Also, keep getting silent crashes on room transitions with some regularity, but not so much I can pinpoint why. However, I was able to get it running in beta 10 and it's just over 23k lines of code so yeah, it's nice to see it getting better.
 
Last edited:

Misu

The forum's immigrant
That is not a compile-time error, that is an execution-time error. On top of that, the dangers of racing Create event dependencies against each other are already well-known. This would have had the same chance of falling face-flat on GMS 2.2 to start with.
Ok... soooo what can I do to solve my problem?...
 

TsukaYuriko

🌠
Forum Staff
Moderator
Then please post a topic about it in the Programming forum. This topic is specifically for discussing the beta.
 

mikix

Member
Alpha values still not blending in with other sprites when you mouse button click and draw. The result is, you draw the surface like an eraser, but it should not work like an eraser because you can code an eraser with bm_zero. My point is, make it blend with the layer_sprite_create on the surface. And when you save the surface, please make it save like it looks on the surface so that users of GMS painting programs don't feel like they've lost hours of work.
 

Fanatrick

Member
Alpha values still not blending in with other sprites when you mouse button click and draw. The result is, you draw the surface like an eraser, but it should not work like an eraser because you can code an eraser with bm_zero. My point is, make it blend with the layer_sprite_create on the surface. And when you save the surface, please make it save like it looks on the surface so that users of GMS painting programs don't feel like they've lost hours of work.
Makes zero sense, you're doing something wrong, likely with alpha values not being premultiplied in your code? I'm using surfaces extensively in most of my projects and 2.3 update didn't touch them at all. Are you sure you don't have this same issue with 2.2 as well?
 

mikix

Member
Makes zero sense, you're doing something wrong, likely with alpha values not being premultiplied in your code? I'm using surfaces extensively in most of my projects and 2.3 update didn't touch them at all. Are you sure you don't have this same issue with 2.2 as well?
Yes. Alpha is used with image_alpha. I have an alpha palette too. This happened in 2.2 also. Are you using alphas exclusively for shaders or something? Because the way I have coded should make sense with the alpha, color gradient and color rainbow palette. Also when I upload a transparent image, the surface does not save the image like it's shown on the surface (same with the alpha palette). So something is really wrong here. Maybe it does not make sense for you, but for me it does and probably the GM staff too, I think they also know about it.
 

Fanatrick

Member
Are you using alphas exclusively for shaders or something? Because the way I have coded should make sense with the alpha, color gradient and color rainbow palette. Also when I upload a transparent image, the surface does not save the image like it's shown on the surface (same with the alpha palette). So something is really wrong here. Maybe it does not make sense for you, but for me it does and probably the GM staff too, I think they also know about it.
With and without shaders and blending, everything working as advertised and documented (pretty much unchanged since GM7). If it's not working for you I'm quite certain it's an issue with your code.

This isn't a topic to advertise your project, my mistake for going off-topic. Feel free to hit me up in PMs and I'll help you out.
 

mikix

Member
It's not for advertising. >_< I am legitimately sending you guys a link for you to witness it and I described what was bugged. I don't think you can help me with this, because I'd need to send you the whole project file, which I don't really want to.
 

mikix

Member
Look at these pics.

r22r23r.png2020-07-06 10_13_26-Shadowforge.png2020-07-06 10_16_46-Shadowforge.png

Edit: Talked with another programmer and he said that he has fixed something similiar for a client, I will try to fix it now for a couple of hours.
Edit 2: I still think Yoyo should do something about this. Because even when I upload something I made from aseprite and use my transparent brush, it looks way different on the saved image than on the surface.
Edit 3: Went back to aseprite and made a white layer below, it seemed to fix the problem. But why doesn't it fix the problem in my software when I create a white layer_sprite_create sprite on the surface?
 
Last edited:

COWCAT

Member
Yes, same for me. I tested it on two different machines. Version 2.3 (up to v10 release) uses about 18-22% CPU for an empty project, while 2.2 uses only about 0.5% - 1%. It also makes no difference whether I use YYC or VM.
Thanks, glad to see it's not just on my side. Do you also have that "lag" issue within the IDE itself when using scollbars etc? It makes it barely usable for me.
 

mikix

Member
@Nocturne I have spent money on GMS2 Desktop and Web, I have also spent money being a client for GMS2 users. I think I have to voice my opinion on the surface_save problem as anyone else would do with anything else. Alright, I'll make a topic later in Community Chat requesting a fix for surface_save. I have spent thousands of hours on GMS2 and probably close to a thousand hours on this software, I know that save_surface is not doing the job it should.
 

gnysek

Member
voice my opinion on the surface_save problem
Yeah, you can say a word or two, but use proper forum category. This topic is for 2.3 beta discussion, and surface_save isn't something added or changed in this version.
I know that save_surface is not doing the job it should
except it does what it should, and you want something else, as I don't see other people complains :)


Back to topic: I've grabbed Mobile export finally (thanks to summer sale and being a VAT regiestered it was much cheaper), so I'm gonna test 2.3 tonight a lot :D
 
Last edited:
I've grabbed Mobile export finally
I too just recently bought GMS2 with mobile and HTML5 :) I had plans of buying it once 2.3 became official but the summer sale was just too tempting to resist!

So far, I really like the new GML update with the structs and methods and multi-dimension arrays! The IDE is nice too but I'm not really into it. Maybe if I explore it more, I'll learn to love it.
 

gnysek

Member
I hope that after they made so many changes to Assets Explorer (resource tree) and added such a nice Sequences Editor (it's really well done, couldn't be better in my opinion), they gonna put some love to objects and room editors, as they are much much worse (especially that all was done in one window - I would like room editor to also go into separate workspace, so tilesets and properties aren't added on sidebars, but inside workspace and cannot be closed/removed from room editor).
Don't know who designed Sequences Editor, but that's the best designed IDE feature in whole GameMaker history.
 
I like the Animation Curves, and I designed a nine-slice resizable window piece that lets you attach Animation Curves to control how it opens and closes. It's great for UI windows, dialog boxes, and even buttons. I just wonder why they didn't add Tangent controls to the points in an Animation Curve. Without Tangent controls you have to add more points to get more control of the curve.
 

kburkhart84

Firehammer Games
I like the Animation Curves, and I designed a nine-slice resizable window piece that lets you attach Animation Curves to control how it opens and closes. It's great for UI windows, dialog boxes, and even buttons. I just wonder why they didn't add Tangent controls to the points in an Animation Curve. Without Tangent controls you have to add more points to get more control of the curve.
Someone somewhere who has an internal build actually showed a pic where those control handles are there. I was told that the feature is coming, just might not make it into 2.3 before stable.
 

❤️×1

Member
Did anyone experience that?
Yup, YYC performances on GMS2.3 are appalling: on a 50 pass test, I measured the real_fps during 5 seconds, after another 5 second wait to remove the executable start overhead... And here are my results :
GML:
2.2 VM average: 561.2970581055 real_fps
2.3 VM average: 507.3936462402 real_fps

2.2 YYC average: 1983.1707763672  real_fps
2.3 YYC average: 1047.6929931641 real_fps
I never did much with GMS, so it's no biggy to me but I know you're a pro, so I hope for you it'll get better once we leave the beta...
 
Last edited:

IGameArt

Member
I am getting a metric boat load of local variable not set before reading it errors when I know darn well that these vars are very well defined before reading them. Is this a common thing?

GML:
var _rousr_array = argument[0],
            _val = argument[1];
var       _array = _rousr_array[ERousrArray.Array],
           _size = _rousr_array[ERousrArray.Size];

var  index = _size;

_array[@ index]                  = _val;
_rousr_array[@ ERousrArray.Size] = index + 1;

return index;
Somehow _val is being unset by the time I try adding it to the array at the end of the script.
 

Erik Leppen

Member
I'm getting lots of
Code:
Variable <unknown_object>.<unknown variable>(100566, -2147483648) not set before reading it.
and
Code:
local variable <unknown built-in variable>(-1610512730, -2147483648) not set before reading it.
errors on importing a GMS2.2 project that works in GMS2.2.


It also seems that when I show_debug_message the relevant variables, the bug moves to another script that doesn't show_debug_message its variables. I have no idea what causes it, but the script that gives the errors in the first place, doesn't seem to do anything particularly difficult.
GML:
function concat() {
    var str = "";
    //show_debug_message("concat: argument_count is " + string(argument_count));
    for (var a = 0; a < argument_count; a += 1) {
        //show_debug_message("concat: argument[" + string(a) + "] is " + string(argument[a]));
        if is_string(argument[a]) {
            str += argument[a];
        }
        else {
            str += string(argument[a]);
        }
    }
    return str;
}
Edit: also, most of my scripts in the 2.2 project have JSdoc comments. Yet, they aren't used by the importer to rename the "argumentN" variables of scripts/functions. So I can now make about 8000 replacements by hand. Is this the intended behavior?
 
Last edited:

Phoobs

Member
I ran this during the Clean-Up event, referencing a path that doesn't exist and it crashed the runner without an error message:
GML:
if (path_exists(ai_path)) {path_delete(ai_path);}
 

HAEGOE

Member
So far I'm liking the sequences. Still has a lot to go, and had to use a community workaround but I've managed to make a sequence rotate. I've yet to rotate anything other than objects, though, so I hope GMS supports this without workaround.(maybe next version?)


중.png


And just a quick question : How can I refer to a specific object track in the sequence? I checked and codes like this doesn't work.
GML:
SeqTest.Mainbody
 
Top