Close
no alternative text available
no alternative text available

Uru Dagal

Video game

Uru Dagal is a VR game prototype I made with Unity and Blender for the Oculus Quest during my first year of Master. It was ordered for an exhibition at the Cité des métiers about 'The city of tomorrow' and was also displayed at the Geneva's Design Days 2021. The game consists of a short journey through a vast abandoned city, mostly inspired by the visuals of Tsutomu Nihei's comics BLAME! and Piranesi's Prisons. As you solve puzzles to progress and explore, you discover the city's past and contemplate its architecture.
Platform
Oculus Quest
Genre
First person adventure
Engine
Unity 2020.3.22f1
Team size
1
Duration
3 months
Tasks
Level design, Game design, Programming
no alternative text available
no alternative text available
Trailer of the game.

Concept build-up

The concept for this game emerged from a school workshop organised in collaboration with Geneva’s Cité des métiers. The goal was to produce VR games for their exhibition entitled “The city of tomorrow”. We had total freedom about the approach of the subject. At the time, I had just finished reading Tsutomu Nihei’s series BLAME! and was really fascinated by his dystopian sci-fi scenario of an endless cyber-city. The obscure narrative explanations only raised questions and filled my curiosity.

I wanted to create a similar experience where you play as the character wandering inside huge buildings, trying to understand what is this place and what is going on. I felt the virtual reality headset would mix perfectly with this idea.

Research sketches
Research sketches
Research sketches and inspirations for the narrative.
Drawing of a bridge crossing a huge artificial rift
Drawing of a bridge crossing a huge artificial rift
Drawing from BLAME! manga displaying monumental buildings.

Level design and modelling

Just before the beginning of this project, I came across the technical demo of a developer showcasing a procedurally generated city using a Wave Function Collapse algorithm. I was really impressed by the potential of the tool and how it could fit in my project, giving the eerie sense of being trapped in a constantly growing city.

no alternative text available
no alternative text available
Infinite procedurally generated city in Unity by marian519

I gave myself 3 weeks to understand the theory and integrate this tool to my game. It was sort of a personal challenge, I wanted to learn more about algorithmic and C# language. I also thought that it could be really interesting to take this approach on level design. In the end, while I was able to integrate some aspects of the algorithm, it would have taken too long to adapt. I gave up on the idea and started to design by hand a small map for the game. It was still a great inspiration and this idea still lives in my head today for another project.

Screenshot of a 3D scene with blocks
Screenshot of a 3D scene with blocks
My architectural blocks in Blender, ready to get assembled.

I was still on time with the schedule because I modelled every block I needed to build my map beforehand. This was kind of a modular level design methodology. I did some sketches to shape the path of the player and where to put the puzzles but it was really an intuitive and efficient way. The most important aspect was impressing the player with breathtaking scenery.

3D scene of bridges crossing a bottomless rift
3D scene of bridges crossing a bottomless rift
Unshaded and wireframed game scene modelled in Blender.
3D scene of a room with multiple pillars and spotlights
3D scene of a room with multiple pillars and spotlights
Another game scene in Blender, before integration in Unity.
Map of the game
Map of the game
Map of the game with the puzzle interactions highlighted.

Once everything was imported to Unity, it was time to set up direct and indirect lighting. Because I was going to import the game on a portable console like the Oculus Quest 1, I knew I was limited in terms of performance. That is why almost all lights are pre-rendered and baked to the UV map. This took some time to tune but it eventually won me a lot of performance rendering.

Screenshot of the game in Unity
Screenshot of the game in Unity
Visual of the game in Unity with textures and baked lighting.
Screenshot of the game in Unity
Screenshot of the game in Unity
The end of the demo leaves the player facing this huge tower.

Game design

Throughout the game, the player will encounter terminals which act as audio logs for the narrative. The character who recorded the message is unknown but begs you to help him and save the city. He also gives clues if the player gets stuck.

In-game capture of a terminal
In-game capture of a terminal
In-game capture of a player listening to a terminal.

I didn’t want complex or long puzzles for this demo, knowing that it would be exhibited for anyone to play. It needed to be approximately under ten minutes of gameplay.

The first puzzle consists of activating the good combination of levers to unlock a door. In retrospect, the scripting I did for this was a bit tedious, there are plenty of other ways to do it but it did the job very well back then.

Diagram explaining a puzzle
Diagram explaining a puzzle
The lever combination can be found by listening to one of the terminals.

The second puzzle consists of finding a battery to supply a generator and open a door. It is the final puzzle of the demo. This is not a particularly complex puzzle but through playtesting with several players, I saw quite a lot of people missing the battery just hidden around the corner. I also spent some time working with Unity’s VFX shader system on the visual feedback when the power is put back on.

In-game capture of a power generator
In-game capture of a power generator
In-game capture of a player putting the battery back in the generator.