User Interface Roadmap

From Second Life Wiki
Revision as of 16:03, 3 August 2007 by Steve Linden (talk | contribs)
Jump to navigation Jump to search

See Also

Viewer Roadmap

Summary

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

Author

User:Steve Linden

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)

  • XUI Code Cleanup
    • 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
    • Add high nail features to facilitate customization
  • Modal UI
    • Make various usage modes of the UI such as navigation, object edit, appearance 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
    • 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