Launching the new Construct 3 runtime
We've been working hard for most of this year on a complete, ground-up rewrite of the runtime engine (the part of Construct that runs your games). This is a huge and challenging project, involving rewriting tens of thousands of lines of code while maintaining full backwards compatibility with the old engine. Accordingly we've been careful to gradually phase it in ensuring it gets plenty of testing, while continually revising it to ensure it's working right. In April we first released it as a public alpha test. Then in September we provided it as an opt-in, but off by default. In October we enabled it by default in the r122 beta release. After a great deal of work we're finally confident enough to release it to everybody! So this week we're making the first stable release that has the new C3 runtime enabled by default. This is a huge milestone in the development of Construct 3 and will bring many benefits to our users. However there are some things to be aware of as we make the switch.
Using the new C3 runtime
The new C3 runtime is now enabled by default. This means the following will use the C3 runtime:
- New projects
- All built-in example projects
However the following will continue to use the C2 runtime unless you opt-in to the C3 runtime:
- Existing Construct 3 projects still using the C2 runtime
- Any imported Construct 2 projects
In other words, all new projects will use the C3 runtime automatically, but existing projects will continue to use the C2 runtime until you manually switch them to the C3 runtime. We'd encourage you to switch them over where possible to gain the many benefits of the C3 runtime!
How to switch to the C3 runtime
To switch existing project to the C3 runtime, follow these steps:
- Click the project name in the Project Bar to display project properties.
- Scroll down to the Advanced section and expand it.
- In the Runtime property, click the dropdown and select Construct 3.
If your project uses anything that isn't supported by the new C3 runtime, such as a third-party addon that has not been ported yet, you'll be notified when you try to change the setting and you won't be able to use the new runtime yet. However if everything is supported, you can switch back and forth between the runtimes at will - so you can easily switch back if anything isn't working right. Note however if you use features only available in the C3 runtime, these will prevent you switching back to the C2 runtime until they're removed again.
If you just want to check which runtime a project is using, follow the steps above to find the Runtime property and just see what it's currently set to without changing it.
What's new in the C3 runtime?
We've worked hard to make a wide range of major improvements in the new runtime. It really is a technological leap ahead of the old C2 runtime. Here's a run-down of some of the major new features, many of which we've previously blogged about.
Massive performance improvements
The new runtime is significantly faster in many areas, including:
BBCode for styling Text and SpriteFont
You can now use BBcode formatting in Text and SpriteFont objects for advanced text formatting. You can even switch between different WebFonts in the same Text object. This also provides the ability to create some cool animated text effects! There's also now built-in support for typewriter text, allowing even text with complex formatting to appear to be written our gradually, with a single action.
New plugins
We didn't just rewrite all existing features - we even added more along the way! Projects using the C3 runtime will show the following brand-new plugins:
- Advanced random - provides tools for advanced random number generation, such as 2D perlin noise (useful for procedural generation), as well as specifying a random seed for the runtime
- Drawing canvas - a surface that you can draw your own content on to, such as filled/outlined rectangles/ellipses/polygons, gradients, lines and more, as well as pasting objects
- Game Recorder - record videos of your game, or even the entire screen! This means you don't need separate screen recording software.
- iframe - show a web page or custom HTML content in your game, or embed YouTube videos
- JSON - read and write JSON data
- Share - bring up the device's built-in share feature (where supported)
- Platform Info - get information about the browser and device
- Speech Synthesis and Speech Recognition - these were previously part of the User Media object, but have been moved to their own plugins.
Many of these have new examples - try searching on the Start Page.
New behaviors
We didn't just add new plugins! There's also two new behaviors to try out:
- Tile movement - an easy way to make grid-based movement, ideal for tilemap-based games
- Tween behavior - a much-requested behavior to make changes over time, such as smoothly moving an object to a position over a few seconds
Other improvements
There's also a range of other improvements including:
- A new built-in color filter property for most objects
- Use objects as particles in the Particles plugin
- Offset, scale and rotate the image in Tiled Backgrounds
- A new viewport-stable Lens2 effect
- Rotatable 9-patch objects
- A new audio latency setting
- A project setting for GPU preference (where supported)
- 'Fade volume' action in the Audio object
- Solid collision filtering
The new runtime also has a modernised codebase with an improved architecture, making it easier to maintain and add new features, and providing a solid base to work on in future.
Compatibility
While we've done our best to make the new runtime 100% compatible with the old one, there are a few differences to note. In some cases you might need to make minor alterations to your projects. To help explain any differences, we've written a new manual entry on the C3 runtime covering anything you might need to know. The key points are:
- The C3 runtime works on all modern browsers. However it does not support Internet Explorer (but does support its replacement, Microsoft Edge), and only fully supports iOS / Safari 12+, mainly due to bugs in Safari 11. If supporting IE or iOS / Safari 11 is important to you, we recommend to keep using the C2 runtime.
- Any installed third-party addons that are only available for the C2 runtime will no longer appear by default. This is because the default runtime is now the C3 runtime, and addons that are not compatible with the project's runtime will be hidden. If you switch the project back to the C2 runtime, you'll be able to see those addons again and continue using them. Alternatively you can ask the developer for the C3 runtime port, or perhaps some of the official new features can be used instead.
There are also some other notes about deprecated or moved features in the manual entry.
The future
We'd encourage everyone with existing projects to switch them over to the C3 runtime where feasible. From now on, new features will only be implemented for the C3 runtime. The C2 runtime will continue to be maintained for bug fixes only (the same basis as Construct 2 itself is currently maintained).
In the long term we'd like to eventually deprecate, and ultimately remove, the old C2 runtime. We're a small team with limited resources and maintaining multiple codebases is a significant burden on development, which slows down things like building exciting new features for the C3 runtime. However we're aware that many users have big projects that may not be able to switch over to the new runtime for reasons out of their control, such as relying on third-party addons only available for the C2 runtime. So we will keep maintaining the old runtime for the foreseeable future. We advise that wherever possible you switch over to the C3 runtime though, since we cannot guarantee it will still be supported in the long term.
In future the editor may start prompting you to switch projects using the C2 runtime to the C3 runtime in order to encourage everyone to move over to the new runtime. Ideally we can have as many users as possible using the new runtime so they can get the benefits, and reduce the maintenance work that needs to be done on the old runtime.
Conclusion
We're very excited and proud to bring you an all-new runtime with huge improvements! The major performance improvements should be a big boost to many games, and there are loads of new features to play with too. There may be a few more teething issues while we get everyone moved over to the new runtime, so please bear with us if there are any remaining problems that crop up, and remember you can always just switch back to the C2 runtime if you have trouble. Still though, overall we feel like we're in an excellent place to start working on even more new and exciting things for Construct in 2019 and beyond. We've got some big ideas we'd like to share with you and hopefully you'll be hearing more about them next year - so stay tuned!