Monthly Archives: February 2010


In game advertising, Knives, Burgers and Shoes

The predlets asked me to put the “crashing game” on the xbox today. It was odd as we had not played Burnout Paradise for a very long while. It is relatively speaking a very old game but has been kept fresh with all sorts of updates. I noticed too many of my friends list were back playing it so it was all very serendipitous.
In particular was the fact that next week I am helping to facilitate an ideas generation workshop with the games industry and government (via Ren Reynolds Virtual Policy Network (tVPN) on how to engage sensibly and interestingly with the population.
So there the predlets were driving through the streets of paradise city when I saw these posters served via the in game advertising. Burnout being a network enabled game the ads tend to be dynamically served and clearly targetted as UK specific ones.
Job centre
Job centre plus for the UK
Knife crime
Knife crime
Burgers
Burgers.
So that seems to indicate that the players of video games are expected to be prone to carry a knife, be unemployed and mainly eat burgers?
There was some hope though with this one
Charity
A charity awareness movement for One Day Without Shoes on April 8th this year
This is the sort of in game placement that makes sense. The billboards keep the view of the city quite fresh, and do not detract from the experience. So apart from the implications of the types of advert targeted at the UK, or maybe just targeted at me it seems a generally good concept.
Would it mean though that coming up to a general election all parties would need enough of their own billboards in games to be representative. Would it turn gamers off to see the spitting and fighting on billboards? Lets hope we don’t have to find that one out!

Merging content with 3Dvia

I finally got to switch on my windows machine and try 3dvia scenes. 3Dvia is a collection of uploaded multi-format 3d models that has an interesting iphone app to go along with it which I had mentioned in a few posts
Now there is an extension to the web site called Scenes. This allows you to create a “room” or a place and drop in the 3d content from the library. You have an avatar based experience in the browser plugin wandering around your room, other can join you for chat and also be allowed to edit things.
3dviaplaces
This worked really well (once my flaky windows vista machine started up). So my only complaint (or wish) is that this would be a cross platform plugin like unity3d is. *Update it may well be it just did not work. The 3d model player does work (though in firefox not safari, but the places player is a .exe at the moment I think)
The content in this scene shows the variety of sources.
The character on the right is the exported version of my Evolver avatar (though it is a static 3d model in this case)
The sculpture on the left is one that I doodled on my iphone with sculptmaster
The wild animal is someone elses, I left the description panel in the picture as you just drag and drop from the search to keep the credit in place.
The figure in the centre is an animated walking moving avatar in world.
D’assault Systemes are certainly doing a good job for us in showing the ability to transfer and interact with pure 3d content.

Mashing up web and Second Life Viewer 2

We have always (as land owners) had the ability to set video parcels in Second Life. This has of course been a bit of a pain with only one video stream, or web page display allowed per parcel. Now we have new media sharing abilities. This has already been implemented in some of the other platforms, but most of those are less user generated in their content.
I tried a few extensions out to ideas, in particular powered by the fact that SL will play interactive flash now not just flash movies as before.

http://www.text2mindmap.com http://www.duckfeetdesigns.com/flocking.htm and Β http://www.habbohotel.co.uk
I used a mind map tool on the web and mashed it with wearing a sphere for a presentation. i.e. you can wear interactive web applications now
I dropped myself into a flash based flocking display where I controlled the direction of the fish.
Finally I popped into Habbo Hotel.
There are of course a few issues and gotchas with interacting with flash. The experience is not totally shared. The browser URL is shared, but not all the interactions. This is only to be expected. I am not complaining, but I know that this will confuse some people. A web interface is inherently single user even if there are multiple users of a system.
Loggin in and personalizing your view of a system is not going to change others views unless the controlling website knows whats going on with this virtual world and multiple users hitting it in context.
There are a lot more things we can do now though, website based HUD’s(I have a transparent twitter hud on right now), textures stored off world (though we are limited to 8 player surfaces at the moment so this could get clunky).
With the combination of SL being able to create HTTP Server objects too we have quite a loop of connectivity.
This is very exciting stuff as many of the projects over the years that I have been involved in move data around and in and out. Things got a whole lot easier I think.


Posting from Second Life Viewer 2

As we were all given access to Second Life viewer 2 just now (not sure why I missed out on the closed beta, but no matter) I thought I would try the full web page on a prim.
This picture I took from within world of me tweeting on the side of a prim whilst also browsing this blog
Postcard from Second Life.
In fact I wrote this post on the side of a prim. So it works(I posted it live from a normal webpage, it should have worked but just dropped into draft πŸ™‚ nothings perfect)
# slviewer2 is very exciting stuff once you get past the chat window moving around!
**Update I also sparked up habbo hotel on a prim and that worked fine (as its just flash). Its a pity Metaplace isn’t there as we would have had some interesting cross media experiences there too.
It has made the interacting with existing content very very easy. Whiteboards, brainstorm tools, videos, etc. All very powerful.

Happy Birthday Feeding Edge

Today it is 1 year since Feeding Edge started to take a bite out of technology so you don’t have to.
feedingedgelogobirthday
I have to say that my first year as an entrepreneur not and intrapreneur has been quite learning experience, though at the same time a familiar one.
There have been lots of interesting meetings and conversations, ideas for projects, requests for help. There has been an awful lot of doing things that needed doing without an obvious and direct payback. Out here in entrepreneur country relationships and helping one another is even more important than in corporate life.
Equally out here you are not a role or a professions. You are whatever you need to do, whatever you feel you can do, you just get on and do it.
The things I have done have crossed many technical platforms and boundaries, much of it cant be shared (which is a pity). Everyday brings a new challenge, whether that is having an idea and seeing if it is possible or talking to people and providing some insight and support to discussing funding of a project.
Do I miss the corporate life? Well after 20 years its hard not to be institutionalised. I miss the good people I worked with, the things we did that mattered in spite of those that had their own more selfish and closed agenda. We all need flags to rally around, I now have Feeding Edge, for which I have a comfortable affinity for and a multitude of projects, customers and collaborations that orbit it.
I miss the paycheck, a known entity every month, and without my wife’s support whilst we build the business and the various revenues streams (listen to me! revenue streams πŸ™‚ ) then this year would not have been possible.
A huge thankyou goes out to all the people who have offered support, talked to me, asked for help and suggested projects.
To all my fellow metaverse evangelists we still have a way to go, but I think we can get where we need everyone to go πŸ™‚
I figure whatever you do you always “work” for someone or something. Family, a cause, a team, shareholders. Finding the thing that sparks your brain, makes you feel engaged an interested really is the key. I have always loved what I do and that’s not changed.
So onward and upward πŸ™‚
If you need me just come and say hello, wherever or however suits.
Linkedin
Twitter
Facebook
epredator potato in Second Life
epredator [at] feedingedge.co.uk
etc. etc. πŸ™‚

Raph’s gamification of everything, Homo Interneticus and the Octupus

I was catching up on some blogs before jumping on a train and heading to London to discuss one of my major threads of work at the moment which could be described of gamification of a particular genre of interaction. Up on the feed reader pop’s Raph’s gamification of everything post. Its always hard to ignore serendipity when its been so vital to me over the years.
I am not going to repeat what Raph said, go and read it, but he makes a very good points that whatever your objections to the gamification of certain services, however industries, governments, leaders are using basic human psychology, paired with the communication the web gives us, this sort of interaction is not going to go away and we need to take a balanced view.
If you have ever got a buzz from receiving a level up in a game, or a promotion level at work, or a prize at a competition or a complement well meant then you already know of the impact of recognition.
Computer mediated experiences allow very quickly for new achievements to be generated for a never ending set of levels and trophies to be created. If you map that to a promotion structure in your average corporate, those events are few and far between and unable to be restructured due to legacy promotions of others. It is fairly easy though for World of Warcraft to introduce another 10 levels on top of the uber level of 70, or for Pet Society to introduce yet more rainbow poo.
Of course, as Raph points out, when these reward structures are applied to things such as parenting, politics, product use who is it who decides the structure and what are their motivations.
“There are plenty of valid concerns to be had here. But it’s not going to go away. Instead, we need to be thinking about what our accommodation is with these technologies and approaches. Almost all of this arises simply out of better knowledge of ourselves and our psychology paired with improvements in communications technology. And that is not a new problem β€” it’s an old one.”
“the concerns that arise from gameifying the world apply in larger measure to non-games.”
The last part of the BBC Virtual Revolution programme looked at Homo Interneticus. How we are evolving and changin the way we enagage with information and with one another. There are of course concerns to be raised but there is also the potential that we are in fact now interacting in ways that suit how our brains work, in an associative fashion rather than in a way that has been restricted by some of the ways we could interact with information before. (I took the web behaviour test BTW and came up as a Web Octopus)
It was interesting in the programme to hear Susan Greenfield refer to the dangers of online interaction for our brains. Here premise being that there are no consequences to our interactions online, because if you break something in the real world its broken, break it online and it doesn’t exist. That is of course missing quite a lot. There clearly are consequences to your online interactions. True if you play a game with respawning on, you die, you are back again. That though is like playing hide and seek as a child. You are found, you go hide again. However when you interaction is with people and their things online you have the ability to enhance or reduce the quality of the relationship with them just as much as sitting around at dinner. It is true if you understanding of physics comes solely from a simulation of physics you may be surprised at the real world results, but equally you may learn more about physics by being able to play with and experience forces that would be impossible/really hard in real life.

I did really like the video Raph posted from Stargate studios on video compositing and not believing everything we see. It’s come a long way from a bit of film projected behind an actor. Though I do find some of the street scene changes in this as a little odd. Why not just leave it as it was? Which I guess comes back to the point. Who makes the changes and why.

Brushing with java once more

Way back in the dim distant past I spent a lot of time with Java as a language. It was the up and coming write once run anywhere new kid on the block. The trouble was we had to deal with client side applets and the delivery of those to places was getting to be a bit of a mess with lots of plugin’s classpaths and all sorts of clunkiness. On the server we had very rich application server environments like Websphere, Weblogic and ATG Dynamo. They worked well, but were just too big to do anything quickly, so along came PHP (Personal Home Page) which just let people do stuff. Its the foundation of many a blog (WordPress is all PHP as is Boonex Dolphin). PHP talks to nice simple database servers like MySQL. The sort of thing we were doing on Websphere.
However, not we are back to needing richer applications, maintaining state and server side cleverness I seem to be bumping into Java again.
Smartfox server is Java, persisting UDP connections talking to MySql etc that I am talking to with all sorts of clients like Unity3d.
Another project is modelled in Java but talks to Second Life.
Project Wonderland is Java and works really well. I got a great tour of the workings of Wonderland. One of the things you know will happen with Java is the software engineering will be in place (in general). PHP seems to be quicker to hack and you can do good design, but why would you. Java is more for the engineer.
Hence we get things in virtual worlds like Project Wonderland’s toolkit around capabilities. It feels a very Java way to do it, and the notion of containment fits well with a pure OO language.

Project Wonderland Capabilities from Nicole Yankelovich on Vimeo.

Of course when it comes down to it good code is good code.
The impressive thing now is that the cloud servers and server providers like Slicehost running things linux means that it is very easy (its all relative) to get a java package(like wonderland or smartfox) and get it running, or get a mono package (like opensim) and get it running, or just do a LAMP (linux, Apache, Mysql,PHP) application running.
It means, once a little fiddling around is done) that applications can be built not just installations of difficult software. Its not quite utility computing, there still has to be something for us techs to do, but it feels way easier than it used to to get going with applications now.
I have to say how great all the resources on Slicehost are too, for things like the magic apt-get incantations you have to do to easily get the AMP in LAMP going πŸ™‚

Getting caught out by c# in Unity3d and Smartfox

Warning a moderately techie post with no pictures.
I have been a programmer since I was 14 and I have used an awful lot of programming languages and danced around many a syntax error. When you do spend all day everyday in a particular environment the basics tend to just flow, when you chop and change from code, to architecting to explaining and sharing with people, sometimes the context switch gets more tricky. Todays tech world is also full of many flavours of component that we wrangle and combine. There were two in particular that were causing me hassle and I needed to look up more than once so I figured if I am having the problem then so will someone else πŸ™‚

Up to now most of the things I have done in Unity3d with various experiments use the basic examples and provided scripts or variations on them. These are all in Javascript or the .js deriviative that Unity uses.
However, now that I am talking to the Smartfox server pieces it’s become more useful to to do .cs (C#).

The first is calling a script in a function on another object in the scene.
In .js its straight forward
GetObject("RelevantObject").GetComponent("AScript").DoWork("passingingvalue");

Where there is a .js file called AScript with a function DoWork in it accepting a string. Attached to the object “RelevantObject”
It is just regular dot notation method access
(I know that it is no efficient to go and find the objects and components everytime but it is easier to illustrate the point in a single line)

In .cs its nearly the same but….
BScript someScript = GameObject.Find("RelevantObject").GetComponent();
someScript.DoWork("passingingvalue");

Where there is a BScript.cs file attached to “RelevantObject” but being c# is is not just the file name but a proper class definition.
So going from the quick lets just get this done of .js you have to be a bit more rigorous though it all makes sense πŸ™‚

using UnityEngine;
using System.Collections;

public class BScript : MonoBehaviour {

// Use this for initialization
void Start () {

}

// Update is called once per frame
void Update () {

}

public void DoWork(string sval){

//do something with sval
}
}

The other problem I had was more related to using Smartfox server.

I was attempting to set Room Variables. These are server side containers of information that when they change will generate an event to clients that have registered an interest. i.e. very handy to preserve the state of something and send it to multiple clients. The main smartfox Unity Island multiplayer demo uses more direct message to send position transforms for players.

It worked setting the variables, and I could see them in the Admin client. I also got the change message and the name of the variable(s) that had altered, but I kept getting exceptions thrown in the getting of the variables.

After a lot of hacking around it seemed that
room.GetVariable("myname"); //doesn't work
room.GetVariables()["myname"]; //does work

i.e. Get the whole hashtable with GetVariables and reference it directly versus getting the GetVariable function to do that indexing for you.
Now this may just be a wrong version of an imported DLL somewhere. I have not built the entire Smartfox Unity3d plugin again. It does work, so this may be a work around for anyone who is having problems with Room variables. It works enough for me not to worry about it anymore and get on with what I needed to do

Other than that its all gone very smoothly. Smartfox Pro (demo) does what I need and then lots more. I have had conversations and meetings with people in my own Amazon cloud based instantiations of unity powered clients. Now I am over any brain hiccups of syntax again its onwards and upwards.

Look just how simple things can be. Unity3d accessing the web

I have been doing a lot of Unity3d with data flying around, but I am still amazed at just how easy it is to get things to work.
For the non-techies out there this should still make sense as its all drag and drop and a little bit of text.
So you need a web based walk around some of your flickr pictures?
Unity3d makes it very easy to say “create scene”, “add terrain”, “add light”, “add first person walker (the thing that lets you move around” and finally to say “create cube”.
It is as simple as any other package to create things, just like adding a graph in a spreadsheet, or rezzing cubes in Second Life.
Once the Scene is created is it very easy to add a behaviour to an object in this case this script is types in and dragged and dropped onto each cube in the scene. (its in the help text too)

var url = "http://farm3.static.flickr.com/2656/4250994754_6b071014d4_s.jpg";
function Start () {
// Start a download of the given URL
var www : WWW = new WWW (url);

// Wait for download to complete
yield www;

// assign texture
renderer.material.mainTexture = www.texture;
}

Basically you tell it a URL of an image, 3 lines of code later that image is on the surface of your object running live.
The other thing that is easy to do is drag a predefined behaviour of “DragRigidBody” on the cube(s). Then you get the ability to move the cubes when they are running by holding onto them with the mouse and left click.
UnityScreenSnapz001
UnityScreenSnapz003

Now the other clever piece (for the techies and programmers amongst us) is that you can create an object of collection of objects and bring them out of the scene and create a “prefab”. This prefab means that you can create lots of live versions of an object in the scene. However if you need to change them, add a new behaviour etc you simply change the root prefab and the changes are inherited by all the prefabs in the scene. You are also able to override settings on each prefab.
So I have a cube prefab, with the “Go get an image” script on it.
I drag a few of those into the scene and for each one I can individually set the URL they are going to use. All good Object Orientated stuff.
This is not supposed to be a state of the art game :), but you can see how the drag and drop works and moving around using live images I drag in from my Flickr in this sample
Click in the view and W and A moves back and forwards, left click and hold the mouse over a block to move it around.
Downward gravity is reduced (just a number) and of course the URL’s could be entered live and change on the fly. I only used the square thumbnail URLs form my Flickr photos so they are not hi quality πŸ™‚
This is also not a multiuser example (busy doing lots of that with Smartfox server at the moment) but it is just so accessible to be able to make and publish ideas.
The code is less complicated that the HTML source of this page I would suggest. Its also free to do!