- PC
- Unity
- C#
- HDRP
Overview
Dark Rose is a metaphor for life laden with despair and misery. It presents a first-person 3D experience, portraying a doctor as an uncomprehended outcast forced to survive entirely on their own. It's a cycle of tragedies that the main character must grapple with throughout the game.
Gameplay Summary
The tragic cycle in Dark Rose unfolds in two distinct phases. In the first, daylight offers a brief respite, allowing the player to gather resources and prepare for the relentless night ahead.
As darkness falls, the second phase begins, where survival becomes the sole objective. This, however, is no easy task, as monstrous, human-made creatures emerge to thwart every move. To make it through the night, the player must rely on traps, barricades, and weapons, facing down each terror until dawn.
General Info
Project Type: School -> Personal
Team Size: 2 (Friend is a Huge help with Game Design Ideas, Story Writing and Music)
My Role: I did everything on this project except the models, sounds, and music.
Engine: Unity Engine - HDRP (C#)
External Sources: All 3D models, sounds and most of the icons (Barricade and Trap icons were custom made)
Current Stage: Playable Demo
Mechanics
- Movement
- Melee Combat
- Looting
- Crafting
- Building
- Healing
Key Features and Algorithms
- State Machine AI
- Dynamic NavMesh Baking
- Trap System
- Day-Night Cycle
Dynamic NavMesh Baking
In my project, I implemented a dynamic NavMesh baking system that responds in real-time to player movement and changes in the environment. Rather than baking the NavMesh at the start, it activates only when the player moves a certain distance, keeping performance high by focusing on the player’s vicinity.
To avoid CPU spikes, baking occurs asynchronously, spreading processing across frames. When barricades are placed in doorways, the NavMesh is immediately updated, using NavMeshVolumes to mark these as high-weight areas that AI avoids unless absolutely necessary.
This system also supports full 3D navigation, allowing the AI to move intelligently across multiple floors, creating a responsive and adaptive gameplay experience.
Day-Night cycle
In this project, I created an immersive day-night cycle that directly impacts gameplay, leveraging Unity's High Definition Render Pipeline (HDRP) to achieve realistic lighting transitions for sunrise and sunset. Using a physical sun system, the game environment changes naturally throughout the day, with lighting cues enhancing atmosphere and tension.
This cycle is more than just visual, it's integral to gameplay. As sunset approaches, enemies emerge, signaling a shift to survival mode as darkness sets in. Sunrise, by contrast, represents survival, rewarding players who endure the night. This dynamic not only enhances realism but adds suspense, making each nightfall a strategic challenge and every sunrise a relief.
What Did I Learn ?
This project was an invaluable learning experience for me, marking my first time creating a game design document. While I am primarily a programmer, I enjoy designing game mechanics and creating ideas that make games engaging and impactful. Working through the design document helped me gain a deeper understanding of the creative side of game development, allowing me to bridge my technical expertise with game design insights. This dual perspective enables me to contribute meaningfully to finalizing game design ideas, ensuring that they are both enjoyable and technically feasible.
I also learned to approach feature implementation more analytically, developing solutions independently rather than relying on pre-existing ones. This approach required breaking down larger problems into smaller, manageable parts and solving each sequentially. Additionally, this project introduced me to Unity's NavMesh system, which broadened my understanding of Unity's built-in tools for AI navigation, even though I had previously worked with A* pathfinding algorithms. Finally, I refined my coding practices, focusing on writing clean, organized code while experimenting with architectural choices, which gave me a stronger grasp of structuring complex systems efficiently. Overall, this project deepened my skills in both design and technical problem-solving, enhancing my versatility as a game developer.