My first impressions with GM8.1 is for the most part, positive. I was nervous from all the negativity against it, but given how much positivity I see with the hype on ANYTHING from YYG, only to find it go to hell after, I guess I shouldn't have been surprised.
Anyway, I open up GM 8.0 and 8.1 side by side (lol I keep typing 8.2 instead) and overall everything looks the same, visually. I sort of wish they revamped it somehow - at LEAST updating icons - they look rather dated, even for programs running on XP for some reason. Might just be me. I look at it all and so far so good. I notice they are using more Vista/7 styled selection indicators, using a pretty gradient backdrop with Windows Vista/7 styled buttons for the resource tree (what replaced the + and - buttons. I forgot what they were called).The sprite editor seems the same as before. Most resource editors seem the same here. The room editor looks pretty much the same as before.. I'm a bit disappointed here that it wasn't revamped any more, here.So, I open up my GMK of WinBall. You know, the crappy version that needs to be re-coded from scratch that I may or may not have talked about? Yeah, that one - the abomination of a game. And it seems to work fine...Until I go into the level editor, which was made by someone else.___________________________________________ERROR inaction number 1of Create Eventfor object obj_room_editor:Illegal argument count calling script "brick_add".Script requires 3 arguments, 2 have been supplied.OH NOES. A SCRIPT DIDN'T CALL ALL THE ARGUMENTS IT NEEDED TO CALL WHAT DO I-oh. okay. So I look at the code, and it seems only if such an argument is there, do something.For some reason I'm thinking to just replace any unneeded arguments with "0". And I do so.BINGO. it works.So let's see… Well, inputting 0 seems to work.. If you actually use your brain, you too might be able to make great games in GM 8.1! Don't like it? Tough. Stop trying to program games because from what i've heard it can only get tougher if you move to C++ or anything. Sucks to be you doesn't it?…Aside from that, everything ran smoothly. No errors.WHAT THIS MEANS FOR YOU: Absolutely nothing.WHAT THIS MEANS FOR YOU, AS A DEVELOPER COMPLAINING ABOUT 8.1: You’re most likely a butt, and should quit programming completely. Otherwise, shut up, suck it up, deal with it and move the hell on. Thank you.TL;DR version: GM8.1 is good, you need to do a couple of things, and if you’re a hater, STFU and die or deal with it plzkthx.
I don't know about you guys, but I think you shouldn't have to re-work your code for something that's only minorly updated. It's not like they made a jump from 8.0 to 9.0.
I only saw reason in changing code when they went from 6x to 7.0 and then from there on…but 8.0 to 8.1? Nah…Although I haven't tried 8.1, wtf am I talking about.I just haven't heard a single comment that explains the advantages of the new argument system. I can understand wanting an argument_count variable, but they could have kept the old system the way it is and just added that. I don't mind changes if they improve stuff, but I don't think the new system is any better than the old.
As far as I know, all this new system does differently is forces us to use the same argument amount unless we switch to a new system. But if we want to use the same argument count, we could just do if(argument_count!=amount) show_message("error!"); for debug purposes. Then we wouldn't be forced to change all our old scripts for no reason.Well at least the old method was better than writing a function or constructor for every case where its caller might use a different number of arguments.
The argument array access method still works in the old way (or it is supposed to, I haven't tested it yet), so if you see a script not working cause of an incorrect number of arguments, you could either pass in 0's for the remaining arguments, or just change argument# to argument[#] in the script. Of course knowing yoyo, they probably changed the array method over to the new system, despite saying otherwise.
@flashback: Function overloading is important, yes, but in GM, given there is no means of declaring scripts in the same way one can in C++ (where you could have like int script(int a) and int script(int a, int b)), just allowing a script to be variadic and to default un-supplied arguments itself is a bad programming practice. Still, I agree that it is useful as an equivalent to overloaded functions in GM.