Wave Engine 2.3.1 has been released today. This version adds some important features that we think our community will enjoy, like binary scene serialization and OpenGL support in Windows. Let’s have a look in detail.
OpenGL in Windows
In order to add more possibilities to our users, we decided to add OpenGL support in our Windows platform. You can now test your GLSL shaders without deploying to Android, iOS, Mac or Linux.
This article explain a bit more this new feature.
Binary serialization with Protobuf-NET
We needed a scene binary serialization in runtime, so we adapted the protobuf-NET library. And now the load time is up to 5 times faster.
You can read more information about how to use it in this article:
WPF, Windows Form and Gtk# templates
WaveEngine has also added launchers for interop on the next kind of projects:
- Windows Form
This makes the integration of Wave with other technologies much easier.
To do that, just add a new profile:
- Click on Edit > Project Properties… in the main menu.
- Click on button to add a new profile.
- Select Windows as Platform.
- On Launcher Type, click in one of the desired launchers and then click OK.
New Themes (Dark and Light)
We know some people like to work with darker themes, so we’ve allowed them to set its preferred theme. To do that, just:
- Click on Edit > Preferences… in the main menu.
- In the General tab, select the desired ColorTheme.
We have two themes for now:
The new default theme. Darker colors, ideal for owl programmers!
Similar to the old theme, in light colors.
Edge Collider 2D
We want to keep improving our Physics 2D area, that’ts why we keep integrating new Box2D features. This time is for the EdgeCollider2D component, ideal for floors or lines.
Texture support in vertex shaders
Until now in your custom materials you could only use textures in the pixel shader. Now we’ve added the possibility to use them in your vertex shader. This will allow more possibilities in your shaders, like displacements and other cool stuff!
To do that, we just added an additional parameter in the SetTexture() method in the GraphicDevice:
<strong>public</strong> <strong>void SetTexture</strong>(<strong>Texture</strong> texture, <strong>int</strong> slot, <strong>TextureSlotUsage</strong> textureUsage = <em>TextureSlotUsage.PixelShader</em>)
The optional parameter textureUsage is an enum of type TextureSlotUsage, which contains 3 values:
We’ve added a new attribute (similar to RequiredComponent) that helps your components to receive at initialization time the instance of your desired service, even if it’s a custom service made by yourself.
The syntax is:
<em>// This service will be injected when the component is initialized</em><strong><em>
protected <strong>MyService</strong> desiredService;
Oculus Touch support
We have improved the Oculus Rift integration In WaveEngine 2.3.1 updating from 0.7.0 to 1.10.0 Oculus API.
One of the most important improvements is the Oculus Touch support is that it allows you to have hand controllers in your VR games.
You can read more in this article.
In this version we changed the entity path to allow having relative paths from one entity to another. This way the Entity Picker of a component will return the relative path, allowing to use it inside prefabs.
A sample of entity path would be:
You have more information in this article.
Bokeh lens (and new sample)
A new lens has been added to our ImageEffect extension, and adds an interesting and realistic bokeh effect with a really good performance, making it possible to use in mobile devices.
We also added a new sample to illustrate that effect:
The sample is available here in GitHub.
Add Child button in Wave Visual Editor
For improving the productivity we’ve added a “Add Child” button in the EntitiesHierarchy panel when you right click over an entity. This allows creating complex hierarchies much easier.
New QuickStarter (Super Slingshot)
In our effort to help our community we’ve added a new quickstarter, with all the necessary assets needded.
This sample uses our new Physics 2D to create a slingshot game, inspired by Angry Bird games.
The code is available here in our GitHub.