Tuesday, November 2, 2010

Final Tutorial

Tutorial References

This tutorial was probably the best existing one I found dealing with AI paths. It proved extremely helpful in starting me down the road towards being able to create interactions between AI and proximity triggers.


Tutorial Brief

I have decided to focus my tutorial on how to make AI characters within Sandbox 2 activate events through proximity triggers. The tutorial will therefore show how to set up a character to move along a designated path, how to set a proximity trigger to activate an event, and how to get the AI and trigger to recognise each other. These methods are not particularly difficult (basically at a beginner's level), but are essential, as once they are mastered they open up doors to so much more in Sandbox 2. With these skills learned, one is transformed from the casual Sandbox user to someone who can actually begin to create some seriously interesting and entertaining game features. Therefore this tutorial will definitely elevate a viewer's understanding beyond the typical user.

I have chosen this topic for a couple of reasons. Firstly, these techniques proved invaluable to me during experiment 2, and what I achieved in my porosity lens can be largely attributed to them. I was surprised at the ease with which some very interesting events could be created with just a small bit of fundamental knowledge, and therefore I think it is appropriate to produce a clear, easy to follow tutorial outlining this information. My second reason builds out of the first - the fact that there are surprisingly few good tutorials on these subjects out there, and in the case of how to set the proximity trigger to respond to an AI character, there is absolutely nothing. While researching for experiment 2, I searched long and hard for a solution to this problem only to come up with nothing. I eventually worked out how to do it, and it's really very simple, but I feel the need to put the information out there in order to save other people the time it took me to figure it out.

Final Porosity Lens Video

Crysis Files


Sketchup Model


Feedback Sheets


As discussed in lecture 10 (Envisioning Information), colour is a powerful and versatile tool when it comes to representing information. It can be used to measure, to decorate, to label or to imitate reality. In my porosity lens, I will be using colour in most of these ways. Different colours will be used to represent different people, and to make it clear how many people are active simultaneously. At the same time these colours will work to create exciting visuals.

1st Draft

Here is a short video combining a few different shots of my lights in action - a way for me to both re-familiarise myself with Sony Vegas and play around with a few ideas.

Combining AI with Proximity Triggers

Here is a quick video of my first test of getting an AI character to set off a series of lights. It took me quite a while to actually figure out how to get the AI to interact with the proximity trigger, but it turned out to be something pretty simple!

Developing Sketch Installation

I have combined some of the tracks and part of the frame from the provided station with my own sketchup models to create a train station with four tracks, three platforms and a terminal. My lens will now be able to measure which platform receives the most human traffic, as well as which part of the terminal is most frequently populated.

Porosity Lens Brief

Using the provided station and my own custom models, I will construct a simple simulation of a train station complete with buildings, roads, and public meeting points. As stated in the brief, the aim of the porosity lens is to "understand people's navigation through an environment". Using the nodes previously researched as a starting point, my porosity lens will seek to address this point by examining firstly how people move through an area, and secondly how many people visit one area or another over a period of time. I will achieve this by using the power of lighting as a visual aid.

My lens will use two different forms of lighting representation. The first will be multiple trails of lights to record human activity in an area, thus demonstrating both how people are moving and where the greatest concentration of activity is. The second will involve gradations of brightness to indicate where the most activity has taken place. To achieve the first effect, multiple AI characters will be deployed throughout the station, and their paths will be recorded using proximity triggers to switch on small lights of varying colours. These lights will remain glowing for a certain amount of time after the characters have passed through them so that a clear path can be discerned.

The second representation will be achieved similarly, but instead of delaying the switching off of the lights, they will remain on once triggered, with new lights being added over the top as more people pass through the area over time. In this way, the areas of the station that received the most human traffic will glow the brightest.

Videos Demonstrating Mastery of Nodes

Entity: Proximity Trigger -

This video shows me using a series of proximity triggers to set off a sequential chain of lights. I have also posted the flow graph of this.

Time:Delay -

In this video I pass through a chain off proximity triggers attached to light switches. I have altered the time it takes each light to turn off after I pass through it, so that the first light I activate is actually the last light to turn off, and the last light I activate is the first to turn off.

AI:FollowPathSpeedStance -

The video below shows the node after it has been used to assign an AI character to a designated path. The video also shows the character in both a relaxed walk and an alert run. The flowgraph is also below.

Three Nodes SWOT Analysis

Entity:Proximity Trigger -


Easy to use and versatile - can be used to create an extensive variety of effects.


A character needs to physically walk through a proximity trigger - remote activation is not an option, which can be limiting.


This node can be used for many things, including turning on lights and opening doors. The ability to activate an event simply by passing through a designated area is quite powerful, and will be perfect for my intentions of representing movement through visual effects.


Care must be taken when setting proximity triggers, especially when you have multiple triggers in the same area, as you do not want the player or other characters accidentally triggering the wrong events.

AI:FollowPathSpeedStance -


Excellent tool for controlling the movement of AI characters. It is relatively easy to use, and can also be used to manipulate the alertness of the character, as well as his speed of travel. With these options, this node makes it easy to produce mobile enemies, or direct characters to perform other tasks to suit your purposes.


The node is only applicable when used in conjunction with an AI path, which can be limited in terms of movement. It is also only really suitable for moving an AI character from one spot to another, and therefore as a stand alone node, there are only so many things you can use it for.


As stated above, this node is perfect for moving AI characters along a path, and therefore it opens up a whole raft of opportunities to create events or effects that build upon the movement of AI. A few possibilities could include patrolling enemies, AI characters turning on lights or opening doors, and enemies taking cover.


The actual flow graph scripting for this node can get very complicated once you move beyond the basics, and the Sandbox editor has a few obscure features that can cause problems for generating AI navigation if you don't know what you are doing (for example, small boxes that need to be checked or unchecked that can frustratingly cause your AI to be completely unresponsive).

Time:Delay -


A very simple node that is nevertheless very useful in certain situations, with the ability to delay an event either finishing or beginning.


The node is not very useful as a stand alone tool, and is limited to dealing with the timing of certain events. It therefore has a very specialised role, that is perfect in some circumstances but useless in others.


Time:Delay creates many opportunities within Sandbox 2. Attached to a proximity trigger, it can be used to delay the event that trigger is associated with. For example, a light may take a designated amount of time to turn on once activated, or a door might wait several seconds to close after being opened. Similarly, an AI character could be programmed to delay a certain action.


As stated above, Time:Delay is very limited in what it can do, and may have no use.