Project 3: Development Journal

For the final project, we decide to establish one of the invisible cities, Octavia and integrate it with another theme apocalypse to convey “storyness”. To begin with, Octavia is a city built on a spider web between two steep mountains. The net is the main support of the city and also the track that traverses the entire city.

When it comes to the structure of the city, paths in the city are made of wooden ties which make people feel shaky and unstable. We would potentially add squeaking sound effects to intensify this feeling.


Although inhabitants of Octavia live in such an environment that seems to be uncertain and frightening for people living “on land”, they are certain about one thing: the fate of the city that it falls when the net is broken, since they know the net will only last so long.

We picture the ending of Octavia in a different way. It turns out that the web is made by a spider a long time ago. One day it comes back and finds out humans have taken over and messed with his web. It is so angry that it climbs over the net and tries to kill all the people there. Inhabitants could only escape from Octavia and run towards the mountain on the other side. Our player is one of the inhabitants and reaches the mountain with all other people. The spider keeps chasing after people and it destroys the buildings and everything in Octavia. The spider is closer and closer to this mountain. To save the inhabitants and kill the spider, the only choice left is to cut the string/rope that connects the net with the mountain. Eventually, the city of Octavia falls together with the spider, disappearing in the abyss below.



Storyline Update:

After presenting our idea of the story, we got the feedback that the incentive of cutting the rope to save Octavia seems unreasonable. Even though we could still do some editions to the story to make more sense of it, we realize our problem that we were focusing too much on the interaction instead of the story itself. Therefore, we make a radical change to our story and try to add some depth to Octavia rather than just its fascinating look. In our new story, the player has the objective of finding his daughter and escaping the city from the only way out. On his way to his daughter, he will see villagers running, crying, or praying, each having some different feelings and faiths.


Scene Building update:

Steven is responsible for the environment construction and destruction animation of houses. I assisted by making modifications to the particle systems of fog and fire, and applying physical properties to the objects on the main path. It is designed that the player couldn’t walk up the small bridges to the “floating islands” along the path. We use the skybox of sunset as the background against the foggy atmosphere around the player.


4.29 Update:

For the movement of player, I’ve experimented with several different ways of walking. The first version that I started with is autowalk, to add to the intense ambiance in the collapsing city, I added some small effects like head and body swaying. However, autowalk makes it hard for the player to stop and observe the surroundings. In addition, the swaying effect doesn’t work well with the GoogleVR SDK and it could be more dizzy for VR players. Therefore, I give up this effect and stick to steady walking. The second version is walking by looking down. This version is simple to implement but when much effort is made on looking down to navigate oneself, the joy of looking around while walking is eliminated.

Therefore, I come to the third version, which is clicking on the path with reticle to walk. Only the walkable surface is interactable and by using NavMesh system, a path is automatically chosen from the current position to the clicked spot. After discussion today, I got the feedback that since there are many houses “floating” above the view of the player, looking down at the road could be a little inconvenient. One suggestion is to have an arrow with a distance to the ground so that the angle change of the player’s view is smaller. I think this is a good idea to experiment with but one of my concerns is whether the appearance of an arrow is consistent with the relatively realistic style of our environment.


Interaction Update:

For the movement of the player, we decide to use clicking on the ground to walk instead of long pressing (with or without arrow navigating). One reason is that there are many blocks on the path like small bricks and wood pieces. NavMesh navigation solves the problem of walking into things blocking the way by generating a path to the selected position. The maximum distance that each movement could reach is increased so that the angle of looking down is smaller. The player could walk a longer distance each clicking and look around more conveniently.


After Vince imported the characters from Fuse to our scene, we worked on looking at the character to trigger its change in posture. The characters each have two animations. When the player walks close to the character and looks at him/her, the character changes to another posture. The transition between animations has to be natural so we choose in the library for the most suitable pairs. In our implementation, the interaction is actually not triggered by gazing at the character since we think it’s hard for the player to figure out how it works without any guidance. It’s triggered by walking to a close distance to the character and the raycast reaching him/her.


Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.