# rpg-2024902256 **Repository Path**: kaiserkoa/rpg-2024902256 ## Basic Information - **Project Name**: rpg-2024902256 - **Description**: 11111111111 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-15 - **Last Updated**: 2026-04-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # The Red Death 🪪 Student ID: 李乐天 Latin 2024902256 ## Game Title and World Overview **Game Title:** `The Red Death` `The Red Death` is a text-based RPG built around a **dark fantasy** setting shaped by plague, decay, and survival. In this world, a crimson disease does not merely kill the infected. It twists them into undead creatures and violent monsters. The player takes the role of a hero who still retains reason and will, setting out from a forest camp to push deeper into corrupted paths and ruined ground, defeat hostile creatures, gather materials and gold, strengthen equipment, and eventually confront the source of the plague itself: `Red Death`. The game is designed around a strong contrast: **the camp is the last pocket of warmth, while the forest is a place where death keeps spreading**. The firelight, merchant, guide, and cat in camp create a brief but meaningful safe zone. Once the player leaves that space, the game shifts into a tightly paced six-room expedition focused on resource management, enemy intent reading, and turn-by-turn tactical decisions. ## Usage ### Requirements - a compiler with `C++17` support - `CMake 3.16` or newer - a terminal that can correctly display `UTF-8` ### Encoding and Display Notes This project contains UTF characters, especially in the title screen art. If your terminal encoding or font settings are incorrect, you may see broken alignment, missing symbols, or garbled output. Recommended setup: - On Windows, use `Windows Terminal`, `PowerShell`, or another UTF-8 capable terminal - On macOS, use `Terminal.app` or `iTerm2` - Prefer a monospaced font - Make sure the terminal encoding is set to `UTF-8` If you see garbled text on Windows, run: ```powershell chcp 65001 ``` ### Build and Run on Windows From the project root: ```powershell cmake -S . -B build cmake --build build --config Release .\build\Release\TheRedDeath.exe ``` If you are using a single-config generator, the executable may instead be: ```powershell .\build\TheRedDeath.exe ``` ### Build and Run on macOS From the project root: ```bash cmake -S . -B build cmake --build build ./build/TheRedDeath ``` ### Basic Gameplay - Press Enter to move through the opening and tutorial scenes - In camp, choose between `Play`, `NPC`, and `Quit` - `Play` starts the fixed six-room expedition - In battle, each turn allows: - one `Attack` or `Block` - one additional `Item` use - either order, followed by `End Turn` ## Project Structure ### Module Responsibilities - `sources/Game.cpp`: top-level game loop, opening flow, tutorial flow, and camp entry - `sources/GamePlay.cpp`: expedition progression, room sequence, event rooms, and ending transition - `sources/GameNpc.cpp`: camp NPC interactions, including guide, merchant, and cat behavior - `sources/GameCommon.cpp`: shared scene helpers, reward helpers, and reusable display utilities - `sources/Fight.cpp`: turn-based combat flow, player turn handling, item usage, and enemy action resolution - `sources/Asset.cpp`: dialogue text, ASCII art, and static UI scene resources ### Main Game Flow ```mermaid flowchart TD A[Start Game] --> B[Opening] B --> C[Tutorial] C --> D[Forest Camp] D --> E{Choose Action} E -->|Play| F[Six-Room Adventure] E -->|NPC| G[Camp NPC Menu] E -->|Quit| H[Exit Game] G --> D F --> I{Adventure Result} I -->|Return to Camp| D I -->|Boss Defeated| J[Ending Scene] J --> K{Ending Choice} K -->|Return to Camp| D K -->|Let It End| H ``` ### Battle Turn Flow ```mermaid flowchart TD A[Player Turn Starts] --> B[Combat Action Available] A --> C[Item Action Available] B --> D{Attack or Block?} C --> E{Use Item?} D --> F[Resolve Attack or Block] E --> G[Resolve Potion Effect] F --> H{Both Action Slots Used?} G --> H H -->|No| I[Player May Continue or End Turn] I --> D H -->|Yes| J[Enemy Turn] J --> K{Smoke Active?} K -->|Yes| L[Enemy Intent Becomes Idle] K -->|No| M[Resolve Current Enemy Intent] L --> N[Next Round] M --> N ``` ## Key Features ### 1. ASCII Art as a Core Visual Identity This project uses console ASCII art as a primary visual language rather than simple decoration. Custom character art is used for: - the title screen and opening / ending scenes - the main forest camp interface - NPCs such as the guide, merchant, and camp cat - enemies including the wolf, ghoul, cultist, and Red Death This keeps the technical footprint lightweight while still giving the game a strong identity and atmosphere. The art is not random symbol stacking; it supports the tone and structure of the game world: - the camp scene emphasizes trees, crates, shelter, and firelight to create a fragile sense of safety - enemy portraits rely on silhouette, posture, and spacing to create pressure during battle - the opening and ending scenes visually echo each other, giving the story a more complete beginning-to-end arc From a course project perspective, this approach balances **implementation scope, originality, visual consistency, and narrative atmosphere**, allowing the game to present a recognizable artistic style entirely within a terminal environment. ### 2. Focused Narrative and Atmospheric Writing The game is not just a sequence of fights. Its structure revolves around `The Red Death` as the central calamity: - the opening immediately establishes the plague as a force that transforms people into undead monsters - the player repeatedly leaves camp and returns, learning through progression that the forest is not only dangerous, but necessary to face - the tutorial is delivered through the guide `Philip`, integrating combat teaching into the world instead of presenting detached instructions - after the final boss is defeated, the game enters a dedicated ending scene that frames the collapse of the curse and the end of the journey The writing style aims for **short, dense, atmospheric text**. Instead of long exposition, each scene uses a limited number of lines to communicate place, tension, character, and purpose. ### 3. Camp Hub and Short Expedition Structure The core structure of the game is a **camp hub + fixed six-room run**: - in camp, the player can talk to NPCs, buy potions, sell materials, and upgrade equipment - each expedition contains exactly 6 rooms, including combat rooms, event rooms, and a boss room - after progressing, the player may decide to continue deeper into the forest or return to camp with current rewards This structure provides several strengths: - the pace is easy to understand and easy to present - each run feels like a complete expedition with clear risk and reward - defeat ends the current run, but long-term growth remains meaningful ### 4. Turn-Based Combat with Real Tactical Choice The battle system is not centered on overly complex numbers. Its core tension comes from **how the player spends action opportunities each turn**: - each turn allows one `Attack` or `Block` - the same turn also allows one `Item` use - the order is flexible, so the player can adapt based on the enemy's shown intent This creates meaningful decisions such as: - whether to push damage this turn - whether survival matters more than offense - whether a healing potion is needed to stabilize HP - whether a smoke potion should be used to disrupt the enemy's current action timing As a result, the rules remain readable while still offering a steady layer of tactical judgment. ## Enemy List ### 1. Philip - The guide and sparring opponent during the tutorial - Exists mainly to teach the battle system rather than serve as a true expedition enemy ### 2. Rabid Wolf - The first hostile beast encountered in the forest - Represents wildlife already corrupted by the plague - Reward: `12 Gold`, `Forest Fang` ### 3. Ghoul - A fully transformed undead creature - More durable and oppressive than the wolf - Reward: `18 Gold`, `Ghoul Claw` ### 4. Red Cultist - A human follower tied to the spreading disaster - Suggests that the plague is not only an accident of nature, but also something embraced or exploited by people - Reward: `25 Gold`, `Cultist Sigil` ### 5. Red Death - The final boss - The symbolic and literal center of the catastrophe - Reward: `60 Gold`, `Blight Core` ## Item List ### Battle Items #### 1. Small HP Potion - Effect: restores `20 HP` - Role: useful for early survival and tutorial learning #### 2. Large HP Potion - Effect: restores `40 HP` - Role: useful during high-pressure fights when immediate recovery matters #### 3. Smoke Potion - Effect: forces the enemy's current action to become `Idle` - Special behavior: it does not erase the entire enemy intent loop; instead, it causes that specific action to fail, and the enemy continues the original intent pattern on the following cycle - Role: useful for delaying dangerous turns and creating space for healing or counterplay ### Material Items #### 1. Forest Fang - Source: `Rabid Wolf` - Role: can be sold for gold #### 2. Ghoul Claw - Source: `Ghoul` - Role: can be sold for gold #### 3. Cultist Sigil - Source: `Red Cultist` - Role: can be sold for gold #### 4. Blight Core - Source: `Red Death` - Role: a high-value rare material that symbolizes the destruction of the plague's core ## Ending List ### 1. Return to Camp After Defeating Red Death - The player destroys the source of the plague - After the ending scene, the player may choose to return to `Forest Camp` - This path is suitable for players who want to revisit the camp state after victory ### 2. Let It End - The final boss has still been defeated - After the ending scene, the player chooses to let the story close in firelight and dawn - This is the more ceremonial and final-feeling ending choice ### 3. Defeat and Rescue Back to Camp - If the player is defeated during an expedition, long-term growth is not entirely lost - The guide rescues the player and brings them back to camp, ending the current run - This is not a formal completion ending, but it is an important part of the game's narrative feedback loop ## Project Summary `The Red Death` aims to deliver a console RPG with a **coherent visual style, a clear world premise, a stable gameplay loop, and a complete ending structure**, all within a restrained technical scope. Its focus is not on piling up systems for their own sake, but on making ASCII art, concise writing, the camp loop, enemy intents, and the final sequence all support one central experience: **Walk through a forest consumed by plague, carry limited resources and an unextinguished will, and reach the end of the disaster.**