on the future of the easter bunny maze #5829
Labels
No Label
1. kind/balancing
1. kind/breaking
1. kind/bug
1. kind/construction
1. kind/documentation
1. kind/enhancement
1. kind/griefing
1. kind/invalid
1. kind/meme
1. kind/node limit
1. kind/other
1. kind/protocol
2. prio/controversial
2. prio/critical
2. prio/elevated
2. prio/good first issue
2. prio/interesting
2. prio/low
3. source/art
3. source/client
3. source/engine
3. source/ingame
3. source/integration
3. source/lag
3. source/license
3. source/mod upstream
3. source/petz
3. source/testserver
3. source/unknown
3. source/website
4. step/approved
4. step/at work
4. step/blocked
4. step/discussion
4. step/help wanted
4. step/needs confirmation
4. step/partially fixed
4. step/possible close
4. step/QA main
4. step/QA NOK
4. step/QA OK
4. step/question
4. step/ready to deploy
4. step/ready to QA test
4. step/want approval
5. result/cannot reproduce
5. result/duplicate
5. result/fixed
5. result/maybe
5. result/wontfix
No Milestone
No project
No Assignees
6 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: your-land/bugtracker#5829
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
after dumping worldeditadditions, if we want to have more bunny mazes this year, we need to figure out a replacement maze generator. several mods exist already, but we may want to develop our own due to their limitations, or just try to extract the old generator as a stand-alone mod.
The maze was blocking direct access from spawn to harbor (you have to walk the long way around)
That was somewhat annoying.
I suggest the maze be modified so the direct route to harbor would be passable - i.e. the ground floor would be just a bunch of pillars where you could walk thru, with actual maze levels above and below it?
i'm pivoting to implementing something almost equivalent to the worldeditadditions maze in time for easter. i don't have any clear paths for fixing the reported bugs with spawnit or ballistics, and this should just take a day or so.
i 100% agree that the maze should in the future let people walk from /spawn to the harbor unimpeded. that's pretty trivial if the other commands are parameterized.
Sounds like a nice twist :)
today, in pursuit of performance when generating mazes, i bonked my head on the limitations of lua. i wanted to use performant data structures when generating the maze, but lua 5.1 doesn't have a built-in way of hashing arbitrary tables, and also has no way to build efficient hash tables in pure lua (it lacks bitwise operators and shifts). tomorrow i'll just give up on efficiency and use O(n^2) algorithms. that should be enough for our immediate purposes.
if anyone is curious, the algorithm i'm trying to implement is described here: https://weblog.jamisbuck.org/2011/1/20/maze-generation-wilson-s-algorithm
visits = { [cx, cy] => 0 }
for this you can just use
minetest.hash_node_position(pos)
or just create an array of arrays(ah, you will need to re-create it each step...)visits[x][y]
or... there's some other optimization you wanted to do?
Hm, that blog also has bunch of other (more efficient?) algorithms...
https://github.com/fluxionary/minetest-we_maze
so it does. wilson's sounded the best from wikipedia due to the "unbiased" property and ease of use. it doesn't seem to be too slow in practice. it produces nice-looking mazes:
i parameterized the code to allow for adding new algorithms in the future if we want.
because the arguments to the
//maze
command are slightly different, the script will need to change to something like the followingadded a couple more algorithms:
backtrack (longer paths, fewer dead ends):
prim's (shorter paths, more dead ends):
QA
I checked whether the command given would generate a nice bunny maze. That works.
I did NOT check whether all parameters lead to reasonable mazes or have crash potential when giving funny values like 0, -1 or 3.415
If you want a nice 3D maze, I'm happy to build one:)
your maze was fantastic, but i expect it takes days to make it by hand, so not suitable for often-changed bunny-type mazes :)
i'd love to be able to expand the 2d maze code to make 3d mazes eventually. it's not that much more complicated, the fundamental algorithms are the same.
https://github.com/conorpp/3d-maze-generator/blob/master/maze.py
the maze algorithms i used are abstractable - the only big things to do to make a 3d maze is to provide a different set of adjacent nodes, and to specify another building material for players to use to go up and down. there's a number of other important QOL things like a way to specify that players tend to be about 2 nodes tall, but that's just tedious, not complicated.
re: 3d mazes; it wouldn't be too much harder to create algorithms that would build a maze inside of a pyramid, or which included more loops. or even using ideas from e.g. https://www.youtube.com/watch?v=ZMQbHMgK2rw
I used it to construct my 3D-labyrinths: https://www.astrolog.org/labyrnth/daedalus.htm
Source code: https://github.com/CruiserOne/Daedalus
Forget everything else.
that daedalus engine is impressive. but the algorithms i've implemented correspond to an important subset of the algorithms it implements, without a lot of irrelevant overhead. maze generating algorithms need not be too complicated, and there's lots of other descriptions of the problem. i mostly used documentation from a person who literally published a book about it, as mentioned above.
this is live, looking forward to this year's bunny mazes :)