Inspiration

Inspired by the games Slay the Spire, and Library of Ruina.

What it does

In the game, players have a deck. At the start of the game, they draw three cards at random from the deck and add them to their hand. At the beginning of each turn, two new cards are added to the hand. Each card has different effects and costs; once a card is played, it is removed from the hand.

How we built it

The game is built using React and developed with JavaScript and JSX.

Challenges we ran into

Currently, the card system is relatively simple, primarily involving the calculation of card cost, as well as attack and defense values. However, if we wish to support more flexible card effects—such as drawing cards, discarding cards, combos, status effects, and persistent effects—the complexity of writing the card logic will increase significantly. Cards should no longer rely solely on fixed type checks; instead, they should be designed with a structure that allows for the combination of multiple effects. The most suitable approach I’ve come up with so far is to assign an effects array to each card, store different effects within it, and then process each effect sequentially when resolving the card. However, due to time constraints, I haven’t had the chance to test this yet.

Accomplishments that we're proud of

I really love the UI design for this project. At the start, the text appears gradually as if it were being typed, which really captures the atmosphere of a word game. Also, when a new card is added to the hand, there’s an ink-blot effect that spreads out from the center, it’s pretty cool.

What we learned

I’m really enjoying learning JavaScript and JSX. I hadn’t had much experience with front-end development before, but working on this game has given me a taste of how fun it can be. The effects you can create with JSX are really cool.

What's next for Rain

The next step will be to add an interface that allows players to customize their own decks, as well as to categorize cards in greater detail and introduce a wider variety of types, such as cards with different effects, healing abilities, and functional cards that can apply special effects (poison, DoT, burn, etc.) to each attack. Additionally, I plan to enhance the combat experience itself by introducing multiple enemies in a single battle and adding more diverse scenarios in future updates, such as shops, encounters, quests, and rest stops.

Built With

Share this project:

Updates