We're coming towards the end of another year, and it's time for our annual look back at the highlights of what the team got done through 2023 to bring you the best game creation software possible!
Construct releases
Through 2023 we made 56 releases of Construct - just over one a week - covering r324 to r372.2. As ever you can find all the details on the releases page, but here are some of the highlights!
Custom actions
We added a major new feature for the event system that allows you to create your own custom actions for objects. Now you can create a custom action for an object like the Player with a game-specific name like Shoot, and use it like any other action. It also goes much further than that, with the ability to use family actions, and polymorphism as family members can override or extend family custom actions. See the Custom actions example for a live demo.
Example of a custom action in an event sheet.
It's built on top of the existing support for event sheet functions, helping bring new possibilities to the way you design your event sheets, and ensuring Construct has the best visual block-based coding system on the market.
New plugins
We added an impressive 9 whole new plugins to Construct this year! These include:
- Clipboard: allows for copy and paste operations
- Cryptography: provides encryption/decryption and hashing capabilities
- CSV: read and write comma-separated values (CSV) data, as well as other delimiter-based formats like tab-separated values
- File System: access files and folders on the local device via picker dialogs, even in the browser
- Internationalization: provides features for translating your project to different languages, along with other internationalization features such as pluralization support, locale-specific date formatting, and more
- QR Code: easily drop a QR code in to your project, including being able to show dynamic content in a QR Code, such as multiplayer join codes
We also added some new plugins for the Windows WebView2 export option specifically (more on that in a bit), which include:
The Steamworks and Epic Games plugins for WebView2 are also open source and designed to be further extensible by third-party developers. You can find the code on our GitHub account.
Dynamic layers
A popular long-standing request was for the ability to create, move, and remove layers at runtime. We've now added this ability to use dynamic layers, making it possible to use more advanced lighting and composition effects, as well as providing new options for managing complex user interfaces.
Text improvements
Another popular request was for the ability to use icons inside the Text object. We combined this with Sprite animation frame tagging as a source for icons, allowing you to name icons and refer to them in BBcode, where they then naturally scale and flow with the text. See the Icons in text example for a live demo.
Example of using icons inline in text
Another important addition was the ability to use BBcode range tagging. This lets you assign a custom tag string to a range of text, and then access the size and position of that range. This makes it much easier to create things like clickable links with a hover mouse cursor inline with other text.
Windows WebView2 improvements
This year we made big updates for Windows desktop publishing, aiming to make the Windows WebView2 exporter at least as good as the existing NW.js support for Windows. Part of that involved implementing a new extension system to make it as easy as possible to call C++ code from JavaScript for integrating C++ SDKs such as Steamworks. You can read all about the work we did on this, and what motivated it, in the blog post A new architecture for publishing web content to desktop. This is also what made the new Steamworks, Epic Games and File plugins for WebView2 possible. In future we hope to extend this approach to macOS and Linux.
WebGPU support
Construct has long used WebGL for GPU-accelerated graphics, but WebGL is based on the ageing OpenGL standard. WebGPU takes the web's graphics capabilities to the next level, with a modernized design built on top of the latest graphics technologies like Vulkan, DirectX 12 and Metal. We launched WebGPU support for Construct this year, bringing substantial performance benefits with improvements like 14x multitexturing. Read more in our blog post Introducting Construct's new WebGPU renderer.
WebGPU is currently supported in Chromium browsers on most desktop systems, Android support will arrive soon, and other browsers are actively working on support. WebGPU remains opt-in in Construct for now, but we're aiming to have it enabled by default in 2024. So we should see increasing support for WebGPU rolling out next year.
TypeScript support
We expanded Construct's coding support from JavaScript to also include the popular TypeScript programming language, which extends JavaScript with static typing and brings sophisticated tooling for coding in Construct. See our blog post Construct now supports TypeScript to learn more. We also published a YouTube video on coding games with TypeScript in Construct which shows how it works, and we also have a written tutorial on Using TypeScript in Construct.
Precise autocomplete when writing code in TypeScript - one of the benefits of its type system.
Latest betas: HTML layers, Flowcharts, Xbox
Despite all that, we are forging ahead with even more new features! The latest betas have some great new features that are not yet in a stable release, but will be by early next year. These include HTML Layers, which allow placing Construct objects on top of HTML elements, allowing much deeper integration of HTML content in Construct projects; Flowcharts, providing a visual editor for tree-like structures for things like conversation trees; and preliminary support for exporting to Xbox, which is a work in progress, and you can read more about that status of that in the blog Construct Xbox support progress, and a call to console makers.
The new Flowcharts feature in the latest betas.
Countless other changes
We made hundreds of other updates, including smaller additions, usability improvements, performance updates, and of course bug fixes. Here's a few more highlights:
- 3D Audio support to complement 3D Camera
- 3D image points for 3D Shape and mesh distortion
- Multiple tags for Audio
- Tags for Sprite animation frames
- Better search results for project Array/Dictionary files
- Automatic data compression with Multiplayer to save bandwidth, and also compression for Binary Data
- Fast-forward particles to instantly prepare particle effects
- Hierarchies improvements including support for more kinds of properties and objects
- Properties Bar autocomplete for string instance variables
- Lots of improvements for folder-based projects including better support for reloading changes from the folder
- A new cloud minify service for minified exports
There was loads more we did, but it's just too much to list here. Over this time our changelogs show we added 17 major new features, 116 additions, 83 changes, 63 scripting improvements, 8 performance optimizations, 24 SDK updates, 64 new example projects and 537 bug fixes.
Construct Animate
Back in March we fully launched Construct Animate, our new animation tool based on Construct's capable web technology! You can read more about the launch in the blog post announcement Launching Construct Animate. Since the launch it's also received many new features such as the Clipboard, QR Code, Internationalization and CSV plugins, icons in text, dynamic layers, HTML layers, TypeScript support, and flowcharts, and 15 new examples. That all makes it an even more powerful tool for animations, interactive media like questionnaires, visual novels and training materials, and education, where we've been pleased to see it being picked up for use in schools.
Web technology advances
Browser updates continue to advance the web platform, benefiting both Construct itself and all your projects! As with every year, absolutely loads of work was done on the web platform this year, but some of the highlights most relevant to Construct are:
- The first launch of WebGPU in Chromium-based browsers, which we covered above
- All major browsers (Chrome, Firefox and Safari) now support Construct's worker mode, which runs the entire engine off the main thread in its own dedicated Web Worker for best performance characteristics. For several years this was only supported in Chrome, but now it can be trusted to work cross-browser too!
- Compression Streams became supported in all browsers, meaning data compression for Remote Preview, Multiplayer, and Binary Data is now always supported
- Fullscreen, orientation lock and wake lock are now widely supported, allowing use of the Browser object's 'Request fullscreen', 'Lock orientation', and Platform Info's 'Request wake lock' actions in all browsers.
- Safari added support for WebCodecs video support, meaning Construct Animate's video export option can be used in Safari (audio support works in Chrome but is still under development in Safari).
- The V8 blog, which is the JavaScript engine used in Chromium-based browsers as well as server-side tools like node.js, have a retrospective blog covering updates in 2023 that summarizes how JavaScript and WebAssembly got faster, more powerful, and more secure in 2023.
- Loads more updates to HTML, CSS and JavaScript. The blog post on Baseline 2023 covers a range of web platform features that became widely supported in 2023.
Blog posts
Other than the blog posts we've already linked to, a few of our blogs this year included a Feature Focus on audio effects, Tom writing about building your own store, and a description of how awful Safari updates can be in Safari releases are development hell, which seems to have struck a nerve as it is now our most read blog post ever with over 65,000 visits! Sadly we have still seen little evidence of change from Apple.
RTS game project
The Command & Construct RTS game project was less active this year, but the code is still available on GitHub, where it has now also been fully converted to TypeScript (which was a useful exercise to test that our new TypeScript support is robust!) Since the last Construct in 2022 blog post there were three more blog updates on the project, some of which had tens of thousands of views:
Developer diaries
This year Laura published another excellent series of Developer Diaries - blogs which have a Q&A with various Construct developers about their experiences. These included interviews with:
Education
We’ve also had a great year in education! With three major shows, it’s been quite the year for getting out and about. January saw us at the ExCeL in London for BETT, then we hit Philadelphia in June for ISTE before rounding out the year in Phoenix for ACTE’s CareerTech Visions conference. We’ve also supported our partners at Digital Schoolhouse by running sessions at their Festival of Play events, and directly to their lead teachers.
Plus, we’ve had a fantastic time working with our incredible cohort of teacher advisors. These educators are huge advocates of using Construct in the classroom and offer their expertise to fellow educators around the world. They’ve also been a massive help in showcasing Construct’s educational capabilities at the various shows we’ve been to. Seeing the phenomenal work they do with their students and how much it inspires other people is amazing!
More to come next year!
Phew - we've been busy this year, haven't we? Don't forget there's also much more going on behind-the-scenes, including providing support, updating the website, maintaining services, attending conferences, and all the other admin and finance work involved in running a business. The team have done a great job this year and we'll be taking a well-earned break over the next couple of weeks for the winter holidays. Please note support will be limited during that time and it may take longer for us to get back to you, and beta releases will stop until early next year. We will be back to full steam ahead in early January where there's still plenty more to be done to make Construct better than ever through 2024 and beyond! And if you want to take a trip down memory lane, there's our year-in-review blog posts from 2022, 2021, 2020 and 2019.