Archive for the 'omgbots!' Category Page 2 of 4

Gutsy Gibbon Broke My Bots

Damnit.  I may be the only person I know that has trouble EVERY SINGLE TIME they update an existing Ubuntu installation.  Earlier this week I did a dist-upgrade on the machine that I’ve been using to host my bots, naively believing all of the blogs I’d read gushing about how this new version was the "best evar" and how the update was so painless.

You’d think I would have learned by now.  While this update didn’t completely hose my machine like previous updates have, it take a great deal of time and in the end left me with no way to run my bots from that machine.  I don’t know at this point if the problem lies in the version of Mono (or if the Mono version was even different) or whether it’s a more fundamental problem, but this version has a SIGABRT from an issue somewhere in the appearance code.

The bots were working before I did the dist-upgrade, and were not working after, but I suppose it’s also remotely possible that the problem is related to Second Life® rather than Ubuntu.  If that’s the case, I should be able to get the latest version of libsecondlife and ensure that the bots are using the latest SL™ protocols, but I REALLY hate to do that because the libsl guys have no idea of what it means to have a stable interface; They change the public API of the libsl code on a daily basis, and this makes it incredibly difficult and time-consuming for anyone to maintain a non-trivial project dependant on libsecondlife. 

The libsl team have done a pretty fantastic job of putting together a codebase that you can use to build custom viewers, bots, SL™ <-> RL integration, etc, and are to be commended for all of their hard work, but I often get the feeling that the majority of contributors have not spent a lot of time deep in the trenches of a large commercial software project where different teams maintain different subsystems and critical libraries.

Okay, enough ranting for now.  I had hoped to have the bots ready for public usage at the same time as the new C:SI update, and have been testing them in secret for the last several weeks on a few of the sims where my wife and I have large chunks of land, but this setback will most likely mean that the bots will be delayed.

Popularity: 32% [?]

OpenSIM Pile-on party

Previously I mentioned discovering a publicly-available OpenSIM host run by Dalien Talbot.  I neglected to mention that while I was there checking things out, Dalien himself signed in and we spent a few minutes talking, during which Dalien had told me of a pile-on party to stress-test the servers.

I was reminded by his blog post today, where he says:

This Saturday, at 10am PDT (a.k.a. SLT), which is 7pm CET, we plan to make a "crash hour" on OpenSim - to see how many avatars will be able to connect at the same time.

There’s been a lot of progress on OpenSim lately, so I am particularly excited to see how far they’ve come with the physics engine.  In my own local installation, enabling physics is unacceptably unstable, so I never do it.  Dalien has done so, though, so I feel compelled to test that out in particular.  OpenSim also has, at least at this time, far higher prim limits.  I cannot find the particular post now, but I’ve seen pictures of an OpenSim with thousands more prims than a Second Life simulator can support.

Until I can dig up that info and post a picture, check out Dalien’s video of MegaPrims on OpenSim, and check out how many there are.  It’s more than it first appears to be:

I know I’m planning to be there, and I do hope that some of you will show up as well, especially some of you who have never seen OpenSim before.  I’ll try to be recognizable, but I can’t make any promises, since I don’t have the same shape and skin on OpenSim of course.  I’ll try to carry a sword around or something, haha.

For those interested, here’s a recap on how to connect (originally provided by Vint Falken):

If you want to try Ruth out for yourself, and test the OpenSim, Testa User to Testz User are available for your exploration pleasures. This is how you do it:

  • If you have a shortcut to the Second Life client on your desktop, copy it and name it ‘Second Life OpenSim Ruth’. If not, create one.
  • Right click it and look at it it’s properties. Normally under ‘Target’ it says: “C:\Program Files\SecondLife\SecondLife.exe” . Just add -loginuri http://ruth.petitbe.be:9000/ to the end of it, so you get “C:\Program Files\SecondLife\SecondLife.exe” -loginuri http://ruth.petitbe.be:9000/.
  • Use that shortcut to open the Second Life client. You should automatically connect to Ruth. As user name you can choose from Testa User up to Testz User, and the pass for all is ‘test’.

Let’s see what this baby can do :)

Popularity: 24% [?]

NPC - Combat: Samurai Island

Most people who know me well enough know that I’ve been working on bots capable of fighting using the Combat: Samurai Island combat system. Some people (like Xiang Hifeng) have even fought them more than a few times:

 

[youtube]CgOMpQgVevo[/youtube]

The bots use the libsecondlife code (the same code used to create the infamous CopyBot) to connect to and communicate with the Second Life servers, where essentially the program pretends to be a human in order to drive a regular Second Life avatar. Because of this, it’s relatively easy to use the C:SI swords: just send the appropriate key and mouse packets, and it’s as if a human were doing the driving. By decoding the appropriate incoming data (the same data sent to the official Second Life client) and tracking avatar movements and animations, the bot can “see” where it’s opponent is and what that opponent is doing, and use simple heuristics to respond appropriately.

Unlike the Electric Sheep Company’s SearchBot or the various types of LandBots also made with the libsecondlife code, my bots do not use the in-world Search, do not scan people’s items or land, and in fact use less Second Life server resources and bandwidth than your average human-run avatar. These bots never need to download textures (they have no eyes, after all), have no need to have a huge inventory (just a sword and some helpful attachments), and don’t have extensive friends lists to name just a few resource-saving benefits. They are as benign as can be, until you face off with one :)
The bot project got put on the sidelines for a while as RL concerns took over, but has recently been revived and is well under way. The idea is to create Non-player characters for the official Samurai Island sims (Like Samurai Edo), available 24×7 for anyone that’s looking for a skilled opponent. While I don’t want to spill the beans early, there are plans for other types of NPC’s as well, not just combat opponents.

This project took another small leap forward today when I managed to finally completely eliminate a persistent memory leak that would eventually consume all of the available memory on the client machine. Current test results show that the bots run at an average of 5% CPU time and hover at around 40MB of RAM, which means that even on my old Ubuntu laptop I can comfortably run about 5 bot full-time and have some head-room left over for other services.

There are a few small tweaks that still need to be made, and there’s a feature of the new version of the C:SI system that I’m waiting on being released before I try to “go live” with the bots, but I now feel it’s fairly safe to say that you can expect to see the combat bot in the fairly near future. I’m not even close to giving a timeline on the other types of bots being planned, but now that the hard parts have been accomplished I would be comfortable saying that they are not far off either.

Popularity: 21% [?]

Another reason to stay out of SL?

I’ve been gently (and sometimes not so gently) chided recently for not spending as much time in Second Life as I did when I first started. There are a number of reasons for my recent shortage of in-world time, ranging from pressing RL issues, to creating animations in DAZ|Studio, to the fact that I’m currently working on adding the new version of the C:SI combat system into my sword (I do 90% of my scripting offline with SciTE and lslint because the in-game script editor blows).

Now I have another reason: I have my own offline sim courtesy of the OpenSIM project.

For those not yet familiar with OpenSIM, it’s an effort to create an open-source Second Life grid. It’s got a very very long way to go, but as you can see from the following snapshot, it’s already possible to log in using the official Second Life viewer. I can build, test clothing and building textures, test animations, etc, all in a completely 100% lag-free environment because it is running on an Ubuntu Linux machine (it’s also possible to run in Windows) in my local network - the same Linux machine that I will be using to run my new C:SI non-player character bots.

Obligatory snapshot:

My very own grid :)

OpenSIM does not yet support running LSL scripts to the level where I can create new weapons, though they are working on scripting quite actively. I don’t know yet whether it will *ever* be a suitable sandbox for scripting, though, since the OpenSIM developers seem quite insistent on changing the LSL performance characteristics (they are making it compile to .NET code on Mono that runs WAY faster). However, once (if ever) the main SL grid switches to Mono for scripts, then it may at that point be a suitable environment.

I have known about OpenSIM for quite a while, since Esprite pointed it out to me on Edo before I joined C:SI, but until recently I wasn’t really motivated to attempt to use it.

That changed when I found a post on Vint Falken’s blog about a publicly-accessible OpenSIM named Ruth, and another post about how OpenSIM already has the ability to use HTML on a prim (something LL has been promising for ages). Here was my chance to check out an OpenSIM that (supposedly) already works well enough for Vint and others to test clothing and shapes and various other nifty features, so I was on my way!

Having tested it (and left a few thank-you items in Dalien’s grid), I decided to install OpenSIM locally. It took mere minutes with Dalien’s instructions (which I modified for Ubuntu). Well, I’m sold. It’s buggy, and missing so many essential features, but OpenSIM shows absolutely tremendous potential and some pretty amazing momentum.

Now if only it was mature enough to support creating my own C:SI-only grid :)

If you feel like trying it out, I recommend following Vint Falken’s instructions for connecting to the Ruth grid, which I have reproduced below for convenience:

If you want to try Ruth out for yourself, and test the OpenSim, Testa User to Testz User are available for your exploration pleasures. This is how you do it:

  • If you have a shortcut to the Second Life client on your desktop, copy it and name it ‘Second Life OpenSim Ruth’. If not, create one.
  • Right click it and look at it it’s properties. Normally under ‘Target’ it says: “C:\Program Files\SecondLife\SecondLife.exe” . Just add -loginuri http://ruth.petitbe.be:9000/ to the end of it, so you get “C:\Program Files\SecondLife\SecondLife.exe” -loginuri http://ruth.petitbe.be:9000/.
  • Use that shortcut to open the Second Life client. You should automatically connect to Ruth. As user name you can choose from Testa User up to Testz User, and the pass for all is ‘test’.

Popularity: 43% [?]



Bad Behavior has blocked 143 access attempts in the last 7 days.

Close
E-mail It