- JarekFeatured Creator
- Posts : 341
Join date : 2018-12-06
Location : Poland
20220722
I have always been fascinated by mazes (or labirynths). Recently more in creating them then solving. I didn't know how to go about it until I came across THIS slide show "Algorithm Is Not a 4-Letter Word". It changed my life! I highly recommend it for all maze afficionados like me. That's when I decided to have a go at my own Random Maze Generator. So now every time you click on the screen a new maze is generated with a single solution (1 correct route to take from one side to the other) with many misleading dead end routes. My biggest problem at the moment is that I don't know what to do with it. Maybe it's a good setup for some kind of a game but still haven't figured out what it could be.
Any ideas?
Download
rusnakcreative likes this post
Comments
Minigame?
Sat Jul 23, 2022 1:14 amPPT Dev
Sat Jul 23, 2022 8:21 am
I've seen some maze generators before, but never thought to try to build one on my own (wouldn't even know how to start to code that honestly!) There is a ton of potential with what you have just made. For starters, you could have some randomly generated Pacman levels? Not as a random maze like that, but more like it'll generate a symmetrical pattern the game would take shape in (not sure if yours already does this, or if you had several pre-built levels?)
Building on that idea, you could make it like a race between you and a pacman ghost to reach a randomly placed goal. You start on one side, the ghost on the other. Since your maze generator comes up with one solution path, why not divide that path into two and place that goal as close to the middle of that path based off steps taken so that either player wouldn't have an advantage over the other. For easier difficulty, the goal could be placed between the halfway point and the player's starting position, giving the ghost more path to travel. Likewise for a harder difficulty, give the ghost a little more of the advantage but not by much as you still want it to be possible to beat while challenging. You could also program how well your ghost can solve the maze. You could do follow only the left wall (or follow only the right wall) until you reach the goal, or you could tell it to go through the path exactly as it should know the path it just randomly generated (but then that'll be more of a glorified timer as the ghost would make a perfect run for the goal.)
Another idea could involve collecting items along the way vs similar ghost. You could see if you can collect more than the ghost, OR see how many you can collect while being chased by the ghost? Yeah, that sounds pretty much like Pacman, but in a maze with not that many options to avoid the ghost.
How about a maze with limited visibility and you can only see the squares that are within the immediate area, like when you dig on a tile in minesweeper. You could keep it this way, or you could make it more challenging and have it where you can't see over walls. The adjacent tiles could be a slightly darker color than the current tile you are in. You could also have any previously traveled tiles in a different color to show where you have been to make things a little easier.
There's a few more half-baked ideas that I'll probably save for later when I figure out some loose ends, but hope this helps!
Building on that idea, you could make it like a race between you and a pacman ghost to reach a randomly placed goal. You start on one side, the ghost on the other. Since your maze generator comes up with one solution path, why not divide that path into two and place that goal as close to the middle of that path based off steps taken so that either player wouldn't have an advantage over the other. For easier difficulty, the goal could be placed between the halfway point and the player's starting position, giving the ghost more path to travel. Likewise for a harder difficulty, give the ghost a little more of the advantage but not by much as you still want it to be possible to beat while challenging. You could also program how well your ghost can solve the maze. You could do follow only the left wall (or follow only the right wall) until you reach the goal, or you could tell it to go through the path exactly as it should know the path it just randomly generated (but then that'll be more of a glorified timer as the ghost would make a perfect run for the goal.)
Another idea could involve collecting items along the way vs similar ghost. You could see if you can collect more than the ghost, OR see how many you can collect while being chased by the ghost? Yeah, that sounds pretty much like Pacman, but in a maze with not that many options to avoid the ghost.
How about a maze with limited visibility and you can only see the squares that are within the immediate area, like when you dig on a tile in minesweeper. You could keep it this way, or you could make it more challenging and have it where you can't see over walls. The adjacent tiles could be a slightly darker color than the current tile you are in. You could also have any previously traveled tiles in a different color to show where you have been to make things a little easier.
There's a few more half-baked ideas that I'll probably save for later when I figure out some loose ends, but hope this helps!
Sat Jul 23, 2022 9:15 am
Is it possible for a buzzer to sound and a 'X' to appear if you hit a wall? If so it could be competition (with self or others) to complete a maze with the fewest buzzes & Xs.
Sat Jul 23, 2022 9:25 am
johnr wrote:Is it possible for a buzzer to sound and a 'X' to appear if you hit a wall? If so it could be competition (with self or others) to complete a maze with the fewest buzzes & Xs.
Absolutely. When you press a control (left, down, up, right) it will follow the same code no matter what. It is up to the program to determine how to act when faced with certain situations using if/then conditionals. For example: go forward. Is there a wall? If yes, then don't go forward. You can also add the X and play sound here. If there is no wall, then go to the next space.
Sat Jul 23, 2022 2:49 pm
Is it possible to have 2 or 3 entry points leading to 2 or 3 matching exits - or is it just possible to have 1 path?
Sat Jul 23, 2022 4:15 pm
This intrigued me! Heck, you could use this to make a Rogue-like proc-gen dungeon-maker for what I believe could become your very first PowerPoint RPG! It's much-simpler than the "Reward-Roller"-engine I developed, which uses gameplay-interrupting player-spinnable wheels to achieve the same effect!
Sun Jul 24, 2022 11:21 am
lindam33 wrote:Is it possible to have 2 or 3 entry points leading to 2 or 3 matching exits - or is it just possible to have 1 path?
The only limitations to programming are from your knowledge of the coding language and the computer's ability to process what you code. I'm sure it's possible, but Jarek will have to figure out a way to make this work. My guess is he could take his existing code and run it a second or third time overlapping the first run? That could be a first start, but he'll have to work out all the finer details of the code to make it work exactly as he'd like. There's a possibility that if ran a second or third time, it could look just like as if it was ran once (as the second and third one completely overwrites the current layout.) There's another possibility that the open paths would clear out a lot more walls than expected, leaving a nearly empty looking maze.
TL/DR: It's most likely possible but Jarek hasn't developed it yet.
Tue Jul 26, 2022 4:09 pm
Guys,
I am away travelling for a longer time so haven't been able to respond quickly enough to the thread I started. Reaching internet is quite difficult where I'm at.
First of all - I am greatly inspired by all the great ideas you have I wouldn't have thought of! This is a very inspiring input from all. Thank you all! I am analysing what you wrote with much admiration and also the difficulty level of implementing them by writing code. Maybe some ideas can be implemented without VBA as an extension to the generated maze?
Secondly - I have prepared a little something for even more creative thought (all your ideas are fantastic, there's no better or worse!) by adding 3 choice fields to the program. You have to run the Random Maze Generator (RMG) once at the beginning for the additional menu to appear. Then you will see 3 clickable options:
- Solid fill: switching this ON/OFF allows for the maze to be generated as "walls only" or have a solid white background. The difference is so amazing that it can make you think in so many other new directions!
- No exits: switching this ON will eliminate the exits/entrances to the maze making it a locked arena. More ideas!
- Slow draw: you can watch the maze being generated piece by piece. Interestingly, it gives an idea of how the algorithm works and how the maze is created. This should help with answering some questions that you might have regarding the maze itself.
To answer some questions in the thread:
- accessing things, opening doors is possible;
- there can be more exits and entrances but still within the same 1 path. I can't make 2 or more different paths that don't intersect;
- the path is not known during and after generating the maze and there are algorithms for programmatically finding the path but it's something I don't see myself doing (unless someone else wants to step in!);
- detecting walls and obstacles is possible;
- can't assign movement of sprites to arrow keys; instead a directional pad could be used (as in PACman)
Download
I am away travelling for a longer time so haven't been able to respond quickly enough to the thread I started. Reaching internet is quite difficult where I'm at.
First of all - I am greatly inspired by all the great ideas you have I wouldn't have thought of! This is a very inspiring input from all. Thank you all! I am analysing what you wrote with much admiration and also the difficulty level of implementing them by writing code. Maybe some ideas can be implemented without VBA as an extension to the generated maze?
Secondly - I have prepared a little something for even more creative thought (all your ideas are fantastic, there's no better or worse!) by adding 3 choice fields to the program. You have to run the Random Maze Generator (RMG) once at the beginning for the additional menu to appear. Then you will see 3 clickable options:
- Solid fill: switching this ON/OFF allows for the maze to be generated as "walls only" or have a solid white background. The difference is so amazing that it can make you think in so many other new directions!
- No exits: switching this ON will eliminate the exits/entrances to the maze making it a locked arena. More ideas!
- Slow draw: you can watch the maze being generated piece by piece. Interestingly, it gives an idea of how the algorithm works and how the maze is created. This should help with answering some questions that you might have regarding the maze itself.
To answer some questions in the thread:
- accessing things, opening doors is possible;
- there can be more exits and entrances but still within the same 1 path. I can't make 2 or more different paths that don't intersect;
- the path is not known during and after generating the maze and there are algorithms for programmatically finding the path but it's something I don't see myself doing (unless someone else wants to step in!);
- detecting walls and obstacles is possible;
- can't assign movement of sprites to arrow keys; instead a directional pad could be used (as in PACman)
Download
Tue Aug 02, 2022 1:38 pm
Actually, I've seen people rig key-inputs up to make sprites move, even complete with partial-body walking-animations so that the legs kind of jerk back and forth between two phases like in an old PoKéMoN-game.Jarek wrote:- can't assign movement of sprites to arrow keys; instead a directional pad could be used (as in PACman)
Here's an example, and I swear, this is all PowerPoint and VBA, I've played some of this guy's works, and they really function as shown:
https://www.youtube.com/watch?v=_2zjkgLco3w
Tue Aug 02, 2022 1:44 pm
I can second what Jade says. I actually made a video on how to make an object move in slideshow mode with the arrow keys (I used an ActiveX object for simplicity's sake but you can easily do the same thing with shapes as well). It has some limitations, but it is entirely doable.
Permissions in this forum:
You cannot reply to topics in this forum