Brainstorming
Revision as of 18:19, 19 September 2007 by Cenji Neutra (talk | contribs) (→Implementation thoughts)
This page is all about brainstorming about the upcoming architecture. Add your thoughts here in no particular format. Can be use cases, requirements, scenarios. Maybe shouldn't be too long but long enough to get your idea across. Can also be implementation details maybe but in the lower section.
Usage examples and requirements
General architecture
- allow to run a small grid on my laptop
- allow plug-ins
Objects and Assets
- allow objects to only be allowed to be rezzed on certain regions (adds to the agent's restrictions)
- AND/OR limit object rezzing to specific groups of objects (give region owner ability to control what content is allowed in their regions)
- allow assets to be transferred between agent domains
- allow assets to be accessed from multiple agent domains
Identity
- identity should be pluggable, e.g. let me in with OpenID
- various grades of verification should be possible
Viewer
- allow all sorts of viewers, from 3D to cellphone to web sites
- Client-side Script runtime
- scriptable chat & movements avatar (bot)
- advanced graphical hud
Agents
- allow agents to only allow to connect to certain regions
Regions
- allow regions of arbitrary size and form
- allow portals and landmass-style connections between regions or a mix of both
- region should be able to decide which agents to let in depending on the grade of verification (age, RL identity, financial, ... )
- User defined topology. Like bookmarks, but in 2D. Crossing a custom boundary would result in a "walking teleport"
- Multiple instances of a region within a topology. Everyone can have a front row seat for the show.
- Allow as many avatars as will fit in the virtual space of a region. Don't limit the population of a region based on architectural limitations.
Implementation thoughts
Regions
- if we have different region domains will each of them have their own map or would it somehow work to connect certain region domains together while it would still be possible to grow one domains space?
- Can we see into neighboring regions using a low LOD mesh dynamically created to represent the land and objects in a region?
- Virtualize the regions. If no one is in or near a region, don't waste hardware on it. If a region gets too busy, dynamically split it onto two servers, each taking half of the area.
- Allow arbitrary assignment of geography to processing resources - including dynamic migration.
- As someone who's developed 3D virtual world simulations before (and always wanted to create something like SL), the first thing that hit me when I entered SL for the first time was that sims were visible to residents (and scripts).
- To me, a sim is an implementation detail and residents should never need to know they exist. Making that particular initial implementation choice (to divide processing power into a regular grid and distribute it statically over separate servers) has now locked it in for the future - as removing the concept of regions would break a lot of scripted content.
- However, it is still possible to lay a foundation that can deal with arbitrary assignment of geographic simulation to processing units (including dynamically) transparently and then add a 'backward-compatibility' layer over it which simulates the familiar square regions for legacy content.
- Such a system could also be implemented to allow non-flat and non-contiguous geography (e.g. like planets, for example). Current continents could be mapped into small surface patches in a 'legacy' area.
- As someone who's developed 3D virtual world simulations before (and always wanted to create something like SL), the first thing that hit me when I entered SL for the first time was that sims were visible to residents (and scripts).
Currency
- how will virtual currency be handled in a distributed grid architecture?
- Will LL still support L$ in future, or will it be phased out? (perhaps a virtual currency should have no special place in the grid at all - just as there is no special currency on the web ?)
- allow for secure transactions other than in L$ via PayPal, credit cards, etc.