OpenFL

Developer(s)| OpenFL Contributors
Initial release| 30 May 2013; 10 years ago (2013-05-30)[1]
Written in| Haxe
Operating system| Microsoft Windows, macOS, Linux[2][1]
Platform| Microsoft Windows, macOS, Linux, iOS, Android, Flash Player, HTML5[2][1]
Type| Software framework
License| MIT License[3]
Website| {{{1}}}

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:

* Visual Studio Code (with plugin)
* HaxeDevelop (supports code folding, code refactoring and interactive debugging[9])
* Sublime Text (with plugin)
* IntelliJ IDEA (with plugin)

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 the BAFTA-award-winning game Papers, Please, Rymdkapsel, Lightbot, Friday Night Funkin', and Madden NFL Mobile.

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

## Contents

* 1 Technical details
* 1.1 OpenFL
* 1.2 Lime
* 1.3 Haxe
* 1.4 Starling
* 2 References
* 3 See also

## Technical details

### OpenFL

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, 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 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

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

1. ↑ 1.0 1.1 1.2 1.3 "Introducing OpenFL". 30 May 2013. http://www.joshuagranick.com/blog/2013/05/30/introducing-openfl.
2. ↑ 2.0 2.1 "openfl.org". http://www.openfl.org.
3. ↑ "LICENSE.md". https://github.com/openfl/openfl/blob/develop/LICENSE.md.
4. ↑ "README.md". https://github.com/openfl/openfl.
5. ↑ 5.0 5.1 5.2 Doucet, Lars (2014-03-18). "Flash is dead, long live OpenFL!". http://gamasutra.com/blogs/LarsDoucet/20140318/213407/Flash_is_dead_long_live_OpenFL.php.
6. ↑ "OpenFL ReadMe". https://github.com/openfl/openfl/blob/4c19781500e71d26f1ec9c3fdaf6214809cab385/README.md.
7. ↑ "OpenFL ReadMe". https://github.com/openfl/openfl/blob/4c19781500e71d26f1ec9c3fdaf6214809cab385/README-haxelib.md.
8. ↑ "openfl/openfl". https://github.com/openfl/openfl/blob/4c19781500e71d26f1ec9c3fdaf6214809cab385/README-haxelib.md.
9. ↑ Haxe Support , FlashDevelop Wiki
10. ↑ "Home > Away3D". http://away3d.com/.
11. ↑ Away Foundation roadmap 2014 , Away3D Foundation
12. ↑ away3d 1.2.0 , Ported to OpenFL 2.x/Haxe, Haxelib
13. ↑ Starling Framework , Gamua
14. ↑ openfl/starling  , The "Cross-Platform Game Engine", a popular Stage3D framework
15. ↑ BabylonJS , 3D engine based on WebGL/Web Audio and JavaScript
16. ↑ DragonBones , Character Rigging Platform
17. ↑ openfl/dragonbones , Runtime support for DragonBones skeletal animation
18. ↑ "Showcase". http://www.openfl.org/showcase/flash/.
19. ↑ "Administrative Organization Changes" (in en). 2022-04-26. https://community.openfl.org/t/administrative-organization-changes/13460.
20. ↑ 20.0 20.1 20.2 20.3 20.4 20.5 20.6 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". https://groups.google.com/d/topic/haxelang/O7PB-ZrX4i4/discussion.
23. ↑ 23.0 23.1 23.2 23.3 Ponticelli, Franco (2008-02-11). Professional haXe and Neko. Wiley. ISBN 978-0470122136. https://books.google.com/books?id=nkReDryjU3UC&q=haxe.
24. ↑ Ivanov, Michael (2011-05-24). Away3D 3.6 Cookbook. Packt Publishing Ltd. ISBN 978-1849512817. https://books.google.com/books?id=4yAcDM-qQDsC&q=haxe+flash&pg=PT631.
25. ↑ Doucet, Lars (2015-06-03). "Haxe/OpenFL for home game consoles". http://gamasutra.com/blogs/LarsDoucet/20150603/245099/HaxeOpenFL_for_home_game_consoles.php.
26. ↑ 26.0 26.1 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. pp. 1–6. http://ncannasse.fr/blog/haxe_interview.
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 978-1430209942. https://books.google.com/books?id=MNo27PxpM_AC&q=haxe+flash&pg=PA231.
30. ↑ Fisher, Matt (2013-01-01). HTML5 for Flash Developers. Packt Publishing Ltd. ISBN 978-1849693332. https://books.google.com/books?id=O2DWzWRnQPwC&q=haxe+flash&pg=PT377.
31. ↑ "Hello Lua! - Haxe". https://haxe.org/blog/hello-lua.
32. ↑ "hxnodejs (4.0.9)". http://lib.haxe.org/p/hxnodejs.
33. ↑ Haxe, iPhone & C++ At Last , GameHaxe website
34. ↑ Starling for OpenFL , "The "Cross-Platform Game Engine", Github

## See also

* Haxe
* Adobe AIR

* v
* t
* e

Adobe Flash

File
formats|

* ActionScript (AS)
* Action Message Format (AMF)
* Flash Video (FLV)
* Flash XML Graphics (FXG)
* Local shared objects (LSOs)
* MXML
* Flash Movie (SWF)
* Flash Code Library (SWC)

Software
(list)|

| Players|

* Adobe AIR
* Adobe Flash Player
* Gnash
* Lightspark
* Gameswf
* Tamarin

|

Animation
tools|

* Adobe Animate
* Toon Boom
* Moho
* Vyond
* Stencyl

Programming
tools|

* FlashDevelop
* Powerflasher FDT
* Apache Flex
* Haxe (OpenFL)
* CrossBridge
* Adobe Scout
* FlashFirebug

Libraries|

* Starling Framework
* Away3D
* Flare3D
* Stage3D
* PureMVC
* Ming
* List of Flex frameworks

Converters|

* Adobe Flash Media Live Encoder
* SWFTools
* swfmill
* Google Swiffy
* Adobe Wallaby

Server-side|

* Adobe Flash Media Server

Obsolete
software|

* Adobe Flash Builder
* Adobe Flash Catalyst
* Adobe Flash Lite
* SWFAddress
* SWFObject
* MTASC
* Scaleform GFx
* SWiSH Max
* Swift 3D
* Papervision3D
* Ajax Animator
* Shumway
* Swfdec
* OpenLaszlo

Related
topics|

* Comparison of HTML5 and Flash
* Thoughts on Flash
* Flash animation
* films
* television
* Protected Streaming
* Real-Time Messaging Protocol
* Real-Time Media Flow Protocol

Developers|

* FutureWave Software
* Macromedia
* Adobe Inc.

* Category

* v
* t
* e

Game engines (list)

* Source port
* First-person shooter engine
* list
* Game engine recreation
* list
* Game creation system
* List of visual novel engines

Free and
open-source|

| 2D|

* Adventure Game Studio
* Beats of Rage
* Cocos2d
* Corona
* Moai
* OHRRPGCE
* OpenFL
* ORX
* Pygame
* Ren'Py
* Stencyl
* Stratagus

|

2.5D|

* Build
* Doom ports
* ORX

3D|

* Away3D/AwayJS
* Cafu
* GamePlay
* GLScene
* Horde3D
* Irrlicht
* JMonkey
* OGRE
* Panda3D
* Platinum Arts Sandbox
* PlayCanvas
* Torque
* Xenko

Mix|

* Allegro
* Godot
* libGDX
* Lightweight Java Game Library
* Spring

Proprietary|

| 2D|

* Clickteam Fusion
* Construct
* Felgo (V-Play Engine)
* GameMaker Studio
* GameSalad
* RPG Maker
* UbiArt Framework
* Vicious
* Zillions of Games

|

3D|

* 4A
* Amazon Lumberyard
* AnvilNext
* Chrome
* Creation
* CryEngine
* Crystal Tools
* Decima
* Diesel
* Disrupt Engine
* Dunia Engine
* Ego
* Essence
* Fox
* Frostbite
* HeroEngine
* id Tech
* 5
* 6
* 7
* Ignite
* IW
* LithTech
* Luminous Studio
* MT Framework
* PhyreEngine
* REDengine
* RAGE
* Shark 3D
* ShiVa
* Snowdrop
* Source
* Unigine
* Unreal

Mix|

* Gamebryo
* Unity

Historical
(Free and
open-source)|

| 2D|

* Thousand Parsec
* Vassal
* Xconq

|

2.5D|

* Doom engine

3D|

* Blender Game
* Bork3D
* Crystal Space
* CyanWorlds.com Engine
* Delta3D
* Dim3
* Genesis3D
* id Tech
* Quake
* Quake II
* 3
* 4
* Open Wonderland
* Papervision3D
* PLIB

Mix|

* Wintermute Engine

Historical
(Proprietary)|

| 2D|

* Game-Maker
* GameMaker
* Garry Kitchen's GameMaker
* Genie
* MADE
* M.U.G.E.N
* SCUMM
* Southpaw
* Virtual Theatre

|

3D|

* Bitsquid
* C4
* Dark
* Enigma
* Flare3D
* GoldSrc
* Filmation
* Freescape
* INSANE
* Jade
* Jedi
* LyN
* Marmalade
* Panta Rhei
* Pie in the Sky
* Q
* Reality Lab
* RenderWare
* SAGE
* Silent Storm
* Sim RPG Maker
* Sith
* Titan
* Truevision3D
* Vision
* Visual3D
* Voxel Space
* XnGine
* Zero

Proprietary
middleware|

* Euphoria
* Gameware
* GameWorks
* Havok
* iMUSE
* Kynapse
* SpeedTree
* FaceGen

0.00

(0 votes)

Original source: https://en.wikipedia.org/wiki/OpenFL. Read more

|

Retrieved from "https://handwiki.org/wiki/index.php?title=Software:OpenFL&oldid=2690521"
*[v]: View this template
*[t]: Discuss this template
*[e]: Edit this template