The biotelemorphic cell portal

 

To be able to control and manipulate what goes on in a biotelemorphic cell we must arrange for the cell to have a portal between its internal and external environments.

We can do this simply by creating (using the Director authoring package) a document which we can use as a stepping stone or bridge. We can then open this "portal" document with the player when the dialog box asks, "Where is the movie you want to open?".

The "portal" document will then be loaded into the RAM space allotted to the player and through this document we can pass messages and instructions to the player's engine of code. See figure 1.9a.

Figure 1.9 a

Messages and instructions can be sent to the engine code of the player via a portal document loaded into the player

 

We will have to include, in the design of the "portal" document, suitable features which will enable us to pass objects, media and instructions into the cell's environment.

In many ways, this "Portal" document can be viewed as a kind of "Trojan Horse" - used for getting media and control elements into a biotelemorphic cell - to seize control of the cell's activity.

The simplest example of a "portal" document design would be one which would allow us to control the cell through direct input from the keyboard.

This type of "portal" document would need to place an editable field ("Input") on the screen for us to be able to type in appropriate instructions and communication messages (see figure 1.9 b).

To be able to initiate action from the contents of the editable text field, a "do" button will also have to be provided. Here is an example of a simple "do" button's mouseUp script :

 

on mouseUp

put "Input" into fieldName

do field fieldName

end

 

Clicking upon this button on the screen will cause the do command to send the contents of the "Input" field to the engine code where any Lingo instructions it may contain will be acted upon.

(Note: The do command is potentially the most powerful instruction contained in multimedia languages)

If you set up a simple projector and "portal" movie document yourself (or use the projector and "portal1" document provided), type the following lines into the field:

 

put return & the time after field fieldName

beep

put return & the date after field fieldName

 

Clicking on the "Do" button will produce a single beep and the result shown in figure 1.9 b.

 

Figure 1.9 b

The screen of the "Portal" document just after the "Do" button has been clicked

 

This simple exercise illustrates the unrestricted access through the portal to the cell's engine code.

By typing into this "input" field,, we will be able to get the cell to activate scripts covering the complete range of the Lingo programming language. Also, we will be able to populate the RAM space of the biotelemorphic cell with any kind of objects and media - all without having to use the Macromedia authoring package.

To show how we can create objects in the RAM space of the cell, we will, alter the script of the "Do" button and use another little programming trick which will enable us to parse and extract embedded code placed into the "Input" field:

 

on mouseUp

put "Input" into fieldName

put field fieldName into embeddedScript

repeat with i = the number of lines in embeddedScript down to 1

if word 1 of line i of embeddedScript <> "--" then

delete line i of embeddedScript

else

delete word 1 of line i of embeddedScript

end if

end repeat

do field fieldName

end

The trick:

What this "Do" button mouseUp script does now is to place any commented out lines in the "input" field into a variable called embeddedScript. This allows two separate scripts to be placed into the "Input" field: one acted upon immediately by the "Do" button and the other placed into a variable - to be used later.

Note, for those not familiar with Director scripting:

Lines starting with a double dash ("--") are not acted upon and are said to be commented out. These lines are thus ignored by the do command when it acts upon the field.

When the commented out lines of the "Input" field are placed into the variable embeddedScript the first word (the double dash) is removed. This removes the commenting out of the script when it goes into the variable, allowing the script to henceforth be acted upon by the cell's Lingo engine whenever called upon to do so.

The significance of this little trick may not be appreciated until you understand the way in which Director players store scripts and creates objects in RAM.

Director documents store all scripts and media in records called members (see figure 1.10). These member records are themselves stored in records called casts.

 

Figure 1.10

The parent scripts of objects are stored in the scriptText records of cast members of Director documents

If the engine code of a player is asked to look for a named script or item of media, it looks in the cast member records of the currently playing document for the name.

This is the key to manipulating the biotelemorphic cell because, if we can place scripts and media into the locations the engine looks in, we can call on the engine to act upon them.

In particular, we can use this route to install software objects into RAM which will have an existence independent of any document.

We shall be covering the exact nature of objects later but for the moment just consider them to be like miniature applications: a collection of scripts and media which are stored at a particular address in the memory space assigned to the biotelemorphic cell.

The complete design details of objects are always contained in special scripts call "parent scripts" which are used by the player engine to create an object when called upon to do so. (i.e., each object creation script (parent script) contains the full instructions - in text - for the design of a particular object).

To get an empty biotelemorphic cell to create an object in its RAM space, we have to make sure that a suitable parent script is at hand in a place where the cell engine knows where to find it.

The technique then, of getting a Biotelemorphic cell to install an object in its RAM space involves first getting the cell to first place a suitable parent script in a place where it will find it later - in the scriptText of one of the cast members.

 

Figure 1.11

The player will search for a parent script in the scriptText records of cast members when asked to create an object in RAM

Having placed the textual description of an object in a place where the player code engine can find it, we can then issue a command to the biotelemorphic cell to create an object to that specification (figure 1.12).

 

Figure 1.12

Once the parent script has been put in place, the biotelemorphic cell can be sent an instruction to create an object from it

If we had a parent script called "pokerPlayers", which contained all the detail necessary to create an object which could play poker, we could create a poker player named FRED by issuing the following birthing statement:

set FRED to new(script "pokerPlayers")

This command line, fed into a biotelemorphic cell, would go to the code engine and a poker playing object called FRED would be created in RAM according to the specifications found in a parent script named "pokerPlayers" (see figure 1.13).

Figure 1.13

A poker playing object named "FRED" is created in RAM from the specification found in the "pokerPlayers" parent script

Once the object FRED is created, messages can be sent to it (see figure 1.14) and FRED will be able to act upon these message (according to how it is programmed) to manipulate the code in the player engine.

Figure 1.14

Messages can be sent to the object "FRED" who can act on these messages to manipulate the player code and display the relevant responses on screen

From the same parent script, any number of similar poker playing objects can be created in RAM. Here is another command line to send to the biotelemorphic cell to create another poker playing object called JOE:

set JOE to new(script "pokerPlayers")

This object will appear in RAM and although created from the same parent script will be quite a different object with a different address and able to act quite independently of FRED.

Figure 1.15 shows how a poker game can be set up between the user of the biotelemorphic cell and the two objects FRED and JOE. Notice that the user, via the portal document, can send messages to either of the objects and also to the code engine of the cell.

 

 

Figure 1.15

When two poker playing objects are created in RAM the user can send messages to them both. They can send messages to each other and can communicate back to the user via the computer screen

 

The objects are completely independent and act on messages according to the responses which were specified in their parent scripts. These responses could result in them sending messages to each other to produce complex interactions - in fact the user could start the game off and then retire from the game to leave the two objects continuing to play.

The objects can independently manipulate the biotelemorphic cell's code engine using any appropriate commands and, if necessary, use the cell's engine to produce suitable displays on the computer screen (see figure 1.15).

From this you might be able to get a better idea of the concept of avatars. JOE and FRED are avatars. They have been manifested in the RAM space of the biotelemorphic cell.

By sending their parent scripts across the Internet by Email, they can be sent to play poker in other people's biotelemorphic cells. Poker playing objects, perhaps using different parent scripts, can be created by different designers who could email their players, as parent scripts, to an International challenge game at a neutral biotelemorphic cell somewhere across the other side of the world.

Before you catch your breath, at the realization of the implications of these biotelemorphic cell avatars, let me just mention that the game itself can be considered to be an avatar in its own right. A set of objects, working together purposely to achieve a purpose. In this example it is a trivial game of poker, but, the same principle can be used to design objects to work together for more serious purposes.

Imagine then, the possibilities of different objects coming in from all parts of the Internet to join in some activity within a biotelemorphic cell. Imagine objects competing and cooperating. Imagine objects adapting and evolving.

Once you can begin to get this full picture into your mind you will have begun to grasp the concept of the biotelemorphic avatar and will understand what this book is all about.

 

 

copyright 1997 Peter Small - No part of this document can be used or reproduced in any form without express permission

Details of book, CD-ROM and online continuation - peter@genps.demon.co.uk