OFFICIAL GameMaker Studio 2 - Roadmap update

Status
Not open for further replies.
E

Edmanbosch

Guest
Not tried out the new version yet. The big question is; does every variable you've ever wrote still follow you around via the autosuggest or have they fixed that?
Still seems like you can do that, kinda wish they changed that.
 

rwkay

GameMaker Staff
GameMaker Dev.
In GML every variable that has ever been used could be part of an instance so the intellisense has to do this, until GML changes the visibility of variables (unlikely to happen) then this will not change.

EDIT: It will not show you local variables outside the current script - so consider using more local variables within code as they will only appear inside that script.

EDIT: I would consider a preference to say omit variables from other objects events (but it would keep scripts / timelines variables etc)

Russell
 
K

Kuro

Guest
In GML every variable that has ever been used could be part of an instance so the intellisense has to do this, until GML changes the visibility of variables (unlikely to happen) then this will not change.

EDIT: It will not show you local variables outside the current script - so consider using more local variables within code as they will only appear inside that script.

EDIT: I would consider a preference to say omit variables from other objects events (but it would keep scripts / timelines variables etc)

Russell
Thanks for the tips! A preference to omit variables from other objects events sounds great.
 
E

Edmanbosch

Guest
In GML every variable that has ever been used could be part of an instance so the intellisense has to do this, until GML changes the visibility of variables (unlikely to happen) then this will not change.

EDIT: It will not show you local variables outside the current script - so consider using more local variables within code as they will only appear inside that script.

EDIT: I would consider a preference to say omit variables from other objects events (but it would keep scripts / timelines variables etc)

Russell
Maybe omit variables in other objects events, but for other pieces of code like scripts and timelines, you could have an option in the window to chose what object variables it should get? So you could set it so that it gets the variables for obj_player and nothing else, make it so that it has autocomplete for all variables(doesn't care what object they're from), and another option for having no variables from objects appear.
 

Alice

Darts addict
Forum Staff
Moderator
Maybe omit variables in other objects events, but for other pieces of code like scripts and timelines, you could have an option in the window to chose what object variables it should get?
That would be quite a neat option, actually. If developer could explicitly declare which variables are in scope, the compiler could also warn about typos involving variable names nowhere in the scope (so far, only local variables typos are apparent). For example, that could be included in a documentation comment:
Code:
///@description ...
///@param ...
///@with object1, object2, ...
///@variables variable1, variable2, ...
I don't know which would be more convenient to implement, @with or @variables (I suppose the former requires for autocomplete to know which objects have which variables; don't know if it tracks it already), either or both would be fine by me.

As for the options in preferences, I imagine these would be:
- use variables from all scopes (treat no variables as "foreign", like now)
- use variables from own scope (it means all event variables in the object context + documentation, documentation from all moments in a timeline context, and own documentation in a script context; all other variables are treated as "foreign")

Maybe there could be an option to enforce no foreign variables and refuse to compile in such a case, but having foreign variables coloured differently than local and context variables is already a significant improvement, quickly drawing dev's attention to possible typos.
 

Overloaded

The Oneirophobe
The roadmap, under the IDE section, mentions Code Folding. Code Folding was added in v2.1, shouldn't it be removed from the roadmap?
 
R

Rukiri

Guest
Any ETA on Tile Collision? I have a pretty good way of doing it, but curious as to how it'll be implemented.
 
R

Rukiri

Guest
Maybe, structs and functions in time for christmas? :D
I'd just push for a proper language like C#, lua, or even javascript!

But yea, having function(args) { //stuff } would reduce the number of scripts actually needed for 1 script :)

I would ACTUALLY LOVE if GML was actually object oriented, javascript prototype functionality would be bliss!
 
Last edited:

xDGameStudios

GameMaker Staff
GameMaker Dev.
Didn't 2.1 just come out? I'd say probably another quarter?
It came out 1 month ago :)

Right now apart from the layer system, animated tiles, auto tiles... Gamemaker 2 offers the same thing it offered in Studio 1.4...

What I mean is that if your game does not need tilling then GMS2 doesn't have much to offer.

GML almost didn't changed apart from regions and literals (but those are not the kind of features that are game changers).

So the people that came out criticizing the fact "GMS2 being a whole new software and not just an update" and "you have to pay the full price again"... I kinda understand them because essentially the big changes that you paid for when buying the software are yet to come.

I get that GMS2 new design is awesome and the workspace thing is cool (there are a lot of opposing opinions there) and it is beautiful.
but that's not what makes a game engine great and neither the reason I gave Yoyo games my money.
And I guess I'm not the only one thinking like this.
 
E

Edmanbosch

Guest
It came out 1 month ago :)

Right now apart from the layer system, animated tiles, auto tiles... Gamemaker 2 offers the same thing it offered in Studio 1.4...

What I mean is that if your game does not need tilling then GMS2 doesn't have much to offer.

GML almost didn't changed apart from regions and literals (but those are not the kind of features that are game changers).

So the people that came out criticizing the fact "GMS2 being a whole new software and not just an update" and "you have to pay the full price again"... I kinda understand them because essentially the big changes that you paid for when buying the software are yet to come.

I get that GMS2 new design is awesome and the workspace thing is cool (there are a lot of opposing opinions there) and it is beautiful.
but that's not what makes a game engine great and neither the reason I gave Yoyo games my money.
And I guess I'm not the only one thinking like this.
Didn't they give out more control over the camera system as well?
 

hippyman

Member
GML almost didn't changed apart from regions and literals (but those are not the kind of features that are game changers).
Aside from what was already pointed out, they've completely overhauled the 3D system, changed the way instances work in rooms, added some much more convenient functions for handling variables and instances. There's more that I'm forgetting but this should give you an idea. 2.x IS an entirely different software and once you start using it for a while and try to go back to 1.4 it's kind of a pain.
 

Dmi7ry

Member
Right now apart from the layer system, animated tiles, auto tiles... Gamemaker 2 offers the same thing it offered in Studio 1.4...

What I mean is that if your game does not need tilling then GMS2 doesn't have much to offer.
GMS 2 has debugger with unbroken watches :)
 

xDGameStudios

GameMaker Staff
GameMaker Dev.
I know what feature GMS2 has ;) I already bought it since the day 1 along with the exports! I'm just saying that a lot of the features GMS2 "has" are yet to come!!
I can see this from two different perspectives:

1) If in GMS2 things were "redesign from ground up", why not have already variable real-types, or real methods. Why implement something bad to after add it re-redesign it again? If things were kept from GMS1.4 then it is not totally new system ... so:

2) If only the IDE was redesign and GML stayed much like it was then: the core system, the compiler and the runner didn't really change that much so it is not a new software, just a new IDE and the exporters shouldn't have to be fully bought.

What I mean is that the big changes were within the IDE and not the runner or GML.. and the runner ones are yet to come...
The price I paid for GMS2 and all the exports were a leap of faith ... in the future!

I'm not saying I want a refund... I just ask for some more information...
More than a list that says all the features in it can be removed without further notice.
As far as I'm concerned GMS2 was already released, people already bought it.. so if tomorrow YoyoGames says "nothing in the list will be added" they are in their right!!
And I wouldn't be that happy.

I wouldn't say: "ohhh they added a lot of features and it is all worth it"... because right now the price is not worth it, not yet! it will be in the future but right now... I don't think so :)

EDIT::
The debugger, the regions, the gestures events, the mipmaps... were not even there when the software was released hence the "leap of faith" I was talking about...
 
Last edited:
R

Rukiri

Guest
I guess it just like objects in c++ and other languages.
There would have to be an almost overhaul to GML if they were to "finally" make it object oriented, by lighter objects they could just mean simpler objects as in static only.
 

xDGameStudios

GameMaker Staff
GameMaker Dev.
I guess it just like objects in c++ and other languages.
I think they will be like objects but with no events... (no update, no draw, no mouse click,...) just a way to store variables.
must like an array but instead of accessing:

Code:
enum PLAYER
{
   HP
}

player[PLAYER.HP] = 100;
one could simply use:
Code:
player.hp = 100;
this "light" object, would just work as a data holder.
 

Dmi7ry

Member
I think they will be like objects but with no events... (no update, no draw, no mouse click,...) just a way to store variables.
...
this "light" object, would just work as a data holder.
Yep. "Object" means a custom data type. Currently it can be achieved using ds_maps + "objects" manager.
 

Hyomoto

Member
Last I heard about this, light objects referred to objects without a lot of built in stuff. Right now objects have potential for gravity, and directions, and etc... basically they would be the same as they are now but minus all that stuff. It's aimed at people who largely manage all these systems themselves and get annoyed with certain built-in variables and behaviors. Considering @rwkay and @Mike have said a lot of what won't make it in, I'm seriously doubting they'll be a new data type. However, they will most likely have most, if not all, the same events.
 

Dmi7ry

Member
Last I heard about this, light objects referred to objects without a lot of built in stuff. Right now objects have potential for gravity, and directions, and etc... basically they would be the same as they are now but minus all that stuff. It's aimed at people who largely manage all these systems themselves and get annoyed with certain built-in variables and behaviors. Considering @rwkay and @Mike have said a lot of what won't make it in, I'm seriously doubting they'll be a new data type. However, they will most likely have most, if not all, the same events.
Roadmap says about new/delete and constructors/destructors. But if lightweight objects means just removing some built-in variables/functionality, then there is no reason to say about new methods, because instance_create/instance_destroy + Create/Destroy events already exists.
 

Hyomoto

Member
Roadmap says about new/delete and constructors/destructors. But if lightweight objects means just removing some built-in variables/functionality, then there is no reason to say about new methods, because instance_create/instance_destroy + Create/Destroy events already exists.
As I said, that was the last I remember hearing about them.
 

xDGameStudios

GameMaker Staff
GameMaker Dev.
Roadmap says about new/delete and constructors/destructors. But if lightweight objects means just removing some built-in variables/functionality, then there is no reason to say about new methods, because instance_create/instance_destroy + Create/Destroy events already exists.
maybe this has something to do with being able to pass arguments to the constructor and destruct methods!! that right now I think it is a little non sense not being able to, regarding the fact that the gestures events use a ds_map filled with data... i don't see the problem with doing this to other events:

Code:
event_data[? 'arguments'];

Last I heard about this, light objects referred to objects without a lot of built in stuff. Right now objects have potential for gravity, and directions, and etc... basically they would be the same as they are now but minus all that stuff. It's aimed at people who largely manage all these systems themselves and get annoyed with certain built-in variables and behaviors. Considering @rwkay and @Mike have said a lot of what won't make it in, I'm seriously doubting they'll be a new data type. However, they will most likely have most, if not all, the same events.
I doubt events will still remain there because... the click event is nothing but a peace of hidden code added to a hidden event that runs god-know-where... so if they leave all the events there the bloating code will still be there. But, non the less, an object without the creepy movement stuff (speed... hspeed... vspeed... gravity...) and fully loaded with the possible of events (that are not compiled unless used) sound a good alternative. (though I really wanted them to work more like data holders and be persistent as the ideia behind the reason I'm looking forward to this is to carry data).
 
Last edited:

Dmi7ry

Member
maybe this has something to do with being able to pass arguments to the constructor and destruct methods!! that right now I think it is a little non sense not being able to, regarding the fact that the gestures events use a ds_map filled with data... i don't see the problem with doing this to other events:

Code:
event_data[? 'arguments'];
On the other hand, everyone who used C/C++/C# and many other languages, knows what means new/delete with constructors/destructors :)
Anyway, I think we will know soon. Maybe in the next year :)
 

xDGameStudios

GameMaker Staff
GameMaker Dev.
On the other hand, everyone who used C/C++/C# and many other languages, knows what means new/delete with constructors/destructors :)
Anyway, I think we will know soon. Maybe in the next year :)
Yeah I do know, just saying that because... YoYo games seams to have problems (changing things too much)

That's what I'm afraid... next year is not that soon --' ahahahahah
 

Tsa05

Member
Is there any chance of a word on the missing functions?
http://bugs.yoyogames.com/view.php?id=15941
These are a suggestion marked high-priority, and they are all very important for asset creators. The issue has been assigned for years, now, but....no updates. Now that GMS2 is out and updated, and getting nice and stable, would someone consider revisiting this?
 
G

gloomytoad

Guest
Any news on if this is being worked on yet?
  • GML: lightweight objects - new and delete + constructors / destructor methods
I have a lot of ideas that are currently being put off until this is implemented. Very important for experienced developers. No doubt
that this feature missing has caused people to stray from GM. Get it innnnnn
 

rwkay

GameMaker Staff
GameMaker Dev.
It's not going to happen for a while, I would not hold my breath on that particular one.

We are very busy here at YoYo Towers...

Russell
 
G

gloomytoad

Guest
I understand.
It's not going to happen for a while, I would not hold my breath on that particular one.

We are very busy here at YoYo Towers...

Russell
I understand. I do not aim to be offensive, but sometimes I do feel as feature priority is not where it should be. I am probably wrong, because of course I do not know the architecture of GMS. BUTTTTT.....

We are missing some basic features such as Code and object refactoring.
This feature would take a developer a day to implement given the fact that I developed a tool in Java in the time span of two days that performs this task for me.
I even added a feature that can re-scale your entire game including sprites, collision masks, sprite properties, tiles, and object positions in rooms. (This took 2 hours).

Lets get the basics done. I know that cross platform features are probably taking priority (speculation), but when the basic things are finished you'll have more developers to create those tools for. I cannot efficienty
create data types or anything similar for storing things like Graphs, thus I cannot efficiently implement things like platformer path finding without doing some hacky things. I stick with GM because I have used it since
day one and I love the community and I see so much potential. I understand you are all hard at work, but do this EASY stuff that will take a few weeks of development time and you would see an increase of GM users
undoubtedly. Also if you guys wanted some passionate help I did send you guys an APP a couple months ago. I knew it was a stretch since I lived so far off, but like I said. Day one Gamemaker user, it's what got me
into computer science and got me where I am at today. I love GM.

Regardless, thank you guys for your hard work. GMS2 is a huge upgrade and I am very thankful for it.
 

rwkay

GameMaker Staff
GameMaker Dev.
You may not always agree with our priorities, but you do not see the whole landscape from our point of view...

GML will be getting a lot of upgrades over this generation but each upgrade needs to be evaluated within the landscape of an expanding vista so it can take a lot longer to ensure that each change is complete and has no (or at least little impact) on the grander scheme.

Plus most of the GML changes are being done on my own time

Russell
 
G

gloomytoad

Guest
I understand. I get that it takes time to get to that point. I am just venting frustration that is shared by many that are patiently waiting for features. You also have so many audiences wanting different things; Beginning developers may want things to make it easier. Developers with CS backgrounds and some other experienced developers want to squeeze every bit of performance out of GM that we can. Some developers have fast development to distribution turn around that may want mobile integration perfected.

So of course I see the selfishness in such requests as there are many other areas to work in. I am just very passionate about Gamemaker. I use Unity as well, but I decide to dedicate my Tutorial Videos to Gamemaker because of my love for the IDE and this community. When these features do arrive I will be one of the first to show people the power of them.
 

XanthorXIII

Member
I understand. I get that it takes time to get to that point. I am just venting frustration that is shared by many that are patiently waiting for features. You also have so many audiences wanting different things; Beginning developers may want things to make it easier. Developers with CS backgrounds and some other experienced developers want to squeeze every bit of performance out of GM that we can. Some developers have fast development to distribution turn around that may want mobile integration perfected.

So of course I see the selfishness in such requests as there are many other areas to work in. I am just very passionate about Gamemaker. I use Unity as well, but I decide to dedicate my Tutorial Videos to Gamemaker because of my love for the IDE and this community. When these features do arrive I will be one of the first to show people the power of them.
I'd have to find the article but you may find trying to do things from an OOL perspective can hinder performance greatly and also get in the way of building your game. Sometimes you just have to roll with it otherwise you'll never get something done because X Feature is not there. In other words make you suggestion and deal with it for now.
 

Tsa05

Member
http://bugs.yoyogames.com/view.php?id=15941

Just to revisit my post from just before this back-and-forth language features bit happened, is there *any* word about the missing functions?
That issue has been sitting in the bug tracker, marked high priority, since 2014, and it lists 38 functions which have all been confirmed "missing" by various YYG staff over the past 3 years. It came out of a discussion on the now-defunct forums, and garnered a lot of community support at the time.

These are all functions where one can "set" an internal GameMaker value, but one cannot "get" the value. These missing functions cause all sorts of issues when creating assets or just well-behaved modular code. Since changes to the values listed in that issue are global in scope, it's important to be able to restore them when making utility scripts.

In addition, these should be "actually easy." GameMaker already has these values tracked internally and already looks them up somehow for its own purposes, so we're not talking about writing some new behavior here. It's such a simple thing that it's managed to fly under the radar for 3 years now. But this was a community priority and a pretty simple fix; isn't 3 years long enough?

For the sake of good-will, of not losing track of this tremendously fixable issue, and for those of us hoping to incorporate these functions into well-behaved assets for the community, could someone commit to getting this resolved? (Is Mike Rennie still there?) Most other features are things we can code ourselves with enough effort--this is one that we can't do without you!
 

rwkay

GameMaker Staff
GameMaker Dev.
Many of the draw_ related functions in that bug have been given the equivalent "get" version in GMS2, similarly matrix_get and several of those functions exist in GMS2 already

No plans to bring them to GMS1 (if they have not already)

Russell
 

Tsa05

Member
@rwkay Good point! The list has certainly grown shorter since GMS2. For my own stuff, draw_get_font and draw_get_halign/valign would be more than super-handy--hopefully those are still on the "someday" list.
 

rIKmAN

Member
@rwkay Good point! The list has certainly grown shorter since GMS2. For my own stuff, draw_get_font and draw_get_halign/valign would be more than super-handy--hopefully those are still on the "someday" list.
Just wrap the commands in your own script, which changes the font / alignment and then sets a global variable which you can query yourself when needed.
 
@rwkay: I talked to you a year ago saying I might have to Switch engines, and you told me if I stuck with GM until Fall 2017, you thought I'd be very happy.

It's Fall now, and "other exports" are still listed for q4 this year. Do you feel like you guys are still on track with those other exports?

Excited for news. Thanks Russell! =)
 

rIKmAN

Member
@rwkay: I talked to you a year ago saying I might have to Switch engines, and you told me if I stuck with GM until Fall 2017, you thought I'd be very happy.

It's Fall now, and "other exports" are still listed for q4 this year. Do you feel like you guys are still on track with those other exports?

Excited for news. Thanks Russell! =)
Which other exports?

I can only think of Switch (maybe Pi), and those have been talked about a lot already and neither seem to be happening anytime soon.
 

Dmi7ry

Member
Just wrap the commands in your own script, which changes the font / alignment and then sets a global variable which you can query yourself when needed.
He told about extesions, where he can't affect on user's code (where may be used draw_set_font, etc).
Of course, he can write "use my_own_extension_draw_set_font() function", etc. But another extension may require to use own functions, like "another_extension_draw_set_font()". Result is a kind of dependency hell.
 
E

Edmanbosch

Guest
He told about extesions, where he can't affect on user's code (where may be used draw_set_font, etc).
Of course, he can write "use my_own_extension_draw_set_font() function", etc. But another extension may require to use own functions, like "another_extension_draw_set_font()". Result is a kind of dependency hell.
What do you mean by this?
 
G

Guest

Guest
What do you mean by this?
Tsa wants to write an extension or marketplace script. His extension/script wants to change or manipulate the font and then return things the way they were. But if the user or another extension has set the font (which is very likely), there's no way to know what that prior font was and reinstate it at the end of Tsa's extension/script.
 
Status
Not open for further replies.
Top