User Interface Improvements

From Second Life Wiki
Jump to navigation Jump to search

This page describes a proposed project to design and implement an improved User Interface for the Second Life Viewer. The intention of posting this proposal to the Wiki is to increase transparency by including Residents in the project definition and design.

Project Goal

The Second Life Viewer is a complex, multi-layered application, consisting of many sub-systems (such as Inventory, Building, Scripting). The current user interface (UI) is intimidating to new users and cumbersome even for power users. The goal of this project is to create a new Viewer UI that is less intimidating for new users yet still flexible enough for power users. The design objective is to improve access to frequently-used features while exposing advanced functionality in a task- or context-sensitive manner. Specific goals include:

  • Eliminate the current menu system as the primary mechanism for accessing features
  • Minimize the amount of UI "chrome" displayed at any given time to provide an uninterrupted view of the Second Life world
  • Improve users' ability to learn and use avatar and camera movement controls

Project Scope

Recognizing that it is not feasible to address usability issues across the full range of the Viewer's sub-systems in the course of a single project, this project is limited to re-organizing existing Viewer functionality. Insofar as possible, the project will not affect the following:

  • Existing "sub-applications" (Inventory, Search, Map, etc)
  • Design and behavior of child windows ("floaters")
  • Pop-up notification system
  • "Out of box" experience (registration, download, orientation)

Visual design will be limited to new functionality as outlined below and should conform to the latest art assets and color palettes.

Proposed Solution

We propose a browser-like concept which has regions of the screen ("zones of control") that summon UI when the user moves the mouse to that area. The UI in these regions could be fixed using a gesture (such as a pushpin) or autohide such that they only appear when summoned. The preliminary design has five zones: Navigation, Search/Status, Communication, Movement, and Tools (for accessing the rest of the SL sub-applications - Inventory, Appearance, Map, Preferences, etc).

The concept is illustrated in this high-level mockup (note that the mockup is not intended to illustrate actual visual design or intended functionality):

Mockup of proposed design

Required Design & Development Work

Preliminary design tasks
  • Stakeholder interviews/discovery
  • User research/ethnography
  • Personas/scenarios (as appropriate)
  • Information architecture design
General components
  • Interaction design for auto-hiding & pinning UI elements
  • Visual design of pinning affordance
  • Implementation of auto-hide behavior and pinning UI controls
Navigation components
  • Interaction design for navigating between recent locations (History)
  • Interaction design for bookmarking/organizing locations (Landmarks)
  • Visual design of Navigation panel
    • Back/Forward controls
    • Location bar, region/parcel name, rating, etc
    • Landmarks UI
  • Implementation of History features
  • Implementation of Landmarks features
Search/Status components
  • Interaction design for Search bar (mostly complete)
  • Visual design of Search/Status panel
    • Search bar/icon
    • Help button
    • Visual design of status information (L$ balance, time, parcel state, etc)
  • Implementation of overall panel layout
Communication components
  • Interaction design for expanding in-world chat into full-featured chat console
  • Visual design of panel and related elements
  • Implementation of panel layout and new UI affordances (as required)
Movement components
  • Interaction design for on-screen controls for moving avatar and camera
  • Visual design of on-screen controls for each mode (walk, fly, camera)
  • Implementation of on-screen movement panel and controls
  • Possibility of purely mouse-driven Mouse Navigation
Tools/extensibility component
  • Interaction design of mechanism for accessing tools as required by the user
  • Visual design of minimized/hidden tools and expand/collapse affordances
  • Implementation of UI behavior