[−][src]Crate akashi
A library for building collectible card and gacha games.
Architecture
Akashi uses an Entity-Component-System architecture (though at the moment only Entities and Components are really implemented).
Players and cards, within the Akashi framework, are entities: they aren't much more than a unique ID. Functionality is added by attaching various components to entities. For example, inventories can be represented as components that are attached to players, while card images and text can be represented as components attached to cards.
Modules
card | A representation of an in-game card. |
ecs | Akashi's Entity-Component-System architecture. |
local_storage | Storage systems that work entirely in-memory, for testing and prototyping use. |
player | A representation of a game player. |
resources | A data type for player-held game resource counts. |
snowflake | Unique 64-bit IDs. |
store | Akashi's storage system for |
Structs
Card | Represents a tradable card. |
ComponentManager | Manages operations related to |
Inventory | Represents a collection of |
Player | Represents a player / user. |
Resource | Represents an arbitrary numeric player resource, with optional lower and upper caps. |
SnowflakeGenerator | Generates |
Store | Handles storing |
StoreHandle | A shared handle to an |
Traits
Component | Represents a Component within Akashi's Entity-Component-System architecture. |
ComponentStore | This trait is used to mark backing storage objects for |
Entity | Represents an Entity within Akashi's Entity-Component-System architecture. |
StoreBackend | This trait is used to mark backing storage objects for |
Type Definitions
Snowflake | This type is used to represent unique IDs across Akashi. |