CardConquest
A downloadable game for Windows
HOBBYIST PROJECT!!! HIGH LIKELIHOOD THIS GAME WON'T WORK CORRECTLY!!!
CardConquest is a strategy game where two player move their tanks and infantry units around the the map and fight out battles against each other. The goal is to capture your opponent's base or to kill all of your opponent's units.
How To Play:
The game is played through multiple phases, shown below:
Unit Placement
Played at the start of the game. Players have units that are off the map that will then need to be placed on the map before the game begins.
Players select the units from the upper left corner and place them on any green land tile that doesn't have a red X on them. There is a limit to 5 total units per tile.
After a player has placed all of their available units on the map, they can click on "Done Placing Units" to go to the next phase.
The game will move to the next phase after both players have clicked on "Done Placing Units / readied up. If a player wants to adjust their placement before the other player readies up, they can click on unready and move their units.
When both players are done with Unit Placement, the next phase will be Unit Movement.
Unit Movement
When the unit movement phase starts, you will first see where the opposing player placed their units.
Units can be moved after the have been selected. Click on a unit to highlight them in yellow. A selected unit can move 1 tile during a single Unit Movement phase. The below screenshot shows a tank selected, and all the land tiles that a unit can move to have been marked using a blue check mark (the blue check marks were added in paint, they do not show up in the game)
With the unit selected, click on any land tile to move the unit.
You can select multiple units at once, from multiple different tiles, and move them to the same tile so long as the move is a legal move.
The constraints on what makes a "legal" move are as follows:
- No 1 unit can move more than 1 tile away from its starting tile
- No tile can have more than 5 units on it after a move completes
The above move was legal, then, as it had 3 tanks and 2 infantry moving to an empty tile resulting in 5 units on that tile after the move, and all units were moving to 1 tile away from their starting location.
The Unit Movement phase then ends when you click on the "End Unit Movement" button. You can click on End Unit Movement after you've made all your moves, or you can click it after making no moves. You do not need to move any units if you do not want to.
If you want to start over your unit movement phase and can't remember where you placed all units where, you can click on "Reset Unit Movement" to reset all your units to their starting locations:
As you are moving your units, your opponent does not see your movements on their screen. That also means that you do not see where your opponent is moving their units on your screen either. After both players have clicked on End Unit Movement, the movement phase will "resolve," and you will be shown where the opponent moved their units.
Battles Detected
In the above scenario, the unit movement phase ended and no battles were detected, so the game started a new Unit Movement phase. How are battles detected then?
If the two opposing players moved their units to the same tile, when the Unit Movement phase resolves, the game will detect a battle. The below screenshot shows both players moving units to the bottom-most tile after the second unit movement phase and a battle being detected.
There isn't anything to really "do" during this phase except start the battle by click on "Start Battles."
In this scenario, only 1 battle was detected. It's possible for players to have overlapping units on more than 1 tile, which would result in multiple battles detected. Each battle site has a number displayed at the top. That will be the order the battles are fought in. In the scenario of multiple battles, players can view what cards they have, and what cards their opponents have, to try and plan out their battles. More on cards and stuff will be discussed later.
Reinforcements
Before a battle actually starts, the game will ask players to select any reinforcements. A unit will be eligible as a reinforcement for a battle if the following is met:
- The unit is only 1 tile away from the battle site
- the unit is not engaged in another battle
- the unit has not already reinforced a previous battle during the current battle phase (important when multiple battles are detected)
- the unit has not fought in a previous battle during the current battle phase (important when multiple battles are detected)
All possible reinforcements for this battle are shown to the players:
The green player can select two infantry and 1 tank as reinforcements. The blue player can select 1 tank for reinforcements. Neither player needs to select any reinforcements if they don't want to. Either player can select all, some, or none of their available reinforcements.
Adding reinforcements to the battle will increase your battle score when the battle is fought. Each unit contributes the following to a player's battle score:
- tanks - 2 points
- infantry - 1 point
So, for the green player, their army on the battle site contributes 6 to their battle score (2 tanks for 4, 2 infantry for 2, for a total of 6). The blue player's army has a battle score of 3 (2 for 1 tank, 1 for 1 infantry, for a total of 3). With reinforcements, the green player's battle score can be as high as 10 for their army + reinforcements. For the blue player, it is 5.
Select the units you want to have as reinforcements, and then click on submit units
After both players submit their reinforcements, the game moves to the next phase.
Choose Cards
The Choose Cards phase is where the "battle" is actually fought. During this phase, the battle scores of each player's army + reinforcements is shown.
Player 1 has a score of 9. Player 2 has a score of 5.
The next way to affect your battle score will be what card you choose for the battle. Click on select card, and you will see all the cards available to you for the battle.
The "Power" of a card is how much a card adds to your battle score. Power 5 adds 5 points, Power 4 adds 4, and so on. The number of crossed swords is the cards "attack value," which will determine how many enemy units to kill if you win the battle. The number of shields is the "defense value" of the card and determines how many units you prevent from being killed if you lose. The attack and defense values will be discussed later during Battle Results.
Some cards also have special abilities. The special ability is a condition that needs to be met during a battle to boost your card's battle score, attack value, or affect the game in some other way.
To select a card, click on the card and then "Select This Card."
After you've selected your card, your battle score will be updated to show you your new battle score.
Click on Confirm Card to end the Choose Card phase. You can always change your card by clicking on "Change Card" and selecting a new card. If you have already clicked on "Confirm Card," you can't change your card until you click "Unready" first.
You won't see your opponent's chosen card until the next phase. You can see what cards they have available to choose from by first clicking on "Show Opponent Cards," and then "<Opponent name> Hand"
The "Show Nearby Units" and "Show Reinforcements" buttons will display units that are within 1 tile of the battle site and what units were chosen as reinforcements. Showing the nearby units can be helpful later when planning out where you or your opponent can retreat to after a lost battle.
After both players have confirmed their cards, the game phase changes.
Battle Results
The battle results will show you the following:
- What card your opponent picked
- Your opponents total battle score with their card
- Who won the battle
- How they won the battle
- Any lost units
The results of this battle scenario are shown below:
The second player had a battle score of 9 versus the first player's score of 14. Player 1 then wins due to a higher battle score. If the battle score's were the same for each player, the following tie breakers would be checked in order:
- Player with the highest power card wins
- Player with the most infantry in their army wins
If neither of those conditions are met, as in, both players played the same card power and same number of infantry, then the battle is a draw.
Because player 1 won, their card's attack value of 2 is used to determine how many units player 2 loses. Player 2's card has a defense value of 1. The defense value of the losing player essentially lowers the attack value of the winning player. so, 2 minus 1 is 1, meaning 1 of player 2's units are lost.
What units are killed is determined by their type. First, tanks in the player's main army are killed. The attack value is decreased by 1 for every unit killed. If all tanks in the main army are destroyed and there is still remaining attack value, then infantry in the main army are killed. If there is still attack value remaining after killing all infantry, then tanks in the reinforcements are killed, and then infantry in the reinforcements if there is still more attack value to resolve.
Player 2 lost 1 tank as a result of this battle. They still have 1 infantry remaining on the battle site. They will now need to retreat that infantry unit. Only main army units retreat after a battle, not reinforcements.
Player 1 won the battle, so their units will stay on the battle site.
After both players click on next turn, the game phase changes.
Retreat Units
If you are the winning player, you don't need to do anything during this phase but wait. You will see in the upper right that the opposing player is retreating.
The losing player will see the message "Retreat Your Units"
To retreat your units, select a unit and move it at least 1 tile away. Movement for retreating units is a little different than unit movement. The following makes a legal retreat move:
- Unit must move 1 tile away from battle site
- Unit CANNOT move to a tile that has an enemy unit on it already
- Unit cannot move to a tile and have more than 5 units on it
- Unit CANNOT move toward the opposing player's base. They can move toward their own base, or to a tile directly above or below the battle site
For the above scenario, the player only has 1 valid move. The screenshot below has black X's over tiles the player cannot move to, and a blue check mark for the 1 tile they can retreat their infantry to
After the losing player has moved all retreating units off of the battle site, they can click on "Done Retreating" to move to the next phase.
Because there was only 1 battle detected, the "battle phase" ends after all units are retreated and the game goes back to the Unit Movement phase
If there had been more than 1 battle, then the game would have stayed in the battle phase and moved to battle #2, starting with Reinforcements (if there are any available), then choose cards, then retreat, then to the next battle if there was one, until all battles are fought.
Now that the game is back to Unit movement, the players can select units and move them once more.
Other Aspects of the Game...
Outside of the game phases, the below are other aspects of the games to be aware of.
Discarding Cards
After a battle is over players have "played" their card, the card they chose for the battle will be discarded. You can view your discard pile throughout the game:
You can also view your opponent's discard pile through out the game as well.
Each player starts with 5 cards in their hand. A player must play a card for every battle. So, what happens after a player plays their 5th and last card? The discard pile is then put back in the player's hand to start over. Part of the strategy of the game then will be to know what situations to play specific cards in, and when there are multiple battles detected for a battle phase, knowing when your and your opponent's discards will be put back into your hand.
Card Special Abilities
Some cards have special abilities that can be activated when specific conditions are met during a battle. The "Power 5" card has the following special ability:
"If your army + reinforcements has infantry but no tanks, +2 to battle score"
So, what that means is, if during a battle you have at least 1 infantry in your main army or your reinforcing army, and no tanks in either, you will gain +2 to your battle score. If you have any tanks in your army/reinforcements and don't meet the conditions of the special ability, nothing happens in the card has a power of 5. If you do meet the conditions, your card essentially has a power of 7.
Ending the Game
The game can end in two ways. The first is fairly straightforward: If 1 player has no more units remaining to move or fight with, they lose the game. The other way is to capture an enemy base.
Capturing A Player's Base
Each player has a base that they defend. Each player base is marked with a little highlight on the land tile. For Player 1 that is the green highlight/base:
And for Player 2, it is the blue highlight/base
To capture an enemy base, you need to move your units across the map and onto the opposing player's base. When you do so, you will trigger a base defense battle during the battle phases.
The base defense battles carry out the same as a normal battle. The main difference is that the player defending their base will gain +2 battle score as part of their defense.
In the above screenshot, Player 2 is defending. They would normally only have a score of 5 from the 2 infantry in their main army and the 3 from the reinforcing tank and infantry. Their score is 7 from the +2 provided from the base defense.
After both players choose their cards, the game will determine if the base defense was successful or not
In the above screenshot, the attacker won the base defense battle. This means that the attacker won the game and the defender lost:
Draws in Battles
If two players play the same army units and the same cards, it's possible for the battle to end in a draw. This is because neither tie breaker condition is met of having a more powerful card or more infantry than your opponent. The below screenshot shows a draw:
After a draw, BOTH players need to retreat their units from the battle site. The same retreating limitations apply to battles that ended in draws. In the below screenshot, I drew a green check where player 1 can retreat to, and a blue check where player 2 can retreat to
As you can see, BOTH players can retreat to the tiles immediately above and below the battle site. If, after a draw, two players retreat to the same tile, a new battle will be detected and added to the battle phase
In the above screenshot, the players retreating some of their units to both the tiles above and below the first battle site. This resulted in two new battles added to the battle phase that will need to be fought before the battle phases ends and goes back to unit movement.
Killing Units that Can't Retreat
Remember, the losing player must retreat all surviving units from the battle site. The limitations for retreating mean that the retreating units can't retreat to a tile that an enemy unit is on, is already a battle site, or to a tile that has 5 units on it.
After a battle, CardConquest will calculate how many units the loser has to retreat, and then calculate if they can actually retreat those units.
The below scenario shows a battle where if the blue player loses, they won't be able to retreat. This is because the tile above the battle site has an enemy (green) unit, the below tile is a water tile they can't move to, and the only tile back toward their own base has 5 units on it already.
In the battle results, the green player wins. Even though the green player played a card with no attack value, all of the blue player's units are killed because they cannot retreat from the battle site
This gives you the opportunity to try and plan out battles that restrict your opponents avenues for retreat to kill more units than you normally could through your cards' attributes.
Selecting Commanders
Before a game begins, you now have the chance to choose from two different commanders to play as. The commander you pick will determine what units are in your army, and what cards will be in your hand. There are two different commanders at the moment.
First, there is the Infantry Commander:
The Infantry Commander has the following cards:
Next is the Tank Commander:
The Tank Commander's cards are:
The big difference in the armies is that the infantry commander has 4 more infantry than the tank commander, but the tank commander has 2 more tanks. The infantry commander's cards lean more toward defense value to save their units in loses. The tank commander's cards lean more toward attack value to kill more units when they win battles.
Status | In development |
Platforms | Windows |
Author | FatRodzianko |
Genre | Strategy, Card Game |
Made with | Unity |
Tags | GitHub, Minimalist, Multiplayer, Open Source, Pixel Art, Turn-based, Turn-based Strategy, Unity |
Average session | A few minutes |
Languages | English |
Inputs | Keyboard, Mouse |
Multiplayer | Ad-hoc networked multiplayer |
Links | Blog |
Install instructions
For the CardConquest-Beta Release
- Download the CardConquest-beta.zip archive
- Extract the zip archive
- Open the extracted folder and click on CardConquest-unity.exe to run
This is a multiplayer only game that is 1v1. You will need at least 1 other person to play with. There is no singleplayer.
Hosting a Game
When you start a Game, first enter your username and hit confirm name
Then click on Host Game
This should take you to the lobby where you can choose your commander and ready up.
Click on Select commander to then choose your commander:
Click on "Next" or "Prev." buttons to cycle through the commanders. Then click on "Select Commander" to chose the commander. You have to choose a commander before you can ready up. After all players have selected their commanders and readied up.
The game will open a port on TCP/7777 (I believe this is the default for the Mirror framework for Unity). You may need to disable windows firewall to allow for connections.
To play over your local network/LAN, you will need to know your internal IP address. To player over the internet, you will need to do port forwarding on your router and then look up your external IP address.
One time on one computer, I had to run the game "As Administrator" to receive connections. It only ever happened once and never did on my other computers, so I'm not sure what caused that issue. Oh well!
Joining a Game
To join a game, enter in a username same as if you are hosting, but instead click on Join Game afterward
Then, enter the IP address of the system to connect to. It defaults to "localhost" but you can change this to whatever the IP is that you want to connect to. Then click on Connect to IP
Once all players have chosen their commanders and readied up, the game can be started.
For the CardConquest-Steamworks Release
- Download the CardConquest-Steamworks.zip archive
- Make sure Steam is running in the background
- Click on CardConquest-unity.exe
The CardConquest-steamworks release uses Steamworks.NET for multiplayer communications. This allows for multiplayer games over the internet without doing any port forwarding on your router. You must have Steam running in the background, and be logged in, for the CardConquest-steamworks release.
You can add the game to steam by clicking on "add A GAME" and then "Add a Non-Steam Game" in the Steam UI. This isn't require to play, though.
When you play the game, Steam will show you (or your friends) playing the game Spacewar. This is because I am using the "test" AppId for the Spacewar game.
Hosting a Game
At the main menu, click on Create Lobby
Then configure your lobby with a name and whether you want it to be friends only. If you provide no name, it will default to your steam profile name. If you select Friend's Only, you will need to invite a friend through the steam interface.
When you are ready, click on Create Lobby and the lobby will be created.
Joining a Game
To join a game, click on Find Lobbies in the main menu. This will list all lobbies with the CardConquest game tag.
You can search for lobbies based on their name. When you've found the lobby you want to join, click on "Join Lobby"
Starting the Game
After all players have picked their commander and readied up, the host can start the game.
Source Code
The source code can be found on GitHub. Everything was made in Unity using Unity 2019.
https://github.com/FatRodzianko/CardConquest-unity
Leave a comment
Log in with itch.io to leave a comment.