Transparent Computing with Freedom Engine – HTML5 and Beyond

With Ultrabooks getting all the goodness of mobile devices including sensors and touch, developers need to consider their options for developing apps that work across both mobile and PC devices.  The idea that you can write an app once and then deploy it to all devices remains the dream tool of every developer. We’ve seen many cross-platform solutions in recent years, but the one that ignited the most interest was HTML5. The power was not in the language, but the distribution capabilities of the standard. Your HTML5 app can find its way to every browser, which means every device. Hundreds of millions of devices to be precise!

That is to say, almost every browser, and almost every device. However not all features are equally exposed to each HTML5 runtime across each device and platform. To fill in these gaps, developers turn to hybrid solutions that support platforms and features not yet available in the HTML5 standard.  These hybrid solutions usually come at a cost, and often as a compromise.

The good news is that a new solution is available for developers who want all the benefits of HTML5 with none of the gaps, costs or compromises. The tool is Freedom-Engine, a solution that frees developers from all obstacles to transparent computing, allowing them to write once and target both mobile and PC devices, including the latest Ultrabook features.

  • Code in the Cloud – no development kits or APIs to install
  • Full HTML5 Support – graphics, audio, input, devices, WebGL, Box2D
  • Deploy to all platforms – HTML5 browsers + Native mobiles, tablets & desktop
  • Write Once – input and resolution agnostic commands eliminate porting pain
  • Free To Use – develop, test and distribute your apps, you keep all revenues.

The Freedom-Engine portal is currently at BETA and you are free to try it out at www.freedom-engine.com. If you like what you find, register and store your code and media in the cloud for free. When you develop in the cloud, you can instantly access your project from any computer.

The heart of Freedom-Engine is a powerful 2D/3D engine with all the commands you need to create any app you wish, from simple media apps to action-packed 3D games. The command set is universal, which means the same command will seek out the appropriate methods to achieve the same end result on different platforms.

For example, an accelerometer is available on many, but not all devices. For those devices that do not have such hardware, your app will automatically allow a substitute input device to simulate the data so your app can continue to be played, irrespective of the hardware.

 

As you can see in the HTML5 app below, the ship is controlled by ARROW KEYS through your browser because regular HTML5 does not have accelerometer features:

Use your WebGL enabled Chrome or Firefox browser to try it out right now:

https://freedom-engine.com/play.php?id=8456&activate=b9513db61804160302f2ffb0b16a791a

However, because Freedom-Engine seeks out all available hardware, it can augment the app experience if the device that runs the HTML5 app supports it. If you are fortunate enough to own an Ultrabook or Windows Tablet with built-in accelerometer / inclinometer and have the Sensors for Chrome Extension installed, the app will ignore the Arrow Keys and use your built-in inclinometer instead.

You might think this does sound like science fiction. Not only is it fact but it’s also incredibly easy to do. Here is a snippet of the code that uses the Ultrabook sensor:

rem UltrabookSensors - Project created 2012/09/27
rem Landscape App
SetDisplayAspect( 4.0/3.0 )
rem Sprites
space=CreateSprite(LoadImage("space.jpg"))
SetSpriteSize(space,100,100)
ship=CreateSprite(LoadImage("ship.png"))
SetSpriteSize(ship,10,10)
rem Ship start position
X as float : X=50
Y as float : Y=50
OX as float : OX=50
OY as float : OY=50
rem Main loop
SetPrintSize(7)
do
 X=X+GetDirectionX()/15
 Y=Y+GetDirectionY()/15
 SetSpritePosition(ship,X,Y)
 if abs(OX-X)+abs(OY-Y)>0 then SetSpriteAngle(ship,90+atanfull(OX-X,OY-Y))
 OX=X : OY=Y
 Print("Use Arrows or Accelerometer")
 Print("(if you have one)")
 Sync()
Loop

As you can see, the commands could not be simpler, and when you consider this will be as close as you ever get to an accelerometer API, imagine what the rest of the command set can do!  For the full program listing, simply visit the www.freedom-engine.com/ide.php and click on the Accelerometer Sensor on the left of the page. Press PLAY and have fun!

With additional support for native Windows, Mac, iOS, Android and Playbook deployment, Freedom-Engine not only caters for the huge HTML5 distribution opportunities, but fills the gaps often left by competing mobile-centric tools. Additionally, the Freedom-Engine team are working on supplementary support for Windows 8 to ensure that native applications take advantage of the various WinRT APIs including sensors, ideal for ‘desktop mode’ Ultrabook applications.

With the introduction of Windows 8, two new user experiences have been created called metro-style and desktop. Each mode uses wildly different underlying technology, namely Win32 and WinRT, and Freedom-Engine plans to support both of them. Win32 Desktop Mode initially, which uses COM hooks to gain access to the WinRT API layers, and Metro-Style Mode which embodies the WinRT platform.  Desktop Mode apps can be built and sold through the AppUp store and Metro-Style apps can be built and sold through the new Windows Store.  It is supposed that applications based on WinRT will migrate well to the Windows Phone 8 platform and other derivative devices, meaning more platform targets for your write once Freedom-Engine application.

The vision of Transparency Computing is not just about app support for select mobile devices, but the entire spectrum of devices in daily use by people today. That includes TV’s, In-Car Entertainment Kits, Consoles and of course Ultrabooks. Why confine your app to run inside a single-threaded web view, when the same app can be deployed as a native application, tapping into more cores and more features than a standard browser app.  If you want both, try Freedom-Engine for size.

 

FIN

 

Para obter informações mais completas sobre otimizações do compilador, consulte nosso aviso de otimização.