OFFICIAL 2022.800 Beta Releases Thread

Status
Not open for further replies.

Dan

GameMaker Staff
GameMaker Dev.
This topic is for the discussion of issues relating to this update of GameMaker. However, this does not replace our normal bug reporting system and you should report all bugs as normal using https://accounts.yoyogames.com/contact-us

As ever, PLEASE check the Required SDKs FAQ before/during updating and ensure your antivirus/OS permissions are correct by checking User Permissions and Internet Access Required by GameMaker before you submit any bug reports or post issues here.

You should post here if:
  • Something has changed between the previous version and this one, breaking your game (i.e.: code that worked previously now does not)
  • Something reported as fixed in the release notes is not actually fixed
  • You are having IDE or system issues related to something new in this update
  • You are having issues with new features introduced in this version
  • You are having issues updating to this version
  • Everything works and you want to tell us we are great (seriously, let us know if it all works correctly for you)
When reporting issues to the Helpdesk, please try to add as much information as possible, for example:
  • If the issue is with the IDE, then please give a screenshot if you can to help illustrate the problem and always attach the "ui.log" file found via the "Open Log in ..." Help menu command inside GameMaker
  • If it is a code issue, then link to or attach a YYZ showing the most basic project possible which exhibits the behaviour
  • If it is a system issue (like compiling to a specific target or running on a device) then please always include the compiler log we ask for (it's genuinely very important!) and provide details of the machine being used as well as the software versions involved
Again: posting a comment in these release threads is not a replacement for filing a bug!


Release Notes

Runtime Release Notes


Current Release -
IDE v2022.800.0.199 and Runtime v2022.800.0.180

Resolve the saving issue mentioned quite a bit on pages 4 and 5 of this thread, the Feather messages panel offset shown on page 4, silent in-game crashes to do with shaders, dead/stuck processes in Task Manager when using the last few Beta releases, plus a number of other quite important things.

Note that we are aware this version has a bit of an issue importing .yyz/.yymp files if the original project's name had a space in it and also a similar issue with spaces in projects names when building for Opera GX in the Mac IDE specifically. We'll fix these for the next release, but we particularly wanted to get the saving fix out asap so those of you who had this issue can confirm all is well now.


Beta 7 - IDE v2022.800.0.196 and Runtime v2022.800.0.177 (Aug 22nd, 2022)

Amongst other things, this one fixes more Feather issues, several bugs to do with building projects, and a project saving one. It also fixes MMB on an asset name in your code had stopped opening that asset.


Beta 6 - IDE v2022.800.0.193 Runtime v2022.800.0.174 (Aug 17th, 2022)


Beta 4 - IDE v2022.800.0.187 Runtime v2022.800.0.166 (Aug 4th, 2022)


This one is actually quite an important update, as it reverts recent changes to case-sensitivity in project saving and also changes a number of ways in which the IDE loads and manages your assets - if all goes to plan, none of this will cause any issues and most of you probably won't ever notice the changes. However, if you were affected in your source control setup by the recent changes to case names, then obviously you might see changes again in this version, but hopefully this will now resolve any issues you had in the interim.

This version also introduces a new "mode" selector at the top of Preferences > Feather Settings > Message Severity Rules, which will allow you to control what types of messages you want Feather to alert you to, so please do give that a go and let us know what you think.


Beta 3 - IDE v2022.800.0.180 Runtime v2022.800.0.159 (July 28th, 2022)

A small bug-fix release (despite the large increase in IDE build number).


Beta 2 - IDE v2022.800.0.165 Runtime v2022.800.0.157 (July 26th, 2022)

Some highlights include:
- Clipboard Functionality on Mac, iOS and Android
- New simplified Time Source functions: call_later(period, units, func, [loop=false]) and call_cancel(timesource)
- Bug Fixes
- Feather updates
- Anim Curve preset library works again
- Feather: GM1061 - "array access warning" is gone


Original Release - IDE v2022.800.0.161 Runtime v2022.800.0.149 (July 21st, 2022)

August Betas feature a lot of clean-up as we head towards an LTS release later in the year - some old or underused platforms have now been removed, Feather has a lot more fixes/additions, new audio functions/arguments have been added so you can control playback more easily, the browser-based platforms now support the use of Virtual Keys in games, more platforms now support clipboard functionality, and we have made a big improvement to tile-encoding in rooms which requires a change in project version (so please do read these release notes carefully).


No updated manual has been released yet - will do this soon.
Rollback is enabled.
No Ubuntu IDE.
 
Last edited:

Sad

Member
Another weird bug when project is exported to OperaGX using the Beta version. Stable version is fine. Both project has same exact source code.

Compiled using Steam Stable version: https://gxc.gg/games/b52a6x/debug/tracks/2f0e0bca-014b-4461-ba17-06c2db9ff99b/
Compiled using Current Beta version: https://gxc.gg/games/8e0ra0/debug2/tracks/be60c921-8663-404e-8c5c-50c283ed0006/

I don't know how to explain, just try to play around with those windows in the Stable version, and compare it with Beta, everything become broken (The window dragging, "Test" button, and notice how the mouse_x and mouse_y stopped working after clicking).

Submitted a ticket as well, ticket number is: (#200825)

Switching to older Beta runtime, the issue doesn't seem to happen. Version 2022.600.0.133, however since there's display bug with this I can't confirm. Compiling it with Version 2022.600.0.133 fixed this issue completely.
 
Last edited:

Mehdi

Member
  • New functions and a rollback event have been added for providing chat functionality to your players
I can't see a new Rollback Event anywhere. Where is it?
 

erzyl

Member
Unfortunately, none of the spine-fixes solves the major spine problem that I mentioned earlier in the release thread - where animations are breaking entirely when using any other draw method than draw_self in combination with irrelevant collision code towards that spine object. (Ticket: #198895)
 
@Dan
how safe is to use this for a console submission ? I worry only for the tile compression in the project file. I worry something could be lost and one of our game in submission has almost 100 levels very larger and full of tile layers.
Thanks
Francesco
P.S. I need to use this version for some fixes made for Switch and PS.
 

Alice

Darts addict
Forum Staff
Moderator
Is there a way to specify a function of a given signature in Feather?
In a similar way Func<string, int, bool> in C# maps to a method like bool ExceedsLength(string str, int length) { ... }?

All I know is that the Function data type may include specifiers, as per the docs:
A function, may include specifiers
But there's no mention what kind of specifiers the Function may have (aside from None). I tried something like Function<Real,Bool> but it seemed to only confuse Feather.
(I created a feature request #200855 for either specifying the exact Function<...> parameter/return types if not done yet, or for updating the docs to tell how to specify these types if it's already implemented)

On a side note, I did try out the union types like {String, Real} and they worked nicely for a little test function I made, so well done on that front.
If there's one small complaint, is that when I try to use a type outside of the union type (e.g. a struct instead of a string or a number), the error message mentions something like "Type 'Struct' differs from type 'Any*' specified in jsdoc.", when it should be "{String, Real}" instead of "Any*". You can see the example here:
GML:
/// @function union_test(type)
/// @param {String} type
/// @return {String, Real}
function union_test(type) {
    switch (type) {
        case "string":
            return "Hello, world!";
        case "number":
            return 123;
        default:
            return {}; // the warning is here as it should be, except for the Any* part
    }
}
(I created a bug report #200854 for this one)
 

Mehdi

Member
@Dan @rwkay
I'm experiencing strange issues here and there. However I don't feel having enough energy to go through the whole process of bug reporting.
(After all, I've reported many bugs so far) Please make an easier and faster way for that. For example create a thread where we can simply say the issue and you take time to study that. Then If you happen to need more info, we would provide you. Please ...
 
So not sure what the intention is here, but when working in multiplayer, things seems to be triggered twice. For instance, I run this code in the step event of a managed object (of which there is only a single instance of in the game) after starting a multiplayer game (rollback_create_game(), etc):
GML:
if (keyboard_check_released(vk_space)) {
    var _inst = instance_create_layer(x, y, layer, Object2);
    show_debug_message(_inst);
}
And output is this:
Code:
ref 100006
ref 100007
That's obviously for just a single key press. And only a single instance is actually created in-game.

This makes it really goddamn hard to keep track of things. For instance, if I try to create a light and attach it to a managed instance that gets created. Guess what, I just created two lights, both of which are attached to different instances (only one of which shows up in my game though, wtf?). If I destroy one instance, I can destroy the light attached to it, but there'll be another light in the exact same spot that can't be reliably destroyed because the instance it's attached to doesn't show up, but also doesn't register as not existing. I've had to jump through some wild hoops trying to accommodate this behaviour. The bugs get wilder as your game gets more complex and you are trying to track more things. My guess is that it's because of the syncing and rollback or something, but who knows. I've submitted a bug report, but it's making creating a multiplayer game very difficult right now and I just needed to raaaaaaaant.
 

Mehdi

Member
For God's sake, nobody in this world needs so many decimals for a simple positioning. (Do we GM devs look like NASA scientists?) This only makes typing a nightmare. Also This is the case in room editor too. I think only two digits are enough (and in many cases even not needed at all!) You can provide a setting in preferences to enable the dev to specify how many decimals are needed.
1658773826879.png
 
Last edited:

Mehdi

Member
When Feather enabled, auto-completion loses functionality for some items. For example auto-completion for global variables gets totally off. I have to disable feather for this vey issue. Please check it.

Edit: I feel there are so may small issues in current beta and with every new one, a bunch of new issues show up. Therefore I can't go through official process of bug reporting for each one and I try to report them in here. Yoyo, please check the threads more seriously and carefully.
 

FrostyCat

Redemption Seeker
Rollback for mouse input appears to have gone off the rails for Beta Runtime 2022.800.0.149.

I just finished Matharoo's basic tutorial, and here is my version of the project: Download

My version draws the position of the mouse pointers with red (0) and blue (1) circles. You can enable online testing by changing the configuration to "Production".

When I ran the project under Beta Runtime 2022.800.0.149, as soon as I clicked anywhere, the m_axisx and m_axisy coordinate values stopped updating, and so did the click status for mb_left. It only updated when I clicked again, but then stopped again after I let go.

After double-checking for tangible differences with the tutorial and not finding any, I reverted the Beta Runtime one version back to 2022.600.0.133. This time the mouse input remained smoothly updated even after clicking somewhere.

Conclusion: This is a regression from the June beta to the August beta that would render the official Rollback tutorial unworkable.

Anyone else noticing this? Or did I make a mistake in my version?
 

Hyomoto

Member
I may be overlooking it somewhere, but can we get an overview of how the tile new tile compression works? It seems to optimize by indicating runs of tiles. It doesn't seem too complex, but some clarity is desired:
"-131,-2147483648,1,84,-828,-2147483648,"
The first number is the run of blank tiles, then I guess a marker, then how many tiles to read, in this case 1, tile 84, then run another -828 blank tiles which is the end of the room and another marker. What is the significance of the -2147483648? It doesn't get included in some runs, so being just a marker seems off. The algo also seems to produce some odd blank runs,
"-20,0,-12,-2147483648,-20,0,-12,-2147483648,-20,0,-12,-2147483648,-20,0,
-12,-2147483648,-20,0,-12,-2147483648,-20,0,-360,-2147483648,"
If I'm understanding it, in this case it seems to say run 20 0's, then 12 blanks, then 20 0s, then 12 blanks, etc... but 0s should just be skipped, right? Or more specifically they can be encoded in the blank runs. Anyways, I was looking to write a LDTK-to-GM project encoder, but the new compression definitely makes that more complex without knowing what it's doing.
 
Rollback for mouse input appears to have gone off the rails for Beta Runtime 2022.800.0.149.

I just finished Matharoo's basic tutorial, and here is my version of the project: Download

My version draws the position of the mouse pointers with red (0) and blue (1) circles. You can enable online testing by changing the configuration to "Production".

When I ran the project under Beta Runtime 2022.800.0.149, as soon as I clicked anywhere, the m_axisx and m_axisy coordinate values stopped updating, and so did the click status for mb_left. It only updated when I clicked again, but then stopped again after I let go.

After double-checking for tangible differences with the tutorial and not finding any, I reverted the Beta Runtime one version back to 2022.600.0.133. This time the mouse input remained smoothly updated even after clicking somewhere.

Conclusion: This is a regression from the June beta to the August beta that would render the official Rollback tutorial unworkable.

Anyone else noticing this? Or did I make a mistake in my version?
I don’t believe you did anything wrong. The same thing is happening to me and there’s a thread full of other users with the same problem floating around the forum.
 

Stra

Member
Creating an instance by passing it variables via a struct this way

GML:
instance_create_layer(100, 100, "Instances", OBJfinisher, { LEFT: 10, RIGHT: 12, VICTORY: _vic })
is not taken into account by Feather

1658822081015.png
 

GamerXP

Member
Also, can anyone explain this one to me?

View attachment 49694
View attachment 49696
You created an array that contains default values (0 or undefined - not sure), then you write to it as if those values were arrays while they are not.
I'm not confident if GM still allows it (it worked in old GM versions at least), but it's a bit bad practice to begin with. If it works - then, I think, feathers does not know you can initialize arrays this way.
 

gnysek

Member
Also, can anyone explain this one to me?
This one should be better.
GML:
var _table = array_create(0);
_table[0] = array_create(2); // or for this specific case: _table[0] = [1, 2]
As a side note, writing a = array_create(10, []); will put SAME array reference into all 10 indexes, instead of creating new array for each entry.
 

Alice

Darts addict
Forum Staff
Moderator
If you check the release notes (and aren't experiencing some weird caching delay or something), you may notice there's some 2022.800.0.165 IDE release (as opposed to *.161 IDE thus far). And aside from a bunch of bugfixes* it introduces some new time source functions - call_later(...) and call_cancel(...), as described in the Runtime Release Notes.

*Though it still haven't fixed some issues I had with Feather in my project, so I eventually made a report #200974 about inconsistent type inference between base type script and derived type script.
Basically, if you have a base constructor that defines some properties, and then use these properties in the derived type constructor, then depending on which script you change and save, Feather might find out different types for that property. Hopefully they can figure out the issue from there, because it makes working with constructor inheritance more annoying somewhat...
(I included some screenshots and example project too, so hopefully it won't be too hard to diagnose...)
 

ScottD

GameMaker Staff
GameMaker Dev.
Good Morning,

August Beta 2 ( IDE v2022.800.0.165 Runtime v2022.800.0.157 ) is live.
Please read the release notes for more detailed information

Some highlights include:
- Clipboard Functionality on Mac, iOS and Android
- New simplified Time Source functions: call_later(period, units, func, [loop=false]) and call_cancel(timesource)
- Bug Fixes
- Feather updates


Note: there was a slight hitch with our build machines yesterday so this was actually live last night (in case you already received the update) and a couple more fixes went in that were missed in the release notes.
Anim Curve preset library works again
Feather: GM1061 - "array access warning" is gone


Have fun.
 
Last edited:

ScottD

GameMaker Staff
GameMaker Dev.
]

I can't figure it out: Why always in the initial hours of a new release, the release notes page is empty, Please solve this issue.🤲😭

Hrm, try https:// version of the release page - I've updated the link in the post as well.
 

Mehdi

Member
@ScottD
Issue: When you middle-click on any function, the home page of GameMaker Manual opens up (instead of the specific function's page).
It was the case in the previous Beta too. Please solve it.
 

Alice

Darts addict
Forum Staff
Moderator
Is this simplified time source, garbage-collected automatically? I mean we don't need any time_source_destroy for it?
There's call_cancel(...) function introduced as well - I imagine that one also destroys the underlying time source?
 

Mehdi

Member
Once upon a time, there were more than 300 errors in my project. Now there are only 18. Have I become a better programmer? Or Feather has become a better robot?!

1658914248130.png


PS: Warnings are still high.
 

hxyy

Member
Each time it is used, three alerts or errors occur
This very vexed,
How do I disable prompts about this macro instead of disabling the entire script or ignoring the entire error or alert type?
(Machine translation)
45ygd547568.png
 

WangleLine

Member
I may be overlooking it somewhere, but can we get an overview of how the tile new tile compression works? It seems to optimize by indicating runs of tiles. It doesn't seem too complex, but some clarity is desired:
"-131,-2147483648,1,84,-828,-2147483648,"
The first number is the run of blank tiles, then I guess a marker, then how many tiles to read, in this case 1, tile 84, then run another -828 blank tiles which is the end of the room and another marker. What is the significance of the -2147483648? It doesn't get included in some runs, so being just a marker seems off. The algo also seems to produce some odd blank runs,
"-20,0,-12,-2147483648,-20,0,-12,-2147483648,-20,0,-12,-2147483648,-20,0,
-12,-2147483648,-20,0,-12,-2147483648,-20,0,-360,-2147483648,"
If I'm understanding it, in this case it seems to say run 20 0's, then 12 blanks, then 20 0s, then 12 blanks, etc... but 0s should just be skipped, right? Or more specifically they can be encoded in the blank runs. Anyways, I was looking to write a LDTK-to-GM project encoder, but the new compression definitely makes that more complex without knowing what it's doing.
2147483648 is the value gamemaker uses for undefined tiles, as opposed to just empty tiles. It's been like this for ages, no clue why they differentiate between the two.
 

zargy

Member
We have introduced a new, much faster method for storing tile data in your rooms and passing this information into your builds - which fixes a long-time issue where rooms with lots of tile slots could see a pause on the line "Found Project Format 2" in their output log
THANK YOU
 

John4300

Member
Been working on a game with rollback.

I'm not sure if 3 or 4 player games work at the moment. I think they worked earlier, but having more than 2 players in a max of 4 player games seem to throw javascript errors when changing rooms.

Some things:

--------------------------
It has been rather easy to implement, but it seems the game at times throws random errors, probably related to syncing. This usually happens when a managed object is getting destroyed.

I feel this is related to the fact the object is there, and is not at the same time. You collide with a bullet, it gets destroyed, and collide with it again, but now it doesn't exist. Game maker seems to throw rather random error at these points where it says my wall object had a problem in it's creation event, even no walls are being created (It's in middle of a room) and walls aren't managed.

My game moves from menu to a random map at the start, if that helps any.

These problems are somewhat rare, however.

--------------------------
The game also at times throws a javascript error instead of showing anything on Game Maker side in the game console.

This seems to happen when I change rooms.

This is the error message:

Success sync_on_frame: 119, change room to 0.
Creating 4 player objects in room.
Assertion: remote_status.last_frame >= _peer_connect_status.last_frame @ multiplayer/lib/network/udp_proto.cpp:555 (pid:42)

This last line is not on game maker console (When you press "Toggle Console" on browser)

This happens only with more than 2 players as well (Difficult to bugfix, as I mostly test with only 2 players)

--------------------------
Roll back event, rollback_game_info and rollback_event_param.num_players seems to return maxium number of players of players, instead of current number of players.

--------------------------

4 player system seems to be in quite of a beta.

If you join an ongoing game, the game doesn't start, and you'll disconnect, you'll "reserve" a slot, and get on next slot the next join, even the player was disconnected.

Example:
Player 0 is host.
Player joins to slot 1, disconnects. Next connect they'll be on slot 2, and the next slot 3, after that the game is "full".

This will most likely cause problems, if there are four player game, 3 players join, player id 1 (the middle player) disconnects, fourth player joins.

--------------------------
Also, as this is work on Opera GX, it would be awesome to point to an Opera GX executable which to use to launch (It would also be awesome to define a browser used for manual). As Opera GX isn't my default browser and I installed it with "USB" option so it's contained, Game Maker always boots up Firefox, then suggests me to install Opera GX, so I have to grab the link from the browser really quick or get it from history.

--------------------------

One final thing.

Is it possible to get the number of players currently in the game (Before the game has started)? This would be useful info so you can start a 4 player game early if there are more than just you in the server.
 
Last edited:

Slyddar

Member
August Beta 2 ( IDE v2022.800.0.165 Runtime v2022.800.0.157 ) is live.
Please read the release notes for more detailed information
  • Code Editor: [Visual] using arrow keys to move cursor when typing a comment simultaneously switches the focus between blocks
  • Project Load : IDE freezes when loading a project when the project folder contains a folder named ".git"
Wohoo! Thank you for these fixes, you've made my day.
 

John4300

Member
Another reply, but something a tad critical with rollback multiplayer.

rollback_event_param.num_players returns maxium players instead of current in game on both Rollback Start and Rollback Event events. When you join or start a 4 player game, this returns 4 no matter how players are in the game, and if you start the game early, it still returns 4 no matter the number of players in game at that point.

This makes it a bit difficult to see how many players are actually in the game at the start of the game, making variable number of players a tad difficult.

If this is intended, it should be updated to manual, and there is a question, how to tell how many players are in the game at the start?
 

gnysek

Member
rollback_event_param.num_players returns maxium players instead of current
not sure if it should return current number of players or max (as "total" in manual can be understood in two ways), but you can easily get current number of players with instance_number(obj_player)
 

John4300

Member
not sure if it should return current number of players or max (as "total" in manual can be understood in two ways), but you can easily get current number of players with instance_number(obj_player)
Sadly, this method only works if you have player objects set with rollback_define_player(object), if you have done the player creation yourself you don't have a good way to check it I think.
 

Zixtix

Member
Is the Xbox Series X|S required SDK doc up to date for the beta? I am getting linker errors when compiling the game and cannot test the Xbox functions.
 

Jman

Member
Another reply, but something a tad critical with rollback multiplayer.

rollback_event_param.num_players returns maxium players instead of current in game on both Rollback Start and Rollback Event events. When you join or start a 4 player game, this returns 4 no matter how players are in the game, and if you start the game early, it still returns 4 no matter the number of players in game at that point.

This makes it a bit difficult to see how many players are actually in the game at the start of the game, making variable number of players a tad difficult.

If this is intended, it should be updated to manual, and there is a question, how to tell how many players are in the game at the start?
You can use the rollback event to keep track of the number of players yourself. In that event when rollback_event_id contains rollback_connected_to_peer you could increment a variable
that holds how many players are connected. You could decrement it when rollback_event_id holds rollback_disconnected_from_peer. For a connecting player you might need to make
use of rollback_game_info. Not sure on that last one. Relevant manual page.
 
2147483648 is the value gamemaker uses for undefined tiles, as opposed to just empty tiles. It's been like this for ages, no clue why they differentiate between the two.
2147483648 in hexidecimal is 0x80000000, so thats what the mystery value is

As for distinguishing the two, it's so the user knows there was an error somewhere instead of it just looking like the editor didn't save your work at all; You can also work off the error tiles to try recreate what you've already done
Or at least I'd hope that's how it works, I've almost literally never used tilemaps.
 

John4300

Member
You can use the rollback event to keep track of the number of players yourself. In that event when rollback_event_id contains rollback_connected_to_peer you could increment a variable
that holds how many players are connected. You could decrement it when rollback_event_id holds rollback_disconnected_from_peer. For a connecting player you might need to make
use of rollback_game_info. Not sure on that last one. Relevant manual page.
This works as a workaround, but this breaks sync test for example - sync "bots" won't connect to your game, so your game reports it only has one player which doesn't obviously spawn the bots.

... Again, this can be worked around by seeing if sync test is on and you spawn 4 players instead.

However, as I said, I fear the connect/disconnect method might not be 100% accurate (Edge cases if player disconnects while connecting, connection fails or other fun stuff), and it would definitely be better if you could get the actual number of players when you start the game.

Anyhow, I did make a bug report about this (#201021).
 
Status
Not open for further replies.
Top