Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics


Livecoding for GameMaker: Studio / GameMaker Studio 2 · By YellowAfterlife

[Yes] Will it work with 2.3?

A topic by gnysek created Apr 29, 2020 Views: 803 Replies: 32
Viewing posts 1 to 8
(1 edit)

As 2.3 moved into half-opened beta, and it's closer to stable release (1-2 months maybe?), I started to wonder will GMLive work with it.

They made a lot of changes, for file structure, and also now functions have some rather random names/references, like:


and thus those may be hard to support at all.

Will it be possible to still use GM Live (even if with some restrictions, like not creating anonymous functions in live part of code), or you yet didn't looked into?


I intend to support 2.3, but it does indeed come down to

A. Adding support for new syntax to GML-side compiler and runtime.
B. Adding support for new syntax to file-watch server.
C. Supporting new and unusual ways for code to be stored.

As you mention, reported function names currently leave much to be desired, so we'll see if that improves or if I'll have to add some sort of manual tagging (like assigning a unique name into a global variable before you live_call) for functions.

Yep, looking by amount of things they changed, seems it will take several weeks or months to add needed support, but it's good to see you didn't cross out the possibility as for today. I'm keeping fingers crossed then that you'll find a way (or they fix the bugs needed to make it work, and Russell won't come with his "this is by design" :P).


Man I'd legitimately have to consider not upgrading to 2.3 without GMLive...the amount of compile time it's saved me and how fast & easy it makes coding would be so hard to pass up even though all the new 2.3 features look incredible.  Deciding between the two would keep me up at night lol

Good that we're away at least 1-2 months before they gonna make 2.3 stable enough, looking to amount of (small) bugs reported in last two weeks.

I really, really, REALLY hope this will work with 2.3 when the time comes.  I'm just (re)-starting with GM after a long hiatus and was stoked about 2.3 and your live coding system.  It would save tons of time.  Here's hoping as said above by you they change things so it's not "by design".  It seems like all other companies though they are trying to snuff out the smalltime developer.

I just get the beta and the first thing I tried is to setup GMLive :( , I really hope to see it working on 2.3 It's a must! thanks for your useful tools


I am working on it, but, as this extension is using basically entirety of GML syntax, it is a little more sensitive to breaking changes, so I have to readjust some things to workaround oddities.

(1 edit)

For me, even if it won't support some of the new functionality (for example won't be possible to create sequences, structs or anonymous functions in "live" part of code, but will still work on non-live part), that's enough. I hope that at least this will be possible, and I'm keeping my fingers crossed for your success :)

I haven't used GMLive before and I'll probably wait until 2.3 support, as I'm too used to new features :|


I am as of yet working on it. Unfortunately there's a certain cost to trying to port a big extension onto an unstable version of a program, such as the runtime hard crashing with no signs of error or debugger taking 2 minutes and 8GB RAM to even start up:

(1 edit)

what with "red" versions? They may have some additional fixes already.


I usually test on "red" after noting that beta is broken (and before reporting a bug), but I've not had luck with any of my recent issues being already resolved there. With some help I found that:
A. The hard crash is a bug with string() not detecting a cyclic array reference under specific circumstances.
B. The contributing factor is this - despite there being no write accessors in use, a copy of array is made, causing all kinds of chaos. Doesn't reproduce on an empty project easily. Very cursed.

I'm facing some cursed problems too, even without extensions at all. Hope they'll get rid of this stuff

That's why it's beta.

Any progress, or bugs in 2.3 are still preventing from moving forward ?

(1 edit) (+1)

I would like to know that as well. I value this mod so much, I don't even want to proceed with GML without it. :)

Developer (1 edit)

BB10 is probably the most stable we've had as of yet (in the sense that the debugger now largely works and I was able to have it run GMLive code for the first time without the runner hard crashing)

(shown: REPL using GMLive, gml_string, and an advanced chat/command log extension that I've not released)

but it's only been a few days so I don't have much else but live_execute_string/Snippet API working yet. It's unclear whether it is worth releasing in this state.

Ha, BB10 for me was the first one I was able to crash silently with only 5 lines of code, interesting :P

Thanks for update, I'm looking for next betas then and hope they gonna make more fixes than new bugs :)

So, at this point you basically have to put your whole event into a snippet/live_execute_string() to get it to work?

Developer (1 edit)

If I were to release a build of the current state (instead of only doing a release once I'm done updating everything else to match), yes.

So now it comes down to syncing files?

Hey, yal, is there any progress on GMLive 2.3? (I'm too excited 8) )


As you might have noticed, I have uploaded a 2.3 version, but I'm going to update it again before making an announcement (noticed that <something>.method() doesn't use correct "self" for static methods)

Wow, that's amazing! I'm going to buy it right now :)

Heck I'm blind

Damn, it's not working...

More details: I tried to load it into a huge existing project, it crashed

Then I created a new one, imported the stuff, made a very simple topdown mechanic and it broke

At first it was alright, but apparently x and y are working in a weird way (after "Reloaded oPlayer:Step_0" and "Reloaded obj_gmlive:Draw_0" the player got teleported to (0;0) )

After that I tried manually setting x to room_width/2 and it threw a weird runtime error in the debug log.

Full message:

[live][14.07.2020 21:00:32] Runtime error: [error] DoDiv :2: undefined value
 called from vm:op_impl_div1 (line 13267)
 called from vm:op_on_bin_op (line 13353) - l_st[@l_z] = vm_group_op_funcs[l_act.o](l_st[l_z], l_st[l_z + 1]);
 called from game:anon_gml_thread_gml_GlobalScript_GMLive_378994_gml_thread_gml_GlobalScript_GMLive (line 11057) - var l_ar1 = vm_v2_gml_thread_v2_handlers[l_act.__enumIndex__](l__gthis, l_act);
 called from game:anon_gml_program_gml_GlobalScript_GMLive_115841_gml_program_gml_GlobalScript_GMLive (line 2784) - l_th.exec();
 called from game:live_call (line 10046) - var l_th = l_pg.call_v(l_pg1, l_vals, false);
 called from game:oPlayer_Step_0 (line 2) - if live_call() return live_result
 called from oPlayer:Step_0[L4,c20]

I've tried playing around with obj_gmlive's Draw event and it worked alright, though there's definetly something wrong with the other stuff

Initially I tried Vector-based physics (by vectors I mean structs containing x and y)

Then I removed everything related to it and it's still broken


If you can isolate the problematic code into one or two snippets that reproduce the issue, I can take a look, but if it was <vector>.<method>(...), that would be the issue I'm currently looking at.

I intentionally avoided using vector.method(). I can send you the .yyz file

(1 edit)

Oh, apparently the issue is in += operator. After I replaced it it kinda fixed

This is a rather major issue, but I'm kinda used to Lua's lack of += anyway)

Edit: also room_width and room_height are undefined