Legacy GM myst game slide puzzle background

phillipPbor

Member
cudeworld.png

slide picture puzzle is the most popular hardest puzzle ever made, until I came up with a sillution. each room like this is one of the sliding panals for a (puzzle) control panal. that way you can make your own path. but one thing that was bugging me. is that how can the game tell of the door to the next room is what the diagram of a control panal is.

maze.PNG

example.

if there was such a thing as background behind transparent background. then I do need help with a lot of work to be done. but the question is, how can you make a point and click game know what room it read.
 

sp202

Member
If you're asking how to make a sliding puzzle solution, just store the correct position of the pieces in a ds_grid. If the current configuration matches the grid, the puzzle has been solved.
 

phillipPbor

Member
If you're asking how to make a sliding puzzle solution, just store the correct position of the pieces in a ds_grid. If the current configuration matches the grid, the puzzle has been solved.
what if the sliding puzzle don't have to be solved, it had to be a creative path.
if you find more room frames within room frames, or someplace else, then you can ether place them in one of a slots in a control panel.
 

sp202

Member
What did you mean by "the door to the next room is what the control panel is"? Do you open a door when the path is solved? What are the rules of the control panel/door mechanic?
 

phillipPbor

Member
What did you mean by "the door to the next room is what the control panel is"? Do you open a door when the path is solved? What are the rules of the control panel/door mechanic?
a control panal is on a center and it don't have to be a door mechanic.
 

phillipPbor

Member
That tells me nothing. What are you trying to code?
this whole mechanic.
listen. in this point and click escape game, you can only control the rooms
using the only room that has a control panal (slider puzzle) the only thing that in one of the slider rooms.
heres the example. of what it like to be in a slider puzzle first person escape game.
the left side shows how you take a long way from the control panal room to the lava room
the right side shows after playing the control panal slides shows it will be the easier way get to the lava room.

(so how can you make a code that can check if each room (direction shows below)
sample.PNG
 

TheouAegis

Member
Sounds like the sliding puzzle from Castlevania DS:


But it sounds like the difference here may be that instead of having n panels outright, you have to find the panels throughout the game. Then you can move around the panels that you have found such that you create useable paths elsewhere. Am I right?

Well, first off you need to design your sliding puzzle in full. Your puzzle will have a complete solution, so design that first (remember to leave one panel empty). There's a sliding puzzle tutorial on the old forums that I made. It's pretty comprehensive, too. They seem easy to make, but they can be actually quite difficult depending on how you decide to program them.

Assign numerical values to each piece, just like in the image above. Now design your rooms for each of those pieces and put the rooms in the same numerical order. If you don't trust GM's internal mechanics, you can assign each room index to an array of all the rooms in the solution. You don't actually need an array of the solution to compare to if you don't want to notify the player that he got all the pieces in the right order, however you will need an array holding the current layout of the room.

Furthermore, you will want an array that defines the pathways of each room. You'd use some fancy bit manipulation to keep track of that. So let's take the CVDS puzzle map as it is completed:

Ooh, those tricky buggers -- four of the rooms don't even connect! Anyway, the first room has exits on the left and right. We can denote this numerically as a value of 5. Room 2 has exits at the left and bottom. We can denote this numerically as a value of 12. Room 3 has exits on the right and down, which would thus be 9 following the same pattern. In other words, 1 = right, 2 = up, 4 = left, and 8 = down. You add them together to get the value of the room.

puzzle_room[0] = 5;
puzzle_room[1] = 12;
puzzle_room[2] = 9;
puzzle_room[3] = 5;
puzzle_room[4] = 1;
puzzle_room{5] = 11;
puzzle_room[6] = 14;
puzzle_room[7] = 8;

and so on.

You'll store the player's "position in the puzzle" in a variable. When the player enters a room, check its doorway value (the value in the exits array). For each of the directions, check if the next room in that direction has the opposite door value. If no room exists, lock the door. If the adjacent room has the wrong value, lock the door.
 

phillipPbor

Member
Sounds like the sliding puzzle from Castlevania DS:


But it sounds like the difference here may be that instead of having n panels outright, you have to find the panels throughout the game. Then you can move around the panels that you have found such that you create useable paths elsewhere. Am I right?

Well, first off you need to design your sliding puzzle in full. Your puzzle will have a complete solution, so design that first (remember to leave one panel empty). There's a sliding puzzle tutorial on the old forums that I made. It's pretty comprehensive, too. They seem easy to make, but they can be actually quite difficult depending on how you decide to program them.

Assign numerical values to each piece, just like in the image above. Now design your rooms for each of those pieces and put the rooms in the same numerical order. If you don't trust GM's internal mechanics, you can assign each room index to an array of all the rooms in the solution. You don't actually need an array of the solution to compare to if you don't want to notify the player that he got all the pieces in the right order, however you will need an array holding the current layout of the room.

Furthermore, you will want an array that defines the pathways of each room. You'd use some fancy bit manipulation to keep track of that. So let's take the CVDS puzzle map as it is completed:

Ooh, those tricky buggers -- four of the rooms don't even connect! Anyway, the first room has exits on the left and right. We can denote this numerically as a value of 5. Room 2 has exits at the left and bottom. We can denote this numerically as a value of 12. Room 3 has exits on the right and down, which would thus be 9 following the same pattern. In other words, 1 = right, 2 = up, 4 = left, and 8 = down. You add them together to get the value of the room.

puzzle_room[0] = 5;
puzzle_room[1] = 12;
puzzle_room[2] = 9;
puzzle_room[3] = 5;
puzzle_room[4] = 1;
puzzle_room{5] = 11;
puzzle_room[6] = 14;
puzzle_room[7] = 8;

and so on.

You'll store the player's "position in the puzzle" in a variable. When the player enters a room, check its doorway value (the value in the exits array). For each of the directions, check if the next room in that direction has the opposite door value. If no room exists, lock the door. If the adjacent room has the wrong value, lock the door.
I under stand, but how can you make background and hotspots change when you move (the control room or other rooms?) I mean how can you change paths of the game when you move the rooms with puzzle slider? (IN First PERSON point and click game.)
like a myst style game. (myst is a FP point and click game made in 2000 windows 95 created by a compony (CYAN.in) even made the award winning sequals, (RIVEN) (EXILE) (REVOLUTION) and finally (END OF AGES).
(they even made remakes) what inspires me is by game jams from game jolt, that I see a russan MYST style game called (MYHA)
 

TheouAegis

Member
Yeah I know what Myst is. It came out in 1993 when I was 13 years old. I played it on the Apple Macintosh and on the Sega Saturn.

Did the stuff actually change while you were moving the pieces? Or did the puzzle cover up the screen and the pieces actually moved after you closed the puzzle display? From what I remember of Myst, any "action" you could see on the screen was just an image sliding around into place, then when you clicked to move it'd change rooms.

If you wanted to make the sliding puzzle affect one entire room, rather than a series of rooms (which would be a lot easier), then you'd have to manually reposition each chunk of object and tile date in the room based on the values in the puzzle.

Each "chunk" would be the 4x4 blocks each section is made up of. You'd make an array holding the ids of each tile and object inside each chunk. When the player moves a piece, you'd loop through the array and move each tile and chunk accordingly.

for(i=0; i<array_length_2d(chunk_objects,moved_chunk); i++) {
if chunk_shift_vertical == true
with chunk_objects[moved_chunk,i] y += chunk_size * chunk_shift_direction;
else
with chunk_objects[moved_chunk,i] x += chunk_size * chunk_shift_direction;
}

With this kind of method, you could keep it all in one room and let the player see the immediate changes.
 

phillipPbor

Member
thanks... but I think we an make a concept demo.

if the moving rooms and a control panal located at the middle slot (room) that way I can be able to help use the example.((ill give credit))
 
Top