Metaverse Ink

October 16, 2009

200 bots

Filed under: 3d modeling, OpenSim — Diva Canto @ 3:05 pm

200 bots

Today, while we were doing load tests in Wright Plaza, I was also doing another kind of load test on my standalone. This one relates to server-side bots. I was able to have a 3×3 megaregion with ~2,000 prims, 200 bots and my client connected to it!

My client was quite happy. The only thing that didn’t seem to be working was the walking animation. Apart from that, I was able to walk, fly, chat and generally interact without much lag. Pushing it to 300 didn’t quite work well yet, I was stuck in 10, 10, 10 on login.

Mind you, server-side bots are a very light load on the server, much lighter than a regular client and lighter than a libomv bot. For starters, they don’t connect over the network, so there is no packet sending/receiving. Then, these particular bots I’m developing aren’t that smart yet, so they don’t request any assets from the server — their load is essentially the physics that comes with them and all the updates that are sent to regular clients as the bots move around.

I have been playing with server-side bots lately because I am involved in projects that require them for simulations. I will have to have at least 500 of these. We’re very close… I’m quite happy with the results today!

200 Bots

October 13, 2009

The Ugly Side of Crowdsourcing

Filed under: 3d modeling, Ethics — Diva Canto @ 2:30 pm

Goggle has announced its 3D Building maker for Google Earth. It looks really nice and simple. I think Google is getting that most people aren’t expert 3D modelers, and as such, simple tools that produce simple models will go a long way in modeling the entire planet.

Google’s intention is great at face value. However, I can’t help but wonder what will Google do with all that content produced by thousands of people around the world. If Goggle ever monetizes Google Earth, will it give back to the creators of those buildings? Or, like what Google does on the Web, will it take the content and run its own business without paying back to content producers?

October 8, 2009

OpenSim: 50 avies

Filed under: OpenSim — Diva Canto @ 10:29 am

We hit a milestone today in OpenSim. We piled up 52 avatars in OSGrid’s Wright Plaza sim, under 600M of RAM, and after an uptime of 10 hours. It eventually crashed, probably due to a lurking ultra-conservative lock somewhere in code. But hey! — this is fantastic news for OpenSim-based worlds. I can see 1.0 on the horizon.

Over the last few days, one of the key components of OpenSim, the code that deals with packets from/to the clients, has been replaced  with a new packet handler written by Intel’s John Hurliman. This is proving to be a Good Thing. Also last week we have identified and eliminated a major memory leak that was making OpenSim eventually run out of memory.

Hopefully when we get to 1.0 we will be able to consistently support 50+ avatars simultaneously under 500M of RAM and without crashing.

October 6, 2009

Serverless grids

Filed under: Hypergrid, OpenSim, news — Diva Canto @ 6:34 am

There is a new diva distribution available. It is packaged out of the bleeding edge OpenSim, revision 11056. If you have the previous release installed, you can simply run Update.exe.

In the past 2 weeks there has been a lot of plumbing in OpenSim, and things have improved considerably. First and foremost, we have identified and eliminated a memory leak that was causing OpenSim to use all memory over time, and eventually crash. Now OpenSim runs on much more reasonable memory footprint, and stays within that limit [for much longer].

Second, we have rewritten the grid service from scratch. The grid service is the part of OpenSim that manages region registration and lookup. All OpenSim installations have a grid service, even if they are standalones. In fact this distinction between standalone and “grid mode” is becoming fuzzier and fuzzier. So much so that it is now possible to have grids by stitching together standalone installations of OpenSim — without having to run any other servers!

Here are the instructions for how to do it with the diva distro. Instructions on how to do it with stock OpenSim can be found elsewhere.

Instructions for setting up a serverless grid with the Diva distro:

1 - If you want the second instance on the same machine, copy the entire folder of your diva distro into another folder on that machine. If you want the second instance on another machine, copy it to that other machine. Leave the original unchanged. In the copy (or copies), do the following steps.

2 - Edit Regions/RegionConfig.ini, and change the following fields for each region: (a) the name; (b) the RegionUUID; (c) the Location; and eventually (d) the InternalPort. For example, in my case my first region in my original instance is:

[Diva’s World 1]
RegionUUID = “9ca5b0b5-0b1e-47b7-ac30-7e0230152de0″
Location = “6178,3371″
InternalPort = 9000

In the copy on the same machine I have:

[Diva’s World 5]
RegionUUID = “854a1e57-95f2-42f9-b3c7-2488e0e0bd92″
Location = “6176,3371″
InternalPort = 9004

A couple of important notes:
* Please use truly random UUIDs. Here is a site that generates them for you: http://www.guidgenerator.com/.
* In my case I wanted to place the new 2×2 megaregion to the West of my original megaregion. Hence the coordinates 6176,3371 on the first region of the copy — the X coordinate is 2 to the left, the Y coordinate is the same.
* Megaregions need to be specified like what they are in that file: the first region is the SW corner, the second is the NW corner, the third is the SE corner and the fourth is the NE corner. Make sure you preserve this order when you make the changes in their coordinates.
* The InternalPorts must be unique for each region, on each machine. In my case, my second instance is on the same machine, so I had to change it. If your second instance in on another machine you can use the same InternalPort numbers of the original megaregion.

Do the necessary changes for the other three regions on that file.

3 - Edit config-include/MyWorld.ini. The only thing you need to change here, if at all, is in the [Network] section, the http_listener_port. If your second instance is on the same machine, you must change this port — for example 9001; this port needs to be unique per instance, per machine. If your second instance is on another machine, you can leave it as is. In any case, leave the server urls as they are for the original instance.

Et voila!

Login as usual. You will notice that the SW corner of your original instance now has neighbours to the left. In principle, you can cross back and forth, and teleport between regions as normal. In practice, crossing between instances with megaregions is still under heavy work and may produce surprising behaviour. For example, crossing from the original SW corner to the copy SE corner may end up being an auto-teleport, or you may get stuck in limbo, etc. Don’t be alarmed, this is “normal” behaviour for the time being, and these quirks will be fixed in future releases. For the time being,whenever you want to switch instances I recommend teleporting between SW corners of the different instances — that works pretty reliably.

Powered by WordPress