Games Library Ideas

Development article for Awen's Games Library concept (and/or other developers contributing to this with project).

=The source of this new concept= Many of these ideas started and has been discussed in these tagged threads in the XBMC Community Forum:
 * http://forum.xbmc.org/tags.php?tag=games+library

=Games Library Concept=

To allow XBMC users to reference and play Games from their favorite front-end :) Games may have various forms such as Emulated Roms, Standalone Executables, (XBMC plugins ?)... The idea is not to compete with über roms integrators, but to offer a rich and detailed interface to play from XBMC.

=Goals of the new Games Library=


 * 1) Tight integration
 * 2) Detailed information
 * 3) Smart behavior

=Implementation ideas=

Assembling the core in C++ programming-language. Working on the integration between the underlying operating-system, the XBMC software, and third-party applications concerning games.

But using Python scripts or plugins wherever they could be, such as to handle application settings, game ROMs scanning, and meta data information scraping (offline/local and online/internet, including NFO). Which probably involves some 'Game Script' architecture, to be defined.

=Features List= This is what we want to achieve
 * Python Integration: scrapers and all
 * Dedicated GUIs
 * Consistency with the other XBMC Libraries Modes (videos, music, etc.)
 * Platform Portability
 * Game Information Dialog
 * Emphasis on Immersion
 * Soft transition between app contexts
 * Interface that longs for nostalgia when concerning emulators
 * Ambient sounds (skin dependant ?)
 * Detailed game description

And this is what needs to be done for :) Product Backlog
 * Better GUI: intermediary solution for settings and various record forms
 * Versatile solution inspired from plugin settings (0.2)
 * Record forms: executables, games, launching infos
 * Game Description über Panel (0.2)
 * Game Category Finalization
 * Game Classification
 * Game Categories
 * 'Stand Alone' game support (0.2)
 * Better Thumbnail Management
 * Analysis (0.2)
 * Animated thumbnails ?
 * Icons for Categories, and executables
 * Overlay support: rating
 * External Execution
 * Analysis
 * Launching params and related options
 * Define controls and settings before execution
 * XBMC related code (suspend-like)
 * User Info
 * Analysis
 * Last Played
 * Most Played
 * Rating
 * Stats
 * Suggestion (=>dedicated scraping)
 * 'Scripts' Support
 * Game scripts architecture
 * 'Support area' definition
 * Application settings support
 * Game info scraping (plugins)
 * Misce. utilities: roms scanning, latest version auto download
 * Python bindings/Script architecture
 * Script categories: application support, roms scanning, scrapers (=>plugins ?)
 * 'Scripts' entry on the 1st Game Menu Page (?)
 * Contextual Plugins on a Game Basis ('Get Info', 'Get Rom' ;))
 * Native C++ History.dat support as plugin testbed (0.2)
 * Database
 * Record/SQL implementation
 * User Info
 * Thumbnails
 * Launching cmd line/options
 * Game description/fields
 * Auto rebuilding, at least for roms (is that a good idea ?)
 * Better Record class: ease of use.

=Obtaining metadata= project 'scrapers friendly' + use of dedicated community files (like mame's history.dat)