Some bonus extras in Construct 3

Official Construct Post
Ashley's avatar
  • 31 Mar, 2017
  • 1,110 words
  • ~4-7 mins
  • 2,442 visits
  • 0 favourites

We did a lot of posts in the run-up to the public beta launch of Construct 3. We covered most of the major points, but there's a couple of extras we wanted to highlight as well. You can try all of these out now in the Construct 3 beta! We also just released the r14 update which has a lot of updates and fixes.

The new Start Page

You've probably seen this, given it's one of the first things that you see when Construct starts. The new Start Page is by our designer Paulo and it's a much improved and more useful first view to see when opening Construct.

One thing you may have missed is it's fully responsive. Try maximising the window, or resizing the side bars - it scales all the way from a tiny mobile screen to large desktop display!

Found a demo or template you like? Another cool feature is you can right-click (or tap-and-hold) to copy a link directly to the example projects.

You can then share this link with someone. If they visit it, the Construct 3 editor will open and immediately open that project as well. Give it a go — try out one of my favourite templates, Turret Defense:

Bullet behavior stepping

A problem with the Bullet behavior is if the object is small and travelling very fast, it can "teleport" over obstacles. This is because it is travelling so far every tick that it might jump say 100 pixels in one go, and leap over an obstacle entirely without registering a collision.

To solve this Construct 3 adds a 'Step' mode. If you enable this, the object will move in small increments, triggering 'On step' every time. In this trigger you can then check if it overlaps anything. Destroying the object or using the 'Stop stepping' action will leave it where it is. The end result is a precise collision with something the bullet would have otherwise stepped right over.

Using our new direct links, you can try this out in the new bullet stepping example. Try enabling and disabling the checkbox in the top-left to compare results.

You can even use this feature to create instant-hit bullets or lasers by using extremely high speeds. Try out the new instant hit laser example to see it in action!

Create object by name

There's a new System action to now create an object by a string of its name. This is useful for dynamically creating objects based on variables, such as "Enemy" & number.

One thing to note about this feature is if the expression is determined at runtime, the Find All References feature cannot identify which objects it refers to and will list it as an ambiguous result, even for unrelated objects. So it's best to use the old variant with the object picker wherever you can, to ensure Find All References is as accurate as possible.

Project statistics

Construct 2 previously had some minimal statistics about the project crammed in to a status bar at the bottom. In Construct 3 we've moved it to a special dialog. You can find it by right-clicking the project item in the Project Bar and selecting Tools → Project Statistics.

This lists much more detailed information, ranging from the number of objects to a breakdown of the top 10 layouts by memory usage, and event sheets by event count. This gives you an easy way to see the biggest layouts and event sheets in your project, and consider breaking them up in to smaller and lighter parts.

Custom project colors

In Construct 3, you can customise some extra colors in Project Properties. You can change the background color (shown as the bars in letterbox mode, previously always black), the color of the splash screen when run as a web app added to the home screen, and the "theme color" which some browsers use to tint the browser UI. This helps keep everything in the theme of your game, especially when run in a browser or as a web app.

SpriteFont spacing

In Construct 2 you could set the widths of individual characters in the editor, but it wasn't especially quick to set up, and didn't preview in the Layout View. Now there's a new 'Spacing data' property that accepts a JSON array of character widths. This is simply an array of a width in pixels, and a string of the characters with that width. For example [6, "il"] means the characters "i" and "l" will appear at six pixels wide instead of the default character width. Ideally anyone distributing SpriteFonts will also share the spacing data so you don't have to figure it out yourself! This then allows for the SpriteFont to use variable width characters, and also preview accordingly in the Layout View. The end result is much more natural looking text.

Enhanced acceleration precision

A while ago we were surprised, and a little embarrassed, to find a long-standing subtle math error in Construct 2. Its calculations for accelerating movement did not take in to account the acceleration over the duration of a tick, which is typically about 16ms. Generally this meant everything was approximately accurate since the velocity updated regularly every tick. However it was noticed in some circumstances, particularly with the Platform behavior, where it can affect the jump height by a few pixels. For games needing high precision this was a problem.

It can be difficult to change things like this because there are probably a number of games out there already relying on this behavior. In other words if we just went and changed it, some games could find previously possible jumps being missed, or previously impossible jumps being reached, if they had very close thresholds. So we've taken advantage of the move to Construct 3 to fix this problem, so existing Construct 2 users won't be affected. The new enhanced acceleration precision mode defaults to enabled in Construct 3 to encourage its use, but it can still be disabled to revert to Construct 2's calculations in case it does cause a problem, which helps make it easier to port Construct 2 games to Construct 3.

With the new mode, jump heights are calculated with very high precision, even when delta-time has some random variations. This ought to solve the problem of varying or inaccurate jump heights in the Platform behavior once and for all.

More to try

So there you have it — a few extra things to try. It's all live in the public beta right now. So you can give it a go today if you want to try it today!


Get emailed when there are new posts!