About the Game

This is a single-player, turn-based card game. You are a young wizard in a magical showdown against powerful enemies. Play your cards wisely to outwit your opponent and reduce their health to zero to win the game.

This game is created with React and boardgame.io. For best results, use the Chrome browser, and wait for a few seconds for assets to load properly.

GitHub: https://github.com/ruichen199801/wizard-duel (🌟 if you like it!)

Hosted on https://wizard-duel-ten.vercel.app (use this instead if itch.io is slow)

Gameplay Features

  • Turn-Based Mechanics: Play cards in your turn to deal damage, apply buffs, weaken opponent, etc.
  • Unique Levels: Each level features distinct landscapes, enemies, and rules.  As you progress, the game will become more complex and fun!
  • Immersive Visuals and Sound: Animation effects, AI-generated card art, battle music tailored to each level, and dynamic sound effects in card play.

How to Play

  1. Two players alternate turns. You go first.
  2. The deck is shared and reshuffles when it runs out.
  3. You draw 1 card from deck and play 1 card each turn.
  4. Click a card to preview it, then click "End Turn" to play it.
  5. You win the game if your opponent's HP drops to 0.
  6. The game ends in a draw after 50 turns pass.
  7. Damage is calculated as: (card damage + your attack - opponent's shield) × any modifiers.
  8. Win the game to unlock new cards and enter next level. If you lose, you can restart from previous level.

Credits

Refer to https://github.com/ruichen199801/wizard-duel/blob/main/CREDITS.md.

Updates

Refer to https://github.com/ruichen199801/wizard-duel/blob/main/CHANGELOG.md.

Comments

Log in with itch.io to leave a comment.

(+1)

The game is lovely, really like it!

I played v1.3 at https://wizard-duel-ten.vercel.app/, and here are my thoughts:

## Balance

- It feels somewhat unfair that **losing a duel = losing progress**, and, if unlucky, you can go back from the very last to the very first level. Possible workaround: nerf opponents after player defeats them, so that coming back to the same level multiple times is less painful.

- **Tie = loss**, which was surprising to me. Suggestions: (1) reduce punishment for tie (e.g. restart current level instead of going back), or (2) give a fair warning in the rules that player loses after 50 turns pass (not "game ends in a draw").

## UI

- Apparently, most buffs do not stack, which is not obvious at first. E.g. playing "double damage" card two times in a row wastes the second card. This is fine, but I wish the game was more explicit about this.

- It is also unclear at first whether "next card is invalidated" debuff has higher or lower priority than "remove debuffs" card (it's higher).

Possible solution: hovering over card/buff/debuff could show a hint with description/clarifying comments.

- Alternatively, some kind of warning like "playing this card now will have no effect" would be helpful. This might be, for example, indicated by greying out no-op cards ("buff" card could be greyed out if player already has an identical status effect that doesn't stack. "attack" card could be greyed out if it won't deal any damage. If player is frozen/under the effect of level 3 location, all cards in hand might be greyed out)

- Would be nice to see **how much damage** an attacking card deals after applying modifiers. Either before you play the card (when card is selected) or at least in the battle log. Currently, battle log lists "base" damage of the played card, not the final damage received by enemy.

- [minor] I felt that some UI elements could be combined.

  - "Current level" icon + number and clickable "Level effect" button could be a single element. Also, since levels have names, maybe put level name on the game screen (?)

  - "Current turn" icon + number could open the "Battle log" when clicked. Personally, I only noticed "battle log" button at the top right after finishing the game.

Hi, thanks for playing and really appreciate the detailed feedback!

For Balance:

  • I agree that losing progress is frustrating if you just get an unlucky hand. You can go to Settings - toggle AI Difficulty - set it to Easy. I will add the tips at the defeat screen. Meanwhile I like your workaround,  I'll try to add it as well in some time.
  • There is a bulletpoint in Instuctions (or the help icon on the top right) that says the tie rule. I will rephrase it a bit and display it when player enters the first level,  just to avoid any surprise.

For UI:

  • I like your suggestion to hover on card/buff/debuff and show detailed hints. Plus, I think having an interactive tutorial before level 1 to explain the UI and game rules will help. 
  • For showing damage points, I acutally thought about this before, but I didn't find a good place to put it on the screen (avatar? card preview section in the middle?). But showing it in battle log should be doable.
  • For showing level name on the screen, those are actually names I made up based on some place in the real world (e.g. Kilaura -> Kilauea in Hawaii). Similarly I didn't find a good place to fit it into current UI. However I was working on a new rogue mode of this game a few months ago, which features a new UI that has the level titles.
(1 edit)

Sometimes the game freezes on the enemy's turn (mostly desert stage). Returning to menu resets the run.

Vision only works once, then it becomes useless. The enemy probably doesn't need it but I can't be sure.

In my experience, Dentro and Hydro were very easy, Cryo and Psammo were easy, Erebo was fair and Pyro was hard as 4/5 cards are rendered useless most of the time.

Overall, it's a solid game with good potential. It boasts traditional mechanics and decent replayability. A bug or two and some slightly ambiguous descriptions detract a little bit from the fun but it's still quite enjoyable. I look forward to future updates.

Tips:

- Hover over HP to view its max value.

- Tide's +Same HP means gain HP equal to damage dealt.

- Nothing stacks but +/- Atk and +/- Shield.

- HP swap swaps current HP, not max.

- Desert stage "miss" turns are random, each players' turns are independent from each other.

(+1)

Wow thanks for the feedback and tips!!

- I'm working on reducing asset size which should hopefully speed up loading. Will see if I can add a Resume button on main page.

- AI algorithm normally skips Vision. I have some idea to fully remake the card.

- This is very valuable feedback actually, I'll definitely make boss level more challenging. 

- I intentionally keep card description brief so that all instructions can fit in the card, and players can discover the nitty gritty themselves. If it still feels vague, I'll see where I can clarify e.g. hover on a card to see the effect in detail.

Again thanks for playing!

- The freezing happened at round 50 (I had several turns of being unable to attack :P). Happened again during the ice stage:The opponent's chosen card just stays there. Reloading actually sends me to the previous level as if I'd lost the round (which is why I found it strange that returning to menu didn't do the same).

- Nice, I found the boss stage's variations the most fun, I had to try them all.

- It might be difficult to strike a good balance. I like no hand-holding in games but I also enjoy planning ahead. I played one two more runs for good measure. Having gotten a grasp on card effects, I didn't mind the lack of descriptions that much (but please take this with a grain of salt). Maybe stage effects are a little bit easy to miss (wind, flood).

I'm glad it helped, thank you!

(+1)

Ohhh so it's indeed a bug that's introduced recently! It's much easier to find it with the context you just provided.

So the game will end in a draw after 50 turns has elapsed, there's a bulletpoint in the help page and I figured player will discover it the first time anyways. The purpose is to prevent overly defensive playing and the endless loop of "damage - heal - damage - heal" which is NOT FUN.

I fixed it and also added a confirmation dialog whenever user clicks Exit to Title or Reset Entire Run. 

(+1)

Nice! That'll definitely help. I'd seen turn 50 once before but I wasn't too sure it wasn't coincidence until I noticed it again :P

(3 edits) (+1)

Good point on stage effect, it needs to stand out more visually. It's just me being lazy, if you play the game muted and don't pay attention to the red turn number, you wouldn't realize your attack just missed / effects are gone xD