I have spent the past week working on a first draft script of the experience based on the narrative that i had previously thought of. I wanted the dialogue from the ear piece to fully guide and tell the player what to do as they progress through the experience including where to go, what to do next and how to interact with the other player in the alternate dimension depending on the task that they need to complete
Changing the Gravity for Player 2 in Unity
One aspect of my experience will involve an area where the players are mirrored below one another so this means that while one player will be walking normally, the other player will technically need to be upside down. This means that this particular XR rig for player two needs to have its gravity changed which with the help of my teacher i was able to do with this line of code so that the player can essentially stick to the under side of the floor while technically being upside down.
Mirroring Objects in Unity
Another element that i want to do for some of the puzzles also involves some objects interacting and moving together in both ‘dimensions’ and so again with the help of my teacher we developed some code which meant that if one object was picked up, it would reflect the X-Axis of that objects to move in the other environment as well and so the different axis can be selected depending on where the reflection is in the experience.
One problem that we found however was how that one object needed to be the main one and grabbing the sub object wouldnt work unless one script was turned off and then the other was turned on. On the other hand this could be used in the narrative so that perhaps the second object is faded in the other environment to show that it has slipped between dimensions and the alternate person cant interact with that object? could be interesting for the users.
Storyboarding The Puzzles
I decided that it would be helpful to do some sketches or drawings of the puzzles and interactions that the players will be completing in the experience so i decided to do some storyboard like sketches to show this process as you can see from the images below.
Over the past week i have started to develop a story script of the narrative that i could tell in this experience. To keep the experience fairly simple i did not want to include any NPC characters and i rather wanted to have voice characters that will guide the player through the experience because the NPC will essentially be the other player.
I thought it would be interesting if the narrative involved an arean that has been locked off or changed so that an agent or operative will need to be sent through to find the cause of this area being torn between the multiverse or dimensions. While in this area the other player will be in the reflections also trying to find the cause of the multiverse but in the opposite dimensions which would mean that these two worlds are parallel and following a similar narrative but of course will have visual or aehsthetic differences. One element i thought could be interesting is the idea of having a male voice in player ones ear and then a female voice in player twos ear but they are reading the same dialogue which will make it interesting for replayability.
I still want to stick to the hotel idea with different areas that the players can navigate through such as the hotel lobby, elevators, rooms, hallways, outside alleys, car parks and a multitude of different options the players could explore which also allow for different options of interactivity or puzzles to complete.
Interactivity in the Environment
Further Unity Tests (Showing the Concept)
To further show my concept, ideas and thinking to my teachers i created some examples of how the players will see eachother using a character model in unity and creating the mirrored hallways, stairs, mirrors and all other assets etc. to show how the unity build will work together as you can see from the images below.
Developments to The Environment Map
After creating my initial sketches or ideas for the map layout i bagan to rethink it a bit further and develop where the players could be at any given time and how the story can be narrowed down a bit further. As you can see from the image below i have now created quite a large starting area which will act as a tutorial of sorts for the players to get used the environments and gameplay mechanics of the experience.
The blue tiles are where i plan to make reflections in the environment such as those on the left and right and also above and below. This layout i have also began to think specifically about the different break points and areas in which the players will see eachother and of course for my concept to work i will also need to teleport player two around the player one map which also needs to be taken into consideration as well.
After realising some initial ideas for my final major project and thesis I started to further think and develop my idea and how i could progress further with my project.
Initial unity Test Concepts
One idea that i was playing around with is how the player can see the other player through reflections in the environment and how this can be achieved through Unity.
I decided to create a demo hallway of how this practice could be achieved and one inspiration that I got for this concept was through a previous project shown to my by my teacher Herman. His game involved a never ending corridor that changed as you moved around it but his method of doing this involved having multiple rigs set up around duplicates of the same environment which would move the player seamlessly between them as they crossed certain paths or areas.
So i started to think about how this could be done in for my multiverse reflection idea to have the player two move around player one without them noticing. So i made one corridor and then made multiple duplicate corridors around this area with multiple XR rigs that could be turned on and off as the player walks through colliders which will hopefully seamlessly move them around these corridors creating the illusion of the reflections in the world.
I did look into how you could use camera in the game to simulate the reflection but the results weren’t promising resulting in warping or the perspective just not working very well rather than just actually seeing the player around you.
Ideas for the narrative and Story
I began to think of a general narrative for my experience which ended up involving the multiverse and the player being able to communicate, see and interact with their otherworld counterpart which will be player one and player two. The narrative will involve the multiverse falling apart in one single area and this area the player will see one another through reflections within the world.
The area in which the world is falling apart is a hotel and so this allows me to create one sort of area or corridor that the player can progress through and some puzzles or tasks can be created around this area allowing the players to move through the hotel environment. I started to think about what kind of tasks the player could complete and also how the hotel could be used in these tasks:
Puzzle 01 (Mirror Room): Visual puzzle through reflections where users have to interact and see objects at the same time through visuals only
Puzzle 02 (Raining Alley): visual puzzle through up and down reflection to find objects underneath reflected objects in the sapce
Puzzle 03 (The Elevator): This set piece could involve one reflection being able to see the buttons while the other needs to interact with them or move certain things out of the way (Elevator Button)
Puzzle 04 (The Hallway): Sound based puzzle where players talk and communicate
Each of these tasks or puzzles can involve ways in which the players can utilise maybe hearing one another, seeing one another or one only being able to do a certain thing that the other cant. These ideas will continue to be developed further.
Drawing out the map designs and world layout
After deciding some of the initial story ideas of setting the game in a hotel environment, I started to draw or sketch out some ideas of how this world layout could look and how the mirror reflections could be utilised in this environment.
As you can see from my initial sketches below I have essentially drawn out a long corridor that both of the players can progress through together to complete some tasks to eventually reach the end of the experience and complete the game together. The Red markers on the map are doors that the player will not be able to go through and the blue markers are doors or entrances that the player will be able to open and progress through further.
The purple markers are the more tricky elements which show how the players will see one another in the environment such as seeing each other on the reflections in the walls on their left and right. However i have also thought about how this can be enhanced further and the players could see each other above and below themselves as well as you can see from the larger purple elements in the map.
For my final major project and thesis I want to create a project that is inspired by the work of Hazelight studios who create video games that you have to play in Co-op with another player that you know and i want to take this concept into virtual reality and create an experience with this in mind. For the narrative I have also got a strong interest in multiversal media and the stories that could be told in many different ways including Virtual reality.
Multiversal Media
One element I want to explore in a virtual reality experience is the concept of the ‘Multiverse’ and how you can present and play with these ideas. Some media which explores these concepts are ‘Dr Strange and the Multiverse of Madness’, ‘Steins gate’, ‘Tatami Galaxy’, ‘Inception’, ‘Everything Everywhere All At Once’, ‘ Looper’, ‘ Spiderman Into The Spider-Verse’ and its sequels.
Cooperative Experience
I want my Final major project to focus on a narrative driven Co-Operative experience that has to be played in multiplayer in Virtual Reality. Some experience that can be taken as reference for this are ‘A Way Out’, ‘It Takes Two’, ‘We Were Here Trilogy’, ‘Portal 2’ and ‘Phasmophobia.
Thesis Research Topic
How multidimensional spaces are being presented through media and virtual reality
Experience Concept
The experience can only be played through cooperative online or local with two players using virtual reality headsets. Each worlds or dimension can have different visual styles and can affect the others dimensional worlds. Different areas can be explored such as how the players communicate either verbally, visually or through interaction etc.
Dream space | Dream Theory | Limitless Space | Impossible Space | Multi-layered | Earth in a World | Endless | Sand | Time
Initial Ideas and Concepts
For my initial ideas i started to write down all of my notes on the whiteboard as i usually do for all of my projects which you can see from some of the images below.
Art Style
For the art style of my project I started to think about unique ways that you could differentiate the two dimensions or worlds from one another which included making both worlds black and white and using some selected colours to make them look different. Another idea was to extend this further by using a form of cell shading which would allow one environment to be black with white outlines and another environment to be white with black outlines.
Some more inspiration I looked into when considering these art styles were paper man, Epic Mickey, Mad world, Trek to Yomi and also for further ideas on changing the world and changing the colours, I looked into De Blob.
Environments
When creating two different environments that need to differentiate from one another in separate dimensions, there are many different ways you can go about this from minor changes to completely different scenery. Some examples of this are games such as ‘The Medium’ in which the character walks through the real world but can also change her mind to her counterpart showing a world rotting away and almost shown as a hell scape. There is also a game called Plasticity which has a very similar concept showing one world clean and in daylight while the other world is dark and grown over or destroyed/taken over by nature of the world.
Narrative Ideas
One element that i need to realise is how the narrative can be explored in this experience such as the idea of the two players being Yin and Yang or night and say which then represent two opposities to one another perhaps trying to bring balance to the world they are in.
Mirror Reflections
One element that I think could work well for a split dimension story, is utilising the reflections or mirrors that could be seen in the environment. There is a range of media which uses this well such as Edgar Wrights ‘Last Night in Soho’ where the two main character are shown through the reflections portraying the same movements and expressions so show they are sharing one mind. This is also shown in Disney’s ‘Sorcerers Apprentice’ where using the characters magic they created a ‘mirror world’ which traps the character that looks visually similar but they are the only inhabitant.
The idea of a mirrored world or alternate world is also shown in Netflix’s ‘Stranger Things’ which portrays a realm called the ‘Upside Down’ which is a dark, post apocalyptic environment of the real world within the story.
In some of the scenes we went through to try and adjust certain areas of dialogue and how things are prompted to the player which included all of us adding some more highlights and even some subtitles to make sure that the player can follow the dialogue more easily during the narrative.
Technical Issues with the Scene changer
We had been working on this project mostly in unity for the past couple of months and experiences minimal technical glitches and problems. However we finally wanted to attempt a build of the whole project which now looking back we wish we had tried sooner because we found that there was a serious problem in the opening scene.
There is a collider in place in the bathroom doorway that when the player enters and walks through is suppose to set active more objects and set active false the collider the user walks through which worked perfectly in unity but in the build it crashed everytime. The build took quite a long time to initiate and so we had not much time to fix this issue and so we had to resort to simply removing that particular collider in the scene which did seem to work.
File Size Issues
Another issue we found with working seperately, merging files and using so many different assets was that the project became very large and over time it grew from 8gb, to 15gb, to 25gb and eventually to 35gb plus which meant that some of the loads times in between scenes could take up to a minute at times and so we had to go through a lot of the scenes and find areas where we could reduce these loads times as much as we possible could.
To resolve some of these issues we went through to bake the lighting and tried to remove some of the overall larger effects because in the 2020s scene it was 2gb of lighting which was insane to us!
We also attempted to lock the frame rate and reduce the overall draw distance to help with the load times on the levels
Changing Colliders in the 1990s and future scene
One of the main issues that we found when building the file as explained earlier was of course the collidrs and so we found that perhaps the set active false of the collider is creating an issue and so we had to go through all of the scripts and create an on trigger exit that would deactivate these instead. This however led to an even further issue where we found that we had written the word exit in upper case which also had a strong effect on the scripts which was annoying but we were able to go through the whole project to try and resolve this.
Problems with certain scenes in the build folder
In the build folder after multiple attempts and changes we were able to have mostly all of the scenes working such as the future and 2020s scene but we had problems where the 1980s and 1990s scene would crash on load. After some code changes and removing certain colliders we were able to restore the 1980s scene so that it would work with the transition but the 1990s scene was still crashing and unfortanately we were running out of time before deadline to try and resolve this issue and had to resort to showing the full level in the recording but of course having the risk that it would crash on that scene in the final build verison of the experience.
Final Submission
We were able to overall successfully get the file size down to a zipped folder of 1.8gb which was good for the moodle submission while also collating all of the other documents including the critical discussion, scripts, data, GDD and many other elements.
Conclusion
Overall i must say that i am very happy with how the whole experience came together that we were able to mostly create and make all our ideas from the original script and concept we had. We were able to create quite a large and hopefully interseting project for the players and the research iterations that we conducted were very helpful and also very interesting to discuss overall. As a group project it was also very enjoyable and collaborative so i feel we had all worked very well together considering the scope and time we spent on this project.
One of the big elements in our experience was of course the character remembering and reminiscing about their old photos from their past. We had left a lot of these until the end so we could all decide and collate images that could be spread across and combined together accross the experience. Iris was actually able to draw out a good number of photos for this experience that she also tried to keep more anonymous so not to give away from the character might look like or directly who they are which we were striving for a lot when we were designing this.
In our scenes they were added especially to the older age scene for the user to look at at the start and also be interact in some ways as well.
Adding the Painting to the 1990s scene
In our story the character is an artist and we also have a painting interaction where the user can try to reassemble a painting that the character has torn up out of anger. For a long time this particular paintig was a placeholde but i have now finally gone online to find a painting to put in its place as you can see from the images below
This required me to go into Photoshop and try to divide up the painting in the correct size pieces of the objects in the unity experience which overall wasnt too bad to do.
Intro Menu Disclaimer and Tutorial
We realised as well that it would be appropriate to add a disclaimer message and also some information on the controls for the game to appear before the opening men and so these were created as sprites below
These sprites were then added in at the very start of the experience to fade in and out on display for the user before they can see the opening menu button at the start
Adding Glasses and Blur to the scene
While we found that the old age XR rig wasnt too successful we wanted to see if we could find others way to make the user feel older and an easy one for this we found was the user maybe having bad eye sight at an older age. When the user starts the experience they will have a gaussian blur on the lens to blur their vision and they will need to pick up some highlighted glasses and put them towards their head which will then correct their vision which we thought was quite effective overall.
Additoonal Tutorial Elements in the starting scene
To also add some further guidance and help for the user we also decided to add a tutorial message on what the user needs to do in the bathroom and how they should take a medicine to test out the mechanic and once they do they will also be instructed to go to bed after this. This messages fades in and out on display on the mirror in the bathroom when the user enters.
Adding in the AR Images to the User Interface
In addition to drawing photos for the scenes, Iris also created some additional imagery, writing and informaiton to appear around the mirror in the AR experience that can be enlarged for the viewer to see when they are click on as shown below.
In the future starting scene we wanted a way for the user to navigate through this scene and then be able to continue through the narrative while we knew that the scene changer would load into a different scene. So we created a number of colliders in the future scene which triggers the medicines appearing and also a collider on the bed so when the character wants tot sleep in the story it will change to the next scene which will be the scene changer.
Creating the Level Changer
We added the three medicines into the bathroom and made each one interactive and have a collider which will then be able to trigger the change of scene. We wanted to have it so that when the user comes back to this scene each time the medicine that they previously drank will still be gone and so with a lot of trial and error we did this through static objects in the game manager that will permanenty be set active false after they are collided with the main camera which overall worked very well.
After creating the game manager all of the objects were then linked to the Main camera of the player so that when those particular labelled objects collide with the players head it will trigger the scene linked with that model.
Drinking Sound Effect
We had created now created how the user will transition through the different levels we wanted to further emphasise the effect of taking or drinking the medicine and so the code was changed a but further so that when you lift the medicine to the head collider it will play a drinking sound effect while the bottle dissapears.
Candle Interaction in 1990s
In the 1990s scene i felt that there were still some more interactions that could be added and also help show some additional story elements for the user. In our group we had dicussed that their mother had passed away by this time and this is why they are in the apartment on their own and so perhaps their would be a photo of the mother on display to show this.
I saw an oppurtunity here to add another interaction to this scene by allowing the user to light candles to show respect to the mother character in this particular scene. To do this i added in a lighter model and candles with particle effect flames created seperately above the candles. Thes particule effects were set to false and they could be triggered active on collision with the flame from the lighter which overall did work very well and had the effect I wanted. I improve this further by also having sound and the lighter turning on and off if the player places their hand into its own collider.
We decided this week will be when we merge all of our scenes together after working on them seperately to save time and allow us to work on those scene how and when we wanted. This was done by making my file the overall master file with Lin and Iris packaging their scenes so they could be imported into the project.
This method did require some trial and error and having to locate, relink and add in again some certain assets but overall after some time we were able to successfully merge all the scenes into one project and now of cours we need to spend time to make everything cohesive and all works together in one project.
Separating the Bathroom environment for scene change
After some tests we initially planned to have the future scene be the scene changer, start and end but we felt like it would be easier to have a dedicated scene the user will go back and forth to that focuses specifically on this main mechanic and so it was seperated off further int the scene.
Animating NPC character for start and end scenes
The brief requires us to have NPC characters in some way in the scenes and our narrative starts with the doctor talking to the player about the medicines and so I tried to find some models on Mixamo. From the images below you can see that I found this paricular model and textured him in Unity and overall i feel does look the part of the character from the script
I then looked further on Mixamo to find some animations which includes him standing idle, talking and walking to leave the room which I was able to find and implement overall in the scene but i am not an animator and while these are not perfect in the game they do work as a whole.
Experimenting with Elderly XR rig
Creating Rain effect outside the windows
In the 1990s scene i thought it would add more to the atmosphere of it being dark and dreary to add some rainfall outside to really add to this emotion and hopefully show this feeling to the player as well. This was created using some particular effects that are on loop on one side of the building only where it is viewable through the window.
Adding in Spatial Sound into the 1990s scene
I also wanted to experiment with some spatial sound and so I decided to add a radio to the scene that can be playing static and when it is interacted with it can either be tuned or turned off just as some additional elements for the player. Using spatial sound it can sound louder closer up and quieter as the character walks further away.
I also wanted to add some spatial sounds with the rain outside so that when a character walked closer to the window the rain would sound louder and then quiter as they walked away which i thought worked quite well in the whole experience.
Creating AR UI in Spark AR and incorporating Filters
In Spark AR i started to experiment with the overall user interface and how buttons are created and interacted with the in the App which i discovered is straightforward to do but can become quite complex and a lot with the more interactions that are added because of the long string of events which need to be tied together overall.
After some time I spent quite a lot of time this week making updates trying to find some additional assets which might feel more suitable to the time period and also further decorations to fill out the area more and make it more interesting for the player and exploration.
Adjustments to the layout and asset sizing
One thing that i found when making adjustments and to the XR rig was that certain objects were just too big or too small and so i needed to spent quite a bit of time making adjustments to all of these different elements. This was also needed to be considered across all scenes and how the player percieves certain items in VR because it is so much different to looking through the headset than looking through the editor.
Adding outlines to points of interest
One aspect that i thought would be really helpful is adding highlights to certain points of interests or objects in and around the scene. I found a veru useful shader and highlight script on the unity asset store which works great where you can adit the colours and thickness of the outline on most objects in a scene as seen in the photo below.
Triggering text animations on events
To also help guide the player on how to do certain tasks and events i thought it would be useful to have some text or ‘thought’ prompts to help tell the player what to do and also show what the character is and might be thinking at the time.
So in a number of the entrances to certain rooms and areas i added colliders which act as triggers for animated sprites hidden in the scene so when the player crosses these colliders it will show these text prompts in the environment.
The text prompts are hidden or set active false in the scene and when they are triggered an animation will play that fades them in and reveals them for the player to read but then fades out after a short time.
Adding hand Models to the scenes
we also added hand models into the scene which are animated so that when the player uses the triggerss the fingers are animated to bend. The hands were also given a texture which makes them more faded and transparent so they appear more ghost like and then be more anonymous to the player to hopefully help with the overall feeling of embodiment.
During this past week over multiple days and locations we were able to test 21 individual users. All of us in the group took build folders of the user tests and distributed the 2 versions of the test randomly between the users to get the results that we required. We initially planned to test a total of 20 people but we were able to get one additional person for the data and of course for more effective quantitative data we would ideally need to test upward in the triple digits but for the time we have 21 should be fine to get some general idea of the data.
Overall the results of the data were very interesting and each user who tried the younger age XR rig, felt that it was effective in making them feel like a younger character with some users even stating that during the test. However for the older XR rig users mostly did not feel like they were an older character and were more annoyed by how slow they were moving as a character. So we felt that the younger rig was very effective and will need minimal updates for improvements but perhaps the older rig will need rethinking.
Results of the research iteration
Ideas for the elderly XR Rig
After testing some of the users and realizing some issues with the XR rigs we began to discuss and think of ways to improve it or other alternative options. After discussing with our teacher it was suggested that perhaps we could experiment with how most people’s eyesight will worsen as they age and so could we maybe add a slight blur to the lens to simulate this? It was also suggested that this idea could be emphasized if you start the user with a blur and when they pick up glasses it will correct the blur and also add frames around the lens for the player which might also help with immersion.
Creating the opening Menu
For the opening menu I spent some time to make something simple but also relevant to the overall experience and I thought it would work well like in the experience for the menu to be a bookcase and you can start the experience by clicking on the photo frames. The environment is completely dark except for a spotlight on the book case.
The photo frames were then added and changed so that there is buttons that the user can choose between like a normal menu.
A line renderer and script is then attached to the players hand so that when they move the line over the button and select it using the trigger it will then jump to the starting scene of the experience.
Creating the closing credits
The closing credits were then also kept very simple by creating the text credits as sprites which are then added to the scene which fade in and out after one another over the time the viewer is looking. There is also a disclaimer stating that the user should go try the AR element with a to be confirmed title of the experience.
User interface design for the AR app (Adobe XD)
For the AR element of the experience with the face filters i started to develop further and create a wireframe of what the overall experience will roughly look like on a mobile device and how it will work in the final experience.