Render Layers in Wave Engine Orca 2.5.0

Before this version, when the user wanted to customize some aspect of the rasterizer, blending or the depth states, we needed to create by code a new Layer class, registering it manually and then acceding it by its type. And you needed to implement the SetDevice and RestoreDevice methods, changint the RenderState structure.

Initially we just wanted to integrated them into the Visual Editor, but then we realised that we weren’t allowing the users to use the full potential of the modern graphical cards, so we redesigned it.

So the RenderLayer concept was born, a Visual Editor friendly specification of how the geometry and shaders are presented into the final frame. Our most important goal was to keep the simplicity of the previous implementation but adding the full potential of the modern graphic cards.

Continue reading Render Layers in Wave Engine Orca 2.5.0

Getting started with ARMobile in Wave Engine

With the release of WaveEngine Whale Shark (2.5.0) a new extension to build augmented reality experiences based on ARCore and ARKit is available.

ARMobile brings a cross-platform API that allows a single application to run on ARCore and ARKit supported devices without platform specific code.

This article describes the necessary steps to create a basic AR application using this new extension.

Continue reading Getting started with ARMobile in Wave Engine

Setting up a Blend project to design your own GUI with NoesisGUI in WaveEngine

In a previous article, we described how to set up the basic components to use NoesisGUI in WaveEngine 2.4.0. You should now have a basic grasp of how the main components work. This article describes how to set up a Blend project in such a way so as to facilitate the design of a GUI within the WaveEngine project structure.

Continue reading Setting up a Blend project to design your own GUI with NoesisGUI in WaveEngine

Getting started with NoesisGUI in WaveEngine 2.4.0

In WaveEngine 2.4.0 we added support for NoesisGUI, which is a rendering engine for interfaces defined in the XAML language, most commonly known for its usage in Windows Presentation Foundation.

In this tutorial, you will learn how to add an interface designed in XAML to a WaveEngine project using NoesisGUI.

Continue reading Getting started with NoesisGUI in WaveEngine 2.4.0

New FileMesh, MaterialComponent and MeshRenderer components

In the new WaveEngine 2.4.0, the model load process has been improved, so there are some important changes that you should know when working with models.

The following components are deprecated. You will able to use them in WaveEngine 2.4.0 by retro-compatibility but they will be removed in a future release.

  • Model
  • ModelRenderer
  • MaterialsMap

These have been replaced by the following components:

  • FileMesh: This component replaces the Model component and allows loading of a single mesh inside a model.
  • MeshRenderer: This component replaces ModelRenderer drawable3D.
  • MaterialComponent: This component replaces MaterialsMap component. It is marked as “AllowMultipleInstances” so you can add multiple MaterialComponent instances to an entity.

Continue reading New FileMesh, MaterialComponent and MeshRenderer components

WaveEngine 2.3.1 to 2.4

This article is a brief guide to solving the majority of problems that you will find when you upgrade your game project from WaveEngine 2.3.1 version to 2.4.

Although WaveEngine has an upgrade tool that runs when you open an old game project with the current WaveEditor 2.4, you can find some issues listed below.

An important point to bear in mind is that Model, ModelRenderer and MaterialsMap components are deprecated, so you should begin to use FileMesh, MeshRenderer and MaterialComponent respectively. For more details, you can read the following article.

TaskSchedule

WaveEngine 2.3.1

  
WaveServices.TaskScheduler.CreateTask(preloadAction);

WaveEngine 2.4

  
WaveBackgroundTask.Run(preloadAction);

WaveEngine 2.3.1

  
WaveServices.Dispatcher.RunOnWaveThread(() =>

WaveEngine 2.4

  
WaveForegroundTask.Run(() =>

Network extension

WaveEngine 2.3.1

  
networkService.HostMessageReceived

WaveEngine 2.4

  
networkService.MessageReceivedFromClient

WaveEngine 2.3.1

  
networkService.ClientMessageReceived

WaveEngine 2.4

  
networkService.MessageReceivedFromHost

Find Entities

WaveEngine 2.3.1

  
entity.FindAllChildrenByTag("Enemies");

WaveEngine 2.4

  
entity.FindChildrenByTag("Enemies", true);

 

Using Wave Services from Visual Editor.

In WaveEngine the use of Services can be very useful when developing your applications / games. And, as you can create and register your own services you can add cross-scene and global elements that provide useful logic, like score managers,  entry points to native libraries, and much more. However, until now, Visual Editor didn’t allow you to register your own services, so you had to do that from code. That could cause problems: Creating components that use custom services could be tricky to debug in our Visual Editor, or depending on your code, it may directly provoke malfunctions in your scene.

Luckily, WaveEngine 2.40 has introduced the possibility of registering and setting up your custom services, as well as some Wave Extension services.

Continue reading Using Wave Services from Visual Editor.

Build a Simple OpenVR application

OpenVR is an API and runtime that allows access to VR hardware from multiple vendors without requiring applications to have specific knowledge of the hardware they are targeting. This repository is an SDK that contains the API and samples. The runtime is under SteamVR in Tools on Steam.

This article describes the necessary steps you should follow to build, load, and run a simple WaveEngine application on the OpenVR platform.

Continue reading Build a Simple OpenVR application