OMG! Current Iteration

So to show you guys feedback on what we are doing in OMG! I would first like to introduce you to the "professional" alternative GNOME Achievements that is being developed by the project hamster guys.

While the 2 projects are the same in a way they differ in other areas, especially in the trophy specifications. We are not out to compete but i tried to see that my team surrenders development on our engine but for somehow its hard to slow them down.

The 2 projects also differ in their development processes and tools. We use Mono (Vala port is there too) they use Python. They host on git we use launchpad. Our development is more agile and evolutionary (several iterations and public development and reports) they are more planned and structured.

I advise you to look at their work... that being said...

I tried to assemble a small new team to work on OMG! because the Zeitgeist team is very busy with development for Unity and GNOME integration (Michal Hruby will be releasing Sezen this weekend), and the new GAJ will follow on monday.

Current Development Iteration:


Meanwhile our development will continue. Currently the team consists of:
  1. Manish Sinha (Daemon and Specs development)
  2. Chris Szikszoy (Daemon and Specs development)
  3. Adam Zimmerman (UI Design)
  4. Kilian Valkhof (UI Desing & Development)
  5. Alex Launi (Code inspection and review)
  6. David Nielsen (UI design & API design)
  7. Me (General spanking and a bit of this and that)
We are open for anyone to come join the Team.


Manish is really rocking the daemon. He will be updating the specs here as he develops. We used to register our trophies over DBus however now Trophies are registered the same way the GNOME Achievement guys do it. (Yeah we stole that part :P)


Adam Zimmerman contacted me with a very nice UI design and documentation to it. We are basing our development on that.

Trophies can be displayed like a trophy case layout or in a list view. Users can change the zoom or display style (trophy case, scout badges), and share their achievements on blogs, social networks, or as a picture. Any trophy can be "un-accomplished" or hidden if the user wishes. A hints section shows one installed application and one not-installed application where more trophies can be earned. New applications are rotated in daily, at random. The hints section has buttons to open/switch to/highlight the installed application, to install an application shown in the hint, and to learn more about it before installing.


TROPHIES (first mockup page)

The Trophies tab is the main display case for all the trophies that have been earned. The trophy icons' layout imitates the way one might arrange trophies in a display case in real-life.

The View menu would include a menu option to switch the trophy case style. The default style would be glass shelves with a reflection of the trophy icons as if they were sitting on top. There is an implementation of a similar idea in the GCstar collection manager; a screenshot can be found at . The trophies' titles would be shown on the front face of the shelf, like a label. The View menu would also contain an option to turn these titles on or off. (Another style choice would be a fabric background, like a scout displaying merit badges.)

Also in the View menu would be an option for switching to a list view. The list view would me more like a vertical list of large (48x48?) trophy icons and their names; it would not be like the list view in Nautilus.

Users could drag the trophy icons to reorder them. Additionally, the View menu would include menu items for sorting the trophies and for grouping the trophies (both usable in either view, with slightly different implementations). Useful Sort options would be (1) trophy name and (2) date the trophy was unlocked. Useful Group By options would be (1) application, (2) date (today, this week, last week, this month, last month, this year, older), (3) unlock action (e.g., trophies for running a program a certain number of times would be grouped together, and trophies for changing an option in a program would be in another group).

The status bar always includes a count of how many trophies have been achieved (there's likely a prettier way to display this). While the Trophies tab is active, a zoom slider is shown (this would probably require the trophy icons to be svg instead of png or some other bitmap format).

On the toolbar are two buttons, both for displaying accomplishments elsewhere. The Share button (which should be renamed "Share Online" to avoid confusion) would bring up a window to display trophies in various forms online such as a blog widget, in a profile on Facebook/Ubuntu Forums/etc., or a post or status update on Twitter/Identica/Facebook/a blog/etc. Mainly, this would share either trophy lists (graphical, text, or both) or a count of trophies. The user could choose to share only the selected trophies instead of the whole lot. Kevin VanDine just published a blog post about libgwibber (which could be useful) here.

The Take a Picture button would export a picture of the display case with the current view settings (zoom, sort, background, etc.). Click one of the trophies to see what would happen when a trophy is selected.

(This will take you to the Trophies Detail mockup page.)

TROPHIES DETAIL (second mockup page)

A box containing details of a trophy opens, showing a larger icon (128x128?), the trophy title, a description of how the trophy was unlocked, any humorous comments included by the trophy creator, the date and (perhaps) time the trophy was unlocked, trophy hiding options, and a button to reset the trophy. It might make more sense to have this box always open (and just blank when nothing is selected) instead of dynamically resizing the display case.

The trophy hiding options and the Forget I Unlocked This Trophy button would be available when multiple trophies are selected. Trophies hidden "everywhere, including from me" would be accessible by choosing "Show hidden trophies" from the View menu. The user may prefer not to show certain trophies for various reasons: they don't want others to know they're using a certain app (e.g., BitTorrent) or using their computer in a certain way (e.g., late at night or checking e-mail too often); or they don't like the title or icon of the trophy (e.g., one commenter suggested a trophy called "Serial Killer" for killing a frozen application 10 times; I don't want to have to explain that I'm really not a Jack the Ripper wannabe).

The Forget I Unlocked This Trophy button could be useful if the trophy was unlocked by someone borrowing the computer, or the user might have other reasons for "starting over" on a trophy. If the user clicks this button, a dialog would slide over the middle of the toolbar, saying, "You removed 3 trophies from your history; they will again be available for you to unlock. If you don't want to see the trophy anymore, you may hide it instead. Undo?" (like GMail does when you delete an email). An easy-to-use undo option is preferable over annoying the user with confirmation dialogs.

Click on the tab labeled "Get More" to show the interface for hints.

GET MORE (third mockup page)

The Get More tab would list two applications at a time: one installed application that doesn't have all its trophies achieved, and one not-currently-installed application that has a trophy to achieve. The applications are chosen at random and rotated out every day or so.

This would help the user to preserve the reward and surprise of unexpectedly unlocking a new trophy, yet still allow them to get help if they're stuck. Both sections would display the app's 48x48 icon, the app's title, and a brief, easy-to-understand description of the app.

  • The Run it now! button would run the application; it would change to "Switch to it!" if the application is already running, or "Where is it?" if the application doesn't have a window for its main interface (e.g. a panel applet, indicator, or icon in the notification area).
  • If the user clicked "Where is it?" the effect would be to dim the rest of the screen and show a red arrow pointing to the applet, indicator, icon, etc. The not-currently-installed application has two buttons.
  • The Install it! button would run the install command(s), asking permission from the user if the install requires adding or activating a PPA or other repository.
  • The Learn more button would show the application in the Ubuntu Software Center (or open a browser with the relevant OMG! Ubuntu blog post if it's not in the standard repositories).
After a discussion about an app-centric trophy view Adam came up with the following two mockups:
I had a few ideas for viewing trophies by app:
  1. Keep it in the Trophies tab and add a "Group By" option for "Group By App" to the View menu.
  2. Keep it in the Trophies tab and add a "Show Apps" option in the View menu.
  3. Add an Apps tab—I think I like this approach best. It would be very similar to the Trophies tab setup. You could share or export this display just like you could with the one on the Trophies tab. The details area would also show details about an app when you click on an app icon or title.
Here is a quick mockup of how this could look in either the Trophies tab or the Apps tab (it's similar to what I visualize for the list view with the Group By setting on):

(Tomboy is collapsed so its trophies are hidden)
Trophies that aren't specifically related to any app come under a miscellaneous section, titled "General" or something. Also, I think if a trophy is related to more than one app (e.g., a trophy for working in gedit for a half hour while playing music in Banshee), it would show up under both apps.

Here's an alternate version with buttons for opening/switching to/highlighting an app (just like in the "Get More" tab):

However, I think those buttons are better placed in the details section shown when the user selects an app, like the next mockup shows. (The mockups above aren't very good at telling the user they can select an app by its icon or name, so that would need some tweaking.)

So with that me and Kilian Valkhof will be implementing the UI using pygtk and Webkit (I have to get rid of my current UI).


I started working on a set of trophies in a service that uses Zeitgeist to award based on activities. Some simple cases that work are:

  • Tomboy Amateur: Edited 5 Tomboy Notes.
  • Tomboy Experienced User: Edited 15 Tomboy Notes
  • Tomboy Addict: Use at least Tomboy Note per day for 7 days in a row.
This also works for Rhythmbox, Banshee and gedit at the moment (It is copy pasting the same code) Currently finishing a more advanced trophy set:
  • Jonoholic: Listen to all Severed Fifth songs from the new album
  • Jono Wannabe: (surprise)
While many people disagree with the idea behind a trophy or achievement system there is at least to thinks that stand up for it:
  • Learning aid: Allow people to explore the system and use Applications. Give them the feeling of accomplishing something. Especially for kids.
  • Behavior monitor and control: The not so fun side would be awarding trophies for weird behavior:
    • Weirdo: Have the computer running for 8 hours without screensaver going on.
    • Pervert: Watch 5 pornos in 24 hours.
What now?

If you want to develop with a fun team please come on #omg! on freenode and contact us. It is a small code base for everyone to have fun with.  Also we need a new name for OMG! so feel free to comment and suggest...