Log In  


Cart #grimmrobe_deckandlabyrinth_a1-4 | 2024-10-06 | Code ▽ | Embed ▽ | No License
17

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)

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
17


1

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.


@grimmrobe

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!!


Ha! A zero-day bugfix! 😄 Thank you!



[Please log in to post a comment]