Don't Miss Out

Follow us now so you don't miss new releases!


Lightning Draw

aruche

3.26 seconds

UberLou

24.647 seconds

RamPackWobble

31.48 seconds

For the first 3 people to download this release!

Quick Draw

plut

57.55 seconds

Tsengar

1m 11s

ranma

1m 15s

Guest

3m 11s

Avneesh

3m 15s

Wrangler

4m 47s

Ashesh

4m 52s

Era

4m 58s

Ashesh

4m 4s

WilB

4m 11s

Guest

4m 21s

Be one of the first 15 people to download this release!

Construct 2 Release r153

This is an old Beta release! Download the latest Beta release instead here.
Download

122.9 mb, Windows 8/Windows 7/Vista/XP

Friday, December 06, 2013

New this build: a new experimental asm.js powered physics engine option, and low-res fullscreen scaling!

asm.js physics

Asm.js is a technology invented by Mozilla that allows high-performance languages like C and C++ to be compiled down in to a special assembly-like subset of Javascript. Engines which are optimised for this subset can then generate very well-optimised assembly code for it, resulting in performance close to native speeds. We're now providing an experimental option to choose an asm.js-compiled physics engine to run the Physics behavior.

The existing physics engine is not particularly fast for a couple of reasons. There are a few factors involved here, and I'll cover it in more detail in a blog post soon. (Edit: now posted here - More about asm.js powered physics) However our own tests have shown the asm.js physics can be 2-3x faster in Chrome and Firefox, including on mobile, which is such a big jump it's close to a native engine! Note only Chrome and Firefox are specially optimised for asm.js at the moment, but IE and Safari don't appear to be any slower with asm.js.

There are two drawbacks to the asm.js physics engine that are why it's not a new default. Firstly, it does not support the Disable collisions action. This is enough to break some existing games. We're investigating adding support for this. Secondly it can actually be slower in native iOS apps, because iOS apps are not allowed to compile Javascript and have to interpret it at a slower speed. Since asm.js generates large amounts of very simple code, the lack of a JIT can actually reduce performance. This shouldn't be a problem given that there's an option to keep using the old engine, or use CocoonJS native physics which works on iOS. Still, if you are not disabling collisions and aren't publishing an iOS app or can use CocoonJS native physics, the asm.js physics option should otherwise be feature-complete and much, much faster in many cases. Don't forget it's experimental though, so let us know if you have any issues!

Low-resolution fullscreen scaling

When using a fullscreen scaling mode like Letterbox scale, there is a new Fullscreen scaling project property that can control how the scaling is done. The default is high quality, which is what it has done previously: each object drawn at a bigger size directly to the screen. The new low quality option does something new: it first renders the screen to an unscaled canvas at the size of the Window size project property. Then, after all objects have been rendered, it simply stretches up the result to fill the screen.

Low quality mode can improve performance on systems with limited GPU power, like mobile devices or cheap laptops running in HD resolution. There is a lot less rendering work, since objects and shaders are rendered to a smaller canvas with fewer pixels, and then the end result is simply scaled up in one go, which is fast. This is particularly good for retro games using point sampling, since in some cases it will appear identical, but significantly reduce the rendering work. It might even be desirable, since it causes shader effects to appear in low-res mode as well, keeping the pixelly appearance of the game. However as the name suggests for many games the quality will be reduced. In high-quality mode, downscaled sprites, text and shaders appear crisp and detailed; in low-quality mode, downscaled sprites lose detail, text becomes blurry or pixellated, and shaders render at lower quality. There is a new system action which can turn it on and off at runtime, so it could provide an easy way to have a "low resolution" option in your game's settings for players to use if performance is poor.

Changelog

Add

New option to enable asm.js physics engine. The option to choose the physics engine has been removed from the CocoonJS object and added to project properties instead. Note asm.js physics does not support 'disable collisions'.

Add

New 'Fullscreen scaling' project property. Defaults to 'High quality' (same as before) but 'Low quality' enables rendering at the project window size then simply stretching the result up afterwards.

Add

New system action 'Set fullscreen scaling' to allow changing quality mode at runtime

Change

WebGL renderer now falls back to canvas2d renderer using the "failIfMajorPerformanceCaveat" context attribute. This should ensure best performance by avoiding software-rendered or otherwise very slow WebGL implementations.

Change

The editor now enforces that group names are unique project-wide, instead of on just the same event sheet. This prevents the issue where activating or deactivating a group affects all groups with the same name. Note that any existing projects which use the same group name more than once will still load the same for backwards compatibility, but you cannot create new groups with duplicate names.

Bug Fix

Tilemap: now displays collision polys properly when 'Show collision polys' ticked in ribbon

Bug Fix

Tilemap: could display incorrectly in editor when the graphics card driver did not support non-power-of-two textures

Bug Fix

Tilemap: could sometimes save/load incorrectly using JSON when empty tiles existed in the tilemap

Bug Fix

In the canvas2d renderer, layers using their own texture did not use 'Point' sampling even if it was set in Project Properties

Bug Fix

Could create event groups with empty names, which then could not be renamed


Comments

8
Era 8,724 rep

Awesome :)

Friday, December 06, 2013 at 4:22:21 PM
6
Ashesh 6,420 rep

Great Update Scirra!

Friday, December 06, 2013 at 4:24:40 PM
6
jardelbr 4,857 rep

GREAT! downloading! ^^

Friday, December 06, 2013 at 4:28:45 PM
7
Wastrel 11.8k rep

Nice update! Scirra is always riding the bleeding edge!

Friday, December 06, 2013 at 4:32:24 PM
7
firebelly 7,239 rep

Interested to see how this plays out.

Friday, December 06, 2013 at 4:33:04 PM
7
jayderyu 15.0k rep

Not bad options here :) I like the low res rendering then upscale. I'll certainly make use of that come stable.

I was hoping briefly that when Group names needed to be unique that this was the first step towards modulairty.... my hopes were dashed :D

Friday, December 06, 2013 at 4:35:18 PM
7
OneMuppet 6,516 rep

Nice! asm.js physics is really exciting! Good work!

Friday, December 06, 2013 at 4:43:17 PM
7
Jase00 9,819 rep

Holy crap, I did not see this coming! Thanks so much! :D

Friday, December 06, 2013 at 4:44:54 PM
7
damainman 7,953 rep

This sounds like an amazing update!! Can't wait to get into this one... downloading now :D

Friday, December 06, 2013 at 4:48:42 PM
6
Pixel perfick 12.3k rep

Pixel heaven! Thanks for this one...

Friday, December 06, 2013 at 5:02:01 PM
6
Paradox 39.4k rep

Thank you!

Friday, December 06, 2013 at 5:04:48 PM
5
AbelaNET 14.7k rep

Thanks. Keep it up.

Friday, December 06, 2013 at 5:22:04 PM
4
ferrod 17.4k rep

Great update team, allways forward.
Thanks.

Friday, December 06, 2013 at 5:30:16 PM
4
Kurz 9,106 rep

Cool ! I love first beta releases which go after stable one )

Friday, December 06, 2013 at 5:42:10 PM
4
JohnnySix 11.9k rep

Sweet, can't wait to try it out. Am guessing you guys might be thinking about including some more physics behaviours soon, like prismatic joints?

Friday, December 06, 2013 at 5:51:13 PM

Leave a comment

Everyone is welcome to leave their thoughts! Register a new account or login.