Difference between revisions of "SL Cert - Basic Scripting"

From Second Life Wiki
Jump to: navigation, search
(Added overall categories, new skillsets, re-ordered things in a logical way since there's a lot more there now.)
Line 1: Line 1:
'''Rationale for scripting''' Demonstrate an understanding of what scripts are, their limitations and why they are used in second life.
+
== Intro to Scripting ==
 
+
These are basic skills needed to understand programming using LSL, but without going into specifics of specific functions.
'''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.
+
  
 +
'''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.
 
'''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.
 
'''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.
  
'''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.
+
== 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
  
'''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.
+
== Skillset 2: Script-Driven Events ==
 +
* timer, llSetTimerEvent, good practices
 +
* sensors, good practices
  
'''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.
+
== 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
  
'''Typecasting''' Understand the need to be able to convert one variable type into another by typecasting.
+
== 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
 +
''' 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
  
'''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.
 
  
'''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.
+
== 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.

Revision as of 13:46, 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

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.