SL Cert - Intermediate Scripting

From Second Life Wiki
Revision as of 03:24, 26 November 2009 by Grandma Bates (talk | contribs)
Jump to navigation Jump to search

Overview

Criteria required for persons to become certified in intermediate scripting.

Audience

Persons who wish to demonstrate competence in intermediate LSL scripting.

Prerequisites

Applicant must hold basic scripting certification.

Criteria for testing to intermediate level

Scripting includes a wide variety of categories. At the intermediate level the different categories are broken out separately. The different categories are given below with the associated topics. Note that there is some overlap between categories. This is because the different topics can not be easily divided and are related. Some topics may be necessary for multiple categories and are listed multiple times to avoid prerequisite clashes between categories.

Primitives, Objects

The different ways scripts can manipulate an object is included in this category. It does not include the ways to interact between objects and agents. The interaction categories are included in the detection and communications categories.

  • Faces
  1. Each face on a prim has a number associated with it.
  2. The number varies by prim type and can vary depending if the prim has a "cut."
  3. It is not necessary to memorize all of the face numbers for every prim. It is necessary to know how to find the information and understand how the convention depends on whether or not a prim is cut.
  • Changing color
  1. Commands for changing the color
  2. RGB definition of a color vector in LSL and how it is different from the editor window.
  3. Know how to convert back and forth between an RGB color vector in LSL and the format found in the editor window.
  4. Know how to identify when a color is changed using the changed event and the predefined constant CHANGED_COLOR.
  • Changing alpha
  1. Commands for changing the alpha level
  2. Difference between changing alpha level and the two different transparant textures, TEXTURE_TRANSPARENT and e97cf410-8e61-7005-ec06-629eba4cd1fb (invisiprim).
  3. Know how to identify when an alpha level is changed using the changed event and the predefined constant CHANGED_COLOR.
  • Changing textures
  1. Commands for changing the textures
  2. Predefined constants for UUIDs of textures
  3. Know the difference between the constants TEXTURE_TRANSPARENT, TEXTURE_BLANK, TEXTURE_MEDIA, and TEXTURE_PLYWOOD.
  4. Know how to identify when a texture is changed using the changed event and the predefined constant CHANGED_TEXTURE.
  • Particles
  1. Command to create particles
  2. basic limitation of particles
  3. basic understanding on how to turn particles on and turn.
  • Link commands and options
  1. Commands to determine the UUID, link number, total number of prims etc. for prims within the current object.
  • Text and pie menu text
  1. Commands to change the text over a prim.
  2. Commands to change the text for different options in the pie menu.
  • Primitive name and description
  1. Commands to get the name and description of a prim.
  2. Commands to change the name and description of a prim.
  • Dataserver events
  1. Basic understanding of the data server event.
  2. Basic understanding of the different kinds of information that can be obtained using the Dataserver event.
  • Obtaining object information
  1. Getting agent information (llRequestAgentData)
  2. Getting object information (llGetObjectDetails)
  • Sound
  1. Commands to preload sound files.
  2. Commands to play sounds.


Note that for many of these items there are a large number of commands asociated with the topic. For example, just to change the color of a prim the following commands can be used: llSetColor, llSetLinkColor, llGetColor, llSetPrimitiveParams, llGetPrimitiveParams, llSetLinkPrimitiveParams. It is adequate for a person to just know how to use llSetPrimitiveParams and llSetLinkPrimitiveParams to change the color of a prim, but the person should know the other commands in case they are asked to adapt another person's code.

Avatars and Agents

  • Sit positions and associated functions
  1. Setting the position and rotation of a sit position.
  2. Turning off a sit position after it has been set.
  3. Know how to set the camera orientation for a sitting avatar.
  • Permissions
  1. Basic understanding of the permissions system.
  2. Know how to obtain permissions and basic understanding when it is required.
  • Animations
  1. Know how to set a the animation of a person sitting on a prim.
  2. Know how to obtain permission before setting the animation.
  3. Know how to remove an active animation.
  • Camera Controls
  1. Know how to obtain permission to change the camera orientation.
  2. Know the basic ways to change the camera. (Static positioning)
  • Dataserver
  1. Know the commands that can be used to obtain information about an agent.
  2. Know how to obtain agent and avatar information via the data server event.


Inventory and Simulator Information

  • Notecards
  1. Get the number of lines in a note card.
  2. Step through and get each line in a note card.
  3. Know how to stop reading a note card by testing for the EOF constant.
  • Detect when the inventory has changed.
  • Inventory information
  1. Get the name of the creator for an object.
  2. Inventory numbering system.
  3. Inventory types.
  4. Inventory Permissions.
  • Basic use of the llRequestSimulatorData command.


Intermediate I/0

  • Text commands
  1. Dialogs
  2. Limitations of chat commands
  3. Email
  • Text and menu
  1. Setting text over an object
  2. Commands to manipulate the pie menu
  • Link messages
  1. The link_message event.
  2. Sending link messages.
  3. Limiting link messages to specific prims within a build.
  • Basic security
  1. Relying on arcane channels is not secure.
  2. Methods to insure a message is coming from an agent/object.
  3. Basic validation using MD5 and SHA1 hashes


In addition to the basic chat commands and listen event defined in the basic level the person should now be able to perform more advanced interactions including the use of dialogs. Also the person should have a broader understanding of the limitations of chat commands and know how to use the options to share email messages between scripts.

Also, the person should be able to change and manipulate the text over an object as well as remove the text over an object. The various commands to change the text in a pie menu should also be known.

In addition to the chat and listening events the person should also know how to use link messages to communicate between scripts within an object. The person should know all of the options to communicate to specific prims or all of the prims in an object using link messages.

Finally, the person should have a basic understanding of security issues and limitations. The person should be able to identify and check for specific agents as well as check and limit communications for ownership and group identities.

Predefined channels (DEBUG_CHANNEL and PUBLIC_CHANNEL).


Physics

  • Linear and Angular Force
  1. Know the commands.
  2. Know the difference between local and global settings.
  3. Know the difference between linear and angular forces.
  • Linear and Angular Momentum
  1. Know the commands.
  2. Know the difference between local and global settings.
  3. Know the difference between linear and angular momentum.
  • Vehicles
  1. Know the basic commands and settings to initiate a vehicle.
  2. Know the basic ideas behind the different options.
  3. Know the impact of changing the individual parameters.


Detection

  • Touch events
  1. The three touch events.
  2. Functions to detect information about who has touched a prim.
  3. Passing touch information to other prims in a build.
  • Collision events
  1. The three collision events.
  2. Functions to detect information about what/who took part in the collision.
  • Land collision events
  1. The three land collision events.
  2. Functions to detect information about what/who took part in the land collision.
  • Sensors
  1. The sensor commands.
  2. The two sensor related events.
  3. Limiting the scope of a sensor.
  4. Limitations of a sensor.


Programming and Software Development

  • More advanced use of lists.
  1. Adding to a list.
  2. Removing part of a list.
  3. Inserting into a list.
  4. Replacing part of a list.
  5. Finding an item in a list.
  • More advanced string functions.
  1. Removing a substring.
  2. Replacing a substring.
  3. Inserting a substring.
  4. Finding a substring.
  • More advanced revision systems.
  1. Basic understanding and use of at least on revision control system. (ex: RCS, subversion, or git)
  2. Be able to maintain revisions and find particular revisions using at least one revision control system.
  • Workflow
  1. Demonstrate effective interactions with clients and remain flexible through the entire development cycle.
  2. Be able to establish a basic plan for the creation of a script that must accomplish multiple task.
  3. Be able to adapt the plan as the requirements change.
  4. Be able to provide effective mock-ups and trial programs for clients.