We can't quite believe we've reached 500 releases of Construct! Our weekly release schedule allows us to rapidly improve Construct and respond to user feedback, and we've kept this up for another 100 releases. Our latest beta release is r500. Here's a look back at what we've achieved since we were celebrating 400 releases - and we've been busy, so it's a lot!
Some numbers
Our releases page tracks how many new features, additions, changes etc. we've done since Construct's initial release back in 2017. As it currently shows, we're well over 100 major new features and 1000 additions since then.
Since r400 we've added 12 major new features, made another 345 additions, and also done 320 changes, 164 scripting updates and 45 performance improvements. Phew! Here's a few of the highlights.
New 3D features
The big story this year in particular has been the introduction of some major new 3D features. This includes:
- The new 3D model object
- Introducing a new 3D editor
- Support for 3D rotation, including with 2D objects like Sprite, and a new Billboard behavior
- A new 3D light object in the latest beta releases for 3D lighting effects
- Many more improvements including culling options, 3D model support improvements, and more
Construct's 3D capabilities have steadily been improving! Our goal is to design something we think is pretty unique - a hybrid 2D and 3D engine, where you can easily integrate 3D features in to otherwise 2D projects. This includes things like being able to rotate 2D sprites in 3D, and have them properly respond to 3D lighting - making it easy to progressively add elements of 3D to existing 2D games, and also providing an easier path to developing 3D content without necessarily having to have lots of 3D models at your disposal.
3D lighting in the latest beta releases
Desktop export improvements
Over the past year we made a big decision to fully switch from NW.js to our own desktop exporter technologies (Windows WebView2, macOS WKWebView, and Linux CEF). NW.js had a lot of downsides including lots of weird bugs, hacky support for Steam that was liable to break, huge export sizes as it bundled an entire browser engine plus a redundant node.js runtime, slow asset bundling relying on extracting a zip on startup, and infrequent support. Moving over to our own desktop exporters was a challenging process, but gives us full control over these key export options and ultimately allowed us to make a wide range of improvements. Here are some of the highlights of the work we've done on our in-house desktop exporters over the past 100 releases.
Windows WebView2 improvements
- Support for the Steam Overlay
- Force the high-performance GPU on dual-GPU systems - resolving a long-standing pain point, providing good performance on gaming laptops by ensuring the discrete GPU is used
- Export to a single EXE file, with a small file size overhead (~600 KB for an empty project, compressed to a ZIP)
- Update the executable version information with project details
- Many more changes including improved video playback performance, enabling the modern Windows SegmentHeap for reduced memory usage, logging to the browser console from wrapper extensions for better diagnostics, and a range of other bug fixes and improvements
- Also worth noting is improved OBS recording is coming with this change (credit to ToadLobe)
It's also worth mentioning that while gamepad support was an issue with Windows WebView2 for a while, this is now solved, but note it requires GameInput for Steam support - see the Steamworks plugin documentation for more details.
Linux CEF & Steam Deck support
Our new Linux CEF export option was introduced in late 2024 in r416. Not only does this support common Linux desktop systems, and even the Raspberry Pi, but it also supports running natively (without emulation or compatibility layers) on the Steam Deck! This should also support other Steam hardware like the new Steam Machine (we have one on order to make sure). This also uses our in-house Steam integration with our official and open-source Steamworks plugin.
Kiwi Story running on the Steam Deck as a Linux export
Steam support improvements
Our official Steamworks plugin supports our Windows, macOS and Linux exporters (including Steam Deck). It's also had a fair few updates, including:
- Support for DLC
- Rich presence
- Leaderboards
- More: auth tickets, app owner details, and better support for achievements
Other general desktop improvements
Here are some more improvements to our desktop exporters:
- High-performance asset bundling on all platforms, allowing bundling all your exported project files to a single file, with minimal performance overhead (unlike NW.js's slow zip extraction)
- Pointer lock on all platforms with no visible prompts
- Windowing features like maximize, minimize, restore, focus, and setting size & position
- File System plugin improvements including accessing known folders (e.g. Documents), move/open/run files, listing content recursively, and drag-and-drop support
- macOS WKWebView improvements including an options dialog to configure permissions and settings, and exporting scripts to help make signing and notarization easier
Construct Game Services
We've now also launched Construct Game Services - an official online service for Construct games (and in fact any tool). It covers cross-platform sign-in, cloud save, leaderboards, achievements, broadcasts, and more. In Construct use the built-in Construct Game Services plugin to enhance your project with these online services. See the blog post Launching Construct Game Services for more.
More improvements
We've been so busy there's even more to list! Here are even more improvements in the past 100 releases:
- A new LTS (Long Term Support) release channel
- A new in-editor Asset Browser
- Built-in support for TypeScript
- A new code editor based on Monaco
- Dynamic sampling - change the sampling mode (e.g. nearest/trilinear) per object, layer and layout
- Better multi-monitor support remembering windows across displays
- Pinning editor panes (auto-hide mode)
- A new MIDI plugin
- Auto-updating addons
- WebGPU was at long last enabled by default, using modern graphics technologies for rendering in both the editor and runtime
- Flowcharts improvements including a new 'Comment' node, color properties, and preset nodes
- 9-patch improvements including per-instance settings, adjustable margins, loading from URL, image scale, and better rendering at small sizes
- Physics per-instance collision filtering
- New blend modes lighten, darken, multiply and screen
- New fullscreen modes Integer scale inner and Integer scale outer
- Support for fixed framerate mode
- Layout view Pixel snapping option
- Open additional Event Sheet Views for the same event sheet
- Support for exporting directly to a folder
- Remote Preview window made dockable
- Multiplayer binary data transfers
- Updated minify tool to terser
- Made project files more robustly recoverable if corrupted (see our work on recovering corrupt zip files)
- Lifted a limitation to allow files with the same name in different subfolders
- iOS exports now run 'pod install' automatically
- Performance improvements including a new faster text layout engine, optimized mesh distortion, reduced editor memory usage, improved spritesheet generation, improved frame scheduling, and more
Imagine what we'll get done in the next 100 releases!
Onwards!
Construct keeps getting better and better, and it's been an extraordinary couple of years for us. We're going to keep it up, too - the technology of both Construct and the web platform it's built on keep improving and getting better than ever, with more features, better performance, and increased reliability. We really hope you all continue to enjoy using Construct, and we hope you're looking forward to the next 100 releases too!
Want a trip down memory lane? Check out our past release milestone blogs: