• Hey! Guest! The 39th GMC Jam will take place between November 26th, 12:00 UTC and November 30th, 12:00 UTC. Why not join in! Click here to find out more!

OFFICIAL GMS 2.3.0 BETA ANNOUNCEMENT

Status
Not open for further replies.

Simsure

Member
Hello and thank you for update news, I got a lovely feature request here!

GML:
string = json_encode_struct(struct)
struct = json_decode_struct(string)
Same as json_encode/decode but for structs, this will be a game changer feature!

Edit: To clarify, when decoding a json with this new method, objects will be turned directly into structs.
Please yoyo make this true.
 

Zhanghua

Member
Ehh, I have the time difference and hope it's not too late for the exciting news!
Come on! The big thumb and your reply at the Youtube!
 
Last edited:

FrostyCat

Member
Finally I get to put my work out in the open.
Right now YoYo is still fixing the bugs in structs, exceptions and method handling on some exports, so not ready for prime time just yet. But these projects are good enough at least for Windows, Mac OS X and Android.

Same as json_encode/decode but for structs, this will be a game changer feature!

Edit: To clarify, when decoding a json with this new method, objects will be turned directly into structs.
Please yoyo make this true.
Consider it done.
 

Zhanghua

Member
Finally I get to put my work out in the open.
Right now YoYo is still fixing the bugs in structs, exceptions and method handling on some exports, so not ready for prime time just yet. But these projects are good enough at least for Windows, Mac OS X and Android.



Consider it done.
My apply ID is 16W+.....
What's your ID for download?
So that I could estimate the posibility of viewing the new features
 

XanthorXIII

Member
Went through and watched the video. What really perked my ears was the Broadcast Messages. Is this only available for Sequences or can we tie Objects together with these. For example I have a pause button. Can we register like an Event Handler where if I press it, it will signal a menu to appear and then pause all the objects in a room?
 

Zhanghua

Member
Yes, you can make this as way in the spine
Went through and watched the video. What really perked my ears was the Broadcast Messages. Is this only available for Sequences or can we tie Objects together with these. For example I have a pause button. Can we register like an Event Handler where if I press it, it will signal a menu to appear and then pause all the objects in a room?
 

mikix

Member
Hmm. Array_length_1d being removed? I have it like everywhere. Guess I'll stay on the version that does not have it removed. I use n + this + that anyway so why should I want the other array?
 

Homunculus

Member
Hmm. Array_length_1d being removed? I have it like everywhere. Guess I'll stay on the version that does not have it removed. I use n + this + that anyway so why should I want the other array?
There is no good reason to do that. It's being deprecated, meaning you can still use it, but will be removed in the future. You can always patch it yourself using a macro replacing array_length_1d with array_length, or do a search replace on the whole project...
 
Last edited:

gnysek

Member
Hmm. Array_length_1d being removed? I have it like everywhere. Guess I'll stay on the version that does not have it removed. I use n + this + that anyway so why should I want the other array?
It's replaced by array_length which does same. There's no _1d and _2d (they works for converted projects), as now there can be array in array, and every row can have different height now - so to get 2nd dimension height in "old" way - array_length(arr[0]);
 

Alice

Toolmaker of Bucuresti
Forum Staff
Moderator
Apparently, structs are subject to "with" statements as well. Well, they were called "lightweight objects" earlier on for a reason, I guess?

For example, you can do:
GML:
var someStruct = {};
with (someStruct) {
    x = 123;
    y = 456;
    z = 789;
    test = function() {
        show_debug_message([x, y, z]);
    }
}
someStruct.test();
And then you get the struct with properly assigned values.

Sadly, it seems GML doesn't treat its assignments as expressions, so this won't work:
GML:
with (someStruct = {}) {
    // insert code here
}
 

gnysek

Member
Latest closed beta is from 14th of April from what I found, so I think we gonna rather get another new build with fixes from last two weeks, and they are working now on "building it". There's nowhere mentioned, that beta will start today.

We will gradually be letting users into the beta based on when you apply via the application form linked-to at the end of this blog post.
I imagine there's a big green button "allow next 100 users" in their office, and by the number of tickets reported in next hours, they gonna allow more and more people (the less helpdesk questions, the more users can get in).

Also, Friday is never a good day to make any releases. I think that Monday is more possible, but they might invite few people manually today to ensure that installation and using beta forum on their helpdesk site works, and people can access everything. So beta testers of open beta ;)
 
Last edited:

Hyomoto

Member
Everyone wants it, and I'm sure Yoyo wants us to get our hands on it. So if they aren't letting everyone in it should be considered there's a reason for that. The most likely one is to avoid overwhelming limited resources. For example, if the first batch of people all have issue X, they can patch that before the next wave and avoid getting 10,000 tickets for it.

That's all speculation of course, but it's just a reminder that they are doing this for a reason.
 

❤️×1

Member
Don't get too excited : it's indeed a beta and also a massive change. My 2.2 project rises over 800 errors in 2.3 beta.
I'm not even sure if some are bugs or change in gml, like
GML:
if (_image_speed > 0) ++ _image;    //doesn't work anymore

if (_image_speed > 0){ ++ _image;}    //works fine
Is this expected? Nothing was written in the GML change about that, but it might be a desired effect.
 

Cameron

Member
Don't get too excited : it's indeed a beta and also a massive change. My 2.2 project rises over 800 errors in 2.3 beta.
I'm not even sure if some are bugs or change in gml, like
GML:
if (_image_speed > 0) ++ _image;    //doesn't work anymore

if (_image_speed > 0){ ++ _image;}    //works fine
Is this expected? Nothing was written in the GML change about that, but it might be a desired effect.
Just out of curiosity, what happens if you remove the white space between the prefix operator and the variable?
 

❤️×1

Member
Just out of curiosity, what happens if you remove the white space between the prefix operator and the variable?
Nothing, but _image++ works, so I think its a bug in the parser, mistaking ++ for an operator.

Dear moderator, in the mail I received, there is a link to a "known issues" page which end up on "oops The page you were looking for doesn't exist", could you post the correct link please? I'd like to report what I find, but I'd rather not overwhelm the yoyo team with duplicate issues.
 

Nocturne

Friendly Tyrant
Forum Staff
Admin
Moderator
Is this expected? Nothing was written in the GML change about that, but it might be a desired effect.
Yes, this is expected. The changes mean that you must use brackets and curly brackets to explicitly separate code. The compiler doesn't know if you want to add 1 to the first expression or the second.
 

gnysek

Member
Don't get too excited : it's indeed a beta and also a massive change. My 2.2 project rises over 800 errors in 2.3 beta.
Remember,
However, when it comes to discussing the beta with us and reporting all bugs/issues we ask you to use our Helpdesk forum's Beta section
-----

how do you know your ticket number?!
I didn't receive anything in my email since I've applied :(
You should get [YoYo Games] Beta Application Ticket Created, also, you can check it in https://help.yoyogames.com/hc/en-us/requests . If nothing there, then... bad luck.
 

Crescent

Member
Something that has confused me, which seems more apparent in other languages, is do we know if it's possible to pass function references for callbacks?

For instance, I want to be able to run the following:

GML:
function Attack( _damageMultiplier, _callback ) {
    // ... do things
    _callback();
}

Attack( 1,
    function() { ApplyModifier(Target, "modifier_armour_break", Seconds(10) }
)
... will this resolve the _callback function upon Attack()'s execution, or upon the function()'s definition? If the latter is possible, then dependency injection in GML just got a huge upgrade!
 

Nocturne

Friendly Tyrant
Forum Staff
Admin
Moderator
It will resolve callback() when the function is executed, and not when it is defined.
 
Last edited:

XanthorXIII

Member
Any chance of at least getting the manual so we can read while we're waiting to be "chosen" ?
However if you chose me now, I promise not to open any new tickets for a full week ;D
 

gnysek

Member
You can't open tickets even when in, all should be reported on "hidden" forum.

And with manual there's a problem as always. Lot of pages got updated description, lot of pages is new, bu you won't know which ones. For example - that's effect of comparing 2.2.5 and 2.3.x Beta:

1587735605352.png

Red = updated file inside, blue = new file inside.

1587735659054.png
So, 313 files changed, 278 added, 38 removed (including images; some of them might be just moved to different folder, so should be then subtracted from 278).

That's really many! If not a diff tool, I won't be able to find what's new in manual. There should be some changelist with every release, as also descriptions to many of OLD things is now updated/clarified.
 

hippyman

Member
Damn I thought it was first come first serve... I applied 20 minutes after this was posted and I haven't received an invite yet. :(
 

hippyman

Member
They did specifically put that they would be sending invites on a first-come-first-serve basis. Only reason I busted out my sad face. lol


EDIT: I guess I just had to whine first. haha Literally JUST got the email.

I'm guessing we should just be patient. Looks like they're actively pushing these out as we speak.
 
Status
Not open for further replies.
Top