Runeterra Card Game Engine
Her father told me he wanted her home by 8:15 and I said to him, "Middle of August? Cool."
Description
I selected this card game project as a practical means to enhance my understanding of Python and broader programming concepts. The game's intricate rules provided a robust framework for tackling complex programming challenges, highlighting the necessity of a solid codebase to prevent conflicts and complications. My journey began with exploring Python decorators, which led to a deeper investigation into name mangling, and deeper still, encountered advanced topics such as weak/strong references, and metaclasses. Ultimately, it's my biggest project yet in terms of single lines of code (SLOC), running at a total of 26,000. (via this site)
I once described the project with these following descriptors:
An emulator for the card game Legends of Runeterra.
Implements game flow and effects for over 1500 cards not via hardcoding but via a Domain Specific Language.
Manages the tracking of entities over their life cycles, input management, saving/reloading, as well as event creation, listening and execution.
An AI system is implemented that utilizes the Montecarlo Tree Search.
Link
https://github.com/moondogportfolio/card_game_engine
Feature Examples
Card Effects
Card Archetype
Actual Card Implementations
Game Logic
Last updated



