• Hey Guest! Ever feel like entering a Game Jam, but the time limit is always too much pressure? We get it... You lead a hectic life and dedicating 3 whole days to make a game just doesn't work for you! So, why not enter the GMC SLOW JAM? Take your time! Kick back and make your game over 4 months! Interested? Then just click here!

OFFICIAL GMS 2.3.0 BETA ANNOUNCEMENT

Status
Not open for further replies.

TheMagician

Member
Please file a bug in the Helpdesk forum for the beta.
Will do 👍

too bad the autocompletion is not as good right now.
I think that is what threw me off with the instance vs struct variables - if you use built-in variable names like x and y in a struct they are still syntax-highlighted as if they were the built-in instance variables - which lead me to believe that they are overwritten.

Should this be considered a bug?
 

TheMagician

Member
And one more question for @Nocturne: I've stumbled across a bug and found out that it has been filed four month ago. I've added a comment to that original post, saying that the bug still exists and attached an example project. Is this enough to make the issue visible to the QA team?
 

kburkhart84

Firehammer Games
I think that is what threw me off with the instance vs struct variables - if you use built-in variable names like x and y in a struct they are still syntax-highlighted as if they were the built-in instance variables - which lead me to believe that they are overwritten.

Should this be considered a bug?
Sounds like a bug to me...wouldn't be surprised if its already been reported though.

And one more question for @Nocturne: I've stumbled across a bug and found out that it has been filed four month ago. I've added a comment to that original post, saying that the bug still exists and attached an example project. Is this enough to make the issue visible to the QA team?
I would think that would be enough to make it happen. In fact, they have internal builds they seem to be using, so the bug may have already been fixed. Its a good idea to add comments to previous bug reports though as they can see it affects more people, how urgent it is, and if nothing else they can confirm they already fixed but haven't released a build with the fix(if that's the case). I think that's better than you making a new topic for the same bug, as that wastes time, and moreso if they don't catch the fact that it is a duplicate right away.
 

Hyomoto

Member
That's usually what happens on duplicate reports, they'll take that program and run it through the internal build to see if its still broken. It's always possible you've found a new way to manifest an old bug. I just found another situation the other day where a draw command is tied to the room size, not the target surface.

This would be the third one I've reported over the years. Sometimes they really just don't get found or reported, or may manifest in multiple ways.
 

Nocturne

Friendly Tyrant
Forum Staff
Admin
And one more question for @Nocturne: I've stumbled across a bug and found out that it has been filed four month ago. I've added a comment to that original post, saying that the bug still exists and attached an example project. Is this enough to make the issue visible to the QA team?
That should be more than enough, thank you!
 
L

looreenzoo86

Guest
Hi everyone (this is my first post),
sorry if i don't write english correctly but i'm italian and i am using a translator to speed up writing.
I incorrectly made two requests to access the beta version days ago. The first time 13 days ago (Ticket # 169776), and the second time 10 days ago (Ticket # 170161).
I have already tried to remove the most recent ticket without success, so I just hope that I have not yet confirmed the beta access for this misconduct of mine (lol).
To conclude, is it normal that I haven't received anything yet?

I forgot one last question: in the new version is it possible to iterate the variables of a structure as if they were arrays?
Thanks again and good evening to all.
 
H

Homunculus

Guest
Hey welcome! I'm not italian, but I do speak italian, so... benvenuto!

I have no answer for your about the double ticket, but I can answer the second question. You can definitely iterate the variables of a struct using the variable_struct_* functions. You can for example get a list of variables as an array of strings using variable_struct_get_names or a single one using variable_struct_get, as well as setting them from a string with variable_struct_set.

Note though that those functions are known to be slower than accessing the variable directly.
 
L

looreenzoo86

Guest
Hey welcome! I'm not italian, but I do speak italian, so... benvenuto!

I have no answer for your about the double ticket, but I can answer the second question. You can definitely iterate the variables of a struct using the variable_struct_* functions. You can for example get a list of variables as an array of strings using variable_struct_get_names or a single one using variable_struct_get, as well as setting them from a string with variable_struct_set.

Note though that those functions are known to be slower than accessing the variable directly.
Thanks, so let's say iterating the variables of a structure is more expensive than iterating directly an array or (perhaps better still) a data structure?
Anyway, I really hope to have access to the beta soon ... I can no longer manage all this waiting...!
 
H

Homunculus

Guest
Definitely more expensive than an array, probably more than a ds_list as well. But not that bad overall. I’d classify it as a powerful tool to be used sparingly.
 

TheMagician

Member
I think that is what threw me off with the instance vs struct variables - if you use built-in variable names like x and y in a struct they are still syntax-highlighted as if they were the built-in instance variables - which lead me to believe that they are overwritten. Should this be considered a bug?
Let me answer my own question by quoting the devs comment on the same issue from the Beta forums around three months ago:

Unfortunately due to the nature of GML then structs and instances are indistinguishable as there is no type associated with them (and currently the flow of types is not tracked in the IDE syntax checker) so it cannot tell that a struct is not an instance - so currently 'special' names are highlighted as such (x is a builtin instance variable, but the syntax checker does not know that the variable 'foo' is not an instance at this point so it colours x as an instance variable).
So unfortunately it looks like the syntax highlighting will be a bit misleading when using built-in variable names in structs.
 

TheMagician

Member
Before I post a stupid question on the Beta forums let me first ask it on here:

Is it possible to get proper syntax highlighting and code completion for a method variable inside a struct?

I have tried putting it on top of the script or directly into the struct but the method variable is always only shown as a variable and I don't get auto-complete for its method parameters.
 
P

Patacorow

Guest
soooo, who's gonna be the first person to write a full ES6 to 2.3.0 GML transpiler?
 
G

gdesign

Guest
Gamemaker autosaves then shuts it's self down? (windows 10 current version)

WARNING: After this, you can not compile your game on windows without a reinstall :(

I just did this today and I have to do it again to compile the work on a game.

It happens while you are editing or clicking on buttons in the software.
Things like adding a background, editing a room with sprites, or editing an object.

It seems to happen randomly and for no reason.
It knows it has had a failure and autosaves most times, but forgets how to compile.

I have tried different versions of 1.4 and this occurs on them as well.

Anyone have any ideas as to why this happens or how to fix the compiling issue afterward?
 

❤️×1

Member
Gamemaker autosaves then shuts it's self down? (windows 10 current version)

WARNING: After this, you can not compile your game on windows without a reinstall :(

I just did this today and I have to do it again to compile the work on a game.

It happens while you are editing or clicking on buttons in the software.
Things like adding a background, editing a room with sprites, or editing an object.

It seems to happen randomly and for no reason.
It knows it has had a failure and autosaves most times, but forgets how to compile.

I have tried different versions of 1.4 and this occurs on them as well.

Anyone have any ideas as to why this happens or how to fix the compiling issue afterward?
Oh, yeah, it's the well known problem of not using the correct section to report a problem. If it's with GMS2.3, post it on its dedicated forum. And if its not, scroll a few sections down on this forum.
 

saffeine

Member
An ETA hasn't been provided just yet. I wonder how long restricted betas usually go for.
it's usually as long as it takes for a sufficient amount of bugs to be squashed, once it's only minorly broken then i'd imagine we'd get our hands on it.
i really do hope it's soon though, crossing my fingers each day feels almost hopeless with how slow the tickets seem to be going down.
that being said, yoyo seem to be putting the time and care into delivering the best product, and i support them in doing so.

all we can do is wait, and continue to work on our projects. it'll come eventually.
 

Azenris

Member
Perhaps like

GML:
function animal() constructor
{
    static talk = function()
    {
        show_debug_message( "1" );
    }
};

function human() : animal() constructor
{
    static animal_talk = talk;

    static talk = function()
    {
        animal_talk();
        show_debug_message( "2" );
    }
};

function jess() : human() constructor
{
    static human_talk = talk;

    static talk = function()
    {
        human_talk();
        show_debug_message( "3" );
    }
};
 

DanTheCan

Member
I have a few questions about how static variables/functions work in GML:
Is there a reason to not use the static keyword for all functions inside of constructor functions?
Is there a reason to not use static for any non-constructor functions?
Is it possible to create a static constructor function, and if so, how does that work?
Apologies if the answers to these questions are obvious.
 

TheMagician

Member
And I would like to add another question:
What is the proper way to iterate through all "copies" of a struct? I tried using a "with" statement but that doesn't seem to work.
Do I have to put all of the references into an array and then iterate through the array or is there a built-in method?
 

kburkhart84

Firehammer Games
I have a few questions about how static variables/functions work in GML:
Is there a reason to not use the static keyword for all functions inside of constructor functions?
Is there a reason to not use static for any non-constructor functions?
Is it possible to create a static constructor function, and if so, how does that work?
Apologies if the answers to these questions are obvious.
If the function you are creating is going to be the same all over, there isn't any reason I know of to not make it static.

The reason you might want a struct that is made to have a function that is not static is because you could make that function different based on variables that are available at the time. If there is not going to be any differences in the struct, then you might as well just use a constructor function to create it and have it with static functions.

I wouldn't think you can make a static constructor...it wouldn't really make any sense unless maybe you are nesting a constructor inside of a struct. If that were the case, then I would assume it would work the same as any other function in that struct. But I don't yet know of a use case for that, since you could just make that constructor function in a normal script, and you could still access it from code that is running on a struct(in a function of a struct).

And I would like to add another question:
What is the proper way to iterate through all "copies" of a struct? I tried using a "with" statement but that doesn't seem to work.
Do I have to put all of the references into an array and then iterate through the array or is there a built-in method?
I don't think there is a built-in way to do it. You are likely going to have to store them in a list or array. That said, you could possibly make static array variable, and for each one you make, have it add itself to that array(or you could use a list). I think you could also use a global variable array/list instead. Then, either way, that list is automatically created every time you create one of these structs. You could also make your own function that would be like a "destructor" that you just have to remember to call before you call delete(or the variable goes out of scope).
 

duran can

Member
The code samples here reminded me of javascript for some reason. It is very good for the program to develop so much.
 

TheMagician

Member
I don't think there is a built-in way to do it. You are likely going to have to store them in a list or array. That said, you could possibly make static array variable, ...
Thank you for bringing up the idea of a static array variable / list. I will try that tomorrow.

So far I have used the following line of code (which assumes that the instance that creates the structs has a ds_list called li_elements:
GML:
ds_list_add(other.li_elements, self);
It seems to work. However, someone posted a bit further up, that you should try and stay away from keywords like other and self in structs? So I'm unsure whether this would actually be considered valid syntax.

Anyway, I like the idea of a self-contained system where the structs manage their own array / list!

Still, I would have to write self into that array in order to later access it again, right?
 

kburkhart84

Firehammer Games
Thank you for bringing up the idea of a static array variable / list. I will try that tomorrow.

So far I have used the following line of code (which assumes that the instance that creates the structs has a ds_list called li_elements:
GML:
ds_list_add(other.li_elements, self);
It seems to work. However, someone posted a bit further up, that you should try and stay away from keywords like other and self in structs? So I'm unsure whether this would actually be considered valid syntax.

Anyway, I like the idea of a self-contained system where the structs manage their own array / list!

Still, I would have to write self into that array in order to later access it again, right?
Yup, you would need "self" in that case...I'm not sure why you wouldn't want to use it or why they would say to stay away from "other" and "self." They have there place. maybe since they are less useful in structs they say to avoid them since many people will not know how to use them. But in this case, its a good way to go.
 

saffeine

Member
do we have any update on where we currently are with the 2.3 beta as it is?
are the bug fixes going smoothly, tickets still being addressed right now, etc?
any estimate on when we might hear the next 'big' news?

it'd be nice to hear about the current state of things, even if just to tide us over for the time being.

side question for those who do have 2.3: if you reference a struct, does code completion show you the variables within the scope of the struct like how an enum would, or do you need to remember the variable names when doing so?
it's always kind of bothered me how the code completion includes a bunch of variables from different objects, and i'm hoping structs don't add to the clutter when trying to reference a particular variable / function in 2.3.
example of what i mean ( note the 'clutter' from variables i haven't begun typing or even come close to referencing. an option to disable this or edit the scope of completion would be a blessing. ):

 
Last edited:

xDGameStudios

GameMaker Staff
GameMaker Dev.
do we have any update on where we currently are with the 2.3 beta as it is?
are the bug fixes going smoothly, tickets still being addressed right now, etc?
any estimate on when we might hear the next 'big' news?

it'd be nice to hear about the current state of things, even if just to tide us over for the time being.

side question for those who do have 2.3: if you reference a struct, does code completion show you the variables within the scope of the struct like how an enum would, or do you need to remember the variable names when doing so?
it's always kind of bothered me how the code completion includes a bunch of variables from different objects, and i'm hoping structs don't add to the clutter when trying to reference a particular variable / function in 2.3.
example of what i mean ( note the 'clutter' from variables i haven't begun typing or even come close to referencing. an option to disable this or edit the scope of completion would be a blessing. ):

for the time being you will have clutter... I made a detailed suggestion on this topic (code completion) in the closed beta forum and as far as I was told it will be addressed in future releases.. but the first 2.3 won't have that kind of (context based) auto-completion
 

rytan451

Member
I'm pretty sure they will use Steam's beta feature at first, and after some time to allow for migration, they'll push it to stable.

EDIT: Please don't give them ideas.
 
Last edited:

Miradur

Member
Question: If sequences are expanded at some point and a transform slider is added(for draw_sprite_pos()), will the bug in this function be fixed? Because if not, the tool from the Marketplace* might become more expensive and therefore I would buy it now.

On this occasion, I don't like the Java stuff, because I ended up with GMS, because it is very easy to program. It all looks very complicated to me and if it gets complicated you can look for a better alternative right away. What I want to say is, it's nice that the professionals got a highlight and it's a pity that there are still many basic functions missing in GMS (slopes and tile collision for example).

Miradur


* draw_sprite_pos Fixed!
 

rytan451

Member
Affine transformation fixes for draw_sprite_pos() seems like it would require a fix in the rendering pipeline, which means that the default shader would probably also have to change, and currently existing shaders will not be able to take advantage of the fix. It does seem that draw_sprite_pos would not work with shaders at all, though.
 

MusNik

Member
@Miradur @rytan451
I would like to check what I can do with my asset and new sequences, but unfortunately I still didn't get the beta. Anyway, after release, I probably I will come up with something interesting.
 

FrostyCat

Redemption Seeker
On this occasion, I don't like the Java stuff, because I ended up with GMS, because it is very easy to program. It all looks very complicated to me and if it gets complicated you can look for a better alternative right away. What I want to say is, it's nice that the professionals got a highlight and it's a pity that there are still many basic functions missing in GMS (slopes and tile collision for example).
One year has passed since this reply was addressed to you:
How about instead of complaining about new features that are intended to make our lives easier, you take off your beginner’s hat and sit down for an hour to learn the features, and be happier in the long run? Instead of trying to stunt the growth of an engine for a majority of its users?

You talk like that you are going to be a beginner for years to come.
Here you are STILL using the same "I-am-a-beginner" mantra to trash-talk the OOP additions, while other users of all skill levels are actively exploring it, including beginners. Good questions and answers about OOP techniques are being exchanged from all sides, so they're all learning while you are still here paralyzed by your feelings.

How about you follow the lead of other beginners who made the leap, and for once learn the difference between a beginner and a coward?
 

Karlstens

Member
Sooo, who else here has been checking their inbox at the crack of dawn each and every morning for their beta access email? 🤣

Come on YoYo, this is the biggest tease ever! I know I’m desperate when I actively start designing my new game in Trello, god forbid I work on any sprite art whilst I wait. I need structs in my life, damn it!!!!!
 

TheMagician

Member
do we have any update on where we currently are with the 2.3 beta as it is?
are the bug fixes going smoothly, tickets still being addressed right now, etc?
I gained access to the Beta a couple of days ago and posted a wave of bugs/suggestions in the night from Thursday to Friday. On Friday, however, it seems like nobody from the QA team was present on the forum. So far, none of the reports have been addressed. I'm looking forward to what happens today.
 

Cameron

Member
I gained access to the Beta a couple of days ago and posted a wave of bugs/suggestions in the night from Thursday to Friday. On Friday, however, it seems like nobody from the QA team was present on the forum. So far, none of the reports have been addressed. I'm looking forward to what happens today.
I think they get the weekend off.

What number ticket were you?
 
Status
Not open for further replies.
Top