The nature of this space is to induce fear into the avatar rather than the actually person. In this case, if the person was the avatar in the real world, he/she would feel intimidated and scared when they have been snatched away from the ground and sucked into the maze.
As this space is a completely sealed off, the avatar must walk through the maze, yet to be enhanced with sound etc., and conquer it while being subdued by the evil lurking within. Basically, the avatar would feel overwhelmed as the true path to freedom is sealed off by walls which, in fact, are animate to move on command (in this case, touch). However, the same wall would seal off another pathway giving the a sense of deja vu or such. This effect helps reinforce the insecurity and fear for avatars being in here for the first time. In a sense, it is similar to the idea from the popular Saw franchise and puzzles found in common RPG games. What makes it a social interaction may be the group of “poor souls” would have to work together to find the way out as walls seal off each other’s path.
Another responsive is the aforementioned, unexpected teleportation of the avatars. Because the space resembles a familiar cultural phenomenon, avatars/people would go to see this place for a sense of adventure. The campfire (others yet to be decided) act as a venus-fly trap ready to sink its ‘jaws’ down and trap avatars. Here, once the avatar has spent some time within the premise of the flame, the avatars are teleported to the corners of the maze and thus, the previous scare begins.
Script For Sliding Walls
Basically, the logic behind this script is that when the object is touched, it will move 2.5m in the negative direction (or left) and then 2.5m in the positive direction (right). This step is repeated continually and will never change unless the original script is changed.
integer es;
default
{
state_entry()
{
es = 0;
}
touch_start(integer total_number)
{
vector er = llGetScale();
if(es == 0)
{
llSetPos(llGetLocalPos() – <0,2.5,0>);
es = 1;
}
else
{
llSetPos(llGetLocalPos() + <0,2.5,0>);
es = 0;
}
}
}