We’re in the same boat then @Vivienne. I learned BASIC programming from a book on BASIC programming for the TRS-80 Model I, even before I owned one. Eventually I did, and then I moved on to the TRS-80 Color Computer 3, which had a virtually identical BASIC. I also did a bit of assembly language programming on both machines (Z80 on the Model I and Motorola MC6809 on the CoCo). I did a bit of x86 assembly on the PC as well, but that was ages ago. I stayed away from coding for a long time until I stumbled into SL, and SL let me explore two areas where I have interestes, 3D modeling, and coding. Learning LSL was a bit of a challenge because I was used to line programming like old school BASIC. I had tried several times to learn C, but I just couldn’t wrap my head around event driven coding, but when I found SL, LSL was simple enough (I guess) that i had that ah ha! moment staring at the hello world script. I realized that events were code containers that would execute the code within that container only when that event was true. I think it was the visual of having the cube there, and when I left clicked it, it would say “touched.”, and then looking at the code, I realized that touch_start() was the event, and that the code within the brackets was getting executed when I “touched” the cube. It was a major ah ha moment for me…lol.
After that, I wrote a simple script with a listen event so the object would respond to certain text and play a sound when touched. Then, like now, I wanted to move on to a more complex project, and decided making an analog clock would be a good choice as it wasn’t too complicated, but it would force me to learn more stuff. I wrote that, and learned more stuff like texture rotation, reading the system time from the server, etc… so, once I finished the clock I decided to go into business selling them. I started making different style clocks, wall clocks, post clocks, mantle clocks, and a Tower clock for “big ben” style builds. I added hourly chimes to the tower clock, and a faint ticking sound to wall and mantle clocks, A menu for setting the time, turning on and off the hourly chime on clocks that had it. Eventually I found others in SL that sold clocks, and while some were nice looking builds, most simply told the time in PST only and that’s it, no ticking, no chimes, no menus, nothing. What started out as an idea for a slightly more complex script ultimately taught me half the LSL. I got tired of repacking a notecard with my new location every time I moved, (I scripted the clocks to hand out a notecard and landmark to my shop), so I wound up coding an http request to pull an html file from my website that contained a SLURL to my current location, when I moved, I simply edited in the new SLURL and every clock I sold would automatically reflect the the location of my shop, right now, since I don’t have one it points to the marketplace.
Over the years, as I improved at LSL and Linden Lab improved LSL and 3D modeling I would improve my clocks and clock scripts. I eventually went through about 5 different versions of the script. My original clocks took a minimum of 3 prims (face, hour hand, and minute hand), and had two scripts (one in the minute hand prim, one in the hour hand prim). SL eventually added the ability to control the rotation of a texture from a linked prim, so that got me down to one script, and mesh enabled me to create 3 cylinder faces linked together in a single, less than 1 prim object. I took 3 cylinder faces, put a separate material on each face, and linked them together with the faces stacked one on top of the other. In SL I simply stretch it on the x axis so I can access each face, put a clock face on one, the hour hand on another, and the minute hand on the 3rd. I also had removed some bugs and tightened up the script over time, but in the end some of the more complex scripts that controlled multiple clocks (for two faced or four faced post clocks) and had all the bells and whistles like the menus, chimes, ticking, etc. eventually grew into a 500 line script !
SL also made me a better modeler and forced me to get out there and learn Blender and Photoshop, so, while I’m “ok” at both, not exactly an expert, I can do quite a bit with both. I think that’s why I wanted to be involved here, because most of my coding, modeling and image processing skills are directly due to SL, so I feel like I owe @philip alot