The C3 runtime

When Construct 3 was originally released, it used the same runtime (game engine) as Construct 2. After a while a completely new runtime was developed specifically for Construct 3. It was rewritten from scratch and offers significantly improved performance and a range of major new features. See the C3 runtime blog posts for the announcements made during its development for more information. The old runtime is referred to as the C2 runtime, and the new one as the C3 runtime.

For a while C3 supported both runtimes, but since the retirement of C2 in July 2021, it now only supports the new C3 runtime.

Compatibility

The C3 runtime is designed to be as close to 100% compatible with the C2 runtime as possible. Most of the time, projects should continue to work identically after changing the runtime. However there are some cases where intentional changes have been made, usually to better organise features or improve the design of problematic features. Below is a comprehensive list of all compatibility differences between the C2 and C3 runtimes.

Browser/OS compatibility

The C2 runtime supports older browsers and platforms, some of which are no longer widely used. The C3 runtime is designed with more modern features and has higher requirements. The main practical differences are:

Internet Explorer: the C2 runtime supports IE9-11. The C3 runtime does not support Internet Explorer at all, but does support Microsoft Edge, the browser Microsoft have replaced IE with. Note that Microsoft officially retired Internet Explorer in June 2022.

iOS / Safari: the C2 runtime supports iOS / Safari 9+, whereas the C3 runtime requires iOS / Safari 12+ for full support. This should however cover the vast majority of all iOS devices still in use.

All other platforms, such as the Chrome and Firefox browsers, all use auto-updating software so should work with the C3 runtime.

Third-party addons

The main compatibility problem is likely to be the availability of third-party addons. If your project uses a third-party addon that is not available in the C3 runtime, you won't be able to import a C2 project using it. Check with the addon developer to see if there is an update that supports C3, or if you can replace the addon with other new features available in C3.

Dynamically creating objects

In the C2 runtime, creating an object which is not placed on the layout (and so is not loaded in to memory) immediately loads images for the object, which can "jank" the game (cause a short pause while loading is done). In the C3 runtime, in this case the game continues to run and the images are loaded in parallel. This provides better loading performance and avoids janking the game. However the object can exist for a short period of time while the images are still being loaded. During this time the object is not drawn, as if it were set to invisible. In some cases this can cause a noticable flicker, especially if the object is intended to cover up something else. The workaround is to place the object in the layout, and destroy it in On start of layout if it is not needed. This ensures Construct loads its images when loading the layout, avoiding any delay when creating it.

System object changes

The following changes were made to the System object, and system expressions, in the C3 runtime:

  • The WindowWidth and WindowHeight expressions have been removed. These were confusingly named, but if you need the same values, use the Platform Info object's CanvasDeviceWidth and CanvasDeviceHeight expressions. Usually it's better to use the new ViewportWidth and ViewportHeight system expressions instead, which return a size in layout pixels rather than device (physical display) pixels.
  • The Is on mobile and Is on platform conditions have been moved to the Platform Info object.
  • The Renderer and RendererDetail expressions have been moved to the Platform Info object.
  • The rgb expression has been removed. Instead use the new rgbEx or rgba expressions. Note rgb used values in the 0-255 range, but rgbEx and rgba use values in the 0-100 range, and also support a wider range with better precision.

User Media object changes

In the C3 runtime, the User Media object's speech synthesis, speech recognition, and canvas recording features have been moved to separate plugins (Speech Synthesis, Speech Recognition and Video recorder). Existing projects using these User Media features can be used in C3, but those features will no longer work until you replace them with the new plugins.

Also note that the Snapshot action no longer provides the snapshot immediately: you must use the On snapshot ready trigger to know when SnapshotURL is available.

Browser object changes

The following changes have been made for the Browser object in the C3 runtime:

  • The battery features have been removed due to lack of browser support.
  • The network information and various display related expressions have been moved to the Platform Info object.
  • On suspended and On resumed have been moved to the System object. The Page is visible condition has been replaced with the Is suspended system condition (which makes the inverse check).
Construct 3 Manual 2022-07-13

On this page