This project is going to continue to lead me into new territory, and that’s much of the fun of it. Now I am taking a spin into Unity as a game engine as that is the one that Hero Wars used. I love how that game can run in a browser and not require downloads or installs and the user interface is really slick.
This post is going to go into considerable, yet high-level, details on how I want the card game portion of my game to work. Making these lists helps me organize my projects. This one is specifically about the card game battle screen (not my overall game currencies, campaigns, ladders, landing page, tower, achievements, quests, etc).
I have a lot of coding experience, but not in Unity of course, so I’d like to start with some templates or frameworks. To that end, I found TCG Engine – Online Card Game by Indie Marc and its a very solid way to start my project. So I grabbed it and below is my cheat sheet on what I’d like to change or add to it in my project.

General gameplay updates for TCG
- Ability to remove timer on a match (mostly for solo play, there is no need for it those modes). (I turned it off in GamerServer.cs for now, will need to also remove from UI and be able to toggle it back on when doing multiplayer). I would like solo play to be very asynchronous and resilient (even Eternal has a timer that you don’t see and solo games will eventually timeout and the player loses – hate that).
- Save current state of game, if user logs in from a different device, resume exactly where it was. It should be very comfortable to make slow progress in the game without any gotchas.
- When a card is silenced, the text on that card should not be visible when viewing the card
- On Mulligan, draw the new cards and put them on the screen for a few seconds before dropping them (via animation) to the hand (both Hearthstone and Eternal do that, it’s very nice).
UI Updates for TCG
Examples from very polished online card games (Eternal and Hearthstone), here is my list of UI changes I will be making:

- General size adjusted so the game fits more like above on 1920×1080 layout – cards are smaller on the screen, units smaller, etc. Note that below I will talk about hover and display elements, which are needed to show details when going for a tighter table layout like this.
- Enemy hand – more off the screen (no need to see much of the card back, it only has value in knowing how many cards they have) and fan layout is wider on edges vs center for a more natural visual curve (better display use).
- Player hand – fan is wider on edges vs center; cards are spaced out to fill the area when possible and show as much of the card top half as you can.
- Hover over cards or units shows near the mouse which is very intuitive (see below for image sample); on hover, most card text is inside the card display and the card display itself is much taller to allow room for all the card capabilities to be seen as “part of the card”. Details on some skills can then be seen on a breakout on the right of the card.
- Discard pile on left and draw pile on right; I also hovered over the draw pile to show the “number of cards left” – I think both that number and number in discard pile should just always be visible w/o a hover.
- Player avatar is in center position above the player hand (and enemy is similar), moving the main goal of the match (to reduce enemy to zero) to be the focus (vs off on the left). Also this avatar is not a simple rectangle, but a more attractive shape.
- The player mana is shown as a “1 / 1” (current available mana / maximum player mana) instead of a large list of circles, taking up less space and also making it so players don’t have to focus and count.
- Also, note that the opponent’s mana is also on the left and that all opposing elements are lined up in the same vertical column so it is easy to compare vs across the screen (which is not good). Discard deck, draw deck, hand, avatar, mana to use – all of it is lined up with the other side in a straight line.
- Units on the battle field are smaller and not square shaped – really well done here. Allows for a larger playing field (up to 12 can be on the field at once). Units with special abilities get visual clues (flying units are hovering above with a shadow).
- Top right settings icon for things like resigning, settings, help – much more normal than any top left action icon.
- When the player can make a move (play a card or attack with a unit), that card/unit is highlighted. This is a very good player cue on what they can do at that moment. For example, if you have 3 mana, cards that are 4 or more are not highlighted. See the green highlight effect on units and cards below.


Next, lets see what from Hearthstone would be useful:


- Lots of similar stuff to Eternal such as good placement of the player avatar; units and cards being much smaller in the interface
- Really good indicator of what you are doing when attacking (large arrow with a trail)
- Has the (current)/(total) mana layout (in addition to the gems, which I didn’t remember – see no point to the gems honestly)
- The hand fan is done the opposite way as Eternal, both have merit, I still like Eternal’s better as it adds a frame-like container feeling to the board.
- Secrets are shown on the player avatar, which is very good to put it front and center (vs off on the right).
Changes specific to my game
Here are changes I’ll be making that wouldn’t really translate to core TCG updates, but rather specific ones just for my game. My game will focus much more on the character battle with characters being stronger and stickier than normal card games.
- Players have a set of “card upgrades” that will apply on top of whatever the base card’s statistics are. Players can get upgrades they pay for via game currency. There is an RPG element to the game that means they can lean into specific cards and improve them to push strategies to higher effective levels. But, maintaining the base card information is important as tuning to cards is important to keep the game balanced over the long haul.
- Decks will be limited to 30 cards to keep strategies very targeted. Also, as the game progresses, increasing damage is important to provide an end game feeling in a reasonably short window. Hearthstone plays too slow (even games you know you are losing take excessive time) and Eternal plays WAY too fast (can lose in 3 turns).
- There will be specific limits on decks such as allowing no more than 5 heroes.
- Cards will have a “owned” or “unlocked” statuses. This way, specific cards can be borrowed during a campaign – but then can only be used by the player in decks they use in a specific campaign (or other lock). Also, the plan is to have heroes be required in a deck to unlock a set of their spells or affects or other units. So, you might want to put Lodet in your deck to get access to her powerful healing and poison spells that you otherwise could not use.
- Heroes can also have “enemies” – so you could not add Lodet and a BiiBii hero into the same deck. The enemies and unlocks are strategy to deal with deck building flexibility without having to resort to faction colors (like Eternal) or single-deck limitations (like Hearthstone). Also, this work by the Player happens when constructing decks, not during gameplay – messing with power and factions in the actual game is very un-fun!
- Also, enemy status could change – say Wiccii and Ogrii begin as enemies, but during the campaign you strike an alliance and then they are no longer enemies. This unlock allows smooth progression in power without overwhelming the player upfront.
- The plan is to have many specific heroes for each group (Wiccii, BiiBii, Ogrii, etc) and then a set of neutral heroes that can be combined with any of those (elementals, spirits). The spirit cards could still have unlocks so that a Wiccii hero such as Mavirellia could have specific spells or spirits she can summon that others could not.
- Melee units on the battlefield need to have positional relevance. So if the front line stays as 5 cards, a unit placed in a slot can attack forward and 1 position left and 1 position right only. So where you place the unit makes a huge difference. I will also make those attacks different – straight on attack will be 100% power, if you side attack, its 75% power each (so overall more powerful and generally the better move if you played well), and if you attack all 3, its 50% power (so really good if you can clip cards at a less attack).
- A secondary trait of the positional element would be adding flavor to Taunt – you can only taunt units straight on or just 1 slot left or right. So a well placed defender could ignore your Taunt if far enough away.
- Change front line to 7 units instead of 5.
- Add backline with 3 characters left of player profile and 3 characters right of player profile. So a player can have up to 13 characters in the battle at once. This will allow a flood strategy of putting a lot of weaker cards out vs the high power card strategy. Back line units can only attack if they have ranged attack, spells, or other range abilities.
- Still deciding, but leaning towards that ranged units can attack any of the other player’s units (not positional-based like melee units).
- Each turn players can spend mana to move units to a slot left or right (or forward/backward 1 slot) of where they are. To allow addressing of bad positioning and reacting to the opponent’s plays. Can only move if the unit has not attacked and, once moved, the unit cannot attack this turn.
- When you are going to use a unit, you click it and then the various options of what to do are shown – attack straight ahead for -50 damage; attack left for 37 damage, attack right for 37 damage, attack all 3 for 25 damage each; this can be shown as a clickable square just under the unit you are attacking as a choice to make. Or move left for 1 mana, move right for 1 mana – again a clickable square and of course only show if valid move (can’t move on top of another unit, can’t move off the battlefield, and only show if you have available mana).
- Implement the unit movement with keyboard shortcuts so each move shows a key to initiate it. Selecting which card to play also to have a keyboard shortcuts. So you could make moves by hitting “6” to select your hand card 6 to play, then all the actions you can take show up on the field with their keyboard shortcuts so you could pick “5” to pick the 5th action to play. Obviously, the game must be smart enough to let you pick more than 10 targets by picking “1” and then waiting for the next key before selecting the move (in the case they are more than 10 moves that can be made).
- This system can also help show what moves can be made, so you can play only 2 cards in your hand due to lack of mana, then those 2 show up with shortcuts “1” and “2”. When you pick “1”, maybe it can make 6 different moves (“a” move left, “d” move right, “1” attack left, “2” attack straight, “3” attack right, “4” attack left/straight/right). (wasd used for movement like most video games).
- Add a “reserve” system similar to Eternal’s market – a side deck of six cards you can have and then specific cards you can put in your deck to allow you to swap, summon, or otherwise manage your reserve.