Skip to content

Latest commit

Β 

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

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.


Gallery


Features

  • Heartfelt Narrative: A multi-stage state machine that guides MrLover and MissLovely through their special day.
  • Dreamy Environments: Hand-crafted pixel-art backgrounds that shift from the warmth of the sun to the mystery of the evening and the sparkles of a dream.
  • Dancing Particles: A high-performance physics engine that fills the air with drifting snow, floating hearts, and delicate rose petals.
  • Soulful Soundscapes: Integrated audio services for a continuous, immersive musical journey.
  • Your Own Story: Fully customizable names, greetings, and secrets tucked away in the environment configuration.

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
Loading

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
Loading

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

  • Python 3.12 or higher
  • pip package manager

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

  • Author: Ahmad Hassan (B-Ted)
  • License: MIT License
  • Acknowledgments: Built with the incredible Pygame community.

Every rose has a story. This one is yours.

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

About

A heartfelt, interactive narrative mini-game built in Python for Rose Day. Features custom entities, a dynamic dialogue system, animated particle effects, and integrated audio to deliver a unique, romantic digital experience.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

89 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages