I don't know if a tutorial like this has been made before, but ill post my version of it anyways...
So if you've seen on rpg games before, there's usually some part in the game where you move around boulders to find the exit. So now you can learn how to do that for your own game
Step 1First of all you must think up a design plan. When making a puzzle there's some things you should keep in mind:
1. Make sure that the path is somewhat difficult, but clear to find. So maybe the player will take a couple of times to get through.
2. There is more than 1 way out. This is because if the character gets stuck, they could figure another way out.
3. Test out the map at least 3 times before continuing on, to make sure that its not too hard, and not so likely that others might get stuck while playing.
4. Figure out how easily someone could get stuck. Because with my tutorial the boulders will reset when you return to the map again, but if the character gets stuck, its a save, quit situation, which can be frustrating to others.
This map has 2 ways of exiting. I've drawn out one. Also including a chest, you could have a few in there that are only accessible through certain ways.
Step 2Coding is very simple. For each boulder include a bunch of conditional branches.
Because it is set to Hero Touch, when the hero faces a certain way and touches it, it will move that way. Also set it to No Animation. It will still have the animation when pushed.
The wait is also in there so that the boulders is moved, then you continue to move afterwards.
If you're having trouble understanding each conditional branch, or haven't used them before, here's some quick information.
A conditional branch is an event that can be set to many things. From variables, switches, to items on hand, and even where the player is facing. So if you check through the tabs when setting a conditional branch, you can find a bunch of different conditions. So once you set a boulder to the condition of where the player is facing, say the first one is up, it will show you this:
<>Conditional Branch: Player is facing Up
<>
Else Handler
<>
Under the conditional branch facing up, that means if the player is facing up, then the action will happen. The else handler means that if the player is not facing up, then this will happen. Now under the else handler, you enter in the next conditional branch, if the player is facing down this will happen, and the else handler if the character is not facing up, or down, but facing left this will happen...etc.
So that's it! if you have any questions, go ahead and post, ill be happy to answer