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.

Since the Wave Engine 1.4.0 version we had in mind to do important changes on project templates, but this changes caused compatibility problems with old versions, so if a developer was in the midst of developing a game then a important effort was needed to regenerate your game project template and update to the last version. So we decided to keep Wave Engine 1.4.x as a stable version and to do all of these changes in the new major version 2.0.

Wave Engine 1.4.2 Project template

The old template had a main folder with the project name “MyGame” and inside of it two subfolders with project code and the Windows launcher project.

In addition, the root folder had:

  • Launcher folder for every platform
  • Resource folder with all game assets
  • Solution files (.sln) for every platform.

Wave Engine 2.0 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. You must take into consideration that it is supported on VisualStudio 2013 Update 4 or VisualStudio 2015, Monodevelop 5 or higher and Xamarin Studio 5 or higher.

The new project template has a SharedSource folder and inside of it a Main folder with sharedProject as project 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 nugget 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.

Assets compilation process and metafiles

Wave Engine processes all assets when you compile your game project. This process generates an internal file with .wpk extension for every asset and this wpk file is consumed by the engine.

The information of how to process every asset was stored on .weproj file (1.4.2 version),. This was not sucha good idea for us, so in the new 2.0 version we have generated metafiles (.winfo) for every asset where the compiled information is stored. These winfo files are generated automatically. Then the weproj file is lighter and therefore it is easier to asset exchange between projects.

Winfo files on Content folder:

Note.  It is also important to highlight the wpk and winfo files have original extension assets as part of its name, so it allows to have two files with the same name but with different extensions. (This was not  allowed on old version).

Winfo metafile example:

On winfo file we can see all properties to process the assets (in this case it is an image).

And finally there are two additional extensions .wscene and .wmat files.

  • .wscene are scene descriptor xml files.
  • .wmat are materials descriptor xml files that you can view and edit with the new Material Editor inside of Wave Visual Editor.

Wscene metafile example:

Wmat metafile example:

We will continue revealing more WaveEngine 2.0 features in the upcomming days.

Stay tuned at @waveengineteam and

Published by

Jorge Canton

He is an engineer in computer science, #WaveEngine team member is a technology enthusiast determined to stay on the cutting edge of development. He is a very dynamic person who loves solving challenges, puzzles and riddles. He usually spends his free time with his family or playing videogames on his console or mobile phone and plays the piano to relax.

Leave a Reply

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