Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics


A member registered May 19, 2016 · View creator page →

Creator of

Recent community posts

That is so cool, thank you for talking about the game. I’m really happy you enjoyed it. Love the rest of your picks too, what a fun selection.

Oh yeah I can see how that might go on forever. Did they ever end their turn? Or did you have to quit?

The tension that builds as the rain keeps coming, punctuated by that fantastic death animation, it’s so good.

I have no idea actually. Not sure that itch’s “name your price” feature has an option to gift.

In any case, thank you for your donation, I really appreciate it. I hope your friend enjoys it!

Thanks for your support and enthusiasm! How did you like it? What kind of deck did you end up beating the game with?

I love this idea, it’s crossed my mind before. I think I can look into this after the next update. I’ll keep you posted.

Thanks for the report. I have a solution in place for a similar situation: I force a discard before drawing if the hand is full of shields. In the next update I’ll extend that mechanism to a fully unplayable hand.

Thanks again!

Taking damage in some order is really interesting. Some randomness already comes from drawing order, and it’s probably a lot of fun to be able to plan against attacks once things are in your hand. And then “Third eye opens” (which shows you the opponent’s hand) gets even more interesting because it will actually show you what you’ll be removing from the opponent’s hand. I’m gonna try this out, thanks for the suggestion.

Removal is something I’ve always had on my mind, but I have so far avoided it since the game is, in the end, so short.

Thanks a lot for your feedback!

I also think the matches are typically over too quickly or maybe they’re just really swingy.

The lack of swing in this game has always been a design problem, and I think it has a lot to do with the core design factors:

  • Hand as health
  • Small integers for everything

Because I’m not changing those, the only way I can really impact this is adding new cards, changing existing ones, and perhaps (finally) dealing with effect stacking, which would allow you to build an engine in a more significant way. I’ve got some ideas. If you have any ideas for card mechanics that could help, feel free to let me know.

Though I’m currently not actively working on this game at the moment, there will be a bug fixing and quality of life patch sooner than later, so perhaps I can find some time to deal with effect stacking in that one.

Also one of the cards didn’t seem to work like I expected, “something happens when the opponent gains AP”. I thought the effect would trigger at the start of my opponent’s turn and any other time he gained AP but it didn’t seem to work.

Interesting, that might be a bug. Do you remember which card? And could it be that the opponent’s AP was full so they weren’t actually gaining AP?

Perhaps some kind of check point that you respawn at if you reach a certain point.

Good one. It’s probably doable to add a non-permadeath mode that respawns you at the start of the floor. I think that’d be a nice improvement.

(1 edit)

Thanks a lot for all your feedback! I’m glad you like it.

I’ll fix the typos. Quality of life improvements like the active statuses or keyword explanations are very high on my list. And you’re right, the onboarding could be much clearer. I’ll look into that.

As for more complexity, the card set is mostly final, although I will probably replace Blood Rites because it’s bugged and not that interesting as a card. I like the idea of upping the hit rate of cards, so perhaps that’s a good fit for a new card (or more). It’ll synergize nicely with shields, traps and spiked shields.

(2 edits)

I’ve thought about this a lot! I did paper prototype this while designing, but I wonder if the randomness is just slightly annoying to resolve when playing physically. Each point of damage means you need to point to a random card. But maybe it’s possible by making compromise where players pick what card is discarded for themselves. I’d be interested to test that out. I could make a printable set for people to try out pretty easily!

(1 edit)

Here’s a tutorial for creating a broughlike that touches on a lot of features that also occur in traditional roguelikes like movement, pathfinding, basic level generation:

Indeed. I’ll have a look at this, and either try to make them stack when that’s fun or try to adjust card text to reflect what’s happening.

Oooh fun, I’ll pop in there for a chat, thanks for letting me know!

And dang, that’s a real hassle. I have a patch coming up and I’ll try to make sure the signing is fixed for that one. It’s so hard to tell when it will or won’t work. GameMaker and Mac don’t seem to be friends.

Have you tried moving the app out of the compressed folder into your Applications folder? And opening it using right click?

Sadly I have no real idea why this happens. Macs are strongly protective of what software you run and there are a lot of factors at play, including the way GameMaker exports their builds. Here’s my general advice:

  • Make sure you remove the app from its .zip or .dmg.
  • Move it to /Applications.
  • Open it with Right click > Open. Opening things this way apparently flags you’re trusting it.

If you havent’ tried that third point yet, that might be the ticket.

(1 edit)

Yeah this is on purpose. A trap or counter effect (such as soul trap or spiked shields) only triggers if the damage is a direct result of your opponent’s attack.

There’s two other ways this you could potentially deal with counters when damaging yourself (with poison or burn), but I don’t like those either:

  1. Target the counter on yourself. This is generally a bad experience. You get hit by poison, which triggers a spiked shield and damages you again, which triggers a fire trap which burns you. Way too punishing and probably discourages shield and trap deck builds.
  2. Always target your opponent. This is fun for the player, because your bad luck turns good, but as soon as it also happens for the enemy, it feels bad. Imagine you get a burn off but then you get “rewarded” by being hit by their spiked shield. You might have even chosen not to attack them head on because you knew their shield was spiked, and you still get bit.

So that’s why it’s set up this way. Counters only trigger when they hit comes directly from your opponent.

Hey folks. I changed Cantrip’s community to be a discussion board. I feel like the type and amount of posts are better managed and viewed this way rather than in a comments section.

That’s also why you can’t see your comments anymore. Sorry about that. If you posted suggestions, bugs or feedback, know that I have read them and processed them all, so you don’t need to post it again.

Ah yes, this is confusing. Nothing you gain or lose in battle is permanent except the treasure you find in Fishy Chest; that’s the only time your actual deck list is affected.

I had plans at one point to make everything carry over between battles, which would have completely changed the game. I never could find time to prototyped it though. It’s a pretty complex change.

No worries, that’s enough information for me to get started debugging for now. Thanks for reporting!

(1 edit)


Do you have any extra details? Does it crash right away, or after a few more cards are played, for instance? And do you happen to remember what you might have played before it happened, or if any effects were active?

(1 edit)

The user tools (links to view all, jam submissions and buttons to follow) frequently overlap with embedded web games. Below is an example of my game Clean! Those! Kids!. This game uses the cursor, and mousing over those user tools removes focus from the embedded game. Of course people can go full screen, but not everyone notices that option.

Could you make sure those items never overlap with an embedded game?

Aah, thanks for catching that one! I literally just swapped the name in the event text, the card effect thankfully works as it should. It’ll be fixed in the next patch.

Hmm, let’s see.

  • On your turn, you spike your shields.
  • On their turn, Kobold attacks, so it says “Kobold hits Player’s shield!”
  • That shield is spiked, so in return you hit the Kobold, and it says “Player hits Kobold’s shield!”
  • The Kobold ends their turn.

To me it looks like the dialogue says what it needs to. Maybe I could make it more clear by adding some event text specifically when a spiked shield is hit?

(2 edits)

Dang, that’s really annoying, sorry. For some reason on Mac it seems to help to move to the Applications folder, or at least out of the Downloads folder. I have no idea why, although it has something to do with Mac’s very restricted software signing policy. It can also help to open with using right click -> open.

Let me know if that did the trick!

Thanks for the kind words and your suggestions. Let me say first that bug fixes (and typos, thanks for catching that one!) aside, I don’t think I will build new things for Cantrip anymore; after more than a year of updates I think I’ve done all I want with it and I’m hungry to dive into some new roguelike project. But all that I’ve learned from feedback like yours is coming with me into my next project.

I’ve had a constructed deck mode high on my feature wish list, but I never found the time to work out the interface. If I do ever dive back into this project it will be one of the first things I pick up.

I like the challenge modes idea too. Feels kind of similar to adding Heat in Hades. Is that sort of what you meant?

Hey! Thanks for your feedback. I totally agree, and we’ve actually tried to address this in the latest update with a bunch of sound effects. What do you think?

(1 edit)

Hooray! I’m glad you found the solution! To confirm, it looks fixed on my machine.

This is on a Macbook Pro 16” with a retina display, which is indeed high pixel density, usually 2x. I’m guessing it’s that since it looks like the game canvas is half of the game’s container. I was playing in Firefox 84. Hope that helps! If you want me to test a new build, let me know, then I can give you some contact info to send the build to.

(1 edit)

What a great puzzle mechanic. You use it in clever ways too. Snapping up copies of the scenery feels really nice, and I loved erasing bits of the level with empty space.

For some reason it’s really small on my screen? I zoomed in on the page in order to play well.

On the start screen it’s hard to read the text

And here the game doesn’t use all the space

Regardless, great job. It’s really cool.

(3 edits)

For Weekly Game Jam’s 184th edition with the absurd theme “Thumb War”, GameJelly and I teamed up and made Clean! Those! Kids!. We had a total blast making it, and I think that joy really comes through in the game.

You clean the dirt off kids’ faces with your thumb, building up a multiplier and cleaning as many as possible before time runs out.

Here’s a quick gameplay video:

Play it here: and share your high score!

3.2.1 mostly addresses a crash that could happen if cards affected by Waning or Lunar Surge got destroyed before the effect ended. It happened to a couple of people and it usually happens late in the game when fighting Yaga, so I felt it needed fixing.

Because it was such a small update I didn’t feel it warranted a dev log, but actually, why not haha. So here’s the change log:

The sheet is now fully up to date!

Fixed this one in 3.2.1! Thanks, this report helped narrow it down.

Hmm odd, I can’t really find what’s causing this. If it happens again, could you also take a screenshot of the game, so I can get some context from the event log and played cards?

(2 edits)

Yeah the daggers are not guaranteed. I think there’s a 1 in 100 chance for a tile to spawn a dagger or something, and they’re only placed after walls and enemies when there are not that many empty tiles left.

The multi-tile enemies were a headscratcher, but someone helped me find a really elegant solution for it: They’re super fun. I still kinda wanna make something grid-based like this with, like, a 5 by 5 beast. Incidentally, although I did put it in an older version of the code, I don’t think the version I uploaded here has this pathfinding solution in it and the creatures just move around randomly because I fell victim to another rookie trope: I rewrote my entire engine from scratch at some point, and never got around to reimplementing pathfinding and goal driven behaviour.

I still feel drawn to creating a fun roguelike, although I would love to aim for something really compact in the style of Michael Brough (Hoarder was another attempt) and coding all this up was super useful in both learning how it could work and also taught me what a humongous effort it could be when overscoped.

Thanks, then I have a better idea what I’m looking for!

Haaaah yesss congratulations!!! That’s amazing.

Hmmmm, could you check for me what the version number is on the start screen? I assumed this was fixed in the latest version.