GamesIntegration

This is a rough draft (very rough) of my idea for games integration in ubuntu. This is the wiki page for a blueprint proposed for discussion at UDS-N.

The main idea here is to make a framework of things that developers can use in their games and ways to make it easier to sell their games on ubuntu. Social aspects, trophies, U1 integration (save game sync, sso integration to bypass login..etc). This also affects the ubuntu software center's store with maybe allowing video content to show the games, offer demos, showing games your friends own, showing what trophies your friends have and allow more screenshots.

The biggest benefit is using the social aspect of the idea for content discovery.

Possible use cases for users

  • Tom finds an interesting game in the software center. He clicks on the list and views the game's video and sees the screenshots and sees that his friend Jo also has it and his trophies. He sees that his friend tweeted that the game was awesome at the bottom of the page so he downloads it.
  • Tom finds another interesting game and downloads the demo from the software center plays it and finds its awesome. He downloads it and shares it on twitter with his friends so they can get it too.
  • Tom is playing the game and gets a trophy for slaying the big dragon boss and is asked if he wants to share it.
  • Jo sees that he killed the dragon on twitter and clicks a link to buy the game that opens the software center on the games page.
  • Tom goes to his other computer and he downloads the game he already purchased and his save games are pulled from ubuntu one and he continues playing.
  • Tom turns on empathy and sees Jo's status and it says he is currently online playing a game. Tom then turns on the game and starts playing with Jo.

Affected projects

  • Gwibber
  • Empathy
  • ubuntu one
  • software center
  • one.ubuntu.com (maybe)

Gwibber

A lot of the stuff is already there and application developers can plug libgwibber so thats not so much of a problem I think.

Also I had an idea we could use gwibber for both the comments in the software center and the trophies system. So that you get a personalized comments and trophies system.

Empathy

Well I dont know much here but it would be ideal to have some dbus service to set the status and maybe some way to link to the game in the message. Also if mumble could be integrated into empathy it would be nice.

Ubuntu One

Well id say for the trophy system we could just make a replicated desktop couch db but we could go deeper with sso integration into games and auth of games use. Sync of save games should be easy enough to do.

one.ubuntu.com

We could make a page for your trophies if you have them and links to the games in the software center for people who are viewing the page that dont have the game. It could be done with some sort of status.net like system I think. Note: Some ideas on Save Game synchronisation: GamesIntegrationSaveGames

Software Center

This is where we need a lot of changes. Adding video content and extra screenshots. Displaying trophies(maybe), recording and displaying messages about the software from friends from gwibber (maybe). The link system is working with apturl so thats already done.

Ok so here are two quick mockups but they are really bad. The point of it is that we should have a comments and trophy thing added to the bottom. The videos and screenshots thing im kinda torn over how to do it. We could have both in the same place it is now and the user hits next through all of them.

Software_center_ui_concept.png

Software_center_ui_concept(2).png

(Ok I'm not too great at doing wire frames and the idea is fairly raw if someone wants to make some better mockups I'll be very happy)

Similar services advantages/disadvantages

Steam

Advantages

  • Well-integrated payments
  • Offers demos, videos and screenshots to show off the games
  • All integrated into the one desktop app and also available on the web
  • Simple all in one approach
  • Social aspect with friends lists, profiles, calender to schedule games/track game releases and chat
  • Cloud sync for games if the developers want it for save games
  • Cross-platform distribution (Win/Mac)
  • Steam source engine for game making games
  • Publishing services detail

  • Integrated trophy system
  • Updating handled
  • easily join in to friends games
  • integrated news to see what games are coming
  • share button for social networks
  • wishlist

Disadvantages

  • One-time payments (only has games that dont have recurring fees)
  • Not integrated into the platform (doesnt make use of local chat clients, uses its own notifications)
  • Not available on Linux
  • Some games still use their own authentication

battle.net

Advantages

  • Well-integrated payments (be they reoccurring or one-time)
  • Single sign on in all games (using email and password)
  • Web-only service
  • Offers demos and trials for games
  • Downloads are available
  • It also handles buying of games or payments from games stores.

Disadvantages

  • No save game sync (but for the biggest user of the service WoW its not needed)
  • Updates handled by games
  • Not integrated at all in the desktop
  • The games still have their own auth and isn't auto logged in
  • Is restricted to Blizzard games
  • The games maintain their own trophy system if they have the need for it and it isn't integrated into the web service
  • No social aspect to the service (it's more of a payment manager)

Xbox Live

To an extent this is good info to know too

Advantages

  • Integrated store
  • Trophy system + Gamerscore
  • Social features built in
  • Payment and download system built in
  • Chat status is set to the game you are playing and what you are doing in the game
  • Updates handled
  • Built in voice chat
  • Distribution of small games handled
  • easily join into friends games
  • built in news and reviews on the dashboard

Disadvantages

  • the store offers games by category and doesn't bother suggesting what you would be interested in
  • Voip, multiplayer gaming and other premium features cost money
  • Relies on the physical medium for most games
  • Poor social (Twitter/Facebook) integration
  • Party and private chat need aren't very good
  • Chat systems are only integrated into Microsoft services
  • No save synchronization

iOS Game Center

(someone else has to do this I dont have a clue)

Advantages

Disadvantages

Playstation Network

Advantages

  • Free (no membership cost) for most features
  • Well-integrated w/rest of system
  • Decent Facebook sharing integration
  • Easy payment integration
  • Recommends games based on what you're looking at/what you've downloaded
  • easily join into friends games

Disadvantages

  • Updates are slow
  • Cross-game chat and other features cost

Steam's app page battle.net

Comments (pre UDS Natty)

Other game platforms to consider: facebook, brattspielwelt

bryce 2010-10-03: I really like this idea, but I think the blueprint might be too ambitious to accomplish in one release. I'd suggest selecting one tightly-focused aspect of it and focus on that piece first, as a sub-blueprint of this one. I also agree that leveraging libgwibber may be a good approach, but libgwibber may need further development/documentation work before it's sufficient to be used by game developers for this purpose.

fagan 2010-10-4: I agree too focus is needed here I know the wiki page was just more to get a feeling for the overall direction I was thinking of going with it. If we can turn it into a few manageable work items to build the system up towards the next LTS release it would be manageable to get everything done with time to spare.

david 2010-10-11: I've been doing some work on figuring out how synchronized save games could work. I think it's important. What I've written up so far can be found here: https://wiki.ubuntu.com/GamesIntegrationSaveGames

david 2010-10-15: I've been thinking this over. I think Saved Games should be our priority (as I wrote above) so the question is "how?". I've broken this down into 3 distinct question: 1- Should the onus of enabling a game to use cloud saving be on the developer of the game or the Ubuntu community in general? 2- If the onus is on the developer, should we use this opportunity to enforce standards (ie. putting save games in the .conf or .local folder) 3- How exactly do we do it? (Do we sync the folder or make it a feature called by the game? How do we know which files to backup? What methods do we use to do the syncing?)

fagan 2010-10-15: Oneconf is a similar project to the game save syncing so it wouldnt be too hard to use the same code base. So thats the how im running with at the moment. I dont think save games are the priority though its more about the content discovery issue we need to address in the software center. So using social media elements, videos and demos inside the software center's UI to get people to know about the products.

Notes from UDS Natty

[?] Verify whether valve has plans to port Steam client to Linux
[?] What issues are blocking Valve

Target wine as the runtime? (NOTE: This would help, not only Linux, but ReactOS, FreeBSD, etc.)

pygame for small games
http://apt.ubuntu.com/p/quickly
apt-get install quickly
quickly create ubuntu-pygame test-game

We can create a template to wrap up flash games
 * sell via USC
 * Quickly could offer a ubuntu-game-flash template and you could drop a flash game in

Telepahy sharing of game states via tubes.  OLPC games already has telepathy tube state-sharing code - that integrates with the pygame mainloop. Branch quickly to include an example of this.

Ubuntu One
 * Easy API for sharing a telepathy tube with a contact, then sharing state
 * Store game saves & high scores
 * Storing achievements (OMG)
 * Showing which games both contacts have, so you can pick a game you have in common to play

High quality art assets are a common problem.  Maybe point to places a FOSS developer can grab Free art?
FLOSS ART Resources:
 * Linux Multimedia Sprint: FLOSS/Creative Commons art, sound, etc. : http://www.skyehaven.net/blog/linux-multimedia-sprint/downloads/
 * FreeSound: http://www.freesound.org/

A 'quickly sell' command?  Or some easy way to get a small game to be commercial.

Making packaging easy is a problem in the platform in general

Include one simple but fun game in the installer
change it every 6 months.


4 users
1. casual developer who wants to make a game for fun
  + Biggest need is reusable graphical assets ("programmer art")
  + would be nice to have a public place to store high scores
  + would be nice to have a U1 way to make easy multi-player games
  + would be nice to have a U1 way to publish a score/achievement to some central place so you can see what other people have done
  

2. casual developer who wants to sell a game for $1
  + Biggest need is smooth process / sample code for how to hook into USC's payment processes
3. professional developer who wants to make a new game for Ubuntu
  + Needs proof that market exists and will be profitable
4. professional developer who wants to port a game from another platform
  + Needs both payment process channel and low-cost method for porting it


Action Items:
 * fagan to look into the empathy status sharing api
 * alecu will look into highscores on the quickly pygame template, and see whether the olpcgames telepathy code can be used for a multiplayer pygame template. (mterry willing to mentor/help with the quickly bit)
 * mterry to add flash wrapper quickly template
 * fagan to add a java wrapper quickly template
 * dylanmccall to play with Quickly Ogre & ODE (C++) template

~~~~

GamesIntegration (last edited 2010-11-01 13:55:18 by mterry)