OpenFL

From Wikipedia, the free encyclopedia
(Redirected from HaxeFlixel)
Jump to navigation Jump to search
OpenFL
DeveloperOpenFL Contributors
Initial release30 May 2013; 13 years ago (2013-05-30)[1]
Repository
  • {{URL|example.com|optional display text}}Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
Written inHaxe
Engine
    Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
    Operating systemMicrosoft Windows, macOS, Linux[2][1]
    PlatformMicrosoft Windows, macOS, Linux, iOS, Android, Flash Player, HTML5[2][1]
    TypeSoftware framework
    LicenseMIT License[3]

    OpenFL is a free and open-source software framework and platform for the creation of multi-platform applications and video games.[4][5] OpenFL applications can be written in Haxe, JavaScript (EcmaScript 5 or 6+), or TypeScript,[6] 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.[7]

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

    OpenFL contains Haxe ports of major graphical libraries such as Away3D,[10][11][12] Starling,[13][14] Babylon.js,[15] Adobe Flash and DragonBones.[16][17] 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,[18] including Papers, Please, Rymdkapsel, Lightbot, Friday Night Funkin', and Madden NFL Mobile.

    OpenFL was created by Joshua Granick and is currently administered and maintained by Chris Speciale, software engineer, board member, and co-owner.[19]

    Technical details

    [edit | edit source]

    OpenFL

    [edit | edit source]

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

    OpenFL supports rendering in OpenGL, Cairo, Canvas, SVG and even HTML5 DOM. In the browser, WebGL 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]

    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 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 the 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, HashLink and NekoVM bytecode.

    Starling

    [edit | edit source]

    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 require the OpenFL display list to work.[20][34]

    References

    [edit | edit source]
    1. ^ a b c d Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    2. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    3. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    4. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    5. ^ a b c Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    6. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    7. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    8. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    9. ^ Haxe Support Archived 2015-07-06 at the Wayback Machine, FlashDevelop Wiki
    10. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    11. ^ Away Foundation roadmap 2014 Archived 2016-03-06 at the Wayback Machine, Away3D Foundation
    12. ^ away3d 1.2.0 Archived 2016-03-06 at the Wayback Machine, Ported to OpenFL 2.x/Haxe, Haxelib
    13. ^ Starling Framework Archived 2018-01-02 at the Wayback Machine, Gamua
    14. ^ openfl/starling Archived 2017-03-30 at the Wayback Machine, The "Cross-Platform Game Engine", a popular Stage3D framework
    15. ^ BabylonJS Archived 2018-01-01 at the Wayback Machine, 3D engine based on WebGL/Web Audio and JavaScript
    16. ^ DragonBones Archived 2017-12-30 at the Wayback Machine, Character Rigging Platform
    17. ^ openfl/dragonbones Archived 2018-04-27 at the Wayback Machine, Runtime support for DragonBones skeletal animation
    18. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    19. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    20. ^ a b c d e f g Getting started with Haxe and Starling Archived 2017-12-27 at the Wayback Machine, OpenFL Community, Dec 2017
    21. ^ Benefits of using starling over openfl? Archived 2017-12-27 at the Wayback Machine, OpenFL Community
    22. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    23. ^ a b c d Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    24. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    25. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    26. ^ a b Introduction to the Haxe Standard Library Archived 2015-08-14 at the Wayback Machine, Haxe Docs
    27. ^ Target Specific APIs, Introduction to the Haxe Standard Library Archived 2015-08-14 at the Wayback Machine, Haxe Docs
    28. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    29. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    30. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    31. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    32. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    33. ^ Haxe, iPhone & C++ At Last Archived 2012-04-15 at the Wayback Machine, GameHaxe website
    34. ^ Starling for OpenFL Archived 2017-03-30 at the Wayback Machine, "The "Cross-Platform Game Engine", Github

    See also

    [edit | edit source]