4

I'm in the planning and learning stages of building a facebook game. For the past year my foremost question has been, "Flash or HTML5?". Rather than try to decide the answer to that, I thought I would give the markets for both some more time to mature and learn how to design the game and how to manage the server element.

Over the last year I've devoured thousands of pages of text concerning game development and business development, along with getting a solid footing in AS3, python, php, C# and javascript. So, I'm most interested in picking a system that is best for the job rather than, for example, starting off assuming the game logic will be in python because that's what I enjoy most.

The game is at its core a strategy game and I plan to use many mobile phones extensively in addition to the standard facebook "invite all your friends" features. The graphics won't be flashy and will in most places be rather flat because of the thematic elements, rather than 3d isometric like farmville or other flash facebook games.

So from a technological perspective HTML5 doesn't have any real advantage that I can see over flash, and neither does flash have any real advantage over HTML5. If you see that one has a clear advantage over the other then I would be happy to hear that in your comments.

I have five primary questions that I need your opinion on:

1) Which platform makes better sense for building a facebook game considering the future market trends?
2) Which platform has better inherent elements to help prevent cheating? (like flash being compiled into a .swf vs javascript being in plain text)
3) Which platform would be most attractive to the best game development talent for future hires?
4) Which platform is easiest to take technology from one game and use it for other future games? (like developing isometric graphics in flash)
5) Which platform is easiest to develop with a team?

Ken
  • 1,110
  • 1
  • 10
  • 26
  • 3
    JS/HTML 5 suffers huge performance hits on computers with middling to low RAM. Actionscript 3 is a more powerful and flexible programming language. –  Feb 17 '11 at 21:55
  • 1
    I think a big factor in your decision should be market saturation/target audience. If you're building a facebook game in HTML5, your audience is going to be quite smaller, potentially, than that with flash. HTML5-supporting browsers are definitely not the norm, on a global scale (the country you live in might differ). Flash does have wider acceptance and usage, but is limited in the mobile arena. Just some nuggets to think about. – TNC Feb 17 '11 at 22:03
  • There will be some animation, sliding menus, etc, in the game, but minimal to no animated game sprites, "scenery" or anything like that. Hopefully there will be no performance problems if I were to use JS just because there won't be much processing happening. That's why I didn't ask about that factor in making the choice. =) – Ken Feb 17 '11 at 22:05

2 Answers2

11

Here are some thoughts. Please consider them opinions rather than facts - I'm sure I forgot something, or other people might think differently. I'm hoping for a fruitful discussion, because I believe your questions are important and worth exchanging opinions on ;)

  1. It's hard to predict the future, but considering that the HTML5 standard will not be final within the next couple of years, and that Microsoft's browsers are way behind (only the newest IE beta supports HTML5), developing exclusively for HTML5 seems like a big risk to me. It makes a lot of sense for iOS and Android devices, because both Safari's and Chrome's Webkit implementation are pretty far along. But if you want to distribute your game to "regular" PCs and laptops, too, I wouldn't want to do HTML5 without a fallback solution. In short: If you can afford it, do both, if not, go with Flash (it works everywhere except on iOS).

  2. I'd say both platforms have about the same vulnerability issues: The user downloads a large part of the game to the client computer. You can use obfuscation tools and encryption, but with some determination and effort, the code can be decompiled and/or analyzed to find loopholes for cheating. You can never be completely safe on a client computer, so the only "real" safety mechanism is to keep most of the game logic on your server. This is, however, not always possible, because of performance and capacity limitations. Plus, you will always need a client application of some sort, so at least the possibility of tampering with the communications channels will remain. Use all possible precautions you can think of, stay alert, have some routine methods of checking irregularities (plausibility checks, reporting of unusually high scores, etc.), and be ready to react quickly, when something odd happens. You should do that on all platforms, really.

  3. Both HTML5 and Flash support vector graphics, which is a good basis for hires. In this field, Flash has one major advantage, in my opinion: It offers a decent IDE for creating keyframe animations. I'm sure Adobe is working on an SVG export function, which will allow animations created with Flash to be used in HTML5, but there isn't one yet. And I don't know any 2D animation tool that can export SVG animations. (If anyone else knows one, please comment!)

  4. If you design your program architecture to be modular and extensible, you should have about the same possibilities on both platforms. The only major difference is that in HTML and JavaScript, your source files are also your end product: All resources (HTML pages, JavaScript files, images, CSS files, etc.) are available as individual files, and anyone in your team could replace things on an FTP server without interrupting other program parts. In Flash, source code must be compiled, and resources are often packaged directly into the resulting binary files. So whenever, say, an image changes, you would have to re-deploy the Flash binaries - unless your project is programmed to load resources externally. Be sure to decide on a strategy for resource management early on, and based on not only technical requirements, but also on workflow needs.

  5. Successful team programming, in my experience, is not so much a question of the programming language used. With modern tools, you can set up useful team utilities like versioning, unit testing and continuous integration for just about every platform there is. I would try to go for a platform that most of the people I work with understand and/or are well-trained in (if there already is a core team, for example), or one that I myself am comfortable enough with to at least be able to follow up with the development process. It also depends on the kind of talent you can find and afford. It all comes down to this: What good is even the best technology when you don't have the people to use it efficiently?

weltraumpirat
  • 22,212
  • 5
  • 38
  • 53
0

It depends on the game, but honestly Flash is the way to go IMHO. Browsers will always have issue rendering. HTML 5 is more of a buzz thing and it's driving force is if you want to have iPhone and iPad support. Plenty of other Social Game companies just port their successful titles to native apps if they make lots of money.

1) Which platform makes better sense for building a facebook game considering the future market trends?

There is not Rich Media alternative for Flash. For any complex game Flash is the only way to go. As far as the back end it's very subjective. Ruby, Python, C#, Php are all common in the Social Game industry.

2) Which platform has better inherent elements to help prevent cheating? (like flash being compiled into a .swf vs javascript being in plain text)

Cheating is rampant in any social game platform. Flash can be completely decompiled, thus your security needs to always be handled server side. Flash and HTML 5 would have the exact same anti-cheating solution: server side validation of everything.

3) Which platform would be most attractive to the best game development talent for future hires?

Personally, fighting with HTML 5 rendering quirks is a huge pain. Flash has it's issue but over all it's breeze and your battling with Rendering Speeds and pushing the Flash Player to it's limits.

4) Which platform is easiest to take technology from one game and use it for other future games? (like developing isometric graphics in flash)

Flash. But I wouldn't get ahead of yourself. Make one fun title then worry about porting it. Porting games from web to a mobile platform isn't a 1:1 port, you have to rethink the UI and sometime the game itself. Ideally you just don't have to re-code the servers game logic.

5) Which platform is easiest to develop with a team?

Same.

haysclark
  • 1,040
  • 8
  • 15
  • You seem to be very certain to answer "Flash" to 4) and 5), but you don't offer an explanation. Why would you say it is easier to extend existing code and develop in a team with Flash? – weltraumpirat Feb 18 '11 at 09:42