Inspiration

Gameplay was inspired by first person puzzle games such as Portal. The aesthetics are inspired by the minimalistic environments of games such as Monument Valley.

What it does

Rose of the Labyrinth is a first person, puzzle game that involves the player unraveling the mysteries of the upside-down pyramid, Stratis. The player manipulates various gameplay mechanics to progress through the labyrinth. The controls are WASD to move, E to pick up objects.

How we built it

To build the project, we utilized Unity as the game engine and C# as the programming language for scripting all functionality. 3D models were created in Blender and imported into Unity for use in the game.

Challenges we ran into

The main challenges we faced while working on the project were related to debugging. Despite being able to code functionalities quickly, ensuring they worked seamlessly with other elements of the game was difficult. For example, we encountered issues with rising and lowering platforms, where they would go through other objects placed on top of them, and also faced problems with ramps stretching while on top of the platforms. To overcome these issues, we implemented a workaround of using two separate GameObjects for the platforms and the ramps, so that when the platform rose, the ramp would rise with the platform and not stretch. We also faced challenges with other elements of the game such as the ball well, camera, teleportation portals, and ladder. For example, we had trouble with the ball not functioning correctly with the physics of the game, and with the camera not providing a smooth and optimal player experience. Additionally, we encountered bugs with the teleportation portals and ladder, which required extensive debugging and testing to resolve.

Accomplishments that we're proud of

One of our major accomplishments in the project was successfully creating functional levels with all the mechanics that we coded. Integrating all the different elements and ensuring they worked together as intended was a challenging task. However, we were able to overcome these challenges and create a cohesive and enjoyable gaming experience. We were particularly proud of some of the mechanics we implemented in the game. One example is the ball well, which used a Lerp function and Coroutine in Unity to achieve the effect of the ball being sucked up to the middle and hovering to a target position. Implementing the player's ability to pick up and place the ball in the well was also challenging, as we had to fine-tune the trigger collision to work smoothly. Another mechanic we were proud of was the extending blocks, where we had to experiment with the localScale of the blocks to achieve the rising functionality. Overall, we enjoyed the process of bringing these mechanics to life and seeing them function seamlessly within the game.

What we learned

The main thing we learned in this project was working with Unity3D in a 3D environment. We have previously worked with 2D games, so this was our first time dealing with an x, y, and z coordinate system. In addition, we also gained experience in using Blender to create and import 3D models for use in our game. This was a new skill for us and we were excited to see our models come to life in the game. Another thing we learned was how to work with physics in a 3D environment, and how to use different physics components, such as Rigidbody and Collider, to create realistic and responsive interactions within the game.

What's next for Rose

Some things we can do next for our game would be to add more levels and increase the level of difficulty. This could include incorporating new mechanics, such as objects that can be manipulated in different ways to solve puzzles or creating more complex challenges for players to overcome. We could also add more variety to the levels by incorporating different environments and settings. Another goal for the future would be to focus on polishing and refining the game. This could include fixing any remaining bugs and glitches, optimizing performance and improving the overall player experience. Additionally, we can explore the possibility of adding multiplayer functionality, where players can compete or cooperate to solve puzzles.

Share this project:

Updates