OpenFL

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.

OpenFL
OpenFL Logo
OpenFL Stack
Developer(s)OpenFL Contributors
Initial release30 May 2013[1]
Stable release
8.9.0 / 1 April 2019[2]
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

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 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 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. Archived from the original on 2014-10-02.
  2. ^ https://github.com/openfl/openfl/releases
  3. ^ a b "openfl.org". Archived from the original on 2014-10-26.
  4. ^ "LICENSE.md". Github. Archived from the original on 2017-03-30.
  5. ^ "README.md". Github. Archived from the original on 2015-08-13.
  6. ^ a b c Doucet, Lars (2014-03-18). "Flash is dead, long live OpenFL!". Gamasutra. Archived from the original on 2015-08-30.
  7. ^ "OpenFL ReadMe". Github. Archived from the original on 2018-04-27.
  8. ^ "OpenFL ReadMe". Github. Archived from the original on 2018-04-27.
  9. ^ "openfl/openfl". GitHub. Archived from the original on 27 April 2018. Retrieved 27 April 2018.
  10. ^ Haxe Support Archived 2015-07-06 at the Wayback Machine, FlashDevelop Wiki
  11. ^ "Home > Away3D". away3d.com. Archived from the original on 19 November 2010. Retrieved 27 April 2018.
  12. ^ Away Foundation roadmap 2014 Archived 2016-03-06 at the Wayback Machine, Away3D Foundation
  13. ^ away3d 1.2.0 Archived 2016-03-06 at the Wayback Machine, Ported to OpenFL 2.x/Haxe, Haxelib
  14. ^ Starling Framework Archived 2018-01-02 at the Wayback Machine, Gamua
  15. ^ openfl/starling Archived 2017-03-30 at the Wayback Machine, The "Cross-Platform Game Engine", a popular Stage3D framework
  16. ^ BabylonJS Archived 2018-01-01 at the Wayback Machine, 3D engine based on WebGL/Web Audio and JavaScript
  17. ^ DragonBones Archived 2017-12-30 at the Wayback Machine, Character Rigging Platform
  18. ^ openfl/dragonbones Archived 2018-04-27 at the Wayback Machine, Runtime support for DragonBones skeletal animation
  19. ^ "Showcase". www.openfl.org. Archived from the original on 26 December 2017. Retrieved 27 April 2018.
  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. ^ "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. Archived from the original on 2015-09-08.
  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. ^ "Haxe Interview". Io Programmo. 2009-04-01: 1–6. Archived from the original on 2015-12-08.
  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". Archived from the original on 2016-08-06. Retrieved 2016-07-09.
  32. ^ "hxnodejs (4.0.9)". Archived from the original on 2016-06-18. Retrieved 2016-07-09.
  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

Adobe Flash

Adobe Flash is a deprecated multimedia software platform used for production of animations, rich Internet applications, desktop applications, mobile applications, mobile games and embedded web browser video players. Flash displays text, vector graphics and raster graphics to provide animations, video games and applications. It allows streaming of audio and video, and can capture mouse, keyboard, microphone and camera input. Related development platform Adobe AIR continues to be supported.

Artists may produce Flash graphics and animations using Adobe Animate. Software developers may produce applications and video games using Adobe Flash Builder, FlashDevelop, Flash Catalyst, or any text editor when used with the Apache Flex SDK.

End-users can view Flash content via Flash Player (for web browsers), AIR (for desktop or mobile apps) or third-party players such as Scaleform (for video games). Adobe Flash Player (supported on Microsoft Windows, macOS and Linux) enables end-users to view Flash content using web browsers. Adobe Flash Lite enabled viewing Flash content on older smartphones, but has been discontinued and superseded by Adobe AIR.

The ActionScript programming language allows the development of interactive animations, video games, web applications, desktop applications and mobile applications. Programmers can implement Flash software using an IDE such as Adobe Animate, Adobe Flash Builder, Adobe Director, FlashDevelop and Powerflasher FDT. Adobe AIR enables full-featured desktop and mobile applications to be developed with Flash and published for Windows, macOS, Android, iOS, Xbox One, PlayStation 4, Nintendo Wii U, and Switch.

Although Flash was previously a dominant platform for online multimedia content, it is slowly being abandoned as Adobe favors a transition to HTML5. Flash Player has been deprecated and has an official end-of-life at the end of 2020. However, Adobe will continue to develop Adobe AIR, a related technology for building stand-alone applications and games. Additionally, Adobe Animate will continue to be supported by Adobe even after 2020.

Away3D

Away3D is an open-source platform for developing interactive 3D graphics for video games and applications, in Adobe Flash or HTML5. The platform consists of a 3D world editor (Away Builder), a 3D graphics engine (Away3D or AwayJS), a 3D physics engine (Away Physics) and a compressed 3D model file format (AWD).Development is managed by the Away Foundation, a UK-based non-profit focussed on building and maintaining free and open-source software resources for high-performance mobile games and applications. The foundation is supported by corporate sponsorship (Adobe, JetBrains among others) and individual donors.

C4 Engine

The C4 Engine was a proprietary computer game engine developed by Terathon Software that was used to create 3D games and other types of interactive virtual simulations for PlayStation 4, PlayStation 3, Windows (XP and later), Mac OS X (versions 10.9 and later), Linux, and iOS.

Comparison of IDE choices for Haxe programmers

Haxe is an open source programming language. Multiple development environments have support for Haxe.

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. It is free and open-source software, distributed under the GNU General Public License (GPL) version 2, 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. Haxe also includes platform-specific application programming interface (API) for Adobe Flash, C++, PHP and other languages. OpenFL, Kha, Heaps and Flambe are popular Haxe frameworks that enable creating multi-platform content from one codebase.Haxe originated with the idea of supporting client-side and server-side programming in one language, and simplifying the communication logic between them. Code written in the Haxe language can be source-to-source compiled into ActionScript 3, JavaScript, Java, C++, C#, PHP, Python, Lua and Node.js. Haxe can also directly compile SWF, HashLink and Neko bytecode.

Many popular IDEs and source code editors have support available for Haxe development. No particular development environment or tool set is officially recommended by the Haxe Foundation, although VS Code and IntelliJ IDEA have extensions to support Haxe development. The core functionalities of syntax highlighting, code completion, refactoring, debugging, etc., are available in various degree. The comparison of IDE choices for Haxe programmers has quite in-depth information.

To help leverage existing code, the Haxe community has created source code converters for ActionScript 3 to Haxe and C# to Haxe The Haxe compiler can also output Haxe into standalone ActionScript 3, C++, C#, Java, PHP, Python and Lua source code, which can then be pulled out of the Haxe ecosystem and developed with traditional workflows.

Major users of Haxe include BBC, Coca-Cola, Disney, Hasbro, Mattel, Nickelodeon, Prezi, TiVo, Toyota, and Zynga.

Kynapse

Kynapse is the artificial intelligence middleware product, developed by Kynogon, which was bought by Autodesk in 2008 and called Autodesk Kynapse. In 2011, it has been re-engineered and rebranded Autodesk Navigation.

Lightbot

Lightbot is an educational video game for learning software programming concepts, developed by Danny Yaroslavski. Lightbot has been played 7 million times, and is highly rated on iTunes and Google Play store. Lightbot is available as an online Flash game, and an application for Android and iOS mobile phones. Lightbot has been built with Flash and OpenFL.

The goal of Lightbot is to command a little robot to navigate a maze and turn on lights. Players arrange symbols on the screen to command the robot to walk, turn, jump, switch on a light and so on. The maze and the list of symbols become more complicated as the lessons progress. While using such commands, players learn programming concepts like loops, procedures and more, without entering code in any programming language.

Lightweight Java Game Library

The Lightweight Java Game Library (LWJGL) is an open-source Java software library for video game developers. It exposes high performance cross-platform libraries commonly used in developing video games and multimedia titles, such as Vulkan, OpenGL, OpenAL and OpenCL. It further provides access to controllers such as gamepads, steering wheels and joysticks in a platform-neutral way.The primary goal of the project is to provide a way for Java developers to get access to resources that are otherwise unavailable or poorly implemented on the existing Java platform. The main philosophy is to expose underlying technology as a thin wrapper, thus creating an API close to the original. It is also the basis of many high-level Java game engines and libraries, such as libGDX or the jMonkeyEngine.

LWJGL is available under a BSD license.On 13 November 2014 version 3 was announced, which was released in alpha version on 27 April 2015 and is a complete rewrite of LWJGL. Many new bindings, including GLFW, EGL and Objective-C, were added. Support for Oculus Rift development was also added with LibOVR bindings. The new version was released on 4 June 2016, after more than 3 and a half years in development.

List of Adobe Flash software

The following is a list of notable software for creating, modifying and deploying Adobe Flash and Adobe Shockwave format.

Mobile app development

Mobile app development is the act or process by which a mobile app is developed for mobile devices, such as personal digital assistants, enterprise digital assistants or mobile phones. These applications can be pre-installed on phones during manufacturing platforms, or delivered as web applications using server-side or client-side processing (e.g., JavaScript) to provide an "application-like" experience within a Web browser. Application software developers also must consider a long array of screen sizes, hardware specifications, and configurations because of intense competition in mobile software and changes within each of the platforms. Mobile app development has been steadily growing, in revenues and jobs created. A 2013 analyst report estimates there are 529,000 direct app economy jobs within the EU 28 members, 60% of which are mobile app developers.As part of the development process, mobile user interface (UI) design is also essential in the creation of mobile apps. Mobile UI considers constraints, contexts, screen, input, and mobility as outlines for design. The user is often the focus of interaction with their device, and the interface entails components of both hardware and software. User input allows for the users to manipulate a system, and device's output allows the system to indicate the effects of the users' manipulation. Mobile UI design constraints include limited attention and form factors, such as a mobile device's screen size for a user's hand(s). Mobile UI contexts signal cues from user activity, such as location and scheduling that can be shown from user interactions within a mobile app. Overall, mobile UI design's goal is mainly for an understandable, user-friendly interface. The UI of mobile apps should: consider users' limited attention, minimize keystrokes, and be task-oriented with a minimum set of functions. This functionality is supported by mobile enterprise application platforms or integrated development environments (IDEs).

Mobile UIs, or front-ends, rely on mobile back-ends to support access to enterprise systems. The mobile back-end facilitates data routing, security, authentication, authorization, working off-line, and service orchestration. This functionality is supported by a mix of middleware components including mobile app server, mobile backend as a service (MBaaS), and service-oriented architecture (SOA) infrastructure.

NekoVM

NekoVM is a virtual machine developed by Nicolas Cannasse as part of research and development (R&D) efforts at two indie video game firms in Bordeaux, France: first at Motion Twin and then at Shiro Games. NekoVM's native language is the bytecode for a high-level dynamically typed programming language called Neko. This pairing allows Neko to be used directly as an embedded scripting language or to target NekoVM by compiling some other language (such as Haxe) to NekoVM bytecode.

Starling Framework

Starling is an open source game framework used to create 2D games that run both on mobile and desktop platforms. It recreates the traditional Flash display list architecture on top of accelerated graphics hardware. Several commercial games have been built with Starling, including Angry Birds Friends and Incredipede.

Stencyl

Stencyl is a video game development tool that allows users to create 2D video games for computers, mobile devices, and the web. The software is available for free, with select publishing options available for purchase. The software was originally called "StencylWorks" while in development and for the initial release, but was later shortened to just "Stencyl".

File
formats
Software
(list)
Obsolete
software
Related
topics
Developers
Free and
open-source
Proprietary
Historical
(Free and
open-source)
Historical
(Proprietary)
Proprietary
middleware

Languages

This page is based on a Wikipedia article written by authors (here).
Text is available under the CC BY-SA 3.0 license; additional terms may apply.
Images, videos and audio are available under their respective licenses.