Guide: Working with Scripters

You don’t get very far building in Second Life without requiring scripts.  Static creations can only go so far, and even something as (supposedly) simple as adding an animation will require a script to activate it.  Thankfully there are a large number of scripts available to use with a wide range of different permissions – for personal use, for use by builders in their own creations or full perm.  There are also a lot of scripts freely available from the Internet, but that isn’t necessarily a good thing.

One thing about scripts – if you don’t know much about how scripting works, how can you possibly judge a good script from a bad one?  And eventually you’ll get to the point where a script doesn’t quite do what you need and sooner or later you’ll either have to learn a bit of scripting for yourself or find someone who can help.  This guide is for you, for when you get to that point.

The “do it yourself” approach

Basic scripting is not particularly hard and there are many in-world and online tutorials to get you started.  However you must understand a couple of things.

Whilst it is easy to write a simple script, writing a script is not the same as having an optimised, reliable script that understands unexpected events (like sim restarts, changes of owner, difference between rezzing and script starting, etc).  Also whilst writing a script isn’t too hard (depending on the script) writing a script that you’ll be depending on in a wide range of products, on which you are staking your reputation, requires attention to detail, understanding the quirks of LSL and testing.   In fact however much testing you do, you probably ought to be doing a bit more.

And then there is performance.  LSL does not encourage good software engineering practices if you want low lag scripts!  There are things to consider in terms of memory handing or sim resources, for example, not keeping unnecessary listens open, inefficient use of lists and so on.

So whilst I encourage all to have a go, and to fully utilise the in-world scripting groups and online forums (good forums for help can be found on secondlife.com or sluniverse.com), its really only suitable for things for your own personal use, unless you know a bit about what you are doing.

Just imagine your major product lines needing updating because of a quirk in LSL that you didn’t spot.  That will be a lot of work!

Free Scripts

Another option is to take advantage of the wealth of free scripts that are published online or available in freebie stores and the like.  Free scripts are great for learning about scripting (it is so much better to have something to tinker with than try to write something from scratch).  And they can be a good starting point for achieving an aim in a product.

But, free does not equal the kind of quality you might need in a product.  It can, and there are some excellent free scripts out there, but unless you know a bit about scripting yourself, how will you know the difference?

Some things to look for might be:

  • recommendations to use the script or discussions about it in any of the forums.  Google is your friend here.
  • signs of a recent update – for example, if it is one of the free scripts in one of the libraries, when was it last updated?  If it hasn’t been updated for years, then either it is perfect or it has probably been abandoned.
  • when was it created – many of the best free scripts have been established for some time and have undergone plenty of polishing over the years.
  • watch out for examples and “first scripts”.  There are many that are “my first attempt at …”  Whilst it is great that people publish what they do, if this is the first time they’ve done something, then chances are that they will either miss something or haven’t been able to test it as thoroughly as you might need.  Also, if scripts are just re-hashing of the standard example scripts from the LSL wiki, then again maybe the author hasn’t really understood what they are doing, but just copied it verbatim.
  • Look for intelligent commenting and instructions.  Writing scripts is the fun bit, the hard bit is writing instructions on how to use them.  Any scripts that are “free, sold as seen, how you use it is up to you” are not really designed for major third party use as they are – they are probably more for other scripters to take as starting points.  A good system will have good documentation either in the form of in-script comments or a support website/documentation.
  • Look for evidence of error handling – maybe some messages telling the user that something has gone wrong (there is a lot that can go wrong when scripting for SL).
  • Look for contact details.  If a scripter has anonymously posted a script, with no details of how the script will be supported, then, well, it is unsupported :)
  • If the scripter is named, do they have a store too?  Do they sell scripts in their store or have they contributed to any of the scripting forums?  A quick Google of their name might give some clue as to their competence and real dedication to scripting.

If you find some well-commented scripts, with clear statements of purpose, a relatively long pedigree and signs of updating by a scripter who is contactable, then congratulate yourself on finding what might turn out to be something really useful, that someone has very graciously decided to give away for the benefit of others.

If you do find a free script that appears to do the job, then it might be worth finding an experienced scripter who can cast their eye over it for your before you stake your business on it, or at the very least ask people about it on one of the wanted forums.

Buying scripts

With everything I’ve said so far, you’d think the safest thing to do would be just to buy scripts off people who claim to be able to script.  That may well be the case, but unfortunately, unless you are buying copy/mod scripts (which essentially means full perm, as anyone can cut and paste script text around) there is no way of reviewing a script for quality.  And anyone can claim to be able to script.

So here, you are probably relying on reputation and reviews.

Most scripters, if selling scripts for use by other builders in their own products, will also sell a personal use only version for a much smaller cost.  Take full advantage of this to try what you buy before you commit to it.

Once again though, there are a few things worth looking out for, in addition to reading product reviews:

  • Support and contacts are vital – do they have a website?  What about a support channel?  In-world group?  Forums?
  • Search for the product to see if anyone else has had issues.  Do remember though, that with any Internet search-based review, people are much more likely to post when there are problems rather than when they’ve been successful, so for every visible problem there may be hundreds of invisible successes!
  • Does the scripter contribute to scripting forums?  If the scripter’s name you’ve just Googled is mostly associated with pleas for help in scripting forums, then maybe their script isn’t to be relied on. If the search results show an expert helping others, then that is a great sign!
  • Does the scripter provide any free full perm or open source scripts?  If so, this is a great way to see some of their work “first hand”.  Now remember that most freely published scripts are unlikely to get the same care an attention as something that has been listed by them as a key product, but you can still see if you get a good feeling about what they’ve chosen to donate to the greater good.
  • What are the instructions like?  A number of people can write good code.  A number of people can do good user or technical documentation.  The cross-section of people that can do both is probably not very big.  It takes a lot of effort to write good, concise documentation.  A lot of people just write something quickly as an afterthought – is that enough for you?

Remember that most scripts will be no-mod in order to stop someone simply viewing the script and copying the code out of SL.  Of course, stating the obvious, if you want it in your own products, it needs to be copy and trans.

Hiring a scripter

Now this is a very interesting area.  There are lots of different drivers that cause people to want to script in SL and finding the right incentive to getting someone to work with you is not always easy.  Lots of people have great ideas for projects in SL with absolutely no appreciation of the amount of effort it will require to script it, assuming that it’s even possible!  So whilst you may consider it to be the next great money spinner, most scripters will approach your idea with significant skepticism.  That’s just how it is :)

Remember that any good scripter is highly likely to be a programmer in RL – not always, but if they are a good programmer, that’s usually because it is what they do.  Consequently, when looking to hire a scripter, if it ends up just being “like the day job” then they will almost certainly earn far more just doing their day job than getting paid for scripting in SL.  SL rates are just not a competitive tradeoff for RL time.

So, whilst you may find someone who is quite happy to write you a script for the equivalent of a few $ an hour, most good scripters will only take part in your project if it appeals to them in some other way.  Remember SL is their hobby too, not usually their “work”.

Now some of the ways a project might appeal could be:

  • It’s an interesting programming challenge – most good programmers can’t resist a good challenge!
  • It’s something genuinely new in SL, that no-one has thought of, but it also appears actually possible.
  • The scripter can gain a significant, good reputation for doing a good job on your project.
  • The scripter can see potential for monetising the idea in their own way – maybe it would be a good product for them to sell themselves on the marketplace afterwards.
  • Something completely random!  Who knows why some people do the things they do!

Unfortunately the number of ways a project might not appeal are much larger!  I won’t list them all, but some warning signs for scripters may be:

  • The suggester has an unrealistic appreciation of the effort involved.
  • This is the suggester’s first major project.
  • The suggester assumes the scripter will want to be fully involved and engaged with their project as a long term partner.
  • There are woolly, or no, requirements.
  • The suggester is planning on reinventing several wheels as part of their project.
  • The suggester has a grand idea for SL, web, RL and kitchen sink integration, but just needs someone to “glue it together” for them …

So, if you are seeking to hire the services of a scripter, do some homework first.  Think about what you really are going to need them do.  Maybe considering hiring someone with a technical background just to help you flesh out what might be required.  With a lot of scripting, most of the effort and work is hidden behind the scenes.

Try approaching the wanted forums or in-world employment groups with a good specification of what you want to do.  Remember that the scripting forums are really there to help people script, not to ask for scripts or scripters.

Consider flexible remuneration terms, which might include rights to the code, up-front payments, something like-for-like (for example advertising for the scripter’s own endeavors), a share of your land for a specific time to sell some of the scripter’s own products, that kind of thing.

Remember a lot of the work required to take a script from a quick hack into a product that anyone can use is dull, dull, dull – testing, documentation, packaging, configuration options, etc.  Consider if there is any of this you can do for them – maybe offer to write an instruction manual for them.  Possibly you could do some foreign language translation of a manual?  Or make a tutorial video or do some marketing in other ways?

Proper error handing  takes quite a bit to code up, so maybe you could see if you can find a freebie or full perm script that seems to do a lot of what you need and then see if you can find someone to customise or review it for you?  Having a reasonable starting point that someone can work from will cut down the amount of up-front work quite a lot.  Of course, if the architecture of the script you’ve found is just not suited to what you now want to do, then you’ll have to accept the scripter’s view that you’ll have to start from scratch.  But if you can find a good start, it might not take a lot of work to make it robust and productise it (although at this point, someone else has already done the fun bit and you are asking the scripter to do the dull bit!).

User interfaces and configuration options also take a long time to do.  Every optional feature could introduce side effects and will need to be tested.  Do you want to interact via chat?  Using a dialog?  Allowing for both?  Will it only use linked prims or do you need sim-wide communications?  LSL is not good at storing large amounts of data, so anything significant may need external interaction, which will mean websites and hosting and web-scripting and maybe a database too.  That is suddenly a major piece of work.  Think about what you really need and prioritise your requirements.  Are there mandatory requirements?  What is optional?  What is just “would be nice”?  What is the minimal you can get away with?

If you do manage to find someone who will help, consider their credentials too – see what else they’ve done (all the evidence points from my notes about buying scripts and using free scripts applies in full here too).  Do they look like the kind of person who finishes things?  Have they written instructions for their own products?  Are they leaders with knowledge, or newbies who will go straight to a forum to ask others for help with your problem?

A lot of people might offer to help you, but might get bored and give up part way through.  SL is meant to be fun remember?  Why stick around if something ends up being too hard or dull?

Make sure you agree on who gets the rights to the code.  Remember exclusivity is very nice, but will cost you dearly!  Agree on the rights to the code – will you get the source or just a no-mod version?  Do they get to publish as they see fit afterwards?  They might want to turn it into a product or maybe they like to publish open source code for free.

How will the script be supported?  By you (for example, but finding someone else)?  By them?  If you are to get someone else to support it, you’ll need access to the source code. If they will support it, on what terms?  SL being SL, don’t expect 24/7 responses from them!  Don’t just assume you can friend them and then pester them anytime they are online.

And remember, custom programming, of any kind, is an expensive luxury – imagine trying to ring up Microsoft or Apple and asking if someone could add some custom feature to the next version of Windows or the next iPhone just for you :)

So, don’t be surprised if you don’t get much luck on your first few tries.

However, if you do find someone who does a good job for you, make sure you treat them well and look after them!

Thank you for reading!

If you’ve found this guide useful, please consider if you’d like to purchase the notecard version from the marketplace, and leave me a review or maybe you’d like to pay with a tweet.

Kimm


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
%d bloggers like this: