User:Morgaine Dinova

From Second Life Wiki
Jump to navigation Jump to search

Background

Chronologically, ElecEng grad hons, PhD EE/CompSci (concurrency and parallelism), postdoc, lecturer EE/CompSci for several years. Then in industry, freelance contractor as analyst, designer, programmer, QA, documenter, and sysadmin, in subjects including kernel, comms, drivers, defence, engineering apps, GUIs, firewall design and management, network monitoring and alerts. and multi-year ISP involvement with service scalability from 64k - 3m users. Language agnostic, too many to care; the language is not the problem anyway, just a tool with limited scope, so mix'n'match. Currently taking a year or more off for AWG --- seems like a worthwhile goal.

SL/VW Goals

System goals

In order of importance:

  • Scalability for events (Philip acknowledged the need for it publicly 3 years ago).
  • Scalability along the other 3 dimensions.
  • Interop with 3rd party worlds and grids.

Client goals

In no particular order:

  • Improve portability across compilers and platforms.
  • Remove dependencies on specific versions of required libraries.
  • Add an event API for use in scripting language bindings.
  • Refactor access to required libraries to allow alternative choices.
  • Refactor subsystems to allow alternative choices (see below).
  • Decouple the viewing from the presence handling, allow N:1 (multiple views per presence).
  • Replace refactored 2D GUI by decoupled alternative [footprint reduction].
  • Replace refactored audio system by decoupled alternative [footprint reduction].
  • Make the refactored 3D navigation/camera event-driven [for scripting, machinima].
  • Attach QA/test modules for test-driven development and system regression testing.

Among the many other benefits, physical refactoring gives us the opportunity to harness multiple cores.

Occasionally I just despair and decide to rewrite the whole thing from scratch. Tomorrow, that is. ;-)

Personal goals

  • Fun. :-)

Enough to keep me busy for a while ...

Feature Suggestions / Ideas Capture

This section is intended for capturing and honing a few ideas before they have a prime-time spot.

Privacy

This is a very lightweight, server-side-only approach that delivers domain privacy through the simple strategy of blocking the download of objects to clients unless the client's agent is in the same basement as the object itself. It is parcel-based: every parcel has a basement of the same shape conceptually "beneath" it. There are no significant corner cases, because a basement cannot be approached physically, and it simply "doesn't exist" from the PoV of an adjacent parcel basement, nor is it detectable from the land above it.
The only means of access to a Parcel Basement is by teleport, subject to granting by the parcel owner. It is lightweight because object download blocking requires only a single Basement Id check, and because there are no bounding box checks required beyond the existing parcel detection.
The scheme can be extended to communications privacy as well, by blocking vicinity chat at the server end when it originates from a basement, and replacing it with Basement Chat which is distributed only to those agents that are present in the same basement.

Object composition

  • One of the greatest constraints in SL which is inappropriate in a more general environment of distributed virtual worlds is that there is no object composition: you can't buy two opaque objects X and Y and create a composite object Z out of them. Object composition is the bedrock of engineering and the key to exponential progress, as without it all products are limited by the capability of individual producers working from raw materials instead of from pre-existing components. In other words, there can be no riding on the shoulders of giants. Instead of building an ever-rising pyramid, all growth is in breadth only, so progress is severely limited.
  • Support for object composition needs to be added at an infrastructure level: this means being able to create, refer to and manipulate a composite object as if it were a monolithic one, as well as arranging its constituent parts internally as required. SL does of course have linking of primitive objects, but this is severely limited and cannot build out of existing components.

Interactivity

See thread on extending mouse interactions (find the link).

Materials

References

Viewpoint_Advocacy_Groups

Drafts and collaborative work

Multi-Process Client VAG

Multi-Process Client VAG -- draft