Friday, 27 March 2015

Media Test - Linear to Non-Linear Story

All along I wanted this story to be experienced in a non-linear fashion. However, I felt best to approach the development of it by creating it as a linear story and upon completion, converting it into a non-linear story.

Linear
To begin with I created my story events in a linear process, which would result in the playback of these events, happening in a linear process. I had 5 events:

  1. Gravity Law
  2. Mother Issues
  3. Death Of A Soldier
  4. Fire At Orphanage
  5. Family Death
These were created in this order and therefore occured, in this order. I wanted to convert this so that you could experience events 1-4 in any order with event 5 being the conclusion/ending. In order to achieve this I needed to 're-wire' my level blueprints in order to accommodate some complex calculations.

Non-Linear
I got started on attempting to make my story non-linear and was happy to find it not overly difficult. The main concern was that in my linear story, each event, triggered some sort of change in the environment. This worked well, however, if I was to make it non-linear, I would still want the environment change to happen in the order I chose. The order being:
  1. Environment De-saturates
  2. Roof changes
  3. Walls/Floors become a Half-State (Hotel/Asylum)
  4. Walls/Floors compeltely change from Half-State to Asylum
  5. Game ends
This required some careful though but it was easily managed after much consideration:

Media Test - Linear to Non-Linear
As you can see in the image above, the 'Linear (before)' image shows how each event looked before converting it. They each had a trigger boxes that would trigger the event and change the environment. Very simple and very effective. Now, the two images below that, show how it has been converted into a non-linear story. All the different trigger boxes link into the same switch node. This helped manage what environment change would happen as it would cycle through them in the correct order, alternating the environment correctly.

In order for the correct event to happen (not shown here) I had to insert a 'call function' node just after each 'doOnce' node. Each of these functions were different and would reference the different events that would happen in the story. E.g player hits trigger box ('TriggerBoxMotherIssues01') then this would call that event and play it, and then the environment would change depending on number the 'environment change' was on. So if this happened to be the 3rd event triggered in the game, it would be the 3rd environment change that would occur which is the Half-State.

Personal Notes

I was really happy to achieve this all so easily. I really enjoy using the level blueprints as it is very similar to hard coding which is something I have enjoyed in the past. I am playing a little bit of catch-up with my blogs as things have gotten slower this past few weeks. The main reason being that my games frame-rate has gotten extremely slow and has been frustrating to work with. I have now fixed this issue which I will discuss in the next blog.

No comments:

Post a Comment