if I want to build a game for web, facebook, and iphone, do I need to build 3 completely different versions? I know there is a new company that is "build once, launch anywhere," but I'm asking about current best/practice and methodology in doing this.

  • \$\begingroup\$ There are several questions about this already (check the related questions). Also, what's the difference between "Facebook" and "Web"? Most likely this is just a difference in the backend and doesn't affect your gameclient directly. \$\endgroup\$ – bummzack Jan 26 '11 at 17:33

This really depends what type of game that you are making.

If your game is a simple text based game, then you can build the same interface in HTML and use different CSS to make it look good based on where the game is being accessed from.

More realistically, your game is highly interactive, and it would be best to build the web/facebook version in Flash/Silverlight or another browser plugin. Then port it to iPhone in Objective-C. (Or, if you're more proficient in Objective-C start there and port to web/facebook.)

The main issue that you'll probably run into is that on iPhone the input scheme will be different which could impact gameplay.

The bottom line, is that you will need to, at a minimum, build a different Rendering and Input scheme for each platform you wish to deploy to. Facebook, is really just a normal web deployment, inside the facebook site, so the design would be the same for facebook or any other web game.


A few things I'd like to point out, based on your comments. First, HTML5 is probably NOT a good place to start, it has poor browser support (thought getting better), I'd stick with HTML4 and/or XHTML 1.1 and CSS2, these will work in almost all modern browsers; however, if you require any animation, I'd recommend using Flash or Sliverlight to build the game, and use their associated ability to call web services to save state to a server. Second, HTML is just the presentation, if you don't go the plugin route, you would likely need PHP or ASP.NET on the server to manage your game state and persist it to a database.

  • \$\begingroup\$ This answer is great. Basically, Id like to build something for the web and facebook first. It will have graphics but it will be mainly text based, it's not city ville, it's more equivalent to something like scrabble, but less graphic intensive even than that. I think HTML5 webapp and facebook is a good place to start, and then I can port it to iphone. Does that sound reasonable? \$\endgroup\$ – lv31 Jan 26 '11 at 17:42
  • \$\begingroup\$ One other question: What did you mean build the interface in HTML? Wouldn't I still need to use PHP/MySQL? Seems like HTML is doing a lot more these days, so forgive me if that sounds very amateur, just wanted to clear things up. \$\endgroup\$ – lv31 Jan 26 '11 at 17:44
  • \$\begingroup\$ @Iv31 If this answer is your solution, don't forget to mark it as accepted :D \$\endgroup\$ – Jesse Dorsey Jan 26 '11 at 17:58
  • \$\begingroup\$ Noctrine, sorry I'm new, will do that. \$\endgroup\$ – lv31 Jan 26 '11 at 18:39
  • \$\begingroup\$ Nate Bross: Okay, well, my game will require minimal animation. Maybe one or two little things. It's really just a card game. What would you suggest for something like that? Say, someone wanting to build "go fish" \$\endgroup\$ – lv31 Jan 26 '11 at 18:42

There are platforms that could enable you to minimize the amount of porting work you'd need to do -- Unity, for example, which somebody apparently managed to integrate into Facebook with at least some success. It's certainly technically possible to build a product that more-or-less seemlessly compiled and deployed to multiple distinct platforms like that, but there are problems that are nontechnical in nature that you'd have to overcome -- such as how to design a game that functions well in the wildly different contexts of all those platforms (some of which have very different input styles).


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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