A Gnome achievement service
- The main idea is to enable user to explore the features of the application.
- We don’t care about the security – the simpler the fake, the more boring it actually is
- Apps register available achievements by copying an XML configuration file into a predefined location – that allows the exploration to happen via the achievement viewer and also it deals with localization
- Updates to achievements are performed via D-BUS calls that are also available in a wrapped form (currently just python)
- Trophy system does it’s best to assist with state storage – counters, flags and such so that the app does not have to save trophy-related states itself.
- Fun is as important as the function
- the basic service and rudimentary trophy browsing is there
- finished brainstorming trophies for our first guinea pig – the project hamster
- now going through the list and implementing them all – this is causing changes to service API.
- writing guidelines in parallel
- after hamster will be done, will pick another test project
- expecting more changes and more guideline updates
- fully flesh out the trophy browser
- announce and beg for integration
- app defines trophies in an xml file that is then put in /usr/share/achievements – more about format
- trophy system offers basic state management – getCounter, incrementCounter, decrementCounter to manage any states (and those happen on lengthier observations)
- communication is happening via D-Bus, but they have been also wrapped in python
from gnome_achievements.client import Storage; storage = Storage(); storage.get_trophies()
- when user reaches target, app happily calls unlockAchievement(app, trophy_id).
- Also, user can check all trophies available for hunt via the browser and through them go into app and explore the nice bits that there are to explore