researching emerging technologies and interactions within virtual reality.
This exploratory project was focused on how to implement Interaction Design and User Experience in Virtual Reality. We were interested in exploring the possibilities for multiplayer experiences where people not only sharing their virtual, but physical space as well. Collaboration with others became core element of the project. During the exploration phase we built several interactive demos and prototypes focusing around the idea of collaboration.
This project was presented at Oculus NextGen event.
During our research phase it became evident that Virtual Reality is often a single player experience. If there are.multiple people in the same space and only one gets to experience what VR has to offer, the rest are just watching someone playing inside the headset.
The project was build and developed in Unity with the use of Blender, Sketch, Photoshop and other design tools.
UNFOLD was built and designed as a Virtual reality experience where multiple players get to interact with each other while sharing the same physical space.
The first stage of the project was to understand and research current interactive projects and experiences that poses ideas and questions about similar topics. By having prior knowledge with developing similar experiences I was able to dig deeper into more advanced development practices and further expand my understanding in building complex interactive projects.
After the initial research, I spend the largest portion of the project with building a large number of prototypes, mechanics, ideas, and micro-interactions.
Most of these ideas were quick prototypes that allowed me to evaluate the experience and build on top of the feedbacks and play testing.
A number of initial ideas were validated or completely disproved during early stages of testing. All final designs, interactions, and details were a results of extensive building and constant testing.
During the development of the project several unanticipated problems surfaced that required constant debugging and problem solving.
SYSTEM architecture and DESIGN.
Early on in the project I spend a significant amount of time thinking about the logic and what would be the most efficient and scalable way to build the project. Since this was a fully exploratory design project, it allowed me to not be restricted to conventional design approaches and tackle different problems at different stages of the design process.
I explored thoughtful plans for every part of the project starting with level streaming and loading, actors and events, gemaplay and modularity.
fully interactive experienve without a single line of code.
The entirety of the project was built using Unreal Engine 4 and the built-in Blueprint System. Visual scripting had it's own challenges and difficulties, but allowed me to create fully working prototypes faster than writing native C++ code.
DEVELOPING prototypes with efficiency and modularity in mind.
One of the goal of the project was to develop prototypes with efficiency and scalability in mind. Almost all assets and code was broken down to the smallest components to make reusability a core value of the project. Since I had to build a number of prototypes for testing and idea exploration, my goal was to make sure that small components are modular enough to be reused in other parts of the project. This allowed me to quickly test ideas by combining smaller components into something new.
Every function, event, actor, shader, texture, and assets were build with modularity in mind to make sure that the project is easily scalable. It was important to the project that the code and logic running behind the front end interface and experience is just as beautiful and thoughtful as the design of the art itself.
how to tell a story and create narrative?
Storytelling was a crucial part of the design process. The project went through several iterations and changes to the story and how to deliver and experience that the user can think about.
I was interested to explore speculative storytelling ideas where I leave the person experiencing the project come up with their own story and theory based on the interactions and environment. There are no dialogues, textual storytelling or any form of explanation. The experience was built around visual storytelling and exploration. The player is faced with an experience that gives them visual clues, but the definition of the story is left to the user to synthesize themselves.
Building the illusion of smart AI for in-game actors.
During the creation of the "Drone" actors, I had explored several different avenues for building a seemingly intelligent enemy. Using UE4's AI Behavior Tree's seemed to be great place to start at first, but I figured out ways to simplify that system for the need of the project using only Events within the Actor Blueprints.
Since I was designing a floating & flying drone, it made it easier to create an actor for it since it did not need collision avoidance due to the design of the environment. I was able to built a simple system that randomly picks locations in a flexible area and continuously move to these locations in a fluent, but random pace.
This created the sense of "patrolling," and created thension in the experience. Unpredictability became a key element of this the entire project.
Importance of none-visible details
There are several development ideas as solution that happening the background of the project.
For example, one of these is to eliminate refreshing functions and events every frame ("Event Tick").
This could be very computation heavy and potentially lover the frame-rate of the experience and it was crucial to build the project where actors, assets, and functions only update when it is necessary.
testing every mechanic, interaction, event, and experience.
Since this project was a fairly complex interactive experience, every little change and idea needed to be carefully tested several times. Every change made to the experience was played both in the engine and editor and packaged to iPad.
Although I was constantly building and testing the project on my own, I have worked and showed the experience to others to collect feedback and understand their experience with the project.
BUIlding tools and ways to debug on the fly.
It became a useful practice early on in the project to build some functions and tools that would allow me to test the game and debug the experience while playing. This proven to be extremely useful since I was able to test different scenarios and reset parts of the game if needed to be without needing to restart or recompile the app.
I built a simple developer platform that allowed me to modify and change aspects of the actors in-game so that I can see where the project breaks and fails. (Without these tools, I would had to restart the project every time I wanted to make a change)
what went wrong during the development of the project?
One of the best but most challenging part of the project was constant problem solving. Every little change and addition to the project created problems and complexity that was often unpredictable.
I had to develop ways in which I could build little by little and make sure everything works well together.