OFFICIAL GML Updates in 2019 (Follow up AMA)

Status
Not open for further replies.

Joh

Member
This is really too bad, its quite a meaty update with amazing features. To the point that I don't even want to start anything new major. lightweight object is such a convenience as I always made my own pseudo objects "wasting" DS & adding potential memory leaks. and multi bracket reference can allow so much more flexibility in organizing data. I can't start something with the old (current ways). Oh and I depend/use a lot of 2d arrays, so its also game breaking potential shift.

How long do the open beta usually lasts? can the safe stable folks even expect it anytime soon?
 

gnysek

Member
How long do the open beta usually lasts? can the safe stable folks even expect it anytime soon?
The open beta lasts as long, as they fix all bugs that are found (so I hope there won't be much, as they won't release it until it seems stable enough). Usually it was 2-3 weeks, but with so much changes in 2.3, we might have 2-3 open beta versions.

As YYG already mentioned, there's a closed beta now (don't know when it started, December or earlier), and some most active users/known developers are already testing 2.3. So, I'm sure they already tested closed beta deeply using their projects (like most complex games ever made in GMS), and YYG won't publish open beta until they believe a closed beta is what they feel is stable in fact. Problem with open beta is that lot of people instead of just finding bugs are gonna reports their opinions, complains, and things that in fact are just wrong understanding of documentation (like people who bought GMS2 day before... ;) ). Also, I don't want to get open beta if there are any fatal crashes, as I want to learn and play with new features, not just open it for 5 minutes - so better they gonna keep it hidden from us yet, if there are any :p It's better to wait several weeks more and have fun for hours, than disappoint in first 5 minutes.

In fact, I've got a feeling that only bugs we may find in open beta will be not those about sequences / GML updates, but it seems that there will be also third big change in 2.3. It wasn't mentioned (or I missed it), but in several bugs on bugtracker (bugs.yoyogames.com) for 2.2.x, there is message "2.3 will have new file format" or similar, and those bugs remain not touched for 2.2.x, and to be checked with 2.3. So if I understand correctly, all of the .yy files should have much much less JSON code since 2.3, and project files might have a different structure (lot of data in my opinion was duplicated among several files, or could be created by reading files structure when opening project), and it will be easier to use GIT and merge commits. That might be why it's delayed by month or two, as initial timeline didn't included them, and lot of projects might crash on import (that could be discovered during closed beta).

So, knowing they might also plan to add third big feature (hope it's not postponed to 2.4 and those were just an very old comments), I can wait until first week of February without complaining that 2.3 open beta is late :) And stable 2.3 might still come in Q1 in fact, as it ends on 31st March, so they still have two months to go from open beta to stable ;) Keep your fingers crossed :)

I'm really having hype for 2.3. I even started to write down some sketches of code for structures that I want to use in my project, so I can dive into it right after release :D Would be good if YYG would start now to push articles about how to use new features, so we can read it carefully and prepare.
 

Alice

Darts addict
Forum Staff
Moderator
Don't know about much less JSON code, but I'll gladly welcome a new file format that doesn't keep generating GUIDs for every little thing. Something that generates the exact same project files after doing the exact same changes, or even better - something that will convert the same logical project structure to the same project files (regardless of order of intermediate steps taken to reach that structure). Last of these would be about as version-control friendly as it gets, I think?
 

gnysek

Member
Hard to guess what they changed, from just having a "new files fromat" description :D

But removing GUIDS (for resources and it's properties, an empty room have about 6 GUIDS without layers and views), adding commas at end of JSON object (which might be not so valid, but helps during merges, as sometimes one new element was changing 3-4 lines too much to add commas), removing resource name (as the .yy file itself is always also named same as resource), removing data of folder structure (which also is always same as resource/group names and structure) - those were among those mentioned many times here on forums.

Just removing those can make .yy files about 10-50% smaller. Can't wait to check that one too! Some bigger projects could save some megabytes that way.
 

GMWolf

aka fel666
I'm really curious about potential project structure changes.
JSON seems flawed for merging, perhaps they will go back to an XML layout like in GMS1? Or a different flavour of JSON?

I'm also hoping they can do away with a lot of the .yy files that don't always have much useful info.
 

DukeSoft

Member
I'm really curious about potential project structure changes.
JSON seems flawed for merging, perhaps they will go back to an XML layout like in GMS1? Or a different flavour of JSON?

I'm also hoping they can do away with a lot of the .yy files that don't always have much useful info.
YAML files for descriptions of entities (even JSON would be allright). Folder structure for folder structure. Would solve so many problems :p
 

GMWolf

aka fel666
YAML files for descriptions of entities (even JSON would be allright). Folder structure for folder structure. Would solve so many problems :p
Yes YAML! I forgot that was a thing!
The whole thing should be yaml, or TOML! (Of course this will never happen)
 

Cpaz

Member
The open beta lasts as long, as they fix all bugs that are found (so I hope there won't be much, as they won't release it until it seems stable enough). Usually it was 2-3 weeks, but with so much changes in 2.3, we might have 2-3 open beta versions.

As YYG already mentioned, there's a closed beta now (don't know when it started, December or earlier), and some most active users/known developers are already testing 2.3. So, I'm sure they already tested closed beta deeply using their projects (like most complex games ever made in GMS), and YYG won't publish open beta until they believe a closed beta is what they feel is stable in fact. Problem with open beta is that lot of people instead of just finding bugs are gonna reports their opinions, complains, and things that in fact are just wrong understanding of documentation (like people who bought GMS2 day before... ;) ). Also, I don't want to get open beta if there are any fatal crashes, as I want to learn and play with new features, not just open it for 5 minutes - so better they gonna keep it hidden from us yet, if there are any :p It's better to wait several weeks more and have fun for hours, than disappoint in first 5 minutes.

In fact, I've got a feeling that only bugs we may find in open beta will be not those about sequences / GML updates, but it seems that there will be also third big change in 2.3. It wasn't mentioned (or I missed it), but in several bugs on bugtracker (bugs.yoyogames.com) for 2.2.x, there is message "2.3 will have new file format" or similar, and those bugs remain not touched for 2.2.x, and to be checked with 2.3. So if I understand correctly, all of the .yy files should have much much less JSON code since 2.3, and project files might have a different structure (lot of data in my opinion was duplicated among several files, or could be created by reading files structure when opening project), and it will be easier to use GIT and merge commits. That might be why it's delayed by month or two, as initial timeline didn't included them, and lot of projects might crash on import (that could be discovered during closed beta).

So, knowing they might also plan to add third big feature (hope it's not postponed to 2.4 and those were just an very old comments), I can wait until first week of February without complaining that 2.3 open beta is late :) And stable 2.3 might still come in Q1 in fact, as it ends on 31st March, so they still have two months to go from open beta to stable ;) Keep your fingers crossed :)

I'm really having hype for 2.3. I even started to write down some sketches of code for structures that I want to use in my project, so I can dive into it right after release :D Would be good if YYG would start now to push articles about how to use new features, so we can read it carefully and prepare.
Why is this clearer communication than anything YYG has done in the past few months?

Legitimately, I was going to post a topic in the community chat to address this, but I'm genuinely confused about why we effectively have radio silence on the state of things.

I'm not asking for a concrete date, I just want to know where we are with things. Maybe a brief explanation as to why it got delayed? Is that too much to ask?

Idk. All I know is this update has been one of the most anticipated in the lifespan of this engine. It's confusing and disappointing that they're not trying to be more transparent.

Anyway, rant over. Still excited though.
 

gnysek

Member
Why is this clearer communication than anything YYG has done in the past few months?
Probably because PlayTech like to announce any info about all of their products using press releases (as they are on stock exchange), and makes them when they feel that it's the time - so any info about new features or releases or delays shouldn't be announced in any other way. I think that's the way that big companies makes it (still - it's my opinion only, remember).

It's good to be signed to YYG newsletter, then we'll should all official info of the 2.3 features right when open beta starts (they gonna also post it on blog for sure). I rather don't expect any other info from their side until that.
 

Cpaz

Member
Probably because PlayTech like to announce any info about all of their products using press releases (as they are on stock exchange), and makes them when they feel that it's the time - so any info about new features or releases or delays shouldn't be announced in any other way. I think that's the way that big companies makes it (still - it's my opinion only, remember).
I was going to avoid pointing out Playtech specifically... But yeah. That sounds about right, and is equally annoying...
 

Yal

🐧 *penguin noises*
GMC Elder
YAML files for descriptions of entities (even JSON would be allright). Folder structure for folder structure. Would solve so many problems :p
I support YAML! Purely because it's one letter off from being my name, but I'm sure it's actually a good option. :p

There's several things with the new GMS2 file format that irks me, JSON being git-unfriendly and YY files having lots of redundant data being two major complaints. I also feel that the new structure where every resource has its own folder makes reusing resources from old projects much harder (you can't select 20 scripts at once anymore since they're in different folders now), but the new "scripts can have as many functions as you want" feature should basically make that complaint obsolete. (It's still gonna be a problem for graphics and audio assets, but since GMS2 has no usable editor for neither audio nor sprites, chances are you have the sources for those assets off in a well-organized export folder elsewhere, so it's not that big of an issue in practice. Not sure about reusing objects... I do it sometimes, but usually most of the functonality is offloaded to scripts so it's almost easier to import those and then make a new object rather than import the old)
 

gnysek

Member
YAML looks so readable, that people would start to break their projects by editing .yy manually :p

Seems that 2.3 might be a nice step, to make smaller updates and changes/removal of features in future versions, without waiting so long, as it will be a big step. I'm only awaiting for free-form deformation in sequences/sprites layer then (if they plan it at all, but they probably support it for Spine, so why can't make a native solution too - sequences updates are on roadmap for next year, so I hope it's on the list), and I have no other requirements :D (oh, maybe getting layer id in layer scripts - not sure if that is fixed yet or not).
 
I support YAML! Purely because it's one letter off from being my name, but I'm sure it's actually a good option. :p

There's several things with the new GMS2 file format that irks me, JSON being git-unfriendly and YY files having lots of redundant data being two major complaints. I also feel that the new structure where every resource has its own folder makes reusing resources from old projects much harder (you can't select 20 scripts at once anymore since they're in different folders now), but the new "scripts can have as many functions as you want" feature should basically make that complaint obsolete. (It's still gonna be a problem for graphics and audio assets, but since GMS2 has no usable editor for neither audio nor sprites, chances are you have the sources for those assets off in a well-organized export folder elsewhere, so it's not that big of an issue in practice. Not sure about reusing objects... I do it sometimes, but usually most of the functonality is offloaded to scripts so it's almost easier to import those and then make a new object rather than import the old)
Check out https://forum.yoyogames.com/index.php?threads/tool-gms2-resource-importer-updated-2019-05-01.45739/ - Import resources from other projects in bulk, can't live without it.
 

DukeSoft

Member
I wonder when 2.3 Open Beta will be here, lol.

Also, are we going to get a roadmap update for 2020? Or nothing new to add on to it? (2019 and previous years had more stuff in the roadmap, but I guess the sequence phases will take a lot of time to develop.)
 
Last edited:

Cpaz

Member
I wonder when 2.3 Open Beta will be here, lol.

Also, are we going to get a roadmap update for 2020? Or nothing new to add on to it? (2019 and previous years had more stuff in the roadmap, but I guess the sequence phases will take a lot of time to develop.)
My guess is the open beta got axed in favor of a closed beta. Probably to help with documentation and the like.

Which- you know, would be nice have confirmed at some point.
 

drandula

Member
By roadmap, closed beta took over open beta, but I am pretty sure after closed beta there will be open beta soon, as they wouldn't release it straight away.
 

gnysek

Member
There will be for sure open beta, as closed beta surely might be for most experienced users (so some of those that have games in showcases or makes tutorials, but because of NDA we don't know who), and they might find lot of bugs, but the public beta will be the one where we may find most weird and unexpected bugs - as it then will be tested on thousands of projects rather than dozens. Especially that they changed how scripts work and project structures are changed - that might have a little bugs which are hard to catch in closed beta, as they happen to 0,01% of users, on very edge cases (sometimes maybe it already was an error, which GMS2 was allowing in some way).

I'm thinking that open beta will be somewhere around second half of February/first half of March.
 

Sammi3

Member
During the waiting time, I'v learned the Godot3.2.
And it's good in gui except the native development.
In the meantime, I've written my own engine and even managed to port the Physically-Based Renderer into GameMaker. One thing I don't like about Godot and GameMaker is that you have to learn another language to use them. I'll still use GameMaker for 2D projects but the number of 2D projects I will be involved in will decrease and I quite like working in my own engine
 
You don't have to learn another language if you only ever bothered to learn GML!
Seriously, I was just going to say "how is this an argument against GM? Every engine uses whatever language it uses..."
Like, sure, some engines may use a language that's more standard, but there are hundreds or thousands of languages out there. If you go through a few engines, you're gonna have to learn a new language sooner or later, lol.
Also, GML is stupidly easy. Anyone coming from any of the more standard languages should be able to skim the manual and be making games within a few hours, hahah. I came from XNA/C# last time, and I literally just started typing and was like "oh, this works?" X'D
 

GMWolf

aka fel666
GML is stupidly easy.
debatable. GML has a ton of weird and annoying idiosyncrasies. Instances, objects, Resources (including scripts), data structures, buffers and surfaces are all accessed through type less handles, rules to what a valid expression is are unclear (A[<expr>] is valid, but <expr>[<expr>] isn't. ugh).
Array are modified by reference, unless they are passed into a function, at which point they are copy-on-write. unless you use accessors, then they are referenced again.
instances of the same type can have different variables declared.
Manual memory management for data structures.
variables used in scripts are instance variables by default, unless you use the var keyword to define them first (ugh, funcitons that take self as params would be easier).
The list of GM weirdness we all learnt to deal with goes on and on actually.

Once you know them it make is easy to throw something together, but they lead to lots of time spent learning why your arrays are not being modified, why you can use arrays of arrays, etc.
It also comes to bite you in the ass when you build more complex systems. (though hopefully GML20 should help a whole bunch, bringing the experience on par with javascript. honestly YYG should have done what they said they would do during the GMS2 closed beta and just allow us to use javascript. i kinda feel cheated on that one)
 

zargy

Member
In reality it is exceedingly difficult and annoying to do anything with GML that isn't action-oriented gameplay, and even that suffers due to multiple issues with the language (Wolf mentioned some of the most glaring ones above). Working with data in any fashion is a pain, and the language offers virtually no support for it.
 

kupo15

Member
honestly YYG should have done what they said they would do during the GMS2 closed beta and just allow us to use javascript. i kinda feel cheated on that one)
I love GML as it was a great intro to learning and stuff, but now that I'm experienced and learn more about real programming languages (like shaders) and understand where GML helps out, the more I wish GM was a more marketable or standard language. That would have been great if GM migrated to JS that way I can be more marketable. I'm not very proud to put GML on my resume at all even though I'm a very capable programmer because of it
 
debatable. GML has a ton of weird and annoying idiosyncrasies. Instances, objects, Resources (including scripts), data structures, buffers and surfaces are all accessed through type less handles, rules to what a valid expression is are unclear (A[<expr>] is valid, but <expr>[<expr>] isn't. ugh).
Array are modified by reference, unless they are passed into a function, at which point they are copy-on-write. unless you use accessors, then they are referenced again.
instances of the same type can have different variables declared.
Manual memory management for data structures.
variables used in scripts are instance variables by default, unless you use the var keyword to define them first (ugh, funcitons that take self as params would be easier).
The list of GM weirdness we all learnt to deal with goes on and on actually.

Once you know them it make is easy to throw something together, but they lead to lots of time spent learning why your arrays are not being modified, why you can use arrays of arrays, etc.
It also comes to bite you in the ass when you build more complex systems. (though hopefully GML20 should help a whole bunch, bringing the experience on par with javascript. honestly YYG should have done what they said they would do during the GMS2 closed beta and just allow us to use javascript. i kinda feel cheated on that one)
Well excuse me, Mr. Scientist.
I never had a problem with any of that, because I'm over here making games with Game Maker, not rocket ships.

ata structures, buffers and surfaces are all accessed through type less handles, rules to what a valid expression is are unclear (A[<expr>] is valid, but <expr>[<expr>] isn't. ugh).
What are you even saying?! This is an English speaking forum! What are you talking about!!
Mr. Smart Guy over here like:


"Yeah, sure, you can make games with Game Maker in five minutes, but actually the language is really confusing, because:



takes five more lines of code than Javascript to implement."


Pshhh, whatever, man. ;D <3

Jokes aside, I completely love GML even though it's jank and broken for more complicated stuff. For anything that would run on a Super Nintendo, it's super fast to develop with. That's all I need out of it, so it's fantastic for me, hahah. There are other engines and languages for other jobs, and I'd most likely use them for other jobs, yeah.
 
Last edited:

Lukan

Gay Wizard Freak
I super just want the new stuff. A taste of it... Something.
A video showing how it all will work on YouTube, a article on the hurdles they've faced implementing it...
Acknowledgement about it happening.
 
D

Deleted member 45063

Guest
Having GameMaker use a more standard programming language would be a huge plus to it (for content creation, documentation - as it only would require the engine API to be documented not all of the language constructs - and for broader adoption). However, I barely enjoy coding in GML due to the things that were already mentioned (I find it interesting that I'd rather deal with strings in C than in GML, among other things), but if JS was used instead then I would definitely frown upon it (but that is just a personal note, I dislike Javascript).

I am curious to see how coding in GML will feel like, once the 2.3 updates become public (if jai doesn't come out first).
 

GMWolf

aka fel666
Well excuse me, Mr. Scientist.
I never had a problem with any of that, because I'm over here making games with Game Maker, not rocket ships.


What are you even saying?! This is an English speaking forum! What are you talking about!!
Mr. Smart Guy over here like:


"Yeah, sure, you can make games with Game Maker in five minutes, but actually the language is really confusing, because:



takes five more lines of code than Javascript to implement."


Pshhh, whatever, man. ;D <3

Jokes aside, I completely love GML even though it's jank and broken for more complicated stuff. For anything that would run on a Super Nintendo, it's super fast to develop with. That's all I need out of it, so it's fantastic for me, hahah. There are other engines and languages for other jobs, and I'd most likely use them for other jobs, yeah.
I know this isn't a totally serious response but you are correct.

GML is great for what GML is mea t to do, write gameplay code in an action oriented manner. Really I haven't found a language that does it better.
But in GM, GML is pretty much your only choice, so if you want to write non gameplay code (like path finding or something) it kinda gets in the way.
I think that's the use case where GML20 will shine, writing non gameplay stuff (networking, so, physics etc).

I think that's why GM has mostly been successful in action games, were there is little need for non-action oriented code. I haven't seen very many strategy, turn based and such games, I think because the language doesn't lens itself to it well.
 

kupo15

Member
I suspect this is why Heartbeast left to go to OR picked up another engine that must not be named. The better a programmer I get the more I desire GM to be up to industry standard language. It was a pain learning typing in shaders but then I grew to appreciate and love that hard specificity. Is something like this coming with the new lightweight stuff and GML changes in 2.3? I sounds like there is going to be a small maturing phase happening soon with that
 

Zhanghua

Member
I super just want the new stuff. A taste of it... Something.
A video showing how it all will work on YouTube, a article on the hurdles they've faced implementing it...
Acknowledgement about it happening.
What is the video url link?
 

TsukaYuriko

☄️
Forum Staff
Moderator
No video was referenced there, only the wish for one to exist. There is no video.

You shouldn't go look for a video.

There shouldn't be a video.

Don't trust anyone who tells you there is a video.

If you see a video, forget about it.

Don't show anyone else the video.


Which video? There is no video.
 

Sammi3

Member
Seriously, I was just going to say "how is this an argument against GM? Every engine uses whatever language it uses..."
Like, sure, some engines may use a language that's more standard, but there are hundreds or thousands of languages out there. If you go through a few engines, you're gonna have to learn a new language sooner or later, lol.
Also, GML is stupidly easy. Anyone coming from any of the more standard languages should be able to skim the manual and be making games within a few hours, hahah. I came from XNA/C# last time, and I literally just started typing and was like "oh, this works?" X'D
It's more that GML and GDScript is only found in their respective engines, this means the number of libraries that you can draw from is very limited and the pool of knowledge very shallow compared to languages like C++, Javascript, C#. You kind of have to take the standard GML functions and a select few quality libraries that are found out there but I don't think you're going to get a math library as good as GLM in GML anytime soon. But to each their own.
 

drandula

Member
I think people are anxious to hear more about GMS2.3 and GML updates, and lack of information frustrates which starts to boil.

Some information or showcase in actual use could be nice. Hopefully they don't have problems with implementing updates, or internal problems from organizing the workload between employees.

Edit. Ability to use another language, eg. JavaScript, would be nice. It would let newbies with no programming background first learn GML, and eventually could lead them introducing themselves to other languages with GMS. In personal experience it could be great, but from Yoyogames' perspective it could be a fear of people wandering from GMS.

Edit2. I would like to try out GML20 with few things, few weeks I have been writing and playing around with neural networks, and updates could make code cleaner and give possiblities do few things differently. Chained accessories would do the trick cleaning up the code.
 
Last edited:
Status
Not open for further replies.
Top