Hi there,
Anyone have any idea why Linden Labs allocate 16 acres of land per sim?
While we're thinking about it - how many 16 acre plots/sims can they run per server?
It all has to do with CPU loading... SIMs can handle about 40 avatars at one time. It's also doing several other tasks as you can see below from the 2nd Life Wiki pages.
The primary SL server process.
Each simulator process simulates one 256x256 meter region. As the viewer moves through the world it is handled off from one simulator to another. It handles storing object state, land parcel state, and terrain height-map state. It performs visibility calculations on objects and land and transmits the data to the client. It transmits image data in a prioritized queue. Physics simulation is handled with the Havok physics library. Chat and instant messages are processed here.
Running at full tilt, a simulator will run at 45 frames/sec. If it can't keep up, it will attempt time dialation without reducing frame rate.
Simulators communicate with one another using a circuit via UDP. A "circuit" is a UDP network connection. Circuits are maintained between adjacent simulators.
So, next question !!!
Why should we compute physics simulation on server, as this computation is so expensive for CPU (45 frames/s * 0,5ms to compute collision * 50 avatars = lags !!!).
In fact, loading time of 3D models is ridiculous compare to texture. Why not download 3D models immediately after connection to a new sim, so as to be able to compute itself its collision detection (and animation)???? It seems that physics computation is really the bottleneck for SL simulators. Sure that If each client could compute itself its collision and animation, the number of clients per sim will grow consequently.
So, only one word for next generation of Online Virtual Environments : Decentralization !!!!!!
I disagree to Jerome.
THE ONLY thing, that makes VW an 'environment' is a state of events in a server updated in pseudo real-time. In other words events are happening 'there' and multiple people can witness them. This is a corner stone. That's why they are 'events' and that's why they are worth interacting with each other.
Collisions is one of the types of interaction. Example: on my screen I've just hit you on the eye, on your screen I'm still standing and smiling at you, because your CPU didn't manage to "...compute itself its collision and animation..." . :) How about resolving this type of 'conflicts'? :) Kidding (I'm not going to hit you!), no kidding.
This is a dead end. VW are centralized systems, you only scale them on the server side if you need more something (prims, textures, models concurrent sessions) otherwise the in-world events are not simultaneous in a broad sense of the word which kills EVERYTHING.
I understand what you are saying very well. Did you ever try to implement P2P cloud? And, let me rimind you, it MUST work in real-time. It is not impossible, it's just not technically feasible. Why? Because of the latency of TCP/IP involved in all communications. Internet (TCP/IP protocol) is NOT suited for a real-time data exchange, that's why VW MMO client software establishes a 'pseudo real-time' protocol with a server, involving 'forward reading' of a kind and 'extrapolation'. In P2P cloud there will be multiple conflicts that need to be resolved ON A CLIENT (you will need A LOT of computation, do you know what kind of a junk computers your customers will have?).
In other words - hit on the eye would be transmitted with a speed and reliability of an e-mail.. :) hehe.
Also, choice of architecture here strictly depends on what you want to have in a VW. Need rights management to your content (or 'ownership' in objects) or a 'currency' - voila! - your system MUST have a centralized component. Architecture is driven by your business-decisions, not matter what they say :)
It's a very interesting project you are working on. Shall read more of your web-site and come up to you some day.
Of course, all process such as synchronization, anticipation, time management, appear to bbe a real challenge for P2P network. Of course, the first step will be to have a kind of local centralized server (like an optimized SL server) responsible of a dynamic region (and not a static square of 256mx256m !!!). Synchronization will be assume by this server, node, or what we call a site. But data exchange will be assume in priority between peers (A kind of hierarchical peer2peer network will be able to integrate a kind of global clock for synchronization, managed by the super node, that will transmit a synchronisation beat to site, that will transmit the synchronization to visualization peers).
All is possible, there is problems, and we have to find solutions.
Personnally, the solution to scale centralized architecture is not simpler than the solution to put synchronization in 3D P2P networks. And the future of Web3D need a real scaling of this kind of architecture.
Thanks for this discussion.
I 've forgot to say that Solispsis is a LGPL plateform based on OGRE3D for rendering. We are developping today the protocole, we will put free access to our source forge in few months.
I understand.
I talked to Santosh at the conference, they are working on similar things and their results are very impressive, maybe you, guys, need to talk to each other. They've found some reasonable solutions... or better to say - ways and architecture that looks very reasonable and promising.
Still, I think the main reason why people are attracted to VW more than to VR in the past are 'economies'. And those involve centralized rights management and value management services by definition... Please don't forget about it.
OK, here's my last post on the subject... LOL... Follow this link to an interesting article that discusses the data centers that run Second Life. It gives you a good over-view of the resources needed to keep us all in-world!