Discussion What are your favorite features of gms2?

flyinian

Member
I just discovered how easy and useful structs & constructors are. This is exponentially better than what I was doing before and may just make my work flow that much better.

What are other features of GMS2 drastically improves your life when coding? Along with anything else worth mentioning.
 
Ternary operators, delta time, and shaders were my biggest game changers. The latter two completely changed my approach to 3D development and immeasurably enhanced all my projects.
 

kburkhart84

Firehammer Games
There are certainly multiple ways of looking at this.

Language Features....I'd say it's gonna be the new structs and methods. Structs let you do so many things in a much easier way. We don't have to do workarounds to make things like vectors, or anything that could be a class or data type in other languages. And then methods go great with that because you have to have code that does things with these structs. Methods aren't something I use all that often on objects, because the auto-complete doesn't really work for it all that well, but for structs I use static methods constantly.

IDE features...I personally haven't used sequences yet, but I've seen lots of people say they are a gamechanger for them. And that makes sense. I'll likely end up using them when they get more feature-complete. I DO like how you can tweak objects' variables in the room editor. Before, you could only use instance creation events(which are still there). Now, you just declare the tweakable variables in the dialog instead of the create event, and then they are available. Note that this works even better with the whole parent/child object system, which I also love. The thing about that one though is that it ALSO counts as a language feature since you can use it in GML.

One thing that sets GML apart from just about any other language, is the ease of access. You can access about anything, about anywhere. You can easily access object instances by name, or you can specify names of specific instances in the room editor. You don't have to do some fancy call to find objects typically. And the with() constuct just lets you access ALL instances of any object, including children through the parent object. This access is there ALL THE TIME. You don't have to make code that does it, it just works right out of the box.
 

Gamebot

Member
@flyinian and @kburkhart84 said it perfectly!

Just wanted to add the newer asset browser simply being "folders". One of the first things I do is delete everything. Except the only needed asset, the room. The fact you can create, find, and sort easier. You can sort A-z or Z-A, use tags, use different highlight colors... Much easier to keep organized and know exactly where everything is.

I'm probably the only one but...it would be nice to get rid of the nodal system and do something more stackable vertically. Like this:


obj_zombie.png
 

Mr Magnus

Viking King
Being able to declare functions *anywhere* a la Javascript.

Makes it so much easier to dynamically rig together something quickly and still have some semblance of structure. I used to hate making UI in game maker because it was so stiff and time consuming, whereas now I can just have a bunch of generic "button" instances who each have a function telling them what they do defined in the instance creation code for the room editor,
 

Roa

Member
Yeah, functions and structs have managed to easy take over 90% of everything I would normally do in step events using game objects.
It's to the point where structs are almost a black hole for memory to disappear on me, but being able to make my own "types" and "cast" has made work flow so much better. My reliance on them became almost unhealthy in such a short time.

But the REAL MVP is honest to god just gamemaker auto magically handling rendering and graphics. It seems like such a no brainer for game engines, but if you have ever built anything from the ground up, you know what an absolute god send it is.
 

Alice

Darts addict
Forum Staff
Moderator
Not being original here when I say I like structs & constructors & methods as well.

Aside from that, I like the Object Variables feature when I can set variable states and they apply before Created event, especially useful in projects that rely on Room editor a lot - I imagine projects like action RPGs or metroidvanias would especially benefit from them). In fact, whenever I need some metroidvania-style connections between rooms, I use Object Variables to associate a counterpart room and an optional identifier to differentiate between different pairs of transitions connecting the same rooms.
The only thing I'm missing to complete object management in Room Editor is ability to change the sprite of the specific instance and have it display as that sprite. That way, I could re-use same NPC or similar objects while having them clearly distinguished in the room.

As someone who dabbled with more low-level engines (like MonoGame or Haxe, but it really was dabbling), I concur with kburkhart about instances handling (how I can iterate through all instances of specific type using with statement) and with Roa about the graphics. Something like drawing a sprite seems like it *should* be easy, yet it often involves loading up some texture object or somesuch and then calling the drawing on that texture using another graphics objects. The sacrifice of encapsulation GML makes is well rewarded by how much less juggling of actors and graphics objects it involves.
 

ELV Games

Member
I really like the room editor, it's simple and really easy to get used, when I first tried gms2 I had almost no code knowledge but I could make really nice maps with my pixel art, I found it really amazing! šŸ„°
 
Top