Difference between revisions of "SL Cert - Basic Scripting"

From Second Life Wiki
Jump to navigation Jump to search
Line 65: Line 65:
== Good Programming with LSL ==
== Good Programming with LSL ==
'''Rationale for scripting''' Demonstrate an understanding of what scripts are, why they are used in second life.
'''Rationale for scripting''' Demonstrate an understanding of what scripts are, why they are used in second life.
'''Script creation''' Show ability to create scripts in both primitives and inventory. Be able to transfer one to the other, set them to running or not and set relevant permissions for them.
'''Script creation''' Show ability to create scripts in both primitives and inventory. Be able to transfer one to the other, set them to running or not and set relevant permissions for them.
'''Commenting and Clarity''' Understand the benefits of keeping code legible, using the same style of writing throughout and commenting code where necessary.
'''Commenting and Clarity''' Understand the benefits of keeping code legible, using the same style of writing throughout and commenting code where necessary.
'''Understanding Lag''' Understand what has a high impact on a simulator and general limitations of code.
'''Understanding Lag''' Understand what has a high impact on a simulator and general limitations of code.

Revision as of 14:48, 12 February 2009

Intro to Scripting

These are basic skills needed to understand programming using LSL, but without going into specifics of specific functions.

Global and Local Variables Recognise the difference between the two and why using a naming system can be helpful to avoid confusion as script complexity grows.

States Understand what a state is and be able to explain why the default state is compulsory. Recognise that a script program essentially has no ending.

Events Understand what events are and how they can be used to capture input. Demonstrate this by scripting an object that says "I was clicked by (avatars name)" in public chat when touched.

Operators Understand how these can be used to manipulate variables and demonstrate this by creating an object that displays the number of times it has been touched in public chat.

Variables, Types and Constants Be able to recognise differant types of variable and how they can be used to store different types of information. Understand that constants are in essence a "fixed" variable

Functions and Parameters Recognise functions from their 'll' format and be able to explain why there is a necessity for so many different functions. Understand what a parameter is and why some functions do not need them yet still require brackets.

Conditionals Show an understanding of the if(condition) and use this understanding to create an object that counts the number of times it has been touched by its owner and display this information in public chat.

Typecasting Understand the need to be able to convert one variable type into another by typecasting.

Skillset 1: User Interaction

User Input and Communication

  • Text communication - llSay, llShout, llInstantMessage, llOwnerSay, etc
  • Text input - listen event handler and llListen, and their limitations and good practices
  • Script communication - Channels other than 0, llRegionSay, link_message event handler and llMessageLinked, llEmail

Subcategory: Non-Text Events

  • touch - touch_start, touch_end, touch, llDetected___ set of functions (we should include
    • touchXY functions
  • sit
  • attach
  • camera controls

Skillset 2: Script-Driven Events

  • timer, llSetTimerEvent, good practices
  • sensors, good practices

Skillset 3: Object Attributes

  • Setting size, shape, type, etc
  • Setting color and texture, both overall and by face
  • Lighting and other attributes
  • Cross-reference to object editing training

Skillset 4: Object Dynamics

Non-physics objects

  • Movement in 3-D space
  • Rotations, Vectors, and Quaternions

Physics objects

  • Basics of differences between physics and non-physics objects
  • Switching between physics and non-physics via script
  • Overview of energy, impulse, etc
  • collision events, best practices

Vehicles

  • Vehicle scripting
  • Follow Camera controls

Linking, unlinking, permissions

Skillset 5: Advanced Communication

Web interface

  • httpRequest
  • XML/RPC
  • Basic knowledge of web languages - Perl, Python, PHP, Java, etc
  • llEmail
  • Parcel controls, including media controls


Good Programming with LSL

Rationale for scripting Demonstrate an understanding of what scripts are, why they are used in second life.

Script creation Show ability to create scripts in both primitives and inventory. Be able to transfer one to the other, set them to running or not and set relevant permissions for them.

Commenting and Clarity Understand the benefits of keeping code legible, using the same style of writing throughout and commenting code where necessary.

Understanding Lag Understand what has a high impact on a simulator and general limitations of code.