Bloodless - A card game where both players always have the same HP

Hey everyone! I hope it’s okay that this is completely unrelated to conlanging. This is a project I’ve been working on and off for a while, and I think people would find it interesting. It’s a creature combat TCG inspired by Inscryption where, instead of each player having their own HP, both players have a shared health pool and the winner is whoever does the last bit of damage. In this way, the health acts more as a delay to let you set up everything you need to win.

You can check out the cards in the search engine I made for it. I’m not sure that I should link the discord server for it, but I’m down to answer any questions!

Here’s the tabletop simulator room for it: Steam Workshop::Bloodless

And here’s a command line program I made to facilitate Bloodless deckbuilding for Tabletop Simulator: Lilith-In-Starlight/marrow.

It also has a story that players are trying to unfold through looking at cards and flavor text. It’s still a very new game so the rules are very capable of changing, but it’s stable enough that I feel I can share it with people. My friends have compared it to chess and similar strategy games due to how much you end up needing to think for a single turn near the endgame, and the general lack of interactivity.

7 Likes

I’ve been meaning to play this, as a MTG enjoyer!

1 Like

Sounds super cool, i remember Inscryption very fondly :blush:

Is there a write-up on how exactly Bloodless is played?

The basic rules are these:

What You Need

  • Build a deck with at least 50 cards whose type is not Blood Flask. This is your main deck (or just “deck”). When you are told to draw cards, and no deck is specified, you must draw from this deck.
  • Build a deck with exactly 6 cards whose type is Blood Flask. This is your blood deck. When you are told to draw a blood flask, you do it from this deck

Starting a Game

  • Both players draw 5 cards.
  • Players may choose to reshuffle their 5 drawn cards into the deck and draw 5 more (for example, if they think their hand is bad). They may only do this once.
  • Both players draw a blood flask.

Turns

  • The active player uses blood to play cards during what is called their setup phase.
    • If it is not the first turn of the current active player, they may draw one card from either of their decks. They may do this at any point during their turn, not just at the beginning or end.
  • They can then choose to begin their attack phase, during which creatures attack from left to right from the active player’s perspective.
    • Attacks occur like in Inscription: If a creature attacks an empty space, player damage is dealt.

Winning the game

  • The game is won by whoever does an attack that sets the player health pool to zero.

Card Types

Creature

  • They go on the battlefield.
  • They have overkill defense, attack strength, and health. The healh is persistent between turns, unlike in games like MtG. All creatures deal trample damage, and overkill protects you from that trample damage.
    • Trample damage is just when a creature does more damage to another creature than it has health (called overkill damage in bloodless). Overkill Damage always goes to the health pool instead, but the defense subtracts from it.
  • Whenever one of your creatures dies, you gain 1 blood.
  • Whenever one of your creatures attacks an empty space, you gain a blood.

Blood Flask

  • They give you 1 blood when they enter the battlefield
  • They are creatures in every other respect

Command

  • They go on the timeline.
  • Most of them do not stay on the timeline any time at all. They stay there exactly zero units of time. Commands that stay on the timeline are called Continuous Commands.
  • They have momentaneous effects like “draw 2 cards” or “your opponent skips a turn”
  • Bloodless has no instant speed
    • But there are cards that add it, a little bit.

Vestige

  • Cards that do not start the game in your deck.
  • As far as the game is concerned, these do not exist until they’re added to the game by another card (here’s an example of a vestige-creating card: Deranged Researcher)
  • A vestige can be defined in-game or official. Official vestiges have an official design in the Hemolymph database.
    • A vestige that is defined in-game stops existing as soon as it enters a zone other than the Timeline or the Battlefield (such as your hand, the discard pile, a deck, etc). Official vestiges, however, do not.

This shit looks like chatgpt wrote it wow

3 Likes

As an amateur game theorist this reminds me of impartial games, especially Nim, and now I am thinking of making the players share EVERYTHING.

Huh, you’re not the first person to bring up Nim when introduced to Bloodless. That’s fascinating

I think the shared health pool is interesting (and scary, but so cool).

I want to try Bloodless some day but I don’t have the time. :(

1 Like

Subscribed on tabletop simulator. The shared blood pool seems like it’d give rise to some really interesting engine building strategies. Where MtG discourages direct combat early by allowing the defending player to choose how to block, this mechanic also discourages direct combat in a far more pervasive way. I am excited to see the impact of that

So far, the people who have played it have said it’s a very unique experience in card games! I’m gonna share the link to the discord server

Here you go! We have a bot that is similar to scryfall so you can do {{this}} to link cards from Hemolymph :3

1 Like

Lately, I've been obsessed with things like parsing and intermediate representation, and I've been wondering if you can represent bloodless cards as functions over game state.

And I've been wondering if I can make all the cards be not only unambiguous to humans, but also mechanically parseable. I think (barring for the complexity of tense~aspect~mood of verbs in english) that most cards are fine for this already. It would be nice to get a prototype mechanical parser working though

1 Like

Update: The representation of card effects has proven to be at least a bit... strange?

Needless to say, I know now why people don't normally use lambda calculus to represent a card game. Still, I would like to define Bloodless in this way to prevent unforeseen edge cases in the rules as well as to have a standard that can be implemented anywhere.

I know I want the effect modifications to be done through some sort of monad. However... instances of this monad are individually identifiable? Which I'm not entirely sure is a can work, but I've just been sort of assuming it does work.

Card effects are also capable of having their own state across recursions, so that's another stateful input.

We say then that card effects are of type m -> s -> b -> (m, s, b) and capable of outputting something beyond the new state. Thus, we arrive at type E a = m -> s -> b -> (a, m, s, b).

The fact that the text in a card is supposed to be mechanically parseable into an expression of this type, seems to indicate to me that Bloodless is a loglang.

Which is fucked up.

3 Likes

LMAO

1 Like

i guess this thread is now on topic for the forum! /j

2 Likes

So I am deciding that every individual effect and modifier contains not only its effects, but also a unique identifier created by the game state. An until modifier will, once it finds the effect it wishes to modify, look through the list of active modifiers, delete itself (recognizing itself through the ID) and run the effect with the new list of modifiers.

Creatures and Continuous Commands are parsed into effect modifiers. Commands are parsed into effects. Consider the following creature

whenever you draw a card, gain 5 blood

Has the structure of
whenever (draw (YOU) (some (card))) (gainBlood 5)

and it would get parsed into an effect. I'll have to draw the syntax tree for this, I'll do that in a bit

NVM i'm struggling hard with the semantics of effect comparisons

3 Likes

logical cardlang.txt