Bacon&Onions
Member
Amazing thank you guys for everything!
GMLive has saved me so much time, I would love to live code editing as a built in option.
GMLive has saved me so much time, I would love to live code editing as a built in option.
Thanks for being willing to help people! If I can make a request, take the actual examples from the blog and explain them. For instance, the new keyword section's vector3 function and how it defines an "add" method. I look forward to the info.dont worry Once its out i will be making MANY videos on the subject
Well I breifly touch upon that in a video i just made on the update.Thanks for being willing to help people! If I can make a request, take the actual examples from the blog and explain them. For instance, the new keyword section's vector3 function and how it defines an "add" method. I look forward to the info.
From what I gather: if you declare a function within the scope of an obect, then the self variable will be bound.Wait, is this change to scripts going to break the way instance-scope variables work from inside scripts? I've been avoiding that on principle but that is a major piece of functionality that a lot of users take advantage of...
//Global scope
function doThing() {
x = 10;
}
//some other part of code
inst.doThing();
YoYo games is based in the UK, and I doubt they outsource their support.I'm seeing a lot of questions and not a single answer thus far... AMAs usually have answers :whistle:
I assume these would be the same as normal variables. Variables that hold the functionGML QUESTION: Someone already asked about variable reflection for lightweight objects (like the variable_* methods), but I'll add method reflection onto that. Can we have something like method_get_name & method_get_argument_names
var log = function(a) {
show_debug_message( a )
}
function log(a) {
show_debug_message( a );
}
log = function(a) {
show_debug_message( a );
}
a = "foo";
var log = function(a) {
show_debug_message(a);
}
log("bar"); // foo, bar or no compile?
var func = function(a) {
var b = "bar";
show_debug_message(b);
return a+1;
}
func(0);
b = "baz"; // Is this local- or instance-scoped?
var a = "foo";
var log = function(b) {
var a = "bar";
return a+string(b);
}
show_debug_message(log("baz")); // barbaz
show_debug_message(a); // foo, bar or no compile?
// In a script
function foo() {
return x;
}
// In obj_a's Create event
goo = foo;
// In obj_b
bar = obj_a.goo(); // Is this legal? If it is, whose x does it return?
baz = method(obj_a, goo);// Or is this legal instead? If it is, whose x does it return?
function Vector2(_x, _y) {
x = _x;
y = _y;
mag = function() {
return sqrt(x*x+y*y);
}
}
var a = [0],
b = [a];
a[@0] = b;
a = undefined; // Will this allow a and b to be GC'ed?
Sorry if this wasn't clear in the initial post but we are going to let questions build over a period of time and return once the dust has settled with the answers.I'm seeing a lot of questions and not a single answer thus far... AMAs usually have answers :whistle:
Hehehe. Yeah. Yep yep yep.I'm also a little surprised about the joy here, just a month ago I often read that they will leave GMS and now many party here, due to
an announcement that will be implemented at the earliest February 2020?
GameMaker is a hobby for me, and many others. We can afford to pivot all the time.You are easily satisfied and seem to have a lot of money in the bank if you can wait a year
I'm the same, have been using different engines over the last few months and had been thinking of leaving GM. Code organization was annoying for me and it became difficult to create highly structures systems without having inflated code. I feel a bit confident, that with a little bit of hacking things together, you could manage OOP in GameMaker after this update. Imagine being able to create an Entity Component System after thisHehehe. Yeah. Yep yep yep.
I was ready to walk away. You see, my main issue with GM was code organizations.
I often said I liked the engine, just hated the language.
I suspect this is also true for many others.
But these new additions would actually make a massive difference.
Now yeah, they probably won't turn out just as perfect as I imagine. But even the. They will really help things.
GameMaker is a hobby for me, and many others. We can afford to pivot all the time.
I agree, more options is nice but it also complicates things, like the introduction of "var" did before.YoYo has therefore decided to go in the direction of programmers
unfortunately wuld be them making it like a lego builder and making you pretty much a modder rather then a game dev. unfortunate is that they deny 3D as if its a plague. gml is perhaps least complicated language there is, maybe you need to get good.I agree, more options is nice but it also complicates things, like the introduction of "var" did before.
I will happily use some of the new features as I have learned them in other standard programming languages but I know if I were just starting with Game Maker now it would be too much.
Unfortunately I think YoYo wants to keep up with programmers and (semi-)professional users as that's where the money comes from, I imagine.
that is very close minded thinking, i am not asking GM to compete with 3d that is out there, but 3D to support further game maker in its 2D ambitions. and here is a simple example. making one 3D model rigging it and texturing it and importing into game maker VS drawing or rendering a bazzilion frames for 8-16 directional movement and making a ton of texture pages which further throws your game in the gutter. this wont remove the classical low res low frame animations people love to do it will only enhance the 2D possabilities for people who want a more HD or realistic look for theyr game. all it takes is a good shader, good mesh animation support and good 3D rendering. that is all to bring game maker alot of levels higher. they can beat around the bush with these insignifficant changes or additions all they want, it wont make game maker better nor people better at game making.I've honestly never understood those people who keep clamoring for 3d in GM. And I understand it even less these days. Simple reason being that there are so many tools out there that are much, much better at everything related to 3d than GM could ever be, and some of them even completely free and open source.
There have been a lot of YYG decisions that I've disagreed with a whole lot, but one decision of theirs that I definitely agree with is that they should stick with one focused mission of being the best 2d game development tool there is. That alone is hard enough with the current competition out there, but it's doable, and that's what they should focus on. 3d will only be a ****show, something they will never be able to compete with, and it will only be wasted resources for them and everyone else. GM needs more focus, not less.
Do you also want Photoshop to do your spreadsheets? Or your hammer to put in screws? Use the right tool for the right job.
It's simple, they like the engine and the way it does things, and believe it could be used easily for 3D games (Which it is already). Why would yoyo want people to move on to a different engine just for a little more 3D Support? There is definitely some demand for it after all.I've honestly never understood those people who keep clamoring for 3d in GM. And I understand it even less these days. Simple reason being that there are so many tools out there that are much, much better at everything related to 3d than GM could ever be, and some of them even completely free and open source.
There have been a lot of YYG decisions that I've disagreed with a whole lot, but one decision of theirs that I definitely agree with is that they should stick with one focused mission of being the best 2d game development tool there is. That alone is hard enough with the current competition out there, but it's doable, and that's what they should focus on. 3d will only be a ****show, something they will never be able to compete with, and it will only be wasted resources for them and everyone else. GM needs more focus, not less.
Do you also want Photoshop to do your spreadsheets? Or your hammer to put in screws? Use the right tool for the right job.
I don't really follow. You say that what you want is to improve the 2d capabilities, and then go on to mention how you want to be able to more easily throw in a fully rigged and textured 3d model. How is that improving 2d?that is very close minded thinking, i am not asking GM to compete with 3d that is out there, but 3D to support further game maker in its 2D ambitions. and here is a simple example. making one 3D model rigging it and texturing it and importing into game maker VS drawing or rendering a bazzilion frames for 8-16 directional movement and making a ton of texture pages which further throws your game in the gutter. this wont remove the classical low res low frame animations people love to do it will only enhance the 2D possabilities for people who want a more HD or realistic look for theyr game. all it takes is a good shader, good mesh animation support and good 3D rendering. that is all to bring game maker alot of levels higher. they can beat around the bush with these insignifficant changes or additions all they want, it wont make game maker better nor people better at game making.
keeping game maker in the sprite hell circle is good in a way but too much goodness will eventually suffocate it. if not for pixel art, sprites wuld be 99% obsolete in game dev.
if yoyo cant implement these features in the engine then maybe they shuld hire more or other people.
Because they don't have unlimited manpower and resources, and they need to prioritize accordingly. You talk about demand, but if you actually read the statement in this thread, all of the upcoming GML changes is a direct response to a community survey they ran a while back (which I remember participating in personally), where GML enhancements was the number one highest wish. So they are actually responding to demand. 3d just isn't high enough on the list, so you are in the minority in this regard.Why would yoyo want people to move on to a different engine just for a little more 3D Support? There is definitely some demand for it after all.
There are literally tons of 3D engines with IDEs out there that are powerful, mature, and come with plenty of features. Asking YYG to be a competitor for them is not just a "just add another dimension folks" thing. I cannot imagine the amount of support functions needed in the language, let alone the changes that should be made in the engine. On the other hand, there aren't any really good 2D engines out there, with the exception of Ubisoft's UbiArt framework which might be the holly grail, but is both proprietary and closed.The rest of the "hybrid" engines don't do as good of a job as GM in the 2D department, especially when it comes to ease of use. This is the market that YYG can shine and they better keep doing what they do best.that is very close minded thinking, i am not asking GM to compete with 3d that is out there, but 3D to support further game maker in its 2D ambitions. and here is a simple example. making one 3D model rigging it and texturing it and importing into game maker VS drawing or rendering a bazzilion frames for 8-16 directional movement and making a ton of texture pages which further throws your game in the gutter. this wont remove the classical low res low frame animations people love to do it will only enhance the 2D possabilities for people who want a more HD or realistic look for theyr game. all it takes is a good shader, good mesh animation support and good 3D rendering. that is all to bring game maker alot of levels higher. they can beat around the bush with these insignifficant changes or additions all they want, it wont make game maker better nor people better at game making.
keeping game maker in the sprite hell circle is good in a way but too much goodness will eventually suffocate it. if not for pixel art, sprites wuld be 99% obsolete in game dev.
if yoyo cant implement these features in the engine then maybe they shuld hire more or other people.
I agree and yes I have actually read the statement in the thread. This stuff is definitely a higher priority, I'm not arguing that. My point is I don't think they should just rule it out and never try to improve it's 3D capabilities eventually, It doesn't need to compete, but having some easier ways of doing basic 3D things would go a long way. I'd bet this isn't that far down that wish list!Because they don't have unlimited manpower and resources, and they need to prioritize accordingly. You talk about demand, but if you actually read the statement in this thread, all of the upcoming GML changes is a direct response to a community survey they ran a while back (which I remember participating in personally), where GML enhancements was the number one highest wish. So they are actually responding to demand. 3d just isn't high enough on the list, so you are in the minority in this regard.
you focus on the word 3D and fail to see the potential of adding rigged meshes and textures in game maker. so let me say it this way. ok so they dont need to add "3D" what i wuld like them to build into game maker is a rigged mesh that i can animate. and what is hard to follow? didnt i just give an example of how a simple rigged and textured mesh wuld remove the need for bazzilion sprites, code and gameplay limitations becouse of the vast number of sprites needed? what is hard to follow exactly? and these changes that are such a high priority are just laughable and essentially for comfort, they dont push game maker any further as a game dev engine, GMS1 pushed it as further as it culd, there is nothing new and signifficant here, but i can guarantee you if they put this simple thing, a rigged mesh that animates, that alone will impruve game maker alot. my point is these changes and additions arent game changers.I don't really follow. You say that what you want is to improve the 2d capabilities, and then go on to mention how you want to be able to more easily throw in a fully rigged and textured 3d model. How is that improving 2d?
You also make it sound like 2d is restricted to low res pixel art style, which is far from the case.
Lastly, the thing about this type of discussion is that it very quickly leads to the question: where does it end? You may have your ideas for how much 3d support should be added, but then when they finally do start acknowledging 3d and spending time and resources (of which they have very little) on it, it will only be a matter of time before people start asking for more, and soon it's a whole new suite of things to support. There are already so many other things we desperately need, and so in the end it really is a question of prioritizing what resources they have according to - at least to some degree - the wishes and needs of their key demographic users. The majority of whom just aren't that interested in 3d, because those of them who are/were, have moved onto other, more suited tools.
Because they don't have unlimited manpower and resources, and they need to prioritize accordingly. You talk about demand, but if you actually read the statement in this thread, all of the upcoming GML changes is a direct response to a community survey they ran a while back (which I remember participating in personally), where GML enhancements was the number one highest wish. So they are actually responding to demand. 3d just isn't high enough on the list, so you are in the minority in this regard.
While they don't want to have 3D at all in fact. It requires too much attention then. I also wish it will be possible to use 3d models in 2d, but... there are other tools for that already (at least two of them are free to use), so it's better to add the features they don't have, rather than what GMS2 doesn't want to be.I agree and yes I have actually read the statement in the thread. This stuff is definitely a higher priority, I'm not arguing that. My point is I don't think they should just rule it out and never try to improve it's 3D capabilities eventually, It doesn't need to compete, but having some easier ways of doing basic 3D things would go a long way. I'd bet this isn't that far down that wish list!
A bunch of us have been requesting this for a decade now, it's only natural and hardly surprising. We're rejoicing about their movement in this direction after their years of catching up with the industry and blindly following some short-lived trends. The worst part of the engine was easily its scripting language, hearing that's about to (potentially) change should be met with positive feedback.I'm also a little surprised about the joy here, just a month ago I often read that they will leave GMS and now many party here, due to
an announcement that will be implemented at the earliest February 2020?
You are easily satisfied and seem to have a lot of money in the bank if you can wait a year. And the fact is, it's just promises at the
moment, because we all know the update policy of YoYo and I don't want to start at all.
Our answer to 'YoYo has therefore decided to go in the direction of programmers' will be Sequences (also planned for the Q4 update). We will have more to share on Sequences soon but it's very designer focused and will be learning far more in the accessibility and 'less code' direction. I'm personally very excited for when we can share more about SequencesI agree, more options is nice but it also complicates things, like the introduction of "var" did before.
I will happily use some of the new features as I have learned them in other standard programming languages but I know if I were just starting with Game Maker now it would be too much.
Unfortunately I think YoYo wants to keep up with programmers and (semi-)professional users as that's where the money comes from, I imagine.
I just don't understand this kind of sentiment about YoYo allegedly trying to obfuscate GM novices.YoYo has therefore decided to go in the direction of programmers, because all the naïve GMS users should understand only nothing,
as I do. For beginners with little programming experience, it becomes much more difficult when the learning curve points so steeply
upwards. Even more code will simply be copied, because only a few people will understand it if linked accessors or light objects are
used.
What do you mean by "like the introduction of var did before"?I agree, more options is nice but it also complicates things, like the introduction of "var" did before.
I will happily use some of the new features as I have learned them in other standard programming languages but I know if I were just starting with Game Maker now it would be too much.
Unfortunately I think YoYo wants to keep up with programmers and (semi-)professional users as that's where the money comes from, I imagine.
I'll propose a counter-argument. In order for GMS 2 to excel as a 2D engine, it must open its asset and drawing pipelines wide enough to accommodate community-implemented 3D.I don't really follow. You say that what you want is to improve the 2d capabilities, and then go on to mention how you want to be able to more easily throw in a fully rigged and textured 3d model. How is that improving 2d?
You also make it sound like 2d is restricted to low res pixel art style, which is far from the case.
Lastly, the thing about this type of discussion is that it very quickly leads to the question: where does it end? You may have your ideas for how much 3d support should be added, but then when they finally do start acknowledging 3d and spending time and resources (of which they have very little) on it, it will only be a matter of time before people start asking for more, and soon it's a whole new suite of things to support. There are already so many other things we desperately need, and so in the end it really is a question of prioritizing what resources they have according to - at least to some degree - the wishes and needs of their key demographic users. The majority of whom just aren't that interested in 3d, because those of them who are/were, have moved onto other, more suited tools.
Because they don't have unlimited manpower and resources, and they need to prioritize accordingly. You talk about demand, but if you actually read the statement in this thread, all of the upcoming GML changes is a direct response to a community survey they ran a while back (which I remember participating in personally), where GML enhancements was the number one highest wish. So they are actually responding to demand. 3d just isn't high enough on the list, so you are in the minority in this regard.
Each script will have a function inside it, which is the script's main function. If there's code outside the function but inside a script resource, it will be executed when the game starts, before any room is loaded, and at a global scope.Can anyone explain what's happening with scripts?
/// Executed globally when the game starts
global.timePlayed = 0;
global.logData = ds_list_create();
// The script itself
function gameStart () {
// Script code
}
I recommend you check out some OOP videos/classes, especially classes/objects.Everything else is new to me : (
Correction: There can be multiple subroutines inside a script post-changeover, not just a single main one. It's just that pre-changeover scripts will be adapted and wrapped inside a main function of the same name.Each script will have a function inside it, which is the script's main function.
ini_open(working_directory + "settings.ini");
global.sfx_on = ini_read_string("settings", "sound", "on") == "on";
global.bgm_on = ini_read_string("settings", "bgm", "on") == "on";
global.bgm_current = undefined;
global.bgm_inst = undefined;
ini_close();
function sfx_play(snd) {
if (global.sfx_on) {
return audio_play_sound(snd, 0, false);
}
return undefined;
}
function sfx_config(enable) {
global.sfx_on = enable;
}
function bgm_play(bgm) {
global.bgm_current = bgm;
if (global.bgm_on) {
bgm_stop();
global.bgm_inst = audio_play_sound(global.bgm_current, 1, true);
}
}
function bgm_stop() {
global.bgm_current = undefined;
if (!is_undefined(global.bgm_inst) && audio_is_playing(global.bgm_inst)) {
audio_stop_sound(global.bgm_inst);
global.bgm_inst = undefined;
}
}
function bgm_config(enable) {
global.bgm_on = enable;
if (global.bgm_current) {
bgm_play(global.bgm_current);
} else {
bgm_stop();
}
}
You keep doing those the traditional way with invisible "heavyweight objects". "Lightweight objects" are more for modelling data and its associated operations than carrying out actions in the game world, much like data structures and arrays are now. Not everything in game development is in terms of overt action.GML QUESTION: if I want an input object that reads my hardware every frame, a camera object to update the view, etc. how do I do that? Lightweight objects appear to just be storage containers. Can they perform logical operations, comparisons, etc.? Do I just need to use a normal object and in its step event tell the lightweight objects to do something each frame? Do the new functions/methods help here somehow? Sorry if I'm missing something here, but again I have a pretty limited background in programming.
Yeah I mentioned that.Correction: There can be multiple subroutines inside a script post-changeover, not just a single main one.
So you can have multiple functions inside one script resource.