Phenomenal work here. Have heard of this project. Glad to see it out like this.
Card Game Framework
This framework is meant to provide well designed, statically typed, and fully commented classes and scenes which you can plug into any potential card game to handle typical behaviour expected from cards in a game in a polished manner.
This page provides a demo project where you can see existing functionality. To use this framework, you will need to download the source code and add it to your own game.
Reminder that this framework is AGPL3-licensed, so any games using it, must also be released under AGPL3.
- Complete card text and rules enforcement capacity, via provided Scripting Engine! (see scripting engine features, below)
- Tween & GDScript-based animations that look good for card movements.
- Customizable card highlights
- Supports Rich Text for card text, including embedded images.
- Choice between Oval or Straight hand shape
- Automatic focus-in on cards when moused over in-hand.
- Automatic re-arranging of hand as cards are added or removed.
- Drag & Drop of cards on table and between containers
- Supports having multiple hands and piles.
- Piles of cards represent their size visually.
- Larger image of card when moving mouse cursor over it
- Pop-up buttons for predefined functions on cards and card containers
- Option to look inside the piles and choose cards to move out
- Cards can rotate on the table
- Cards can attach to other cards and move together as a group.
- Cards can target other cards with a draggable arrow
- Can flip cards face-down and view them while in that state
- Can add tokens on cards. Tokens expand in the own drawer for more info.
- Ability to define cards in standard dictionaries
- Ability to split card definitions into sets
- Automatically resizing text inside cards to fit the card size.
- Supports resizing the window, in all stretch modes (including disabled stretch)
- Can select layout of your CardContainers from a simple drop-down menu.
- Automatic and manual Grid-based, or Free-form placement on the board, or a combination of both, on a per-card-type basis.
- Functions from saving/loading settings from disk.
- Caching mechanisms to reduce loading and instancing times.
- Collecting game statistics
- Easy customization via Themes. Dark Theme used in Demo, provided by Mounir Tohami
- A functional and customizable Card Library.
- A functional and customizable Deck Builder.
Scripting Engine Features
- Can define card scripts in plain text, using simple dictionaries.
- Can set cards to trigger off of any board manipulation.
- Can filter the triggers based on card properties, or a special subset.
- Can define optional abilities.
- Can define multiple-choice abilities.
- Can calculate effect intensity based on state of the board during runtime.
- Can request simple inputs from the player during execution.
- Tag-marking scripts which can be filtered by scripts triggering off of them.
- Can store results from one script to use in another.
- Can be plugged into by any object, not just cards.
All of the above while being very easily extensible to your own game's special requirements through simple dictionaries.
Please check the README for more information