Randomized maze - now with graphical map!

Hi all, thanks for the tips and for sharing your code. The script command opens a whole new realm of possibilities. Here is the updated maze, with better layout and interactivity!


Missing Wings seems very nice. I just started. The only mini-game I found so far is Nice Dice, which is a very simple comparison of two random numbers. Do they also have a full maze in it? I’d be curious to see it.

PS what is a “managing sim”?

1 Like

I’m not sure timing choices is a good idea in this case.

I haven’t played Missing Wings, but Managing Simulators usually refers to managing resources.

1 Like

Whohoo, it worked for me this time! Really REALLY cool to see what can be done with this.


Managing simulator refers to a genre that focuses on production, management, and efficiency. Games like Factorio, Cookie Clicker (this one leans more on idle-clicker), Automation Empire, Rimworld (this one is more on the survival), and recent EAccess Satisfactory (play with me I’m lonely anti-social weeb).

Btw, the timer seems inconsistent. I get a series of rapid brrt on my movement; can’t even click on my preferred option.

1 Like

My favourite ‘Look at what ChoiceScript can do’ game has to be Lunchtime at St. Expeditus by @aetheria (although I don’t believe they’re active anymore). It basically turns the CS interpreter into something more akin to a Visual Novel.

But I think @cup_half_empty has the right of it:

I finally abandoned it because it was too pretentious and I got overwhelmed.

You have to stop and ask yourself, why am I using ChoiceScript? If I’m spending more time writing Python utilities, or hacking around ChoiceScript’s interpreter, than I am writing my game. What’s the point? You may as well go and code your own engine/interpreter.

Note that I’m not trying to dissuade people from experimenting. I’m just encouraging people to be realistic, and I’m speaking from experience… Some of the stuff I’ve left by the wayside:

  • “Hello World” – Computer terminal style simulator, with ‘runnable apps’, including an email system
  • “Choice of Friends” – A IF novel that takes place ‘on’ a Social Networking Website
  • A Piracy simulator with real-world economy (growing towns/shifting allegiances)
  • Full inventory system with armour classifications and equip/un-equip UI
  • The infamous Tale With No End: Terminal: A Tale about an End

Pictures etc.

Hello World
Hello World - YouTube

Choice of Friends

Inventory System

And, here’s the kicker: I have 0 released games to show for it :confused:


This looks pretty cool, though.

1 Like

Hi all. Thanks so much for your comments - it’s really nice to get so much feedback right on my first post!

@CJW ‘Lunchtime’ is really beautiful, but I believe the core CS engine was heavily modified, right? I don’t think you can do all that stuff right out of the box. Mine is a just a fun challenge - what can be done without hacking the engine?

So, here is the updated version of my maze. (LINK IN THE FIRST POST)

New features:

  • an advanced AI (?) driving an enemy in the maze
  • autoplay can be turned on-off
  • to avoid inconsistent events (@Szaal) the “next” button is disabled in autoplay
  • consistent directions (blocked directions are not hidden) so you can learn to navigate using the access keys 1-4

I am using a few script commands, which are in a sense modifications to the engine, but they are very limited.

--- Styling, because style.css is not supported in Dashingdon

*script document.getElementById("text").style.lineHeight  = 1; 
*script document.getElementById("text").style.fontFamily = "monospace";

--- Disable the page animation (one could do it manually in the settings).
*script window.animateEnabled = false;  

-- This is where the magic really happens. Automatically runs "next" for you.
*script setTimeout(function(){document.getElementsByTagName("form")[0].onsubmit(); }, 1500);

-- Disable the "next" button in autoplay to avoid extra events.
*script document.getElementsByTagName("button")[5].disabled = true;
*script document.getElementsByTagName("button")[5].innerHTML = "AUTOPLAY";

There are a million ways one could improve it, but it would go beyond the proof of concept.

  • Directions could be relative. 1 to go straight, 2/3 to turn left/right.
  • Better enemy AI (right now it’s random)
  • Better maze map (guaranteed solvable).
  • Treasures to collect along the way, scoring etc.
  • If one wants to use the script command more heavily, the map could be rendered with a series of small tiles, replacing the symbols for walls and corridor with little images.
  • The games of Snake or Tron could also work with a similar setup.

Let me have your thoughts.

1 Like

@Szaal I’ve spent some time on Missing Wings. Really nice! I loved the puzzles. I also found the maze. I can’t tell if it’s randomized every time, but it was fun to chase all the warping tiles to the end.

The puzzles are p good, though I think a few of them aren’t balanced properly; the dwarves pairing ones especially starts to feel like a chore once you know the solution to them (thanks to how CS handles interface as well).

I see your point. I started the bone collecting game… do I really have to click “collect” a thousand times?

Anyway, I realized that the game files are served in clear. It’s really interesting to see how things are done behind the scenes.

1 Like

Hi all. I have updated the maze, link on my first post: Randomized maze - now with graphical map!

Some key features:

  • Fully recursive map generation
  • Keyboard controls
  • Custom sizes, up to 80x60
  • If you solve it, nice lo-fi ASCII art treat :slight_smile:

Let me have your thoughts!


Ok, I added REAL GRAPHICS!! The map is graphical and changes every time.

Screen Shot 2020-07-11 at 8.02.15 PM

It’s still pure Choicescript (with some *script), and self-contained (no calls to external graphic renderer). Have fun!



1 Like

Hi, What you’ve done its amazing!
I have created a really small maze for my game (though i could have done it a lot bigger if I wanted) a long time ago but it has no graphics. I just wanted to know if there’s a possibility to make the whole image dark and only show “light” where the player is, and a grayed out where it has been, as a way of not knowing the path to the exit before start. That’s how my maze works, as the player never have been there and it shouldn’t know it (at least not before the first playtough, which it could also be solved by the randomness of yours).

Yes, I believe it’s doable. I’d be happy to help you with your game. Do you want to share a link? Feel free to send me a private message if you prefer.

1 Like

@Loudbeat I updated the maze with your idea. Is this what you had in mind?


Yes! That’s exactly what I meant, and you even make it look easy to do!

I really appreciate your seemly effortless help, and I would love to implement that on my game (if that’s okay and possible to make a full game to publish with HG), but I have another parameters that form part of the story so I’ll have to see if it’s even possible to merge it with that system. Anyways, problems aside, Thanks a lot for your contribution.


Sorry, I’d just read that and those are kind of the parameters that my small maze has, one hidden “treasure” you could bump into, and one enemy that hunts you, though I have a timing system and some directions that tell you if the enemy is close and the possibility to do something about that to gain more time depending on another parameter.

Great. Keep me posted

Classic random maze encounter

wtf? I’m enjoying this more than I should :slight_smile:

Random feedback. I think for the sake of reader experience in a real game application, reader input into their choice visuals would be helpful. So…

This is a bit ugly

And following the logic below, parts of this instruction are unnecessary, as a reader will stick with the one method that is most helpful to them…

I’d start the game with a reader choice that says something like:

  • I’m on a mobile
    (removes keyboard shortcut instructions, or better - provide North, South, E, W symbols below or around the maze with the touch functionality you demonstrated in your skills triangle demo)
  • Use keyboard arrows for movement
    (only show arrows reminders in choice tips and instructions)
  • Use keyboard numbers 1,2,3,4 for movement
    (only show numbers in choice tips and instructions)
  • Use keyboard letters N, S, E, W for movement
    (only show letters in choice tips and instructions)

In a published game, this would cut the slightly ugly list of irrelevant reminders, to a shorter, prettier list of relevant reminders.
(And as I briefly mentioned above, if you can extend this fantastic, amazing, genius functionality you are experimenting with to mobiles in a published game - this feature would go from ‘bloody interesting’ to ‘game-changing’ in my very humble estimations)


I like the idea of a touch interface. I implemented it for the 3D maze here: Two-player 3D game demo: The Dungeon of Lamurloq (first-person POV dungeon crawler)

The picture of the maze is touchable: middle for forward, left / right to turn left/right.
Note that, on small mobile phones, you may have to choose “Desktop mode” to get the correct layout (*)

It’s also possible to adjust the labels as you suggest. I tried with multi-replace but it was becoming a chore… and my kid kept asking random questions about Choicescript, I had to cut it short. :slight_smile:

(*) Yes, the images could be all scaled down with heavy *script-ing, if one really wanted.

1 Like