Versu: making NPCs human

versu-5Amidst all the focus on Second Life and the emerging press coverage on its tenth anniversary – with Gamastura being the latest, providing a very short, punchy and positive piece based on the All Things D article which I examined here over the weekend – it is easy to miss the fact that another of LL’s products, Versu, has also gained a little media attention.

Versu, the Lab’s interactive storytelling application for the iPad, launched back in February with little fuss or flag-waving.  Since then, there’s been little news. It doesn’t appear as if the library of titles available for it has grown to any degree, and there has been little in the way of any word from the Lab as to the future of the product. Versu hasn’t been updated since March 2013, the promised Android version has yet to surface, and there has been no news on the Lab’s broader plans to allow users to write and publish their own stories.

However, in June, UK magazine New Scientist published a piece on Versu, AI gets socially savvy, written by Douglas Heaven. The article was born out of Richard Evans, one of Versu’s co-creators, presenting a paper entitled Versu: A Simulationist Interactive Drama, at the Games and Media Event held in May 2013 at the Imperial College London. Heaven’s piece also appeared in New Scientist Online under the title AI makes social game characters all too human.

One of the current Versu titles
One of the current Versu titles

It’s a fascinating read. Not only does it give a greater insight into the power and versatility of Versu – something which is potentially easy to dismiss when first encountering the product on paper -, it also suggests ways in which applications such as Versu could be used to assist with or study a range of real-world social and other situations.

FLIRTY, shy or gossipy… these aren’t the typical traits of a bit of computer code. But a simulation system that gives computer-controlled agents a sense of social propriety could change that, leading to more realistic interactions between humans and characters in games.

So opens Heaven’s piece, before going on to give some background on Evans himself, who is not only one of the two minds behind Versu, but also worked on The Sims 3, before going on to set-up LittleTextPeople with Emily Short, which the Lab acquired in January 2013, and from which Versu was born. Interestingly, one of the motivations to generate such a rich depth to Versu’s non-player characters was the frustration Evans had with the behaviour of characters in The Sims 3 where, Heaven notes, computer-controlled characters would suddenly behave inexplicably, shattering the illusion of realism – such as visiting a neighbour’s house and having a bath…

To avoid this, Versu characters are not scripted, per se, as the New Scientist piece notes:

Versu character screen (click to enlarge): you chose the characte you wish to play, the rest will react to you based on a range of social rules, their own goals, and your actions in the story (image courtesy of Linden Research / Apple Computers)
Versu character screen: you chose the character you wish to play, the rest will react to you based on a range of social rules, their own goals, and your own actions in the story (image courtesy of Linden Research / Apple Computers)

Each of its computer-controlled characters is governed by a deep model of social propriety. They react to rudeness, disapprove of bad manners, and they know a violated social norm when they see one. They gossip, show off and flirt. To make such behaviour possible, Evans streamlined the code that defines characters’ beliefs and desires. This allows them to weigh the consequences of many possible actions before deciding how to behave…

The behaviour of the agents [characters] is not scripted. Instead, they each have a unique set of goals and desires that govern their behaviour. No two play-throughs are likely to be the same.

This approach allows the Versu characters to “play out their own soap opera independently”, which can have some very surprising repercussions, as Evans noted in his presentation. In it, he relates that when testing Versu, he was surprised to find he was being snubbed by one of the characters. It wasn’t until he examined the game’s logs that he found out why. Earlier in the game, he had been rude to another character, who had gone on to tell others of his unpleasantness, with the result that Evans found himself snubbed later in the game.

Because Versu uses social rules to govern the actions and reactions of non-player characters, it is seen as a particularly powerful tool for modelling human interactions, which is in turn bringing it to the attention of academics as well as gamers.

Evans also sees a wider potential for the technology developed for Versu, suggesting that it could be used in a wide variety of activities – such as helping soldiers learn to interact with  civilians in a war zone, or young people to deal with bullies.

Of all the new products launched to date by the Lab, Versu is the one which has piqued my curiosity the most – and it is also the one I’ve found to be the most frustrating, given it is restricted to the iPad and lack of any further news on it coming out of the Lab. Evans’ paper and this New Scientist article therefore both provide welcome insight into the app, and on its potential for the future – assuming the Lab shares in those aims and remains committed to developing and enhancing Versu.

Related Links

SL projects update week 28 (1): servers, SSB/A, viewer, snapshots

Update Wednesday July 10th: In checking the forum deployment thread for this week’s roll-outs, I see that KarenMichelle Lane has provided a list of regions on LeTigre where SSB/A will be enabled once they have restarted. Again, you’ll need to have an SSB/A-enabled viewer to avoid issues with avatar rendering on these regions. If you find that once the restarts have completed you are encountering issues with avatar rendering (for example, you are using an SSB/A viewer and find you avatar fails to render for yourself or others), or other issues which appear to be linked to SSB/A, please consider raising a bug report detailing the problem, how to reproduce it, and including your environment information (Help > About (Viewer Name) > Copy to Clipboard), which references Project Sunshine.

Server Deployments – Week 28

As always, please refer to the week’s forum deployment thread for news, updates and feedback.

Second Life Server (SLS Main) Channel

On Tuesday 9th July, the SLS Main channel received the server maintenance package previously deployed to all three RC channels in week 26. This comprised:

  • A fix for ‘llApplyImpulse now works only in the root prim’ (SVC-8227)
  • Crash mode fixes
  • New LSL function: string llXorBase64(string str1, string str2)
    • Returns a string that is a Base64 XOR of Base64-formatted input strings, str1 and str2.
    • Addresses the cases from SCR-35 “llXorBase64StringsCorrect returns wrong result when the 2nd string contains nulls”
    • Aside from those cases, this function behaves identically to llXorBase64StringsCorrect()
  • Added max_materials_per_transaction to /simulator/features cap
    • This number returns the maximum number of materials that can be sent to the “RenderMaterials” capability in a single request.


Release Candidate Channels

On Wednesday July 10th, the three main Release Candidate channels should each receive individual updates, as follows:

  • LeTigre should see the Server-side Baking / Appearance code enabled. See my mini-update here
  • BlueSteel should receive a further package of under-the-hood changes related to the experience tools
  • Magnum should receive a server maintenance project intended to fix a couple of pathfinding issues:

Viewer Updates and Release Process

  • The Second Life Beta viewer updated to release on July 2nd – see the release notes for change details.
  • The Materials Project viewer was also updated on July 2nd, to release

Speaking at the Opensource UG meeting on Monday 8th July, Oz indicated that he hoped the new viewer release process would go live on Tuesday July 9th. If this has in fact happened, the first viewer to pass through the new process is likely to be a project (or beta viewer) with further third-party code contributions to the SL viewer.

However, as both the SSB/A deployment and the new viewer release process both require an update to the login code, it is possible the new viewer release process will not go live until Wednesday 10th July.

The login change for the viewer release change is to update the automatic check which is carried out to see if a mandatory upgrade is required (see my week 20 report). To prepare for the new release process, is check has been updated. , the login change for SSB/A is described by Oz Linden as, “a very minor change to ensure that inventory is correct” .

Group Ban List

Baker Linden and his new harido
Baker Linden and his new harido

Baker Linden continues to work on the new group ban list functionality (JIRA VWR-29337). Speaking at the Simulator User Group on Tuesday July 8th, he said:

For my update: I’m making really good progress on group bans. I’m doing a bit of a refactoring because I changed the way the backend works slightly. Hopefully by the end of the week I’ll be finishing up the backend code.

There’s currently no date as to when the viewer-side changes might see the light-of-day, but given Baker is currently working on the back-end, this is hardly surprising. He’s also indicated that while it won’t be available when the new functionality goes live, he is considering adding scripting functions to group bans. He also confirmed that group bans would have their own moderation capability, rather than being tied to estate ban moderation.

Particle System Updates

Particle Blocking

As previously reported in these updates, the new “right-click on particles to block and emitter” (MAINT-2268) code for the viewer has been released in the SL Beta Maintenance Viewer. As well as allowing people to click on particles to prevent the viewer generating any more particles in someone’s world-view, the code also has a FPS limit on particles and will stop generating new particles when frame rates drop to 4 FPS.

Those who have tested the capability report it works well and it is very easy to right-click on particles and block them. A slight bug has been reported whereby when unblocking a particle generator / person owning a particle generator, the viewer will not resume generating the particles until the user changes their group tag.

New Particle Capabilities

First reported on in these pages back in week 12, the new particle capabilities – glow, ribbon and blending optionshave had server-side support for some time. The Beta Maintenance viewer mentioned above now has the first part of the viewer code, and speaking at the Simulator User Group meeting on Tuesday July 8th, Simon Linden said, ” Once that one is out, we’ll get the next one going,” so expect these capabilities to be becoming more radily available in the near future.

Ribbon particles – one of the new particle capabilites

Other Bits

Snapshot Fixes

The SL Beta Maintenance veiwer includes further snapshot fixes (MAINT-2152) which are designed to overcome the problem of black rectangles  / borders appearing in very high resolution snapshots. These fixes are in addition to the “tiling” fix issued last year.

However, Whirly Fizzle reports that if very high-res snapshots are captured with the Beta Maintenance viewer and post-processed, the tiling artefact tends to return.

Post-processing high-res images captured using the additional snapshot updates (as found in the current SL Beta Maintenance viewer) can result in tiling artefacts reappearing (image, originally in PNG format, courtesy of Whirly Fizzle.
Post-processing high-res images captured using the additional snapshot updates (as found in the current SL Beta Maintenance viewer) can result in tiling artefacts reappearing (image, originally in PNG format, courtesy of Whirly Fizzle.

Simon Linden reports that a further update to these fixes is about to be released, although it is not known at this time if it will fix this issue, or a reported issue of GPU crashes when using the Beta Maintenance viewer for snapshots.

Your Skin – In the Sky

The issue of avatar skins appearing in the sky at very high altitudes (see JIRA VWR-28962) came up for discussion at the Simulator User Group. First reported in 2012, there is some speculation whether SSB/A will impact the frequency with which the issued manifests; it appears to be linked to the local bake process, and so may only occur in the future when people at high altitudes are editing their appearance.

The "face-in-sky" issue (image courtesy of Eku Zhong)
The “face-in-sky” issue (image courtesy of Eku Zhong)

In the meantime, if you are up high and encounter this phenomenon, try toggling the Advanced Lighting Model option in Preferences > Graphics off / on.