HOME

TheInfoList



OR:

OpenFL is a
free and open-source Free and open-source software (FOSS) is a term used to refer to groups of software consisting of both free software and open-source software where anyone is freely licensed to use, copy, study, and change the software in any way, and the source ...
software framework In computer programming, a software framework is an abstraction in which software, providing generic functionality, can be selectively changed by additional user-written code, thus providing application-specific software. It provides a standard ...
and platform for the creation of multi-platform
application Application may refer to: Mathematics and computing * Application software, computer software designed to help the user to perform specific tasks ** Application layer, an abstraction layer that specifies protocols and interface methods used in a c ...
s and video games. OpenFL applications can be written in Haxe, JavaScript ( EcmaScript 5 or 6+), or TypeScript, 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. The most popular editors used for Haxe and OpenFL development are: * Visual Studio Code (with plugin) * HaxeDevelop (supports code folding, code refactoring and interactive debugging) * Sublime Text (with plugin) * IntelliJ IDEA (with plugin) OpenFL contains Haxe ports of major graphical libraries such as Away3D, Starling, Babylon.js, Adobe Flash and DragonBones. 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, 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.


Technical details


OpenFL

OpenFL is designed to fully mirror the Flash API.
SWF SWF ( ) is an Adobe Flash file format used for multimedia, vector graphics and ActionScript.Open Screen Pr ...
files created with Adobe Flash Professional or other authoring tools may be used in OpenFL programs. OpenFL supports rendering in
OpenGL OpenGL (Open Graphics Library) is a cross-language, cross-platform application programming interface (API) for rendering 2D and 3D vector graphics. The API is typically used to interact with a graphics processing unit (GPU), to achieve hardwa ...
, Cairo,
Canvas Canvas is an extremely durable plain-woven fabric used for making sails, tents, marquees, backpacks, shelters, as a support for oil painting and for other items for which sturdiness is required, as well as in such fashion objects as handbags ...
, SVG and even HTML5 DOM. In the browser, OpenGL is the default renderer but if unavailable then canvas (CPU rendering) is used. Certain features (shape.graphics or bitmapData.draw) will use CPU rendering, but the display list remains GPU accelerated as far as possible.


Lime

OpenFL uses the Lime library for low-level rendering. Lime provides hardware-accelerated rendering of vector graphics on all supported platforms.Getting started with Haxe and Starling
, OpenFL Community, Dec 2017
Lime is a library designed to provide a consistent "blank canvas" environment on all supported targets, including Flash Player, HTML5,
Microsoft Windows Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for serv ...
, macOS, Linux, iOS,
Android Android may refer to: Science and technology * Android (robot), a humanoid robot or synthetic organism designed to imitate a human * Android (operating system), Google's mobile operating system ** Bugdroid, a Google mascot sometimes referred to ...
, consoles, set-top boxes and other systems. 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.


Haxe

Haxe is a high-level cross-platform
multi-paradigm Programming paradigms are a way to classify programming languages based on their features. Languages can be classified into multiple paradigms. Some paradigms are concerned mainly with implications for the execution model of the language, suc ...
programming language and compiler that can produce applications and source code, for many different
computing platform A computing platform or digital platform is an environment in which a piece of software is executed. It may be the hardware or the operating system (OS), even a web browser and associated application programming interfaces, or other underlying s ...
s, from one code-base. It is
free and open-source software Free and open-source software (FOSS) is a term used to refer to groups of software consisting of both free software and open-source software where anyone is freely licensed to use, copy, study, and change the software in any way, and the source ...
, 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 format A file format is a standard way that information is encoded for storage in a computer file. It specifies how bits are used to encode information in a digital storage medium. File formats may be either proprietary or free. Some file formats ...
s.Introduction to the Haxe Standard Library
, Haxe Docs
Haxe also includes platform-specific
application programming interface An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how t ...
(API) for Adobe Flash, C++, PHP and other languages. 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 Lua or LUA may refer to: Science and technology * Lua (programming language) * Latvia University of Agriculture * Last universal ancestor, in evolution Ethnicity and language * Lua people, of Laos * Lawa people, of Thailand sometimes referred t ...
and Node.js.Haxe, iPhone & C++ At Last
, GameHaxe website
Haxe can also directly compile
SWF SWF ( ) is an Adobe Flash file format used for multimedia, vector graphics and ActionScript.Open Screen Pr ...
, HashLink and NekoVM
bytecode Bytecode (also called portable code or p-code) is a form of instruction set designed for efficient execution by a software interpreter. Unlike human-readable source code, bytecodes are compact numeric codes, constants, and references (norma ...
.


Starling

The Haxe port of the Starling Framework runs on Stage3D and supports GPU-accelerated rendering of vector graphics. It uses a custom Stage3D implementation, and does not require the OpenFL display list to work.Starling for OpenFL
, "The "Cross-Platform Game Engine", Github


References


See also

* Haxe * Adobe AIR {{Video game engines Free software Software licenses Software using the MIT license Software frameworks