RogueRally by ComicSans
A procedurally-generated mischievous mining adventure.
Play the web app here (monitor/mouse recommended)
As the newest recruit of Deep InterGalactic Good Yield (DIGGY) Holdings, your job is to program an autonomous mining robot which is scavenging crystal ore from a possibly-abandoned mine.
We didn't get to finish any victory conditions. You can pat yourself on the back if you finish level 10, though.
To get a new set of levels to try, you can change "Generation Seed" in the "Start" dialog to any string (try your username!). If you find a particularly hard or fun seed, post it in the comments! If you want to skip past easy levels, press '='.
Programmed by Brian McBarron, Tony Aquino, Robert Bergman. Music by dav.



Ratings
| Overall | 821th | 3.568⭐ | 39🧑⚖️ |
| Fun | 908th | 3.351⭐ | 39🧑⚖️ |
| Innovation | 737th | 3.365⭐ | 39🧑⚖️ |
| Theme | 597th | 3.875⭐ | 38🧑⚖️ |
| Graphics | 1192th | 3.419⭐ | 39🧑⚖️ |
| Audio | 733th | 3.412⭐ | 36🧑⚖️ |
| Mood | 713th | 3.639⭐ | 38🧑⚖️ |
| Given | 48🗳️ | 51🗨️ |
I think what's missing from this that makes Robo Rally successful is time pressure. If there were enemies or something to put pressure on the player, you'd have a real winner here.
Nice work
PS, finished level 10 :) and props to the music creator!
I beat level 10, but I'm not sure if there was a challenge to it. Did you consider limiting the number of card sets or which cards the player can use (e.g. a Zoolander level where they can't turn left)? I'm not sure if this would be feasible with fully RNG levels, but maybe it could have been done with randomly combining pre-built map areas?
The two map mechanics I encountered were breakable rocks and conveyor belts:
* Conveyor belts moving twice instead of once was unexpected to me, but the game doesn't punish experimentation so I could just have fun driving around to figure out how things work.
* Similarly, I could take a chance running into the different-colored rocks to break them. I would change the rocks so that reverse into them does nothing (after all, the drill is on the front side!) and maybe require an extra move to break them (fordward-3 through a rock uses 1 to break and only moves you forward the remaining 2).
For some reason, I really enjoyed finishing a level with the backward-1 card (instead of forward-1/2/3). Incorporating style points or adding something like that as a constraint might have felt even more rewarding when completing a level.
Overall, I really like this submission and would love to see where you would have taken it next.
@squirmonkey, you nailed the RoboRally :robot: inspiration! Richard Garfield FTW!
@boxedmeatrevolution, your props go to @dav, our audio expert :musical_score: ! They had the most difficult role as the only remote team member, and having to work from only a written description of the game.
Thanks for the kudos, @yetrecalllaw! This was my first dabble in procedural generation :sweat_smile:. It's terrifying to give up level control to an algorithm, but it definitely whetted my appetite to *explore* it more :drum: .
We had a lot of challenge mechanics in mind, but after a few LD entries that were more frustrating than fun, we decided to err on the side of casual. My S.O. said it was my first LD that she's enjoyed :rofl: . We do plan to develop it further though. Thanks to @mharitsnf, @roberto-romao, @jellzilla and others for the suggestions!
I want to give shout-outs to @embedder72 for building the entire state machine, and @onedozenbagels for the drag-and-drop GUI. Sometimes the best praise for a bit of code is the lack of problems/complaints, and that was certainly the case here! :clap:
but overall I believe this to be one of the most solid entries I've played.
One thing I didn't quite understand was why I would want to pre-program several moves at once, as there seemed to be no penalty for taking several smaller turns. Especially once the available moves became randomized, if you had a bad "hand", it felt like it was better to make one small move and hope for better options next turn, rather than work within the limits of your current moveset. It would have been nice if there was some sort of reward for programming longer sequences into your drill, so that players were incentivized to do so and have fun figuring out satisfying sequences. :)
Overall though, cool game!
My only feedback would be:
- The "diggable" vs "non-diggable" tiles didn't have enough of a difference. Seemed like the diggable ones were just slightly brighter?
- The "diggable" tiles didn't seem functionally different from just an empty tile? It didn't take more "movement" to get through them, you just kinda dig through. Maybe you can't back up through them, and that's the only difference? I didn't get a chance to test this out. It seems like maybe the player should be incentivized to NOT dig when it's an option, instead of digging being the same as not digging.
- There didn't seem to be any penalty for digging/taking forever. You don't even really get a score on how many "hands" you take. I started out assuming that I could "fail", but then once I hit depth 8 I just entered in random hands and there didn't seem to be anything keeping me to task. This isn't the worst thing, but it does remove any illusion of "challenge" when there are no penalties for mistakes.
- Very very small thing, but you probably don't need to ask the user for a "seed" every single time. Maybe on the "initial" seed when they start the game, but it's a bit confusing to see basically the same "prompt" between every level.
- There were times that the conveyor-belt tiles were confusing to me. Sometimes I'd move onto them and end my turn, and they'd move me 2 tiles. It seemed like rotating on them moved me 1 tile at a time. I guess it was just basically "end a move on them and you move, end your turn on them and you move" but it was a bit confusing.
Overall, great job!
I had some trouble seeing the grid sometimes, maybe making it brighter would have helped?
It was also a bit tricky for me to differentiate destructible walls from other walls.
One thing that I would love to have is a way to tell how well we did on each level (how many turns it took us to complete the level, the optimal number of turns,...), although I understand it could be difficult to implement with random commands.
Overall it was a really nice game, good job on your team!