Jump to content

OpenFL

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Shumbuckaday (talk | contribs) at 22:00, 27 March 2018 (Fixed link to popular editors list.). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

OpenFL
Developer(s)OpenFL Contributors
Initial release30 May 2013; 11 years ago (2013-05-30)[1]
Stable release
6.0 / 3 August 2017; 7 years ago (2017-08-03)[2]
Repository
Written inHaxe
Operating systemMicrosoft Windows, macOS, Linux[3][1]
PlatformMicrosoft Windows, macOS, Linux, iOS, Android, Flash Player, HTML5[3][1]
TypeSoftware framework
LicenseMIT License[4]
Websitewww.openfl.org

OpenFL is a free and open-source software framework and platform for the creation of multi-platform applications and video games.[5][6] OpenFL applications can be written in Haxe, JavaScript (EcmaScript 5 or 6+), or TypeScript.[7], and may be published as standalone applications for several targets including iOS, Android, HTML5(choice of Canvas, WebGL, SVG or DOM), Windows, macOS, Linux, WebAssembly, Flash, AIR, PlayStation 4, PlayStation 3, PlayStation Vita, Xbox One, Wii U, Tivo, Raspberry Pi, and Node.js.[8]

The most popular editors used for Haxe and OpenFL development[9] are:

OpenFL contains Haxe ports of major graphical libraries such as Away3D,[11][12][13] Starling,[14][15] BabylonJS[16] and DragonBones.[17][18] Due to the multi-platform nature of OpenFL, such libraries usually run on multiple platforms such as HTML5, Adobe AIR and Android/iOS.

More than 500 video games have been developed with OpenFL,[19] including the BAFTA-award-winning game Papers, Please, Rymdkapsel, Lightbot and Madden NFL Mobile.

Technical details

OpenFL

OpenFL is designed to fully mirror the Flash API.[1][6] SWF files created with Adobe Flash Professional or other authoring tools may be used in OpenFL programs.[6]

OpenFL supports rendering in OpenGL, Cairo, Canvas, SVG and even HTML5 DOM. In the browser, OpenGL is the default renderer but if unavailable then canvas (CPU rendering) is used.[20] Certain features (shape.graphics or bitmapData.draw) will use CPU rendering, but the display list remains GPU accelerated as far as possible.[20]

Lime

OpenFL uses the Lime library for low-level rendering. Lime provides hardware-accelerated rendering of vector graphics on all supported platforms.[21][20]

Lime is a library designed to provide a consistent "blank canvas" environment on all supported targets, including Flash Player, HTML5, Microsoft Windows, macOS, Linux, iOS, Android, consoles, set-top boxes and other systems.[20] Lime is a cross-platform graphics, sound, input and windowing library, which means OpenFL can focus on being a Flash API, and not handling all these specifics. Lime also includes command-line tools.[20]

Haxe

Haxe is a high-level cross-platform multi-paradigm programming language and compiler that can produce applications and source code, for many different computing platforms, from one code-base.[22][23][24][25] It is free and open-source software, distributed under the GNU General Public License (GPL) 2.0, and the standard library under an MIT License.

Haxe includes a set of common functions that are supported across all platforms, such as numeric data types, text, arrays, binary and some common file formats.[23][26] Haxe also includes platform-specific application programming interface (API) for Adobe Flash, C++, PHP and other languages.[23][27]

Haxe originated with the idea of supporting client-side and server-side programming in one language, and simplifying the communication logic between them.[28][29][30] Code written in the Haxe language can be source-to-source compiled into ActionScript 3, JavaScript, Java, C++, C#, PHP, Python, Lua[31] and Node.js.[23][26][32][33] Haxe can also directly compile SWF and Neko bytecode.

Starling

The Haxe port of the Starling Framework runs on Stage3D and supports GPU-accelerated rendering of vector graphics.[20] It uses a custom Stage3D implementation, and does not required the OpenFL display list to work.[20][34]

References

  1. ^ a b c d "Introducing OpenFL". Joshua Granick Blog.
  2. ^ http://www.openfl.org/blog/2017/08/03/openfl-6-is-now-available/
  3. ^ a b "openfl.org".
  4. ^ "LICENSE.md". Github.
  5. ^ "README.md". Github.
  6. ^ a b c Doucet, Lars (2014-03-18). "Flash is dead, long live OpenFL!". Gamasutra.
  7. ^ "OpenFL ReadMe". Github.
  8. ^ "OpenFL ReadMe". Github.
  9. ^ OpenFL Readme
  10. ^ Haxe Support, FlashDevelop Wiki
  11. ^ Away3D Engine
  12. ^ Away Foundation roadmap 2014, Away3D Foundation
  13. ^ away3d 1.2.0, Ported to OpenFL 2.x/Haxe, Haxelib
  14. ^ Starling Framework, Gamua
  15. ^ openfl/starling , The "Cross-Platform Game Engine", a popular Stage3D framework
  16. ^ BabylonJS, 3D engine based on WebGL/Web Audio and JavaScript
  17. ^ DragonBones, Character Rigging Platform
  18. ^ openfl/dragonbones, Runtime support for DragonBones skeletal animation
  19. ^ OpenFL Showcase
  20. ^ a b c d e f g Getting started with Haxe and Starling, OpenFL Community, Dec 2017
  21. ^ Benefits of using starling over openfl?, OpenFL Community
  22. ^ "Nicolas' announcement of spelling change on Haxe official mail list".
  23. ^ a b c d Ponticelli, Franco (2008-02-11). Professional haXe and Neko. Wiley. ISBN 0470122137.
  24. ^ Ivanov, Michael (2011-05-24). Away3D 3.6 Cookbook. Packt Publishing Ltd. ISBN 1849512817.
  25. ^ Doucet, Lars (2015-06-03). "Haxe/OpenFL for home game consoles". Gamasutra.
  26. ^ a b Introduction to the Haxe Standard Library, Haxe Docs
  27. ^ Target Specific APIs, Introduction to the Haxe Standard Library, Haxe Docs
  28. ^ "Haxe Interview". Io Programmo. 2009-04-01: 1–6. {{cite journal}}: Cite journal requires |journal= (help)
  29. ^ Grden, John; Mineault, Patrick; Balkan, Aral; Hughes, Marc; Arnold, Wade (2008-07-16). The Essential Guide to Open Source Flash Development. Apress. p. Chapter 9 (Using Haxe). ISBN 1430209941.
  30. ^ Fisher, Matt (2013-01-01). HTML5 for Flash Developers. Packt Publishing Ltd. ISBN 1849693331.
  31. ^ "Hello Lua! - Haxe". Retrieved 2016-07-09.
  32. ^ "hxnodejs (4.0.9)". Retrieved 2016-07-09.
  33. ^ Haxe, iPhone & C++ At Last, GameHaxe website
  34. ^ Starling for OpenFL, "The "Cross-Platform Game Engine", Github

See also