Am I reading this wrong, or does scripts being able to define global variables mean that you can define persistent state variables (
supposed to only be used by the functions in that script file) this way? Things like seeds for your custom random number generator, data structures for bookkeeping in your whatever-systems (even if you can't actually
set them globally at compile time, you could have an initialization function)
...actually, considering how much
global. I throw around in my games, I don't really think it matters... the old method will still work
I'm overthinking that little detail...
Functions being basically "tabbed scripts 2.0" is super nice, though! I was kinda miffled when GMS2 removed script tabs and my resource tree got a lot more cluttered by helper scripts I'd forgotten about
Oh yeah, why didn't I react to tags basically being aspect oriented programming? :O This is like the best thing ever~
(The only thing that would make them even better would be the ability to assign
events to tags to make them true aspect-oriented programming constructs... e.g. all light sources run some special step event... but you can solve that with loops in the appropriate that gets objects matching the parent tag, even if it's more involved. Being able to assign collision and input events to a tag would be a welcome crutch, though.)
Chained accessors and structs also are amazing - I throw around arrays of data all the time to be able to have composite return values (3D vectors, lists of all relevant data in a monster database lookup, etc), and either of those would make my life a lot easier.
I'm not sure how much I'd use sequences and animation curves, but having WYSIWYG editors that could help me write cutscenes without having to imagine everything in my head, make a state machine to act on it, and then implement and debug it for days seems like a pretty tempting prospect!
It sounds dope as sheet okay that was the worst joke ever
I'm not sure what I think about the new generic resource tree, I'm so bad at organizing things that having the engine tell you how to do it was one of the selling points
But I suppose organizing things based off of level or subsystem is more industry standard and helpful in large projects (instead of having one large "here's
all the graphics assets" folder), and with Marketplace extensions I can definitely see the benefits of having them contained to ONE folder instead of one folder per resource type.