To content | To menu | To search

Tag - HTML5

Entries feed - Comments feed

Sunday 1 January 2012

Dusting off the looking glass

It's that time again... to make a few statements I can feel ridiculous about later on. I did take an advance position back in October regarding Internet platforms, so no need to touch that topic again just yet (especially after the additional HTML5/Flash comments in November). As before though, let's take a look at what my hit rate is.

#1 Oracle's jostling on Java patents will hurt Java as a platform: yeah, although it's hard to notice, what with the chatter on cloud platforms instead. Still, you've got to write that cloud-hosted application in some language, and though evidence is sparse, it seems to me that more devs are picking other tools. Somewhat insanely, PHP still ranks well in those selections, which proves that these things don't follow any observable logic, though.

#2 Amazing natural motion control applications during 2011: well, not really, yet. XBox Kinect has supposedly continued to sell well, though Microsoft hasn't given any sales data since last March (when they announced 10 million units sold), but applications are rather lame. Some pretty amazing research stuff going on though, which will ultimately enable computers to truly augment live views into the real world.

#3 Flash and new computing devices: see the other posts, linked above. Progress is steady but impact will take several years. As for the long-term view; while my daughter already understands that tablets and phones are for looking at stuff and playing, and keyboards are for banging, I maintain hope that in the next couple of years, she will be able to interact with computers by speech as well as gestures. We'll still need to invent the new human-computer interface best practices for that age, though.

Facebook/Timeline did finally launch before end of 2011. What do you think of it? I haven't seen a reason to change my view since October, although the "social reader" apps like Washington Post's or Guardian's certainly are annoying. Don't know if I should expect media companies to learn how to interact with people, though.

Now, the predictions. This one's gonna be difficult. Not because the world would be ending this year, but because it seems like quite a few macro trends are converging. Lots to feel optimistic about: locally, the interest in growth entrepreneurship and globally, new forms of peaceful citizen democracy, and the ever-continuing development of technology (gene therapy and data-driven, preventative medical treatments are exciting). A few that I hope will turn out well, though it's going to be a bumpy road: the ongoing Arab Spring as well as the Russian pro-democracy movement, the Euro crisis, which could still lead to yet another banking collapse. And finally, some political and regulatory changes that are quite worrying, even if I've tried to avoid a position on politics, and especially politics outside the EU. Still, these bother me for both their privacy as well as anti-competitive aspects and lack of due process: ACTA, SOPA, NDAA. Still, these are hardly going to bring the Singularity around quite yet, dystopian though they seem.

However, I don't want to pretend I care about or follow politics closely enough to understand why these things always come years behind and over-reach, so I'd rather focus on something more tractable. In terms of professional interests, the trend toward hosted, multiplayer gaming is, by now, quite unstoppable. We're moving on from the Social Games 1.0 of Facebook Canvas, though, and the future is more for games where the players' actions impact each other. The challenge is, we need to learn to design these games so that while they truly have group interaction in their core, they still remains games; that is, masterable, repeatable and somewhat predictable experiences people can continue to enjoy, and a source of richness their lives might otherwise be lacking.

As always, comments welcome. This year this post was quite hard to focus on anything in particular, and maybe you have better insight. Let me know. In any case, Happy New Year! Whatever you do, make 2012 matter.

Monday 14 November 2011

Flash is dead? What changed?

So, Adobe finally did the inevitable, and announced that they've given up trying to make Flash relevant on mobile devices. Plenty has been written already about what lead to this situation, and the "tech" blogosphere certainly has proved their lack of insight in matters of development again, so maybe I won't go there. Flash plugin has a bad rap, and HTML5 will share that status as soon as adware crap starts to be made with it. It's not the tech, but its application.

So, lets focus on the developer angle. Richard Davey of Aardman and PhotonStorm is offering a developer-focused review into the alternatives. TL;DR; Flash is what's there now, but learn HTML5 too. Yeah, for web, I would agree.

However, that misses the big picture as well. Choosing any tech today for the purpose of building games for Web is deciding a future course by the back-view mirror. Web, as it is today, is about a 500M connected, actively used devices market. Sure, more PCs have been sold, and about that many are sold both this and next year, but the total number of devices sold doesn't matter - the number of people using them for anything resembling your product (here, games) does. So, I'll put a stake in the ground at 500M.

In comparison - iPad and other tablets reach about 100M devices this year, and projections look like about as much more next year. I would argue that most of them will be used for casual entertainment, at least some of their active time. That makes tablet-class devices (large touchscreen, no keyboard, used on a couch or other gaming-friendly situations) a significant fraction of the Web market already, and that will only be growing going forward.

Mobiles are a class of their own. Several billion devices already, maybe about a billion of them smart phones, some projections claim another billion smart phone-class devices to be sold next year. Just by limiting the market to only those devices which sport installable apps, touch screens, significant processing power (think iPhone and Android devices, possibly excluding lowest-end Android and the iPhone 1.0 and 3G), you're still looking at a potential market of 1 billion devices or so. Now, phones are not in my book very gaming-friendly - the screen is small, touch controls obscure parts of it, play sessions are very short, the device spends most time in a pocket and rarely gets focused attention, and play can be interrupted by many, many things. Still, as we've seen, great games and great commercial success can be created on the platform.

However, lets not pretend that a Web game could ever have worked on either a tablet or a phone without significant effort, both technical and conceptual. The platforms' underlying assumptions simply are too different.

So, how would you go about choosing a technology for creating a game for the future, instead of the past?

The choices are:

  • Native, writing for iOS only. Decent tools, except when they don't work, one platform, though a relatively large one with customer base proven to be happy to spend on apps.
  • Native, writing for iOS and Android. Perhaps for Windows Phone too, if that takes off. Welcome to niche markets or fragmentation hell.
  • Native, but with a cross-platform middleware that makes porting easier. Still, you're probably dealing with low-level crap on a daily basis.
  • HTML5, if you're willing to endure an unstable, changing platform, more fragmentation, dubious performance, and frankly, bad tools. Things will be different in a couple of year's time, I'm sure, but today, that's what it's really like. I would do HTML5 for apps, but not for games, because that way you'll get to leverage the best parts of web and skip on the hairiest client-side issues. In theory you'll also get Web covered, but in practice, making anything "advanced" work on even one platform is hard work.
  • AIR, if you continue to have faith that Adobe will deliver. In theory, this is great: a very cross-platform tech, you can apply some of the same stuff on Web too, get access to most features on most platforms on almost-native level, performance is not bad at all, and so on. Except in practice HW-accelerated 3D actually isn't available on mobile platforms, its cousin Flash was managed to oblivion, and perhaps most crucially, Adobe's business is serving ad/marketing/content customers, not developers. I keep hoping, but the facts aren't encouraging. For now though, you'd base your tech on a great Web platform with a reasonable conversion path to a mobile application, caveats in mind.
  • Unity, if you're happy with the 3D object-oriented platform and tools. You'll get to create installable games on all platforms, but lets face it: you will give up Web, because Unity's plugin doesn't have a useful reach. Here, the success case makes you almost entirely tables/mobile, with PC distribution (in the form of an installable app, not a Web game) less than a rounding error. This is probably what you'd be looking for in just a few years time anyway, even if today it looks like a painful drawback.
Conclusion: Working on tools? HTML5. Web game for the next 2 years? Flash 11. Mobile game? Unity, if its 3D model fits your concept. AIR if not, though you'll take a risk that Adobe further fumbles with the platform and never gets AIR 3 with Stage3D enabled on mobile devices out the door. Going native is a choice, of course, but one that exceeds my personal taste for masochism.

On the upside, Unity is actively doing something to expand their market, including trying to make Unity games run on top of Flash 11 on PC/Mac, so in theory you might be getting the Web distribution as a bonus. Making code written for Mono (.NET/C#/whatever you want to call it) run on the AS3/AVM Flash runtime is not an easy task though, so consider it a bonus, not a given.