Files
PokerRogue/PokerRogue_Specification.md
T
Michal Vrba 48099e9de7 Add project docs, .gitignore, and solution items
Added README, design spec, roadmap, and contributing guide for PokerRogue. Updated .gitignore with Visual Studio template. Introduced .slnx solution file to organize documentation under Solution Items.
2026-02-09 13:59:15 +01:00

240 lines
5.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# PokerRogue – Arcade Poker Roguelike RPG
**Technical & Game Design Specification**
## 1. High Concept
PokerRogue is a **single‑player arcade roguelike RPG** where all combat is resolved through a **fast, simplified Texas Hold’em system**.
Poker decisions are reimagined as **combat actions** (attack, block, dodge), enhanced by **skills, relics, and RPG progression**.
Core fantasy: *You don’t just play poker — you fight with it.*
Target platform: **PC (Desktop)**
Engine: **MonoGame (DesktopGL)**
Runtime: **.NET 10**
---
## 2. Design Pillars
1. **Arcade Speed** – short hands (20–40s), minimal betting loops
2. **Readable Decisions** – clear risk/reward previews (Pot & Damage)
3. **Build Identity** – skills + relics define playstyle
4. **Controlled RNG** – randomness is bendable, not dominant
5. **“One More Node” Loop** – roguelike pacing and rewards
---
## 3. Core Game Loop
1. Start a **Run**
2. Navigate a **procedural map** (fight / event / shop / elite / boss)
3. Resolve **Poker Combat Fights**
4. Gain **rewards** (skills, relics, upgrades)
5. Defeat the **Boss**
6. Die → earn **Meta Currency** → unlock content
7. Start next run
Average run length: **25–35 minutes**
---
## 4. Poker Combat System (Arcade Version)
### 4.1 Hand Structure
Each fight consists of **3–7 Hands**.
Each Hand has 3 phases:
1. **Deal**
- Player hole cards
- Flop revealed immediately
2. **Clash**
- Player chooses an action
- Enemy chooses an intent
3. **Resolve**
- Turn/River reveal
- Damage, status effects, cleanup
---
### 4.2 Player Actions
| Action | Poker Meaning | Combat Meaning |
|------|--------------|----------------|
| STRIKE | Raise | Increase Pot, aggressive attack |
| GUARD | Call / Check | Gain Shield, reduce damage |
| DODGE | Fold | Avoid heavy damage, lose tempo |
| SKILL | Cheat / Ability | Special effect (limited) |
---
### 4.3 Core Combat Values
- **HP** – player/enemy health
- **Pot** – base damage value
- **Edge (0–100)** – advantage meter (hand strength + synergies)
- **Focus** – control resource (defensive/utility)
- **Grit** – aggression resource (risk/reward)
#### Damage Formula
- **If Player Wins**
```
EnemyHP -= Pot * (1 + Edge / 100)
```
- **If Player Loses**
```
PlayerHP -= Pot * (1 + EnemyEdge / 100) - Shield
```
---
## 5. Skills System
Skills behave like **ability cards** with costs and cooldowns.
### Skill Costs
- Focus (precision, control)
- Grit (risk, aggression)
### Examples
- **Reroll** – replace one hole card
- **Power Raise** – +50% Pot, increased self-risk
- **Clean Fold** – dodge without tempo penalty
- **Time Stop** – delay resolve, take extra action
- **All‑In Slam** – massive Pot multiplier (once per fight)
Limit: **1 skill per hand** (unless modified)
---
## 6. Status Effects
Status effects last **1–3 hands**.
Examples:
- Pressure – boosts next STRIKE
- Shield – reduces incoming damage
- Bleed – damage over time
- Stun – enemy can’t STRIKE
- Lucky – free reroll
- Cursed – penalties until removed
---
## 7. Enemies
Enemies use **intent‑based AI**, not solver logic.
Each enemy has:
- Aggression (STRIKE chance)
- Trickery (skill usage)
- Cowardice (DODGE chance)
### Archetypes
- Goblin Maniac – high aggression
- Vampire Caller – sustain & bleed
- Witch – card manipulation
- Knight Nit – defensive, low risk
---
## 8. Boss Design
Bosses modify core rules.
Examples:
- **The Tax Collector** – blinds increase every hand
- **The Oracle** – knows future cards
- **The Mirror Dealer** – copies player skills
---
## 9. Roguelike Progression
### Map Nodes
- Fight
- Event
- Shop
- Elite
- Boss
### Rewards
- Skills
- Relics (passive modifiers)
- Upgrades
- Healing / Currency
---
## 10. Meta Progression
Between runs, players unlock:
- New skills
- New relics
- New enemies
- New starting loadouts
---
## 11. UI Layout – Fight Screen
**Top**
- Player HP, Focus, Grit
- Enemy HP, archetype, intent
- Hand counter & tempo
**Center**
- Board cards
- Edge meter
- Pot & damage preview
**Bottom**
- STRIKE / GUARD / DODGE buttons
- Skill bar (hotkeys)
- Status icons
Design goal: **one‑screen readability, no menus during combat**
---
## 12. Technical Architecture
### Solution Structure
```
PokerRogue.sln
├─ PokerRogue.Game (MonoGame DesktopGL)
├─ PokerRogue.Core (Game logic, no rendering)
└─ PokerRogue.Tests (optional)
```
### PokerRogue.Core
- Combat state machine
- Card & deck logic
- Enemy AI
- Run & reward generation
- Save/meta systems
### PokerRogue.Game
- Screens (Fight, Map, Shop)
- Input handling
- Rendering & animations
- Audio & effects
---
## 13. Technology Stack
- **Language:** C#
- **Runtime:** .NET 10
- **Engine:** MonoGame 3.8+ (DesktopGL)
- **UI:** SpriteBatch‑based custom UI
- **Content Pipeline:** MGCB (local dotnet tool)
---
## 14. Development Milestones
1. **Playable Fight Prototype**
2. **Basic Run & Map**
3. **Skills, Relics, Build Variety**
4. **Bosses & Meta Progression**
5. **Polish & Balance**
---
## 15. Design Goal Summary
PokerRogue aims to feel:
- Strategic, not random
- Fast, not slow or solver‑heavy
- Skill‑expressive
- Highly replayable
**Poker as combat. Risk as power. Builds as identity.**