Skip to main content

🎮 Casino of Life

A revolutionary framework for training AI agents in retro fighting games using natural language interactions. Casino of Life combines reinforcement learning with natural language processing to create an intuitive interface for training game-playing AI agents.

🌟 Features

Natural Language Training Interface

  • Train AI agents using natural conversations
  • Explain strategies in plain English
  • Get real-time feedback on training progress
  • Interactive chat with CaballoLoko, your AI training assistant

Supported Games

  • Mortal Kombat II (Genesis)
  • Street Fighter II (Coming Soon)
  • More fighting games to be added

Advanced Training Capabilities

  • Multiple training strategies (Aggressive, Defensive, Balanced)
  • Various learning policies (PPO, A2C, DQN, MLP)
  • Custom reward functions
  • Save and load training states
  • Real-time training visualization

🚀 Quick Start

Installation

pip install casino-of-life

Basic Usage

from casino_of_life.agents import DynamicAgent, CaballoLoko
from casino_of_life.environment import RetroEnv

#Initialize CaballoLoko for training guidance
caballo_loko = CaballoLoko()
response = caballo.chat("Train Liu Kang to be aggressive with fireballs")

#Create environment and agent

env = RetroEnv(
game='MortalKombatII-Genesis',
state='tournament',
players=2
)
agent = DynamicAgent(
env=env,
policy='PPO',
learning_rate=0.0003
)

Start training with natural language guidance

agent.train(
    timesteps=100000
)

🛠 Advanced Features

Flexible Reward System

from casino_of_life.reward_evaluators import (
BasicRewardEvaluator,
StageCompleteRewardEvaluator,
MultiObjectiveRewardEvaluator
)

###Create custom reward evaluator

reward_system = MultiObjectiveRewardEvaluator([
BasicRewardEvaluator(health_reward=1.0, damage_penalty=-1.0),
StageCompleteRewardEvaluator(stage_complete_reward=100.0)
])

Environment Configuration

from casino_of_life.environment import RetroEnv
env = RetroEnv(
game='MortalKombatII-Genesis',
state='tournament',
players=2
)

Advanced Training Control

from casino_of_life.agents import DynamicAgent
from casino_of_life.client_bridge import RewardEvaluatorManager

# Initialize reward manager
reward_manager = RewardEvaluatorManager()
reward_manager.register_evaluator("tournament", reward_system)

# Create dynamic agent with custom rewards
agent = DynamicAgent(
    env=env,
    reward_evaluator=reward_manager.get_evaluator("tournament"),
    frame_stack=4,
    learning_rate=0.0003
)

🎯 Use Cases

Game Developers

  • Test game balance
  • Create sophisticated AI opponents
  • Generate training data for game testing

AI Researchers

  • Experiment with reinforcement learning in complex environments
  • Study human-AI interaction through natural language
  • Develop and test new training strategies

Gaming Community

  • Create custom AI training scenarios
  • Share and compare training results
  • Contribute to the evolution of game AI and the Casino of Life framework.

🛠 Advanced Features

Flexible Reward System

from casino_of_life.reward_evaluators import (
    BasicRewardEvaluator,
    StageCompleteRewardEvaluator,
    MultiObjectiveRewardEvaluator
)

# Create custom reward evaluator
reward_system = MultiObjectiveRewardEvaluator([
    BasicRewardEvaluator(health_reward=1.0, damage_penalty=-1.0),
    StageCompleteRewardEvaluator(stage_complete_reward=100.0)
])

Environment Configuration

from casino_of_life.environment import RetroEnv

# Create custom environment with frame stacking
env = RetroEnv(
    game='MortalKombatII-Genesis',
    state='tournament',
    players=2,  # Support for multiplayer
)

Advanced Training Control

from casino_of_life.agents import DynamicAgent
from casino_of_life.client_bridge import RewardEvaluatorManager

# Initialize reward manager
reward_manager = RewardEvaluatorManager()
reward_manager.register_evaluator("tournament", reward_system)

# Create dynamic agent with custom rewards
agent = DynamicAgent(
    env=env,
    reward_evaluator=reward_manager.get_evaluator("tournament"),
    frame_stack=4,
    learning_rate=0.0003
)

🔧 Technical Details

Environment Features

  • Stochastic frame skipping for realistic gameplay
  • Configurable observation processing (84x84 grayscale)
  • 4-frame stacking for temporal information
  • Multi-player support (up to 2 players)
  • Automatic garbage collection for memory management

Reward System

  • Modular reward evaluators
  • Health-based reward calculation
  • Stage completion bonuses
  • Multi-objective reward combination
  • Custom reward scaling
  • Real-time reward adjustment

Training Pipeline

  • Integration with Stable-Baselines3
  • Support for multiple RL algorithms
  • Customizable training parameters
  • Progress tracking and checkpointing
  • Memory-efficient design

📊 Web Interface

Training Dashboard

  • Real-time training metrics
  • Agent management
  • Model versioning
  • Interactive chat
  • Training configuration

API Integration

from casino_of_life.web import TrainingServer

# Start training server
server = TrainingServer()
server.start()

WebSocket connection for real-time updates

@server.on_message
async def handle_training_request(message):
    training_id = await server.start_training(message)
    return {"training_id": training_id}

🤝 Contributing

We welcome contributions! See our Contributing Guide for details.

Development Setup

git clone https://github.com/Cimai-Decentralized-Games/casino-of-life.git
cd casino-of-life
pip install -r requirements.txt

📚 Documentation

Full documentation available at https://docs.cimai.biz

🔗 Links

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments

  • G4F for GPT models and other Providers
  • Stable-Retro for game emulation
  • Stable-Baselines3 for RL implementations
  • The fighting game community for inspiration and support

Made with ❤️ by Cimai Decentralized Games

Metadata

Release files for casino-of-life 0.2.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for casino-of-life 0.2.6
File Interpreter ABI Platform Actions
casino_of_life-0.2.6-py3-none-any.whl Python 3 none any Details for casino_of_life-0.2.6-py3-none-any.whl

Release files / casino_of_life-0.2.6-py3-none-any.whl

Download URL casino_of_life-0.2.6-py3-none-any.whl
Size 29.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
21704539a6222935eeaafd322d11359fe34975db0532ab9fb9e15a1f7cc4271d
BLAKE2b-256 checksum
How to use checksums
4fe9d925d536517d4ea10d49e9c8286ced8d285e9a1d8c6bd618e9e8685df29c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.21

Security for casino-of-life 0.2.6

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page