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'm starting to design a game that is going to have the following characteristics, and I'm trying to decide how I should program it. I'll also give a bit of my experience after, to help make the decision a bit better.

  1. The game should be able to support both Facebook integration, and a stand alone version.
  2. I don't want to do it right away, but I am thinking it would be a good idea to port this to Android/ iPhone at some point in time.
  3. The game will involve communication with a server. The method of communication is still opened, but I imagine most of it will be over HTTPS. I'm suspecting most of the work is going to be done on the server at this point in time, and that the client is mainly going to show the results of the previous frame, and select what to do for the next frame.
  4. I suspect that at some point in time, I'm going to want to put in animations and the like, but this is not critical for the beginning of the game.
  5. The game is essentially an online board game, complete with cards, a board, etc.

I'm currently looking at Flash, HTML 5, and a Java applet. Some random pieces of information.

  1. I have access to Adobe Flash, actually the whole Design Premium, CS5.
  2. I have some experience with programming Android apps.
  3. I have done work with HTML, but it has been quite a while. I've only done a little bit of Javascript, but I don't recall it being particularly hard.
  4. I routinely program in C, C++, Matlab, and Android (Java). I fairly often program in Python, Perl, Shell, and I have programmed before in Basic, HTML, Javascript.
share|improve this question

closed as off topic by Jarrod Roberson, Walter, gnat, Yannis Rizos Mar 3 '12 at 10:33

Questions on Programmers Stack Exchange are expected to relate to software development within the scope defined by the community. Consider editing the question or leaving comments for improvement if you believe the question can be reworded to fit within the scope. Read more about reopening questions here.If this question can be reworded to fit the rules in the help center, please edit the question.

2  
-1. We can't tell you which technologies to use for your specific project. Try to re-work this question into something more generic and helpful to others. –  Craige Mar 1 '12 at 20:33
2  
This may fall under the "what language you should learn next, including which technology is better" category (explicitly discouraged in our FAQ), however I feel there is enough information in the question for suggestions based on technical merits and not opinions. Answerers please don't prove me wrong. –  Yannis Rizos Mar 2 '12 at 1:53
    
I knew this would be a bit borderline, but I find it ironic that one person wants more detail, and the other less... –  PearsonArtPhoto Mar 2 '12 at 2:30

2 Answers 2

up vote 1 down vote accepted

I'd start by recommending to ignore Flash, except if you only aim at targeting mostly the Windows landscape.

Now between Java and HTML5, I think there's some clarification needed.

I wouldn't implement your game as an Applet, except for a few exceptions. Applets were a good idea at the time to provide more dynamic content embedded in a page when there weren't many other alternatives, and to get more processing software on the client side than with the JavaScript engines of the time. However they were still too slow to feel like a real application, especially to start up (not really an issue anymore), and still present some issues: communicating with other parts of the page is tricky, they're sandboxed and require permissions (and to be signed) if you manipulate resources, and many other issues (overlapping elements, start and close events, managing multiple applets on a page...).

Applets would still allow you to implement relatively simple games or applications, but bear in mind that if you plan to expand later, they're probably not the right fit if you want more than a simple piece of dynamic content embedded in a page. I'd rather recommend you togo for a fully fledged WebStart or JavaFX directly, if you need power, and you can still embed them.

If your game is relatively lightweight on the client (though it's getting quite powerful now), then go for HTML5. It's the upcoming standard, it should have the widest reach in terms of supported platforms, and good modern browsers will still give you enough powers. Others will pick-up.

There are a few other things to consider though. But for your first-draft / quick-prototype, just don't over-think it and go for an HTML5 client.

share|improve this answer
    
Why would implementing a game as an Applet be a nightmare? –  PearsonArtPhoto Mar 2 '12 at 18:15
    
@Pearsonartphoto: sorry, that was unsubstantiated and nightmare was a bit harsh. Applets were a good idea at the time to provide more dynamic content embedded in a page when there weren't many other alternatives. However they were slow (not really an issue anymore), and still present some issues: communicating with other parts of the page is tricky, they're sandboxed and require permissions if you manipulate resources (hence my recommendation to go for WebStart or JavaFX directly), and many other issues (overlapping elements, start and close events, managing multiple applets on a page...). –  haylem Mar 2 '12 at 18:58
    
@Pearsonartphoto: that being said, you didn't say what your game is and does. If you implement a tetris-like game where the server communications are limited to multi-player interaction or submitting high-scores, an applet could be perfectly fine. I still use applets in my day work, granted reluctantly most of the time, but with good conscience when they fit the need. –  haylem Mar 2 '12 at 19:02
    
I'm going to edit your answer to include the information you posted in comments. Feel free to edit it to fix anything you don't like. –  PearsonArtPhoto Mar 3 '12 at 13:20
    
@Pearsonartphoto: thank you. –  haylem Mar 3 '12 at 13:41

HTML5 is supported across the platforms you describe. Not having to code a native app for iphone and android will save you a lot of time.

Also, Flash for Phones has been officially dropped by Adobe (as in, they will not develop it further).

share|improve this answer
    
The mobile version of Flash has been taken off the roadmap by Adobe, with the consideration that AIR is the better technology to use to deploy to mobile devices. The desktop version of the Flash Player is being enhanced to better support gaming goals. adobe.com/devnet/flashplatform/whitepapers/roadmap.html –  meddlingwithfire Mar 2 '12 at 15:23
    
Only the mobile version of flash has been dropped. Desktop (AIR and browser based) is still under active development. –  Malfist Mar 2 '12 at 15:32

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