| OpenFL | |
|---|---|
| Developer | OpenFL Contributors |
| Initial release | 30 May 2013; 12 years ago (2013-05-30)[1] |
| Stable release | |
| Repository | |
| Written in | Haxe |
| Operating system | Microsoft Windows,macOS,Linux[3][1] |
| Platform | Microsoft Windows,macOS,Linux,iOS,Android,Flash Player,HTML5[3][1] |
| Type | Software framework |
| License | MIT License[4] |
| Website | www |
OpenFL is afree and open-sourcesoftware framework and platform for the creation of multi-platformapplications andvideo games.[5][6] OpenFL applications can be written inHaxe,JavaScript (EcmaScript 5 or 6+), orTypeScript,[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 asAway3D,[11][12][13]Starling,[14][15]Babylon.js,[16] Adobe Flash 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] includingPapers, Please,Rymdkapsel,Lightbot,Friday Night Funkin', andMadden NFL Mobile.
OpenFL was created by Joshua Granick and is currently administered and maintained by Chris Speciale, software engineer, board member, and co-owner.[20]
OpenFL is designed to fully mirror the Flash API.[1][6]SWF files created withAdobe Flash Professional or other authoring tools may be used in OpenFL programs.[6]
OpenFL supports rendering inOpenGL,Cairo,Canvas,SVG and evenHTML5 DOM. In the browser,WebGL is the default renderer but if unavailable then canvas (CPU rendering) is used.[21] Certain features (shape.graphics orbitmapData.draw) will use CPU rendering, but the display list remainsGPU accelerated as far as possible.[21]
OpenFL uses theLime library for low-level rendering. Lime provideshardware-accelerated rendering ofvector graphics on all supported platforms.[22][21]
Lime is a library designed to provide a consistent "blank canvas" environment on all supported targets, includingFlash Player,HTML5,Microsoft Windows,macOS,Linux,iOS,Android, consoles, set-top boxes and other systems.[21] 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 includescommand-line tools.[21]
Haxe is a high-levelcross-platformmulti-paradigmprogramming language andcompiler that can produce applications and source code, for many differentcomputing platforms, from one code-base.[23][24][25][26] It isfree and open-source software, distributed under theGNU General Public License (GPL) 2.0, and the standardlibrary under theMIT License.
Haxe includes a set of common functions that are supportedacross all platforms, such asnumeric data types,text,arrays,binary and some commonfile formats.[24][27] Haxe also includes platform-specificapplication programming interface (API) forAdobe Flash, C++, PHP and other languages.[24][28]
Haxe originated with the idea of supportingclient-side andserver-side programming in one language, and simplifying the communication logic between them.[29][30][31] Code written in the Haxe language can besource-to-source compiled intoActionScript 3,JavaScript,Java,C++,C#,PHP,Python,Lua[32] andNode.js.[24][27][33][34] Haxe can also directly compileSWF, HashLink andNekoVMbytecode.
The Haxe port of theStarling Framework runs onStage3D and supports GPU-accelerated rendering of vector graphics.[21] It uses a custom Stage3D implementation, and does not require the OpenFL display list to work.[21][35]
{{cite journal}}:Cite journal requires|journal= (help)