SL Cert - Basic Scripting
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
- 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
- Movement in 3-D space
- Rotations, Vectors, and Quaternions
- 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
- Vehicle scripting
- Follow Camera controls
Linking, unlinking, permissions
Skillset 5: Advanced Communication
- Basic knowledge of web languages - Perl, Python, PHP, Java, etc
- 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.