Comments

Log in with itch.io to leave a comment.

I'm a bit confused as to why I can't get the GUI to be orange color. So far the extension has been going pretty well, but that has lost me. I have the correct hex code set in the init_character script and in the draw GUI event for the obj_control. Instead of orange it is blue. I can't figure out where else to edit.

Nevermind. I guess it was because GMS2 uses a different color code. I just used make rgb instead.

Yes, 1.4.9999 and 2.x both have rrggbb instead of bbggrr color codes. 1.4.9999 is extra fun to deal with, because the color CONSTANTS weren't updated to match the new format, so c_red is actually blue and so on. I'm sticking with 1.4.1773 for stability reasons :P

Well I'm so used to 2.0 and like it so it's fine. But sorry to bother you. I have 2 weird issues that are happening. First, is the player can't finish climbing the ladder and gets stuck at the top in climbing state. I noticed I can make it happen when the player is on the left or right and not in the middle of the ladder. Second, is sometimes for a reason I don't get the player gets stuck in falling state on jump thru platforms and can't jump since they are stuck. No idea why.

I did some digging into why climbing occasionally doesn't work, and I think I found the cause. Change player_controls_ud so its contents look like this:

/// @description player_controls_ud()
//Crouch
if(onground){
    if(k_d){
        crouching = true
    }
    else{
        crouching = false
    }
} //Climb
if(k_u){
    if(place_meeting(x,y,parent_climbable)){
        state = playerstate_climb
        yspeed = 0
    }
}

The cause is that vertical speed isn't reset to zero when you start climbing (which is a bug), so jumpthrough platforms will act solid if you were falling down when you grabbed the ladder, which is why you get stuck.


I don't have any ideas for what causes the jumpthrough-platform bug, though. Are you using different sprites / collision masks than the demo version? player_free has the collision mask for the player-character more or less hardcoded, so you need to keep it updated to match. Coordinates in the function are rounded, so I don't think it's different subpixel precision causing it.

My recommendation would be to run the game in debug mode, and when the player gets stuck, pause the game and investigate local variables.

I'm also thinking the failsafe in player_inertia_x might be a potential cause, try putting a breakpoint inside that and see if it gets triggered.

Another potential cause is how player_step_start rounds player coordinates when checking if you're on the ground or not, while player_free also rounds coordinates - maybe rounding twice leads to some cases of these coordinates being inconsistent with the ones used for other collision checking. Try removing the rounds() in player_step_start so the variable is set like this instead:

onground = !player_free(round(x),round(y) + 1)

One final potential cause is that the player is stuck in an infinite loop of stopping and being moved back, but new input builds up speed. Try switching the two "inertia" and the two "control" in playerstate_normal like this and see if it stops it:

player_inertia_x()
player_inertia_y() player_controls_x()
player_controls_y()
(+1)

Thank you very much for your reply. The ladder fix worked great. After lots of testing the Jump thru platform seems good now too. For the Jump thru platform it was putting inertia before the controls that did it. The variable jump when done small at a specific amount would make the player stuck a little in the bottom of it. And switching these two seems to prevent that. I appreciate your reply and time more than you know. #BestExtensionEVER! 

Sorry to bother you again. The ladder thing is good. But now for the jumping when I am on a Jump Thru platform I can jump low and high, but on other ground it only jumps high. There is no variable jump and I can't figure out why. So the fix is kinda not good as I really want the variable jump. If you have any time or ideas I would appreciate it. There is no other issues and I am using the same sprite sizes and everything. I changed the art, but same sizes and origins.

Before I purchase this fantastic engine, I would like to make some basic questions

- Can the demo / games run on Android

- Is possible to switch the charater sprite

- Have weapon system / slots and how it works

I would pay you for such features, add  me to further discussion


Thanks

It's a GameMaker:Studio source file, so you can change ALL the sprites. (Note that you need GMS1.4 or GMS2 to be able to use the source files)

If you have the Android port you should be able to run it on Android devices (I haven't tested this, but the engine mostly uses  very basic functionality - the thing I'm the most worried about is the darkness effect in the underground levels, mobile devices usually have very low VRAM so surface effects like that don't always work properly).

There's no built-in functionality for weapon slots, a quick way you could implement this would be to have more "powerup states" that fires different projectiles (the example ones has hammers and fireballs) and add two new buttons that changes your powerup between all the weapons you have unlocked, and then change the health system to use a healthbar instead of the Mario powerup system.

(+1)

Thanks for the fast and good reply


1 more customer

Do you give lessons/take commissions?

Not really, I'm kinda busy and my schedule for doing indie programming stuff is very erratic. And I'm not a particularly good teacher either, for that matter :P I'd recommend just going to the GameMaker Community forum, there's plenty of tutorials and the programming questions board is still very active. (You can find me there as well, even if I'm not exactly active every day)

Do you have any plans to do a full conversion to GMS2, rather than just the autoport?

Not really. I'm not using GMS2 a lot and I don't really see the point in having two separate codebases to support and doing all development/bugfixing twice.

Hello, I just purchased this and tried to run it on GMS2 and am getting an error "index was outside the bounds of the array." Please help!

I'll check it out and see if I can narrow it down. Did you use the GMS2 source file or import the GMS1 source? I've seen a similar case for another project where import changes made the GMS2 source break but importing the GMS1 source solved the problem.

(1 edit)

I used the GMS2 source file, will try GMS1. (edit) Just tried this but I'm using a Mac and can only open GMS2 source file :/

Aw :/

Could you post the entire error message? Maybe there's some other clues in it (like WHICH array is out of bounds)

Also, did you try updating the player_score script? When investigating I found an error where it uses the wrong variables in two places, it worked in previous versions. You could try updating that and see if it solves the problem (it's a really small change)

Instead of this:

effect_spawn_textpopup(x,y,        ....

It should be this:

effect_spawn_textpopup(argument0,argument1,   ...

The error message only says "Index was outside the bounds of the array." I checked the player_score script and it was already like this:

effect_spawn_textpopup(argument0,argument1,   ...

I did some more investigations and found a thing in the GMS2 release notes: (this post). Seems to be broken in runtime 2.1.4.218, worked in runtime 2.1.5.246, and it works for me in runtime 2.2.0.258... what's your GMS2 runtime version?

From what I gather there's an issue where valid GML becomes invalid C++/JavaScript code sometimes when a single GML statement becomes multiple instructions when parsed, which sounds like a nightmare to track down :/

(Since 2.0.3.56 there's also an option to carry on and collect all errors that's possible before ending a compilation, it might be helpful in finding the resource that causes this to happen... perhaps?)

The issue mentioned in the GMC topic refers to an issue with for loops whose first statement isn't a variable assignment causing this error, I went through all for loops in the engine and none of them has it... only suspect thing is compatibility script __global_object_depths() having a "var i = 0" assignment, not sure if that would be a candidate with vars behaving different from ordinary variables? (The solution if this is the case would be moving the "var i" part outside the loop and then do a normal "i = 0" inside the for loop).

Geez, GMS2 still kinda feels like it's in beta sometimes :/

Tried importing the GMS2 version in GMS2.2.0.343 and it had one error, there's a mistake in player_score (Scripts-->Gameplay-->Player-->Score Lives Etc) where it uses the calling instance's x/y instead of argument0/argument1. The body of the script should look like this, then it compiled fine for me:

if(argument3 && argument2 > 8000){
    global.playerlives++
    effect_spawn_textpopup(argument0,argument1,"1UP",c_lime,c_teal,font_retro)
}
else{
    global.playerscore += argument2
    effect_spawn_textpopup(argument0,argument1,string(argument2),c_white,c_black,font_narrow)
}
(Alternatively you could use argument[2] instead of argument2 and so on for the other arguments, this might be why you get an array index error)


If this doesn't solve the problem for you, could you please copypaste the entire error message? Usually it hints at where the error occurs.

the player_score already looks identical to the one you just sent. the error message only says "GameMaker: Studio AssetCompiler encountered a problem. Index was outside of bounds of the array." Then, at the bottom of the Output log it says:

/Library/Frameworks/Mono.framework/Versions/Current/Commands/mono exited with non-zero status (82)

elapsed time 00:01:25.4687960s for command "/Library/Frameworks/Mono.framework/Versions/Current/Commands/mono" /Users/Shared/GameMakerStudio2/Cache/runtimes/runtime-2.2.0.258/bin/Igor.exe -options="/var/folders/w4/215d0gjj3b7f5sql711p01jr0000gn/GameMakerStudio2/GMS2TEMP/build.bff"  -- Mac Run started at 11/03/2018 19:35:20
FAILED: Run Program Complete



p.s. let me know if you'd rather communicate via e-mail or whatever's easier

(1 edit)

"Support for multiple playable characters; just set up data and change the current character variable"

How, please? which object/script contains these? I would like to switch between two players at the start of a level, with the exact same data, just different sprites

Thanks so much in advance and great job creating all these fine assets. Keep up the good work :)


(1 edit)

Scripts-->Initialization-->init_characters, it's a tabbed script with init_character_maria as the only alternate tab at the moment. At the bottom you'll see the lines of code that initializes sprites. To fully add a new character, I guess what you should do is...

  • Make a new constant for the character's ID (must have a different value from char_MARIA)... you could use the existing constants char_LOUISE, char_PRINCE, char_FROG and char_SUNSHINE if you'd like to, of course.
  • Make a copy of init_character_maria (create a new tab and copypaste init_character_maria's code text into it) and use the search-replace feature to replace "char_MARIA" with the new character constant
  • Change the sprite assignments to the new character's sprites (they're at the bottom of the script).
  • Don't forget to call the script from init_characters, just how it calls init_character_maria.
  • To change the active character, just assign the character ID to the variable global.playerchar based on what the player selects - it's always assigned char_MARIA by default since the demo only has 1 character. You can make the menu any way you want~

I think that's all you need to do, hopefully I didn't forget anything :) Just hit me up with more comments if there's any problems~

(+1)

Thanks so much for the swift and indepth reply. Awesome! Will try all of it soon, thanks again!

I got the following error msg in GMS2.  Any resolution for this?

Script: player_score at line 1 : no references to arguments 0,1 but references arguments 2,3

Good catch, I can't believe I've let this slip through. Replace x and y with argument0 and argument1 respectively (in the script) and it should work as intended. I'll get an updated version with this fixed uploaded.

Uploaded a "v1.1" version of both source files with this fix applied. Let me know if there's any more problems.

(+1)

It worked properly after replacing it.  Thanks.  and love your work!

Added a new GMS2 version of the source code - the original version imported and ran just fine in GMS2 for me, but this should save you a bit of work. If you've bought MariaEngine previously, this new version should be downloadable at no additional cost.

It's still a bit experimental since GMS2 got released just a few days ago, so please report any problems with the new version here.

So from what I can tell, this is an addon / editor gui addition to GameMakerStudio?

If you manage to integrate an easy way to add busts for dialogue, it's probable I'll use this for PFC.

http://perseverancefullclearance.blogspot.com.au/

It's a GMS source file, so anything you see in the demo can be tweaked just by editing the code. The dialogue system basically just uses an array for text, shouldn't be too much work to add in another array for mugshots/busts to go with it.

(+1)

Thanks for the info! Once I consider working seriously on PFC again I'll definitely grab this up.

Your ladders need a bit of work. Also standing on a one way block and an enemy jumps up through will damage you. I assume to hop on enemies you need to be in the air rather than just above them. There doesn't seem to be a pause or an exit out of game when you're in full screen (I guess alt + enter worked to get me into full screen, it can work to get me out.) What about controller support?

Hello,

The sprite provided is dark. Do you have a brighter version of that sprite ? Thanks !

Jay,

(+1)

Blazes, this is better stuff than the best of what's on the GM market. o _O Genius work.

Thanks! ^__^

And yeah, the GM Marketplace is kinda clunky at the moment, so I can see why a lot of content creators don't use it... (especially the GM integration that makes just adding something to a project take ages). It's much nicer to just distribute/load a GMZ file IMO.