Difference between revisions of "User Interface Roadmap"

From Second Life Wiki
Jump to navigation Jump to search
m (Protected "User Interface Roadmap" [edit=sysop:move=sysop])
(No difference)

Revision as of 12:05, 13 July 2007

Under Construction

Overview

Author

User:Steve Linden

Summary

This is an outline of the projects being worked on and considered by Linden Lab related to improving the user interface.

Objectives

The primary objectives for improving the user interface are:

  • Improve the ease of use of the Second Life Client, specifically related to the UI
  • Increase the ability for third parties and individuals to customize the look and functionality of the Second Life Client
  • Provide a useful framework for alternative clients, e.g. lightweight clients, mobile clients, etc.

Projects

Step 1: Clean up the XML User Interface (XUI)

  • Make the interfaces to all UI components (widgets) consistent
  • Clean up and re-design the layout format for UI components
  • Document the XUI format

Step 2: Tackle high nail customization

  • Skinning - Improve the ability to customize the look of the client
    • Separate out UI textures, use file names that correspond to the XUI files
    • Make all visual elements of the UI art driven, including backgrounds, etc.
    • Make XUI loading hierarchical so that packaging customizations and individual customizations can be leaded and will be preserved across updates
    • Make menus collapsible so that simplified UI layouts can be provided
  • Data Driven UI - Phase 1
    • Make simple UI functionality like opening UI windows purely data driven
  • Modal UI
    • Make various usage modes of the UI such as navigation, object edit, apearance edit, etc explicit
    • Allow user customizable modes
    • Group all relevant settings (e.g. mouse click / alt click / ctrl click behaviors, arrow key behavior, etc) with modes
    • Allow full keyboard customization, including per-mode overrides

Step 3: Data Driven UI

  • Data Driven UI - Phase 2
    • Convert all menus and the overlay bar to be fully data driven so that they can be easily re-designed
    • Create a UI console window that can execute simple UI commands
    • Allow simple batch files to be loaded on startup or executed from the client

Step 4: Lightweight Client

  • LLViewerApp
    • Clean up the client initialization, update, and render loops so that individual pieces (e.g. 3D rendering) can be de-prioritized or disabled
    • Abstract login code so that it is independent of any UI or rendering
    • Improve error handling, including a watchdog for infinite loops
  • Create a sample UI only client