This is a Gwent: The Witcher card game clone.
Backend is built with Spring boot with Java and frontend is made using React with Typescript.
To store important data on frontend such as username, i used react redux.
For multiplayer messaging i used web sockets.
To store users decks i used PostgreSQL and JPA/Hibernate.
Frontend is hosted via Vercel
AWS: EC2, RDS, API gateway, Lambda
Also frontend is secured by vercel automatically, but for backend i had to get SSL cerfificate to get HTTPS
Game consists of 3 rounds, player who wins 2 rounds wins game. When both players end round, one with more points on board wins round.
For every won round a crown appears in the middle of board.
In each move, a player can either play card or end round.
(card that base power is 0 or below is destroyed from game)
Currently, there are about 30 cards. Most of them dont have any effects.
Here are cards with effect.
Spells:
Fireball - Deals damage to an enemy card.
Conflagration - Burns all cards with maximum points.
Epidemic - Destroy all min points cards on board
Rip - deals damage to whole row
Rain - deals damage to max points card every turn
Mushrooms - Decrease base power of enemy card
Tasty mushrooms - Increase base power of enemy card
Handcuffs - Lock enemy card and deal damage
Key - Unlock and boost your card
Units:
Archer - A unit that can be placed and deals damage to an enemy card.
Healer - Boosts every card on the player's board that has no more than 2 points.
Booster - Boosts a single player card.
Leader - Boosts every card in one row.
Doubler - Doubles chosen card points.
Sharpshooter - deals damage to one enemy card and if this card dies, sharpshooter boost itself
Cow - If cow dies, spawn chort in the same row
Trebuchet - Deal i damage to random enemy every 2 turns
Good person - Boost card on your board every 2 turns
Gravedigger - Boost by number of cards on your graveyard on deploy
Witch - Ressurect card from your graveyard
Wild roam - Play all copies of this card from you deck on the same row
Supplier - Play from deck copy of chosen card from board
Breaker - After 2 turns, play copy of this cards from deck on the same row
Ginger - Deal 1 damage to every card on specified enemy row
Spy - After playing this card it moves to enemy row, and player draws 1 card
Blue fire - If opposite row has at least 10 points, burn all max points cards on this row
Axer - Deal damage to enemy card by number of weakened cards on enemy board
Copier - Choose card on your board and insert 2 base copier of this card into your deck
Trex - Eat card on your board and boost this card by eaten cards power
Points of weakened cards have red color and and boosted cards have green points.
There are bronze, silver and gold cards. Gold cards can only be targetter by other gold cards, for example
archer cant shoot Priest
I added two fractions: Monsters, Humans. You can build deck with only one fraction and only neutral cards
are available with every fraction
Every fraction has special fraction ability.
Humans - Has +2 points for gold cards
Monsters - Random card stays on board after round ends
Cards with turn effects has hourglass icon with number that tells how many turns there are left to trigger effect
This effect can be triggered on round start or end
Quick duel demo
I can play cards on board
I can target my card
I can target and destroy enemy card
I can play cards in chain, target enemy row and make weather effects
Player lost 2 rounds and lost game
Player won 2 rounds and won game
If both players had same amount of points, they both score a crown. Here two players had same amount of points and game ended with draw