# Construct (game engine)

Construct is an HTML5-based 2D video game engine developed by Scirra Ltd. It is aimed primarily at non-programmers, allowing quick creation of games through visual programming. First released as a GPL-licensed DirectX 9 game engine for Microsoft Windows with Python programming on October 27, 2007, it later became proprietary software with Construct 2, as well as switching its API technology from DirectX to NW.js and HTML5, as well as removing Python and adding JavaScript support and its plugin SDK in 2012, and eventually switched to a subscription-based model as a web app.

## Features
### Event system and behaviors

The primary method of programming games and applications in Construct is through 'event sheets', which are similar to source files used in programming languages. Each event sheet has a list of events, which contain conditional statements or triggers. Once these are met, actions or functions can be carried out. Event logic such as OR and AND, as well as sub-events (representing scope) allow for sophisticated systems to be programmed without learning a comparatively more difficult programming language. Groups can be used to enable and disable multiple events at once, and to organize events.

### Object instance selection

Unlike many traditional development environments, Construct eschews selecting specific instances of objects when adding events, in favor of filtering through all instances of an object type on screen. When adding events, the editor allows the user to specify conditions or checks that must be fulfilled by each object instance on the screen before the event will be added or run by it. Events can be chained together using sub-events, allowing for more complicated behaviors to be created.

### JavaScript

Construct 3 supports JavaScript as an optional scripting language which was announced in May 2019, citing the need to satisfy the advanced users' needs and popularity of existing workarounds.

## Supported platforms

The latest version of Construct supports many platforms to export to, such as web applications and playable advertisements, to dedicated programs and mobile apps. Previous versions of Construct also supported other online platforms and storefronts, but have since been removed due to low use or service changes to the platform.

### Construct Classic

Construct Classic can only export to .exe files, due to its reliance on DirectX.

### Construct 2
#### HTML5 and storefronts

Construct 2's primary export platforms are HTML5 based. It claims support across Google Chrome, Firefox, Internet Explorer 9+, Safari 6+ and Opera 15+ on desktop browsers, and support for Safari in iOS 6+, Chrome and Firefox for Android, Windows Phone 8+, BlackBerry 10+ and Tizen.
Additionally, Construct 2 can export to several online marketplaces and platforms, including Facebook, the Chrome Web Store, the Firefox Marketplace, the Amazon Appstore, Construct Arcade (their own platform to host games made in Construct) and Kongregate.

#### Native platforms

Construct has the ability to export to several platforms that provide offline and native application behavior: Windows, MacOS and both 32-bit and 64-bit Linux are supported by exporting to NW.js. Doing this will allow the user to incorporate several features that HTML5 applications do not normally support, such as file I/O. On October 23, 2012, Scirra announced full support for exporting to Windows 8 Metro applications, including the incorporation of in-app purchases, 'snap' view states, roaming data, sharing, live tiles, touch input and accelerometer and inclinometer input. Support for exporting to Windows 10 Universal apps was added on August 26, 2015.
Construct handles native mobile support for iOS and Android by using Cordova.

#### Consoles

On January 20, 2014, Scirra announced that Construct 2 would be receiving support for Nintendo's Wii U system. Later that year, a plug-in was released to make Construct-based games compatible with the Nintendo Web Framework.
On April 13, 2016, Scirra announced that Construct 2's UWP support will allow publishing games to the Xbox One.

### Construct 3
#### HTML5

Construct 3 currently supports web embeds through HTML5, uploading to Facebook Instant Games, Construct Arcade, as well as being formatted to interactive advertisements. It also originally had supported uploading to Kongregate, but it was removed on July 14, 2020, after Kongregate removed submitting new games to the platform.

#### Native platforms & consoles

Construct 3 also supports exporting to Windows, MacOS and Linux through NW.js, Android and iOS through Cordova, and Windows Store through UWP. Construct 3's UWP support also allows exporting to Xbox One, and Xbox Series X and S through backwards compatibility.

## Release history
### Construct Classic

Construct Classic is the first major version of the Construct engine. Unlike its successors, it is a free and open source game engine using DirectX. Originally developed by a group of students, it was first released on October 27, 2007, as version 0.8. The most recent release is r2, released on February 5, 2012.
This version largely defined the software's visual programming language and separately supported Python scripting.
Construct Classic was discontinued on April 20, 2013, to allow the development team to focus more on Construct 2.

### Construct 2

Construct 2 is the second major release of the Construct engine. Major changes include DirectX being replaced with NW.js, allowing projects to be exported to platforms other than Microsoft Windows, including HTML5, Mac OS and Linux. The licensing system also moved from GPLv2 to a proprietary license with a free version available for download.
Construct 2 entered public beta on February 4, 2011, and was launched on August 22, 2011.
During 2012, Python scripting was retired, citing complications with running Python in browsers and general complexity of maintaining a compatible scripting system. A JavaScript SDK for plugins was introduced as a replacement.
On February 20, 2020, Scirra announced plans to discontinue Construct 2, with sales of new licenses retired on July 1, 2020. The software was fully discontinued on July 1, 2021.

#### Steam version

On October 18, 2012, Construct 2 was submitted to Steam Greenlight. Construct 2 was in the first batch of software titles to be greenlit on November 30, 2012. On January 26, 2013, Construct 2 was the second software title from Steam Greenlight to be launched on Steam.
On January 17, 2019, it was announced that the Steam version will be delisted from the store on January 31, 2019, due to the phasing out of Construct 2. However, the free version can still be downloaded via unofficial websites or a Steam install link.

### Construct 3

Construct 3 is the most recent major version of the Construct engine. Announced on January 27, 2015, new features include Mac and Linux support, multi-language support and third-party expansion of the editor with an official plugin SDK for the editor. More details were revealed on February 1, 2017, with a public beta starting on March 28 of the same year. It concluded on December 4, 2017, with the release of the engine. Improvements include a overhauled manual, official tutorials and translations of the IDE.
This version also changed from a pay-once model to a yearly subscription-based model.
On May 23, 2019, JavaScript coding was announced as a separate add-on, but was free for all users who had a paying license before September 2, 2019. The feature was added with r157 on July 5, 2019.

## Construct Arcade

Construct Arcade (formerly known as Scirra Arcade) is a game portal for projects created in Construct 2 or 3. It was launched on November 23, 2011, along with update r69 of Construct 2. It was later added to Construct 3 on r24.
On August 14, 2019, a new version of the arcade was released, with it being renamed to the Construct Arcade. Changes to the platform includes a new layout, stability improvements, publisher profiles, a way to view analytics of published games on the website and links to other storefronts.

## Construct Animate

Construct Animate is an animation tool based on Construct 3 and launched on May 26, 2022 in public beta.
Key differences include absence of game-related features (while maintaining interactivity features) and "faster-than-realtime" video encoding.