[][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 Entities.

Structs

Card

Represents a tradable card.

ComponentManager

Manages operations related to Components, such as saving and loading Component data.

Inventory

Represents a collection of Card entities.

Player

Represents a player / user.

Resource

Represents an arbitrary numeric player resource, with optional lower and upper caps.

SnowflakeGenerator

Generates Snowflake IDs.

Store

Handles storing Entities and coordinating access to them across multiple threads.

StoreHandle

A shared handle to an Entity.

Traits

Component

Represents a Component within Akashi's Entity-Component-System architecture.

ComponentStore

This trait is used to mark backing storage objects for Components.

Entity

Represents an Entity within Akashi's Entity-Component-System architecture.

StoreBackend

This trait is used to mark backing storage objects for Entities.

Type Definitions

Snowflake

This type is used to represent unique IDs across Akashi.