A text-based RPG game with AI-powered storytelling and real-time character animations. Built with React, TypeScript, and Three.js. The game features dynamic story generation based on random word combinations, OpenPose-based character animations with item tracking, and fully AI-controlled game mechanics.
The game is actively being developed with the following features currently working:
- ✨ Random Story Generation: Creates unique narratives using random word combinations
- 🎮 OpenPose Animations: Character animations with real-time item tracking
- 🎨 AI Image Generation: Generates character portraits and story-based scene images
- 📊 Dynamic Stats System: LLM-controlled stats and inventory management
- ⚔️ Level Progression: Gain experience, level up, and improve stats
- 🎲 D20 Dice System: Roll-based action resolution
- 🎯 Mission System: AI-generated quests and objectives (in progress)
Coming Soon:
- 🎥 AI Video Generation integration with OpenPose animations
- 🖼️ Enhanced story-based image generation
- 🎭 More complex mission and quest systems
- 🎮 Real-time character animations with dynamic item tracking
- 🎲 3D dice rolling system with Three.js
- 🎨 AI-generated character portraits and item images
- 🎭 Rich narrative interactions with LLM-powered responses
- 📊 Detailed character stats and inventory system
- 🗡️ Dynamic combat and skill checks
- 🎯 Skill-based progression system
- 🎲 D20-based action resolution
- Generate unique character paths using the slot machine
- Customize your character's name
- Receive AI-generated character portraits
- Get assigned random starting stats and equipment
- Health: Physical wellbeing
- Energy: Required for actions
- Damage: Offensive capabilities
- Defense: Protective capabilities
- Core Stats:
- Strength: Physical power
- Dexterity: Precision and skill
- Endurance: Stamina and resilience
- Agility: Speed and reflexes
- Wisdom: Decision making
- Charisma: Social interactions
- 1-5: Critical failure
- 6-10: Failure
- 11-15: Partial success
- 16-19: Success
- 20: Critical success
- Real-time character animations
- Dynamic item tracking for both hands
- OpenPose-based character rigging
- Support for various actions and states
- Real-time item visualization
- React 18
- TypeScript
- Three.js
- Tailwind CSS
- Vite
- Cloudflare Workers
- Animation API for OpenPose animations
- Item API for inventory visualization
- Image generation for characters and scenes
- LLM integration for story generation
-
Clone the repository: ```bash git clone https://github.com/yourusername/fantasy-rpg.git cd fantasy-rpg ```
-
Install dependencies: ```bash npm install ```
-
Start the development server: ```bash npm run dev ```
-
Open http://localhost:5173 in your browser
``` src/ ├── components/ # React components ├── hooks/ # Custom React hooks ├── types/ # TypeScript type definitions ├── data/ # Game data and configurations └── utils/ # Utility functions ```
- `GameUI`: Main game interface with chat and character status
- `AnimationOverlay`: OpenPose animation system with item tracking
- `Dice`: 3D dice rolling system with Three.js
- `SlotMachine`: Random word combination generator for story paths
- `Onboarding`: Character creation with AI portrait generation
To create a production build:
```bash npm run build ```
The build output will be in the `dist/` directory.
The game is deployed on Netlify. To deploy your own instance:
- Fork this repository
- Connect your fork to Netlify
- Configure the build settings:
- Build command: `npm run build`
- Publish directory: `dist`
- Fork the repository
- Create your feature branch (`git checkout -b feature/amazing-feature`)
- Commit your changes (`git commit -m 'Add some amazing feature'`)
- Push to the branch (`git push origin feature/amazing-feature`)
- Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
The tools and technologies used in this project:
If you found this project useful or interesting, consider buying me a coffee!
