What’s new in 2.0

We are glad to announce that Wave Engine 2.0 (Shark) is out! This release is a giant leap forward in our loved game engine.

New Wave Visual Editor

In August 2014 we began working on the new Wave Visual Editor 2.0 and, today, we are happy to announce the new editor has finally come true.

Available for download on Windows, Linux and Mac OS X platforms:

http://waveengine.net/Downloads

Wave Visual Editor has been developed using GTK# (you can read more details here if you are interested).

New Deferred Rendering Lighting System

For Wave Engine 2.0 we decided to change our render system to allow users to have more control on lighting. The big challenge here was how to offer a better lighting framework and still support old mobile devices with OpenGL 2.0.

This new system also allows us to introduce more types of light source:

  • SpotLight
  • PointLight
  • DirectionalLight

More types are coming: area lights, 2D light sources, occluders and projectors.

More info about this

New Project Template

One of the huge changes has been to incorporate SharedProject as project code in the new Wave Engine template. This new project type allows to create projects independently of the compilation platform and it is ideal for cross-platform solutions.

The new project template has a SharedSource folder and, inside of it, a Main folder, that contains your game code.

And, on the root folder, you can also find:

  • Launchers folder with all launcher projects (for every platform).
  • Content folder with all game assets.
  • Packages folder with Wave Engine NuGet packages.
  • Intermediate folder used to store temporal files.
  • Weproj file is a project descriptor file and you can open it with new Wave Visual Editor.
  • Solution files (.sln) for every platform.

More info about this

New Resource management and Asset workflow

When you compile your solution, WaveEngine creates an auto-generate file called WaveContent.cs that contains all asset paths as constants following directory hierarchy. This allows to directly reference assets from the IDE without switching between Wave Visual Editor and the IDE.
Here you can find an example of the new WaveContent file:

  
public sealed class WaveContent
{
    public sealed class Assets
    {
        /// <summary> Path to Content/Assets/MyMaterial.wmat </summary>
        public const string MyMaterial = "Content/Assets/MyMaterial.wmat";
            
        public sealed class Textures
        {
            /// <summary> Path to Content/Assets/Textures/Dinosaur.png </summary>
            public const string Dinosaur_png = "Content/Assets/Textures/Dinosaur.png";
        }
    }
    
    public sealed class Scenes
    {
        /// <summary> Path to Content/Scenes/MyScene.wscene </summary>
        public const string MyScene = "Content/Scenes/MyScene.wscene";
    }
}

More info about this

New Asset Viewer (and the new Sprite Sheet versions)

One of the biggest additions to Wave Visual Editor is the AssetViewer application, which allows to see and edit the different Wave assets (textures, models, sounds, cubemaps … and sprite sheets).

Aligned with Wave Engine 2.0, we have improved the Sprite Sheet format and include a new features:

  • Animations. Now you can define the sprite sheet animations.
  • TexturePacker integration inside the asset viewer tool.

More info about this

New  Wave Nuget Package System

In this 2.0 Release, all Wave Engine libraries are distributed through Nuget Packages, so it’s quite straightforward to keep updated to the latest Wave Version.

We’ve created several packages which names can be easily identified as the main Wave Engine libraries:

  • WaveEngine. Main package, contains dependencies with the other main packages and the asset compilation targets. This is the only mandatory package that you need to use in your project.
  • WaveEngine.Common
  • WaveEngine.Framework
  • WaveEngine.Components
  • WaveEngine.Materials
  • WaveEngine.Adapter

More info about this

New Material Editor

All Wave Engine materials has been changed to work properly with the new Visual Editor, and work with the New Lighting System, so this is the new Materials list:

  • Standard Material
  • DualTexture Material
  • Environment Material

To allow editing materials, Wave Visual Editor has included a new Material Editor:

More info about this

New Image Effects

We have improved the WaveEngine image effect library to offer our users new amazing post processing effects optimized for mobile devices. The complete list of the new effects is:

  • Depth of Field
  • Fast Blur
  • Fog
  • Gaussian Blur
  • Lens Flare
  • LightShaft
  • Motion Blur
  • SSAO (Screen Space Ambient Occlusion)

To give easy access to new image effects lens, you will find all of them in the ImageEffects static class.

 

Here is the complete source code of WaveEngine Image Effect Library:

https://github.com/WaveEngine/Extensions/tree/master/WaveEngine.ImageEffects

New Kinect 2.0 integration

We are proud to present a new Extension for the last version of WaveEngine 2.0: Kinect for Windows v2.0 Extension.

This extension is very useful for adding NUI support to your games. Using WaveEngine Kinect for Windows v2.0 Extension you will:

  • configure MS Kinect sensor source.
  • get the WaveEngine textures for most sources.
  • get the skeletons.
  • get face information details.

But Microsoft Kinect is more than textures and skeletons, so if you need more features you can use all the power of the Microsoft Kinect for Windows v2.0 SDK.

WaveEngine Kinect Extension will expose the same objects than Microsoft Kinect SDK v2.0 to you can use everywhere you need.  To use Microsoft Kinect v2.0 sensor the machine should meet the minimum system requirement for Kinect for Windows Software Development Kit (SDK) 2.0. This extension is only available on Windows.

New Networking API

This new library in WaveEngine comes to provide an easy way to manage the synchronization and communication in our games.

With it we can develop multiplayer games with an optimized API that allows us to communicate with other players and share the game state.

We have created a NetworkService that provides an API to create a host, which will manage the main game behaviour, search hosts in our local network, connect to other hosts and send and receive messages to and from the host of the game. One of the features that is interesting in this API is the possibility to manage the reliability of the communication. This feature permits us to control the bandwidth and latency of communication.

With the new service, we have a low level layer to communicate between players. But this new library provides a high level layer that allows us to work with entities and components to synchronize our game state.

The high level features are provided by the NetworkManager class, by which we can register an scene that contains the entities that we want to synchronize between players.

The NetworkManager allows us to add entities that we want to synchronize. These entities need components that have the synchronization logic. These components will inherit from NetworkSyncComponent, an abstract class that provide an clean way to specify when and what properties of our entity will be synced.

The NetworkManager provides two ways to add entities, using entity’s serialization and registering a factory method. Using a factory method, you have more control about the used bandwidth and the way of the entity is created.

New Social Services API

We have had time to attend to one of our preferred features in the roadmap, a social service for WaveEngine that come as a WaveEngine extension. It provides unified access to virtually every social feature available in Google Play and Game Center.

So, all you lucky Android and iOS devs got this WaveEngine extension just baked from us 😉

Until now, each WaveEngine project had to implement its own connection against its social service.

With this extension that is not required anymore, in an effort to unify and simplify the source code of all WaveEngine projects we provided this handy extension for these two popular mobile platforms.

More info comming soon

Updated TiledMap API

Tiled editor is a powerful tool that lets you build tile based maps. The extension “WaveEngine.TiledMap” supports this maps format with a set of components that provides map rendering capabilities and an easy interaction with the map properties and custom attributes.

WaveEngine 2.0 includes an updated component library that supports Tiled v0.12.0 that contains some new features:

  • Several graphic bugs solved.
  • Better TMX file parser.
  • Hexagonal orientation maps.
  • New properties “Stagger Axis” and “Stagger Index” for staggered orientation maps.
  • Neighbours collection from a specified layer tile.
  • Some other minor features.

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *