Oniris
Oniris was built as a Vertical Slice for a University project with around 8 weeks to complete it: a one level proof of concept that would give the people that played it an idea of how the rest of the game would play out.
The two main inspirations for the game were 3D metroidvania, something the idea owner thought was lacking in today's market, and randomiser speedruns - often seen on events like Games Done Quick with games such as The Legend of Zelda. The idea being that all pick-ups are randomised throughout the world, and the player has to figure out with the use of their own knowledge where they can find these pick-ups, known as “checks”. To make sure the game is still completable, the randomiser has what is known as a “logic” which is that items can’t be placed behind a check that would require that item to be reached.
So that is what we set out to create when we made this game. Two other important things to the idea owner was that the game shouldn’t have a failure state and that there wouldn’t be combat.
The fantasy behind the game is that you would dive into people’s dreams and find checks to help them with whatever they struggled with. In the full game, the idea was that you would reenter a person's mind multiple times across different nights. Each dive stripping you of your abilities and placing you in a different part of the map - each visit being longer than the last. With the knowledge of the map gained from previous visits, the player would then make their way around and collect the checks and regain their powers.
This is the final randomiser diagram that I used for the level, that I also made into the shape of the actual level for the projects convenience. Even if it makes it slightly harder read while just glancing over it.
The programmers did create a solid logic, but I decided that the players don’t have to be a slave to it - instead, players that had a solid grasp of the games mechanic and the logic can get to places they aren’t supposed to be able to get to.
The idea to allow the players to sequence break was also kept due to some problems with the controls and with a deadline quickly approaching we decided to work with what had. By the time the project had reached this point, it was only about three weeks left until the deadline.
This flowchart was for how I wanted the players to think, encompasing both the Metroidvania and the Randomiser aspect. It is interesting that a Metroidvania relies on exploring, creating your own mental map and remembering landmarks - while a randomiser relies and tests the players knowledge of the game map. This was one of the bigger problems of the vertical slice is actually the focus on the randomiser since in the expo enviroment where the game was showed it off, people rarely got to play it more than once.
As mentioned the final level was put together over the course of three weeks after I decided that the previous iterations wasn’t evocative of the experience that the team wanted and the gameplay loop that I wanted. The final level certainly thaught me a lot about communication between the different teams, creating a level for what you have - not where you want to be, a better Unity work flow and how to scale the level, as well as how to make sure the lighting didn’t affect each other negatively in such a comparetively large project to what I have done before.
If I would redo the level today, I would use prefabs in a totally different way, I would also be a lot more mindful of creating the level around both the user experience, but also tailor it more around how the game currently works - while trying to keep it future proof. Most importantly, I wouldn’t create the level with the randomiser built in, it is something I would add later, after the game has been tested.
I am proud of how each room I created looks different from one another, owing a lot of help to the people I worked with, both in lighting and in theme. The level was also put together quite quickly for the then scale of it - even though I didn’t have full control over it. I am also just proud over having created a level that functions, does it’s job and doesn’t lead to the player being stuck due to the geometry or weird collision.