RoseWish README

The project's README from github.com/AhmadHassan-BTed/RoseWish. As one markdown file: README.md.

RoseWish Banner

RoseWish 🌹

Rose Day Special: Wishing Visual Novel

Python 3.12 License: MIT Ahmad Hassan (B-Ted) PRs Welcome

A high-fidelity, story-driven pixel art experience crafted for the spirit of Rose Day. Designed by Ahmad Hassan (B-Ted).

Features • Quick Start • Architecture • Contributing


A Gift for Your Loved One

This game was crafted as a heartfelt way to express your love. Use it to wish your special someone a Happy Rose Day, customize it with your private memories, and let the pixel-art magic do the rest. It's not just a game; it's a personalized wish wrapped in code.


The Rose Day Wishing Game is more than just a project; it's a digital rose garden where code meets emotion. Crafted with love and a focus on high-fidelity storytelling, this interactive experience brings the magic of Rose Day to your screen.

Built on a professional, service-oriented architecture, it seamlessly blends engineering maturity with a heartwarming narrative of two souls, MrLover and MissLovely, as they journey through a day of dreams, napping, and heartfelt surprises.

"Like a rose, a project is beautiful not just in its bloom, but in the care put into its roots."

This project was built to demonstrate clean engineering practices in game development while providing a meaningful, personalized gift experience.



Features


Architecture

The repository follows a modern decoupled structure, ensuring 100% cohesion and minimal coupling between systems.

System Workflow

graph TD
    A[main.py] --> B[GameEngine]
    B --> C[Service Registry]
    B --> D[State Machine]

    subgraph Services
        C --> S1[AudioService]
        C --> S2[RenderService]
    end

    subgraph Game Systems
        D --> E1[Narrative Director]
        D --> E2[Particle Manager]
        D --> E3[Dialogue System]
    end

    subgraph Entities
        E1 --> P1[MrLover Character]
        E1 --> P2[MissLovely Character]
    end

Internal Module Structure

classDiagram
    class GameEngine {
        +run()
        +update(dt)
        +render()
    }
    class Character {
        +update(dt)
        +draw(screen)
    }
    class MissLovely {
        +draw_sleeping()
        +draw_standing()
    }
    class MrLover {
        +holding_rose: bool
    }
    Character <|-- MissLovely
    Character <|-- MrLover
    GameEngine *-- ParticleManager
    GameEngine *-- DialogueBox
    GameEngine *-- Background

Repository Structure

Rose-Day-Wishing-Game/
├── src/
│   ├── core/           # Dependency injection and event bus
│   ├── engine/         # Main game loop and state management
│   ├── entities/       # Character logic and pixel-art rendering
│   ├── services/       # Decoupled Audio and Rendering services
│   ├── ui/             # Backgrounds and dialogue overlays
│   ├── utils/          # Particle systems and constants
│   ├── config/         # Environment-based configuration
│   └── main.py         # Application entry point
├── docs/               # Technical specifications
├── .env.example        # Configuration template
├── pyproject.toml      # Build system and metadata
└── requirements.txt    # Project dependencies

Quick Start

1. Prerequisites

2. Installation

# Clone the repository
git clone https://github.com/AhmadHassan-BTed/Rose-Day-Wishing-Game.git
cd Rose-Day-Wishing-Game

# Install dependencies
pip install -r requirements.txt

3. Configuration

The game is pre-configured with generic values in the .env file. You can modify these values to personalize the experience:

# Open .env and change names/messages
# Example: PLAYER_NAME="Your Name"

4. Launch & Wish

python src/main.py

Run the game and share the screen with your loved one to wish them in style!


Data Flow & Lifecycle

  1. Initialization: The GameEngine initializes services and registers them in the central Registry.
  2. Configuration: Settings are loaded from .env and validated via the config module.
  3. Execution Loop:
    • Handle Input: Events are captured via pygame.
    • Update: Systems update based on Delta Time (dt) for frame-independent movement.
    • Render: The RenderService composites the background, entities, and UI.
  4. Shutdown: Clean termination of the Pygame mixer and display.

Contributing

Contributions that improve architecture, performance, or narrative depth are welcomed.

  1. Fork the repository.
  2. Create a feature branch.
  3. Submit a pull request with a detailed description of changes.

License & Credits

Every rose has a story. This one is yours.

Designed for the one who makes your world bloom. On this special Rose Day.

RoseWish (AhmadHassan-BTed/RoseWish)

windows
Searching Database…

What is this?RoseWish is a heartfelt interactive narrative mini-game built in Python for Rose Day, featuring a dynamic dialogue system, animated particle effects, and integrated audio to create a personalized romantic gift.
Is this a full visual novel engine or a single fixed story?It is a single, pre-written pixel-art story about two characters, MrLover and MissLovely, going through a special day together, not a general-purpose story engine.
How do I get it running?Clone the repo, install the pip dependencies, and launch the game script; the Quick Start section walks through prerequisites, installation, configuration, then launch.
What do I need installed first?Python 3.12 or higher and pip. The game itself runs on Pygame, which handles input events, the display, and the audio mixer internally.
Can I change the story to fit my own relationship?You can personalize names, greetings, and hidden secrets through the .env configuration file, but the narrative beats and state machine themselves are fixed code, not a drag-and-drop editor.
Does it run on Windows, Mac, and Linux?The README doesn't call out specific operating systems, but since it's a pure Python/Pygame desktop app with a standard pip install, it should run anywhere Python 3.12+ and Pygame are supported.
Why did the author build this instead of a generic e-card?It was made as a personalized, code-crafted Rose Day gift while also demonstrating clean, service-oriented architecture in a small Python game.
What does the gameplay actually look like?Hand-crafted pixel-art backgrounds shift from sunny daytime to evening mystery and dreamy sparkles, while a particle system fills the screen with drifting snow, floating hearts, and rose petals as the dialogue plays out.
Who are MrLover and MissLovely?They are the two custom entities at the center of the story, guided through a multi-stage state machine covering a day of dreams, napping, and heartfelt surprises.
How is the code organized under the hood?A GameEngine initializes services (rendering, audio, config) into a central Registry, then runs an update/render loop driven by delta time before a clean Pygame shutdown.
Size
9.6 MB
Stars
1.8K
Updated
CommitJul 06
Age
5mo
Commits · 90 Days