Custom components and RenderProperty attributes on Wave Engine 2.0 (Part 2)

In this second part we will review all RenderProperty attributes available on WaveEngine 2.0. But if you did not see the first article then we recommend you read it before this one.

It’s important to follow this rules when you want to create a custom component:

  • You must create a custom component as an extended class of Component, Behavior or Drawable.
  • Add [DataContract] attribute to custom component class.
  • Custom component must take parameterless public constructor.
  • All public properties in the custom component will show on Wave Visual Editor from Entity Details panel.
  • Add [DataMember] attribute to all public properties if you want its values stored during serialization process.
  • Basic data types are automatically displayed by Wave Visual Editor (bool, int, float, Vector2, Vector3, Quaternion…), however unknown data types are shown as a string.
  • You can add RenderProperty attributes to public properties in order to change how it is shown on Wave Visual Editor.
  • Default properties values must be set on a DefaultValues method.

Continue reading Custom components and RenderProperty attributes on Wave Engine 2.0 (Part 2)

Custom components and RenderProperty attributes on Wave Engine 2.0 (Part 1)

Wave Engine 2.0 provides a components set to define different types of entities.The components code is available to download on our github repository.

When you want to make a game you will need to create your own components. In this article we are going to show how to create custom components on WaveEngine and how to use them from Wave Visual Editor.

Start Wave Visual Editor and choose File -> New project

Set a name and folder location for your game:

Continue reading Custom components and RenderProperty attributes on Wave Engine 2.0 (Part 1)

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

Continue reading What’s new in 2.0

Resources management and new WaveContent class in Wave Engine 2.0

Resources management is an important part during the game development and it becomes tedious when a large amount of it is required in a project. In this article, we show the progress done with Wave Engine and how it will ease task management.

How it works in previous versions

In Wave Engine 1.4.2 and previous versions, game assets can be included to throw the Asset Exporter tool and can be accessed programmatically using the asset path.

Continue reading Resources management and new WaveContent class in Wave Engine 2.0

Wave Engine 2.0 Exporter Command Line Tool

In Wave Engine 2.0 we have updated the Wave Exporter Command Line Tool and added new interesting features. Previously this was only used for exporting the project assets as a post-build event but the new version incorporates the option to export specific assets, directories and an entire project, with new parameter options.

The command line tool is in the WaveExporterCMD.exe, on the Visual Editor directory (For example, in Windows usually is in ‘$(Wave Directory) / v2.0/Tools/VisualEditor/WaveExporterCMD.exe’)

Wave Exporter commands

Wave Exporter Command Line Tool allows performing the following commands:

  • Help
  • Asset
  • Directory
  • Project

Continue reading Wave Engine 2.0 Exporter Command Line Tool

Developing with GTK# + SharpDX + OpenTK

In this article we are going to show the reasons that led us to develop the new Wave Visual Editor on GTK# and the pros and cons of developing a cross-platform UI app with this technology.

When we began to develop the new Wave Visual Editor, we spent a great deal of time investigating different UI application frameworks. The researched technologies were Windows Form, WPF, GTK#, Cocoa# and Xwt.

Continue reading Developing with GTK# + SharpDX + OpenTK

New project template and metafiles on Wave Engine 2.0

In the new Wave Engine 2.0 version we have been working on very important changes on the project template. This changes are designed to improve the portability of Wave Engine game projects. In this article we will go over the changes of the project template and compare them with the version we had on Wave Engine 1.4.2, furthermore we are going to review the new metafiles that all Wave Engine developers must also know to understand Wave Engine process.

Continue reading New project template and metafiles on Wave Engine 2.0

New Wave NuGet Package System

Wave Engine has been releasing several versions since the project started. In addition we allow our community to use our latest pre-release builds. This may cause a little mess when you are dealing with different projects/games with different versions at the same time. Which version should I suggest to install in all my team’s computers? What if I install more than one version at the same time?

To solve those problems we decided to update the Wave Engine default projects by using the NuGet package system.

NuGet

NuGet is a free and open source package manager (initially designed) for Microsoft platforms and provided as a Visual Studio extension. It has gained popularity and it’s also integrated in Xamarin Studio and MonoDevelop.

If you take a glimpse of its web or its IDE extension you will find plenty of different libraries with different versions and dependencies.

Continue reading New Wave NuGet Package System

New Material System on WaveEngine 2.0

One of the main features performed in Wave Engine 2.0 is the rewriting of the Material library. To afford tasks like the New Deferred Rendering, we soon realized that we needed to improve the existing material library.

All 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

Continue reading New Material System on WaveEngine 2.0

Using Sprite Sheets with Wave Engine 2.0

As part of the plan of Wave Engine 2.0 to check over its features and following a process to constantly improve them, the new Wave Visual Editor gave us the opportunity to simplify a lot of things and make the development more enjoyable. One of them is the creation and use of sprite sheets textures and animating them.

What is a Sprite Sheet

If you are not familiarized with Sprite Sheets, don’t worry, this article will give you a brief explanation.

First of all we must differentiate between sprite, sprite sheet and animation concepts.

  • Sprite is just a single 2D image, which can be added to our scene.

  • Sprite Sheet is a group of different sprites put together into a one big image. They are necessary to speed up the process of displaying images on the screen because of its important impact on memory and performance. Packing algorithms are really important to keep the image as small as possible.

  • Animation with sprites is using a sprite sheet and changing which sprite is rendered, changing every frame causing the animation illusion.

They are 2 key uses for the sprite sheets in your game or application:

  • Sprite animations. For creating a 2D animated character (or object), so we have to pack all its frames as a way to make it easy to add on your project.
  • Sprite Packaging. Using a sprite sheet with no animation, just to optimize memory and performance. We usually packs a lot of our scene sprites into a sprite sheet, and we use them in our scene, adding a sprite sheet but rendering only one of its sprites.

The new Wave Engine sprite sheet format is designed to satisfy all of them.

Continue reading Using Sprite Sheets with Wave Engine 2.0