2016-04-15

It’s magic, and it makes you super productive! Live editing is here. Now you can edit your scene while playing!

The new JSON asset type makes it possible to drop JSON files in the editor, edit them, and use them from scripts. Perfect for your game config! Read more.



Rigid Body components now have options for freezing the position and/or rotation along any of the world axes. This is useful for many things, like freezing the rotation on your platformer game hero, or constraining your game objects to 2D.



If you look into the Behavior editor, you’ll find a couple of new actions:



We also added a Duplicate State button for the behavior editor. Hopefully it will make your behavior development more streamlined!

The new preview cameras makes it much easier to position cameras!

If you open the Scene Stats panel, you can now enable a stats widget on canvas. This is useful when performance testing!

We added a couple of new methods to Scripts: fixedUpdate and lateUpdate. The fixedUpdate is run after each physics step, so you can now interact with physics objects more easily. The lateUpdate method runs after the update methods in all scripts – this way you can compute something in a script update and get the result in another script during the same frame. See the scripting manual page.

Other improvements & engine updates

Exported ZIP files are now more conveniently named, for example my_scene-website-20160412_133020.zip

Webpage export now includes the engine JS files.

The engine now uses commonjs modules instead of AMD. This way you can use it “natively” in Node.js for your multiplayer games, or use it with modern web development tools like webpack. Just npm install goojs!

Tween was removed from the engine. If you still want to use Tween, use this library or update your script to use the new Easing class instead.

If you were injecting APIs on the entity instances from components, and the method already was taken, now you get an error instead of a warning.

The transform components now update lazily. The new way of using them is via entity.transformComponent.setTranslation(), .getTranslation(), .getWorldTranslation(), etc. See the Scripting Transforms tutorial or the TransformComponent docs.

We removed doppler factor support because it’s being dropped from the WebAudio API.

Added a fixed update loop, mainly for physics but also for other things that need frame rate independece.

ctx.playTime is now updated before running update()

Until next time!

Stefan Hedman
Developer

Show more