Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I was asked by my customer to build a Facebook game. The game would be something similar to Mafiawars.com where the game is hosted on a server and run through a frame on Facebook.

The thing is after several days of negotiations with the customer and near the finalization of the requirements he mentioned something strange. He said that if the game was successful on Facebook then we may add it to Google+ too.

I thought he meant that we'll develop a new version for Google+, but he refused as he argued that the game should be able to support both sites and he won't pay for the same game twice.

Now I haven't developed neither Facebook nor Google+ games before, so I don't know if it is possible to build a single Facebook/Google+ game.
How would you react to such requirement? How would you design such an application?

Notes

  1. I confirmed with the customer that he wasn't talking about using Open ID he wanted full integration (sharing post, friend requests,..etc.)
  2. I really don't want to lose that customer for numerous reasons (He even agreed to extend the project time to compensate for the time I need to learn Facebook/Google+ APIs)
share|improve this question
add comment

1 Answer

up vote 9 down vote accepted

I would react positively to such a requirement assuming customer is fully aware of what's required.

How will the game integrate with Facebook and Google+? Facebook offers one thing, when Google offers another. Their APIs change, new features get rolled out, when other features get removed as they aggravate users with spam or what-not. There is no way you can guarantee that both Facebook and Google+ version will be the same. There is no way you'll be able to target both platforms without extra work.

My colleague is currently working on a Facebook game. The backbone of the game is independent of Facebook. It runs in an IFrame, but it talks to Facebook to allow players to invite their friends, to purchase items etc.

Google+ have their own ecosystem so you'll have to adapt your game to that ecosystem too. In regards to implementation, you'll have to abstract interaction with Facebook and Google+.

I would consider implementing it in such a way that your game talks to the social platform (something you'll have to implement) and social platform talks to multiple social networks. Think of social platform as a layer of indirection. Your game doesn't want to know anything about Facebook, Google+ or Twitter. Once you achieve this, it'll be relatively easy to add or remove social networks from your Social platform.

If you do decide to implement this social platform, then try to make it independent from your game. Once again it's all about separation of concerns. Facebook and Google+ will be active for years to come. Once you write this platform, or a facade for talking to the social networks, you can re-use it in further projects.

share|improve this answer
1  
+1 This is actually a great idea. Building a layer to abstracts the interaction between the game and the different social networks sounds really logical. It's like building an ORM for social networks :D However, as you said Facebook and G+ are constantly changing their APIs, so I anticipate maintenance nightmares :S But the idea itself is very promising specially if it was an Open Source project. –  Songo Nov 2 '12 at 10:51
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.