Card battling game where cards are collected over the course of a series of battles. Inspired by 'The Witcher 3's Gwent and games such as 'Hearthstone' and 'Magic: The Gathering'. Made in Unity.
Below is a sped up gif of a single round of a match against an AI opponent.
My goal with this project was to architect the rules system for a highly interactive and customisable card game of my own design. This required structuring a system to handle the information flow and designing a modular system for card functions that allows for easy addition of new cards and abilities.
Card behaviour is modular and data driven and expressed via an XML data file.
Each card type requires a base set of data and can then have actions and modules added. Modules are behaviours that activate at specific steps of the rules engine processing and can be applied to both cards and actions. Both modules and actions are customised with generic and context specific tags and conditionals that control when they apply.
I realised I wanted to embed the core card game within a framework for acquiring cards and improving your deck, and so the scope of the project grew.
You play a campaign progressing through a map with increasingly hard battles. Achieving victory at a location adds the location's reward cards (top right) to your deck.
Between battles you can customise your deck by swapping out your worse older cards and adding better newly acquired cards.
Campaigns progress can be saved to file, but only one save per campaign is allowed.