The Deck and the Labyrinth
Alpha v1 (c)2024 grimmrobe
The Deck and the Labyrinth is a roguelite deckbuilder(lite) maze crawler where you, a mysterious hero with a magical deck of cards, traverse 28 floors of a randomly generated maze to battle monsters, collect cards, and eventually defeat the evil creature that brought the maze into existence.
Controls
Exploration
Up,down - Take a step forward or backward
Left,right - Turn 90 degrees left or right
z/c/(O) - View map, open chest, interact, close window
x/v/(X) - View deck, close window
Battle
Left,right - Change selected card
Down - Hold to see what the selected card does
z/c/(O) - Play a card
x/v/(X) - View discard pile, close window
Gameplay
Exploration
Each floor is a randomly generate maze filled with monsters. There is a locked door somewhere in the maze that leads to the next floor and a chest with a key to unlock it. There are also some chests with random new cards for your deck.
In the top left of the screen is a compass that shows which direction you're facing and in the top right is an orb that shows how close you are to a fight: blue is safe, orange means it's getting dangerous, and flashing red means battle is imminent.
On the bottom is your player level and your experience points, gained from winning battles. Also on the bottom is a (O) button icon which flashes when you can interact with something in front of you.
After every second floor, you will encounter either a fountain or an altar. Drink from a fountain to heal up to 3 wounds and remove them from your deck. Use the altar to burn your lowest power sword or shield card and remove it from your deck, up to 3 times. The altar will refuse your sacrifice if it is the last of its type in your deck, or if your deck would be smaller than 10 cards.
Battles and Death
In battle, you take turns playing cards and taking hits from your opponent. On your turn, you draw 5 cards (4 if you're poisoned) and you can play up to 3 cards (2 if you're weakened). (Other status effects include cursed, where your sword cards do no damage, and shattered, where your shield cards don't increase your defence, as well as guard, which gives +1 def per turn, and protect, which protects from enemy status effects).
Sword cards cause damage to your opponent's defence (shield) and health (heart), and shield cards increase your own defence (shield). You'll also find more powerful sword and shield cards as well as equipment cards that have their own unique effects.
On your opponent's turn they will play a number of wound (skull) cards equal to their attack power (sword). You will block a wound card for each defence point that you built up on your turn. Any unblocked wounds will go into your discard pile and be shuffled into your deck. Playing a wound card while you have a potion will remove that card from your deck entirely.
After each turn, your defence goes back down to 0 and your opponent's defence, if any, is replenished.
You win when the opponent's health is reduced to 0. If you earned enough XP to gain a level, you can choose between your weakest sword or shield card to give +1.
If you ever draw a full hand of wound cards in battle, you die and it's game over!
Notes on this WIP
I started this for the low rez jam 2024 but, as is often the case when I do game jams, I didn't have much time during the jam to work on it. So I continued with what I had anyway and this is the nearly complete thing!
See changelog below for updates. I managed to squeeze more tokens out of it to add some features, and recently added music!
Missing is a proper ending blurb. Those that manage to get through it will be met with an simple but unceremonious "The End".
Even though this is a roguelike, I still wanted to incorporate some sort of suspend save so that a player can take a break before continuing, but the lack of tokens also prevented this. Perhaps after some playtesting and polishing I'll have another token saving epiphany and add such a feature, but most likely not.
It's certainly not balanced yet, so please feel free to comment on that and any other issues you find. Enjoy!
Updates
alpha 1.1
- A few bugfixes
- Increased chance to get equipment cards
- Either button closes a window and moves through dialog
- Door asks if you want to enter right away
- Changed altar text for clarity
- Still no music! Coming soon!
alpha 1.2
- MUSIC!!! Added themes for the intro, dungeon crawling, boss battle, and death. Still more to come.
- Some more bugfixes
- Changed equipment drops so that there is max 1 drop per floor and no duplicates until all pieces are found
- Fountain now heals up to half of total wounds, minimum 3. Fountain also doesn't appear if the deck contains no wound cards
- Ring now adds a status effect "Protect" which heals status and protects from status effects for 3 rounds
- Hammer now does minimum 2 damage to monsters with defence of 1 or less, or completely destroys monster's defence
- Added Large Shield equipment card. This card adds a status effect "Guard" which gives +1 defence for 3 rounds (thanks @RealShadowCaster for suggestions)
alpha 1.3
- bugfix: discard pile window during battle
alpha 1.4
- bugfix: equipment pool actually works now and empty hand ends turn
alpha 1.5
- bugfix: defeated monster won't attack after hand is empty
- bugfix: curse status correctly shows debuffed attack cards
- bugfix: fountain shows up appropriately
- Slight balance tweak for cultist enemy before mid-boss
- Removed button icon from window since now either button closes it
awesome!
the gameplay is smooth and i love the battle system!
Felt great, simple and very effective! I didn't expect there to be so many levels (went to floor 5 and died), but I definitely want to try again soon!
What a delightful game :) Really am enjoying playing this. Cant wait till I get it on my R36S handheld :) So much fun taking that with me to play on trips, I love it. And so nice to see someone posting instructions for there game :)
This is really cool, pretty execution, satisfying sounds and animations, all in all great project. :)
Great game! I made it quite far but I died because I focused too much on attack and not enough on defense. Will have to try again.
Very nice game.
Since you are already familiar with parens-8, you could have all the code unrelated to co routines as lisp data in a 1st card that would copy that data into the high 32K part of the memory that doesn’t get cleared, then that 1 st cart would load the 2nd one (the « real » game), load the lisp code from high memory, merge that with the carts code, and run the big game.
About the game itself, had a 1st run focus on attack, and quickly lost, then had a great run based on defence.
Not sure why I sometimes couldn’t discard from the altar.
Also got two special cards : one underwhelming one that reduces the ennemies shield to 0 just for the turn, and another one that I managed to play three times before I lost, but I could never figure out what it was doing.
The donjon ambiance was very reminiscent of phantasy star 1. Aside from rotations that make you face a wall that feel like flat translations , it’s very convincing.
Thanks for the great feedback, folks!
@RealShadowCaster I'm not sure what you mean by putting data into the high memory. In an alternate build I'm putting some parens8 code in the map area of the cart since I don't use the map at all, but I'm not interested in using multiple carts if that's what you're suggesting.
Regarding the altar, you aren't allowed to discard your last sword or last shield card, and you can only attempt to discard up to 3 times. If you try to discard the last one of a card and the altar rejects it, that still counts as one of your 3 attempts.
Regarding the equipment cards, the helmet is less useful early game but becomes a very powerful card when enemies have 8+ def. Without a description I can't elaborate on the other card you found, but you can hold the down arrow key to see what a card does during battle. I increased the drop chance for those cards in the recent update as well :)
Phantasy Star 1 was my (very obvious) inspiration for the dungeon crawling so I'm glad you appreciate it!
@grimmrobe, I thought you were out of tokens and out of compressed size, and therefore couldn't add more code, even with parens-8. My suggestion was indeed to use two carts, but not in the classic "split the game-play in two halves" and use cartdata for the game state way.
What I was suggesting was a 1st cart full of compressed parens-8 code. That 1st cart would have copied its data in high memory (memcpy to 0x8000) and run the 2nd cart that would retrieve the compressed code at 0x8000 and use it on top of its own code.
If you don't want to use two carts, just forget it.
Thanks for telling about the cart description key.
Another feature I would have liked would have been the ability to not take an unwanted card after opening a chest.
@RealShadowCaster I understand now, thank you! Yeah, I'm out of space and just trying to squeeze what I can in whatever way I can. I've learned a lot (especially about parens8) but without using multiple carts I'm not getting much more into this one.
1st event, I got the altar and tried to burn three attack1 cards. The last failed to burn while not being the last of its kind. Here's the deck after the event.
Maybe you can't go below 10 cards ?
EDIT
Started another run (game is close when you post on the BBS anyway).
This time I took a damage card to be at 13 cards.
Got lucky and had the altar event, and was able to discard 3 Attack1 cards.
I'll now try to heal to see if I caan go below 10 cards this way.
Wait, I lost my run by posting again (Facepalm !)
@RealShadowCaster that is correct that you can’t burn cards if it would make your deck lower than 10 cards. I recently updated the text above to reflect that. You CAN, just like you demonstrated, take damage and then burn cards until you are back down to 10 but that obviously leaves you weaker (at least temporarily) so it would have to be a judgement call on your part if it’s worth it :)
Thanks for all the testing and attempts to break it! The feedback is good and much of what folks have been discussing here and on discord will be in the next build.
Had another go, and used the card description option. Helmet is OKish, but getting a second one is very bad :
The status removal item is just plain bad. It helped me exactly zero times during the entire run, basically a permanent damage card.
Potion is interesting. It especially helped me against mushrooms. I had not enough damage and shield output to both overcome the 4 shield and protect against the 4 damage. I had a single 5 attack card, so I could play defensively forever, and play my 5A whenever it was drawn, for an insanely long battle time. But instead I played one of my many +3 defense and two attack card to advance the fight, and the potion card would be used later to get rid of the single received damage. During late stages, it was also useful when facing rats : by playing defensively I could slowly recover a couple HP per rat. Unfortunately, that turned out to be not enough thanks to disastrous draws like the one shown in the screen shot. I really wish I could see the content of boxes. When you don't have the key, you are forced to open them and those two late +2shield cards weakened my deck so much that I started receiving regular damage.
Ideas for new item cards :
Copy (strong): same effect as last played card.
Guard (average): turns status from OK to guard. Guard is essentially a +1 shield (not cumulative), but stays active between turns if not used to soak a damage. Also stays active between battles.
Foresight (special) : turns status from OK to foresight. You get to see the content of boxes.
Discard (strong) : Play it followed by two other cards, new cards are drawn to replace the three.
+XP (special) : turns status to XP. if XP status at end of battle, XP gain is doubled and status returns to OK.
Destroy (good) : single use. when played, next card is and destroy cards are removed from deck.
@RealShadowCaster I also found that having 2 of the same equipment card is terrible, so my current build will have a slightly different card generator so that you only get 1 of certain cards.
The cure status card (ring) is also kinda meh, I agree, but in later stages there's more chances to get hit with status effects. Perhaps I'll change it to add a "protect" status instead...
There's a few reasons I'm apprehensive to change how getting treasures works, whether that be allowing the player to leave it behind or revealing what's inside in another way. Besides some "behind the scenes" complications, adding random cards to the deck is a big part of the risk/reward game loop, in which weaker attack and defence pickups make you weaker in the short term but can be mitigated through using the altar.
From my own testing, I've found the equipment cards to be the most troublesome (like your screenshot above) and would rather focus on making them more balanced in both usefulness and drop rate, in addition to adding some more ways to remove damage from the deck (like making the fountain more effective).
Regarding your card suggestions, they are some good ones! There is already an hourglass item that redraws your hand, similar to your suggested Discard. And wanting to change the Ring card to give a positive status effect would make room for something like your Guard card, though I wouldn't make any effects last between battles.
Now to find more than my remaining 3 tokens to fit any of this in...
Cool game. I made it to the coffin but I had racked up too many useless rings and hammers along the way, which caused me to start racking up injuries, so I was in too bad of shape to defeat it.
Great fun! Got a weird edge-case error in my latest run–may have been a near-simultaneous button press during the dungeon crawl phase:
@magic_chopstick Just fixed that! It was from a bug in battle when you press X. It's supposed to bring up the discard pile. Thanks!!
Had a strange bug today : reduced a ghost's HP to 0 with my last +2 attack card, and the ghost hit me for 3 in retaliation before dying.
This is an AWESOME game but it's hard to understand all cards , i've been killed by a ghost and I DON'T KNOW WHYYYYY RAAAAAAH
@RealShadowCaster I’m pretty sure I know what is causing that. I’ll take a look today :)
@toto84c Thanks! You die if you draw a hand of all skull cards. The general gameplay is described above but you can also hold the down key to see what a selected card does.
I've been playing this regularly for the last week...it's so much fun! I keep coming back. For me, it's a great balance of turn-based fighting vs mazing vs inventory. The gameplay and colors are perfect. It's great that you didn't try to get too detailed in the 3Dness. I'm having a lot of fun but also just thought to seek out this thread and thought I'd share, lol
I didn't realize there were 28 mazes! That's a lot, especially without some sort of save points. Maybe the altars or the wells could be save points? I sit and play but run out of time while I'm still alive so I have to quit :( I get it's a roguelike but I don't see where you carry/gain anything between runs so it's just a fresh start every time.
It took me a bit to understand what the skulls do. I get that the mob gave them to me and they filled my deck but they didn't seem to have any direct negative effects to the gameplay...shy of if you get dealt 5 skulls you die. So all they do is really just increase your chances of dying during a battle? That feels really weird to me to not die without getting attacked. I'd feel more satisfaction dying when getting hit by a bad guy than just getting a unlucky deal of cards. Maybe if you get dealt all skulls you just don't get to attack and take full damage from the bad guy?
To that point, I'm not sure I've ever see the "OK" status change. Maybe once. I'll take hits from bad guys over and over but never seem to take damage? I dunno..it makes me feel invincible shy of just getting a bad hand dealt to me. Again, I guess my fate doesn't feel like it's in my control when in battle, which can be a disconnect.
The special cards (hammer, shield, etc) are nice but do take some "what's this do" tries, which didn't bother me...until the next play through and I can't remember! Maybe when those special cards are found in chests there's a little "Hammer breaks shields" kind of helper text.
I'm also not sure why I'd want to burn a card at the altar. I read that it burns the lowest value cards but not sure how that helps...? My deck seems infinite so the more attack cards I have the better to offset the skulls I have. I'm not sure what the trade-off is as to why I should or shouldn't burn cards. But maybe I haven't traveled deep enough? I think level 12 is furthest I've reached.
Hope that feedback can give some ideas or food for thought in general. But I'm really having fun all the same. I play most PICO8 on my handheld and your game is a wonderful experience on that device. I'm excited to see future updates. Cheers!
@morningtoast I’m happy that you’re having so much fun! Thanks for your comments :)
You can see what a selected card does by pressing the down key ;) It’s just a shorthand description but it will help clear up the mystery.
Regarding “skulls”, I designed them to be like “wounds”. The idea is that when a monster hits you, you take wounds (skulls are added to the deck). As you become more and more wounded (when your deck starts filling with skulls), you become less effective in battle (skull cards start appearing in your hand which do nothing but take up space that could have been something useful). In my mind’s fantasy of the game, the result of drawing a hand of skulls is that I just can’t go on anymore and pass out and am thus devoured by the creature.
The point of burning cards is to increase the chance that you draw your higher value cards. This is important if you are able to keep the wounds close to or at zero. However, if you find yourself getting pretty high on skulls, burning a card also increases the chance that you’ll draw more skulls too so you have to use your judgement!
Regarding possibly saving the game, that was something I was short on tokens to do but I really want to try cramming in a suspend save of some kind. I’m going to try to make it happen.
The next update will have some balancing and some more background palettes that clash less with the specific monsters. Between depth 12-14 is a pretty hard wall due to the “cultist” (pale zombie looking dudes) appearing, which really ramps things up too much :D
Ah ha...the card shorthand is perfect, helps a ton!
I get that the skulls wound you and I get the trade-off of too many skulls...maybe what bugs me then is that the "OK" status never seems to reflect that. I mean, if I have 15 skulls to 10 swords/shields, that's not OK! lol
Is there a card you can find in a chest that heals/removes skulls, or can that only be done at the well following a level? It would be a wonderful attitude booster to find a healer in a chest. The +1 defense comes close and is awesome but during my plans there's a point where the mobs are way to powerful compared to what I've managed to cobble together in cards...and I only got to maybe level 10 or so.
Glad to hear saving is something you're trying to make room for. I just think 28 levels without saving is an unreasonable grind given every play is a fresh start. If there's no saving, maybe cut that in half to 15 levels or so.
@morningtoast The enemies occasionally drop potions (you start with 1). If you have a potion and you play a skull card, the card is removed from your deck completely rather than going into your discard pile. There IS an equipment card, the Flask, that gives you 1 potion if you don’t have any. Another player shared that they used that card repeatedly in an easier battle to grind down their skulls.
I was considering having potions in chests, but the real problem is not the lack of potions or healing; there’s a decent drop rate for potions, the Flask exists, and the fountain always appears instead of the altar if your deck is over half skulls. The problem is the balance of enemy difficulty which is something I’m focusing on now :)
Ahh...gotcha. I always noticed that the potion count decreased when I played a skull but I guess I never paid attention to what happened to the skull. I don't find it all that helpful to check my deck inventory so I never bothered to count. Neat.
[Please log in to post a comment]