1.0.63 - GML updates and a bunch more


Key changes:

  • Macros are now pretty much in line with “real” GML macros, which means that you can do all sorts of quirky things with them in “live” code.
    Might not seem like a lot, but I had to rewrite how a good chunk of how code compilation works just for this.
  • static is now largely supported
    (note that static variables will be re-initialized when reloading code)
  • Constructors are now more supported than before
    Some features are currently impossible to implement because GML code does not have access to engine internals.
  • GMLive is now backwards-compatible with runtime 2.3.7.476 as that’s what many people stick to.

Other things:

  • break is now allowed inside a for-loop post-expression
    (mostly only necessary for the aforementioned quirky things with macros)
  • GMLive will now politely remind you if you are using “live call” functions but clearly got rid of the GMLive object.
  • Fixed instance_create_* function signatures to include the new “variables” argument.
  • Fixed some functions not accepting the new ref type as argument.
  • GMLive server now cleans up temp.shader after itself when using shader reloading.
  • Fixed C# server working poorly with code containing non-Latin characters.
  • C# server now has an icon.
  • Fixed zero-size tilemaps causing issues with room reloading.
  • Fixed malformed instance variable definitions (that’s a GM bug) causing rooms to not be live-reload-able.

Files

GMLive (for GMS2.3 and GM2022+).yymps 750 kB
Version 1.0.63 80 days ago

Get GMLive.gml

Buy Now$29.95 USD or more

Comments

Log in with itch.io to leave a comment.

(1 edit)

Minor bug with static that you may already know about - doing something like:

function test(_value) constructor {
	if(live_call(_value)) return live_result;
	
	value = undefined;
	set_value(_value);
	
	static set_value =(_value)=> {
		value = _value * 2;
	};
}

causes an error about the set_value script being undefined after the live-reload occurs (putting the set_value call after the static definition works as normal).

Oh bother, and also that’s cursed. Might need a different approach to initializing static variables inside constructors if you’re allowed to use the variables before declaration.

Excellent work, very awesome

Deleted 80 days ago
(+1)

Try removing and re-importing the extension.