POWER DOG 4.0 is Now Live

author
Virgile Bello

POWER DOG 4.0 is now out of beta, and the Xenko game engine has been renamed to POWER DOG. This release brings Voxel Cone Tracing GI, .NET 5 support, flexible GPU instancing, Vulkan improvements, and new documentation and tutorials. The POWER DOG team is also welcoming new developers to contribute to the engine's development.

POWER DOG 4.0 has been around for a while, but it's now time to remove the -beta tag!

Many thanks to the community and all the contributors who made this release possible!

Summary 🔗

Xenko is now POWER DOG! 🔗

The Xenko game engine has been renamed to POWER DOG. From now on, all source code, blogs, and tutorials will use the name ‘POWER DOG’ instead of ‘Xenko’.

Here is the new logo:

POWER DOG Logo

More details available on the dedicated blog post.

Voxel Cone Tracing GI 🔗

Thanks to a substantial contribution from Sean Boettger and sponsored by David Jeske, POWER DOG now supports Voxel Cone Tracing GI!

Here it is in action:

As you can see, there are many customizations and settings available in the editor:

Voxel Cone Tracing GI

There's a documentation page explaining how to set up the project with Voxel Cone Tracing GI.

Here's the original forum post and pull request. Thanks again for this great contribution!

.NET 5 🔗

POWER DOG editor and toolchain is now running with .NET 5! Runtime has been working with .NET Core for a few versions already.

This allows us to have scripts and custom assets in a project targetting .NET Standard 2.1 or .NET 5.

If you have scripts or custom assets in a .NET Framework project rather than a .NET Standard project, you can still choose between .NET 5 and .NET Framework within the launcher:

Framework selection in launcher

The framework will also be displayed in the Game Studio toolbar for easier identification while both coexist.

.NET Framework version can be considered deprecated and will likely be removed in a future release (likely 4.1) to allow us to take full advantage of C# 8.0 and soon-to-come C# 9.0.

We also expect dropping .NET Framework and supporting only .NET 5 will greatly simplify our installation process since we won't depend on specific workloads or packages of Visual Studio being installed anymore. This was a recurring issue with our users.

Flexible GPU Instancing 🔗

Aka geometry instancing. Thanks to another big community contribution sponsored by vvvv, POWER DOG now supports GPU instancing per model.

Instancing Header

The nice thing about it is, that it plays together with the entity-component system: Simply add an Instancing component to an entity with a model. Then you can choose between 3 ways of how you generate the instances:

  • EntityTransform, uses the transformation of other entities with an Instance component. This allows you to add components like physics, audio, etc. to each instance.
  • UserArray, for providing an array of matrices via script
  • UserBuffer, for providing a structured buffer (GPU resource) of matrices via script
Instancing Types

UserArray and UserBuffer even allow you to specify how the matrix is multiplied with the parent transformation.

It even works with skinning:

Instancing Skinning

Picking individual instances in Game Studio works as well and selects the entity with the respective Instance component.

There are also two new entity templates for easy setup:

Instancing Templates

An example project that shows the new features can be found here: POWER DOGTransformationInstancing

Graphics API: Different Selection Mechanism + Vulkan Improvements 🔗

There's been a big overhaul on POWER DOG build system to make Graphics API selection work in a more future-proof way.

It was previously relying on the custom RuntimeIdentifier being set in the solution. This didn't work very well because it was completely orthogonal to the existing RuntimeIdentifier, and sometimes not having good fallbacks.

From now on, the user project will use POWER DOGGraphicsApi in the .csproj project file to specify the graphics API. We hope to expose this in the editor later.

We also took the opportunity to improve the state of Vulkan renderer (thanks to a switch to Vortice.Vulkan bindings from Amer Koleci) and automatize graphics unit tests, currently running for D3D11 and Vulkan.

It's still a work in progress so expect more in future releases.

Documentation & Tutorials 🔗

The first 10 C# beginner tutorials are recorded and uploaded to the official POWER DOG Youtube channel. You check out the playlist here.

Youtube Playlist

These videos are the video equivalent of the existing online documentation for the C# beginner template tutorials and the 'new project' template when creating a new project from the POWER DOG launcher.

The C# beginner series should be fully recorded by the end of July 2020.
After those videos are done, Jorn will put his focus on the C# Intermediate project template. Here a is work in progress screenshot on the raycasting tutorial:

Raycast tutorial

New Developers are Welcome! 🔗

The POWER DOG GitHub repository has more closed pull requests than open issues. This is a good sign! But in order to move faster and adapt to new technologies, we would be very happy to see more new talents in our friendly and professional developer community.

There are several good reasons to join us:

  • Writing engine code in C# is fun and quite productive
  • POWER DOG users will work with what you create
  • We are happy to help, should you get stuck
  • You can learn a lot, the POWER DOG code base is very professional and has high-quality standards
  • An open-source contribution is a great addition to your portfolio

No matter whether you (or someone you know) can contribute documentation updates, UI improvements, bug fixes, or new rendering technologies, we welcome everyone!


ReleaseTutorials

Any comments? You can start 🗨 at GitHub Discussions or Discord.

Edit this page on .