Things are going pretty well. The GML runner was updated to version 8.1, which includes various speed updates, security updates, and other things I really love. The one thing that’s driving me nuts right now is that they changed the argument syntax for methods:
The rules are;
- if you use argument0 to argument15, then you MUST supply up to that number in the argument list. So if you use argument2, you must supply 3 arguments – exactly.
- If you use the argument array (argument[x]) then you are free to supply as many or as few arguments as you wish.
- If you use both argumentX and argument[x], then you MUST supply up to argumentX, but are free to supply more if you wish. So if you use argument1 and argument[x], then you must supply at LEAST 2 arguments, but can then use any optional ones that have been passed in.
- argument_count will hold the number of arguments passed. (0 is for no arguments passed)
- accessing argument[argument_count] or higher, will throw an error.
As nice as it is that tighter syntax will make me a better coder, this means I have to change the body code for the hundreds of methods (scripts) that are called in Koya Rift to meet the new standards. This is; changing all instances of argument# to argument[#] (where # is 0-15 of the passed in arguments), and then tracking down EVERY CALL of those methods and making sure that I pass in undeclared parameters as 0 instead of letting them free. So instead of scr_generate_weapon(2,3,15); which would generate a shotgun weapon between power level 3 and 15, I could have called scr_generate_weapon(2); and it would have defaulted the lower and upper bound limits for me, because undeclared passed arguments were defaulted to 0. But now, I have to change all of them to scr_generate_weapon(2,0,0); so it has the same functionality. This is thousands of lines of code! Unfortunately this isn’t python, where I can specify a default value for undeclared arguments.
So all in all this pushes me back a few days. I just thought I would say that – it’s all worth it, because supposedly I should get a nice speed boost due to better memory management and more efficient masked collisions on the raw-engine side of things that I can’t control. Otherwise, things are going great and I’m looking to release on schedule.
UPDATE: Fixing these is going faster than expected. This actually might only put me back a few hours, which is nice.
UPDATE2: It appears the sound engine I’m using won’t work with the new syntax changes, and I can’t modify it (compiled DLL, no source available). Hopefully a patch for the sound engine or a patch for the GML runner, or else I’ll have to revert to 8.0 for now (the game needs sound!)
UPDATE3: Yep, can’t get the sound to work with the new runner. I had to revert all of the game back to the old 8.0 runner. Oh well, at least I’m not missing out on any huge improvements. The speed updates I talked about earlier supposedly are hardly noticeable for 2d games anyway. All that’s left to do now is translations and a bunch of marketing materials. If you would like to interview me or get a review copy of the game, shoot me an email! (SunnyKatt @ live.com)
-Zach