Tuesday, July 31, 2012

Helium browser & HTML5 to .exe launcher

As a HTML/CSS/Javascript video game developer, I recently tested Adobe Air and Titanium Appcelerator because I needed my HTML5 game prototype to run fluidly, as a standalone-like application instead of within a web browser. I found out that both Air and Titanium have the same performance (framerate) level, and that this level is way more inferior than the very same code running in a browser like Chrome, in many scenarios (especially when you have moving or animated sprites). I had to find an alternate solution. Supporting mobile platforms was not a primary concern, but since I was using ActiveX applets to save savegame files on the user's hard disk drive (I didn't know PHP, MySQL and Ajax at that moment), I knew I could not rely on a Webkit-based browser, which is complicating the thing even more, leaving Internet Explorer as the only viable solution. However in order to get decent Javascript performance and HTML5 support, I have to use at least IE9... IE9 is not available on Windows XP and I cannot neglict XP users since they are still representing a huge piece of the pie. Logically, there must be some solution available on the market... but in fact I found any... :(

So I started digging the web in quest of precious infos like hints, ideas, articles, forum posts, relevant keywords... well anything that could help me to figure my way out of these shocking performance and compatibility limitations.
I finally opted to build my own browser, which would mix all the good elements of each competing browser; I made it over Google Chrome 21's webkit for a better respect of the W3C standards, got Chrome's latest V8 engine for blazing-fast Javascript, got the ActiveX engine of Internet Explorer, embedded Unity WebPlayer and Adobe Flash Player 11, allowed it to run in kiosk mode (no browser URL bars and menus, full-screen) and made it portable so I can easily distribute any HTML game or app as full-fledged .exe software on Windows XP/Vista/7 32-bit and 64-bit.

Then I opened my HTML game in it, and with some esoteric (but still not too complicated recoding) process, I managed to get all the game's features to work, including access to the hard disk drive via the ActiveX bridge. I benchmarked it's framerate. What a surprise when I realized that I got over 700% better framerate compared to Adobe Air and to Titanium Appcelerator!! It ran many times faster on a poor XP system using Helium, compared to Air or Titanium on a Win7-based bomb (even with HTML5 disabled)!

The idea to name it Helium has instantly emerged in my mind, since physically-speaking, Helium element is lighter than Air. Maybe a bit too ironic in regards to Adobe but hey, if a lone poor guy can develop a better product over a two-weeks timeframe, this same guy is in full right to wonder what the hell they are doing -or trying to do- at a huge corporation like Adobe.

Currently I lack of time to build a descriptive API. And Helium cannot work on non-Windows operating systems, which is a bit deceptive. But I look forward to make some good use of it someday. Maybe in my own future projects, maybe under licence to other developers. If anybody's interested, let me know. This may help pushing things further, faster and in the right direction. Right now I think the demand goes much more towards browser-embedded apps, and where Helium crushes the competition, is in the opposite purpose (compiling standard .exe apps). I could obviously release Helium as a new and full-fledged web browser, however it would not bring, in its current state and features set, any noticeable advantage to the web surfer. And I firmly believe that standardization in the web browser industry is more profitable to the users than diversity, unless something important should change and nobody does the move right, which is not the case right now on the market.

No comments:

Post a Comment