# A four-dimensiona, maze This is intended to become a cooperative multiplayer game in the form of a four-dimensional maze. It is a work in progress, though it is somewhat playable now. As I change it, I plan to ensure that it remains playable. It is written in Racket, and the main program to start is maze.rkt. I have been testing it using drracket. I really intend it to be a cooperative game, where several players wander through the maze trying to find each other whie communicating through a side channel, such as jitsi or such by all sitting in the same room using their own laptops to reach a shared server. But for players who are on their own, and no one to get together with there is a goal to be reached. The game will tell you when you get there. ## The code, as is. The code curretly being debugged is in maze.rkt and webfront.rkt. It gets updated from time to time. ## Running it To run it on a server, you will likely have to set 'the-game-port' value to indicate which port the game will operate on. The URL for accessing the game will be something liks http:servername:3000/4d assuming that you have set 'the-game-port' to 3000 and that 'servername' is the name of the server. https might work, too, but this has not been coded. ## Still to do: * IMPORTANT; * When a player is doing nothing excpet waiting, still show him things that happen in the room he's in. * Comment the code extensively so readers can understand how to do similar things. Caveats are expecially important. * Improve the commenting and the names of the various structures, functions, and variables. * Document the parameters that are intended to be modified by the game manager (probably the guy running the game on a server).. * Remove dead or moribund code, such as trace printf's, obsolete stuff, and uused functions. * Put more interesting things in some more rooms. * Include a framework for saving the state of the game and protect it from sudden, unexpected server shutdowns. Not needed for a game as short as I expect this one will be. Check back from time to time to see when these things get done. Report problems you have with it to me. Also any comments or suggestions for improvement. If you have any ideas how to display a four-dimensinoal room graphically, clearly, and effectively on a two-dimensional screen, I'd like to hear them. ## Difficulties During debugging I keep getting contract violations that give me detailed backtraces none of whose entries are in any of my code. Hard to find what to fix as a result. It might help to use typed Racket instead of Racket. But for that I suspect I'd need a proper typed API for all the web stuff. Is there one? -- hendrik@topoi.pooq.com