The project's README from github.com/AhmadHassan-BTed/RoseWish. As one markdown file: README.md.
A high-fidelity, story-driven pixel art experience crafted for the spirit of Rose Day. Designed by Ahmad Hassan (B-Ted).
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.
The repository follows a modern decoupled structure, ensuring 100% cohesion and minimal coupling between systems.
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
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
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
pip package manager# 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
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"
python src/main.py
Run the game and share the screen with your loved one to wish them in style!
GameEngine initializes services and registers them in the central Registry..env and validated via the config module.pygame.dt) for frame-independent movement.RenderService composites the background, entities, and UI.Contributions that improve architecture, performance, or narrative depth are welcomed.