New Profile System

Up until now, you only could create a launcher project by platform but game developers have reported to us that they need to create more than one launcher configuration by platform. For example, you want to create a game to Android platform and need to have a launcher configuration named “AndroidSmartphone” and another launcher configuration named “AndroidHD” with high resolution textures. This is now possible with the new profile system.

Now, when you create a project you can select which platforms will be supported.  It will then create a default profile launcher by platform:

But if you want to add an additional profile launcher to the same platform, you can use Project Properties Dialog from Edit menu (Edit -> ProjectProperty)

Continue reading New Profile System

Using Image Based Lighting (IBL)

Wave Engine offers a complete lighting system with different light types for different scene settings. However, sometimes you need to create a soft environment, which is difficult to create with point based lights. For example, a cool sunset with lot of ambient illumination, different colors, etc.

To do that our Standard material offers the possibility to create an Image Based Lighting (IBL from now) on your entities and adding that extra realism.

IBL example

Continue reading Using Image Based Lighting (IBL)

Creating 3D animation sequences with WaveEngine Game Actions

In this article we are going to see how to create a simple 3D animation sequence, it is very useful when you want to create initial tutorials or real time animations in your game.

Game Actions are the easier way to create an action stack . If you have not seen it before you can take a look to this Game Action article before continue reading.

Continue reading Creating 3D animation sequences with WaveEngine Game Actions

What’s new in Wave 2.0.5

Wave Engine 2.0.5 is out now and it has lot of features and bug fixes. However, 2 main improvements needs to be explained and you will probably need to adjust some things of your project when upgradint to this new version. These changes are:

  • VirtualScreenManager. Improvement of the old ViewportManager service.
  • 64 bits support.

Continue reading What’s new in Wave 2.0.5

Tips to create your custom image-effect in WaveEngine

Image Effects are very often used to enhance the final look of our games, in WaveEngine we have worked to create an Image Effect extension with the common image effects used in games and optimized for mobile devices. So the default values used for each of these effects are tested in iOS, Android and Windows Phone devices, but you can change these to get more quality results if you target other platforms like Windows, MacOS or Linux.

Continue reading Tips to create your custom image-effect in WaveEngine

Social Service in WaveEngine

This article will give you an idea of how the new WaveEngine extension could be used in your existing WaveEngine game.

We will make use of an already finished game to integrate with Google Play, but you will require no more coding efforts at all to get Game Center up a running, other than what we are about to do for Google Play.

Continue reading Social Service in WaveEngine

Using TiledMap to create your 2D game level

With TiledMap, developing 2D games in WaveEngine will not be the same anymore. Tiled maps have been used for a long time in games, now you can load and integrate TiledMap (.TMX) files, created by the Tiled Map Editor (http://www.mapeditor.org/), the most popular map editor based in tiles. With Tiled, you can easily design your 2D map levels and run in WaveEngine like a charm.

Continue reading Using TiledMap to create your 2D game level

Integrating Wave Engine within an iOS Storyboard

UPDATE (April 19th): The document now reflects new changes introduced in Wave Engine v. 2.1.0.

Introduction

Default Wave Engine launcher project for iOS assumes that your game will run as a stand-alone view inside your application. However, what if you want to mix native views or navigate between different controllers? Is there a way to join the native world with your scene’s one? The answer is yes. Keep reading this article, and you will learn how to accomplish it.

Development

Create a Project at Wave Visual Editor

First step is to create a new Wave Engine project using Wave Visual Editor. You can follow My first application which will guide you step by step. Please, remember to include iOS as target platform when creating it (you can later create it as explained here).

Open the iOS launcher solution (you’ll find the Solution file inside the project’s root folder), we’ll write some extra code to achieve our goal.

Populate the Storyboard

You’ll notice there’s an existing Storyboard inside Controllers folder. From this point of view, the app behaves as any other iOS one, containing view controllers within such Storyboard.

If you open Main.storyboard, there will be the Main Controller, with a GL View in the end, where Wave Engine is actually rendered. On top of that one, there is another “empty” view (well, it just contains the GL one). This one is where you can drag and drop native controls.

 

So far so good. Wave Engine is, starting from v. 2.1.0 (Hammer Shark; complete list of versions), already integrated into a common iOS project. Please keep reading to discover a small sample, and how the communication can happen between both worlds.

Sample

The principal objective of our sample solution will be to communicate some native side views with our scene, allowing them to change our game’s entities behavior.

Following with above steps, still in the Storyboard, we’ve also added an UISwitch for pausing the game scene, in order to highlight how the communication between native iOS and Wave Engine can be done.

IOS Integration Storyboard

Our scene is quite simple: a fixed camera pointing to a cube, which’s endlessly spinning. Such can be entirely set-up within Wave Visual Editor (remember My first application; Load a primitive can be helpful as well). Due to the nature of the demo, pausing the scene is achieved simply by deactivating the Spinner component, child of the cube Entity. This can be done through its IsActive property.

The communication happening from the iOS UIViewController to the Wave Engine Scene happens in the following chain:

  • User touches the UISwitch which fires the AutoRotateSwitchChanged() “event” (actually it’s not an event, but a partial method automatically created from the Storyboard Designer at Visual Studio/Xamarin Studio)
  • Such contains a reference the Game it-self, so we’ve added a method to it: game.UpdateAutoRotation()
  • The Game knows about the Scene’s being in play, so can call custom code from those, which we’ve done through: scene.UpdateAutoRotation()

Apart from the integrations currently available, we’ve seen how native iOS controls can coexist with Wave Engine, opening a world of opportunities, such like CAD apps. The entire Source code can be downloaded from GitHub:

https://github.com/WaveEngine/Samples/tree/master/Integrations/Xamarin.iOS

Sergio Escalada and Marcos Cobeña