Difference between revisions of "SL Cert - Basic Scripting"

From Second Life Wiki
Jump to: navigation, search
(Undo revision 268362 by Louise Rumpler (Talk))
Line 1: Line 1:
Linked from [[SL_Certification#SL CERTIFICATION - LISTS SO FAR|SL CERTIFICATION - LISTS SO FAR]]
+
'''Rationale for scripting''' Demonstrate an understanding of what scripts are, their limitations and why they are used in second life.
  
== Intro to Scripting ==
+
'''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.
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.
+
'''Commenting and Clarity''' Understand the benefits of keeping code legible, using the same style of writing throughout and commenting code where necessary.
 +
 
 +
'''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.
  
 
'''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.
 
'''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.
Line 10: Line 13:
 
'''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.
 
'''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.
+
'''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.
  
'''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
+
'''Typecasting''' Understand the need to be able to convert one variable type into another by typecasting.
  
'''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.
+
'''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.
 
'''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 - triggering animations for pose-balls
 
* 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
 
* Particle systems
 
 
== 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.
 
[[Category:Certification]]
 

Revision as of 13:21, 7 March 2009

Rationale for scripting Demonstrate an understanding of what scripts are, their limitations and 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.

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.

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.

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.

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

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.