Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon
31. January 2019

Today we are looking at WickedEngine, an open source C++ based 3D game engine with Direct 11/12/Vulkan rendering paths, an Entity Component System and Lua scripting available.  It is inspired by the XNA programming model and has no external dependencies, making it incredibly easy (especially for a C++ project) to get started.  Additionally there is a fully functional level editing tool available, already compiled and ready to use.  The full list of features is available here.  The engine supports Windows platforms including PC and UWP (Phone, XBox, PC).

WickedEngine describes itself as:

Wicked Engine is an open-source game engine written in C++. The main focus is to be easy to set up and use, light weight, high performance, and graphically advanced. The full source code is provided with the MIT license, which means, anyone is free to use it for anything without additional considerations. The code shall not contain any parts with other licensing. The code is hosted on GitHub: For any questions, please open an issue there.

Additionally the developer has maintained a very interesting technical blog on the topic of engine development available here.

WickedEngine is not the only modern open source C++ 3D game engine.  Other similar engines we’ve covered recently include:

Learn more about WickedEngine and see the editor in action in the video below:

GameDev News

1. January 2019

2018 was an interesting year in game development.  In this post/video, we take a quick stroll down memory lane and look at some of the key stories as they occurred throughoutGameDev2018 the year. 

GameDev News General News Programming Design Art Totally Off Topic

24. December 2018

Xenko 3.1 beta has just been released.   This is the first major point release since the Xenko project went open source this summer.  The primary focus of this beta is reorganizing Xenko to make it play nicely with the NuGet distribution system, although this refactoring has some very cool side effects.  Now you are able to use individual components of Xenko on their own.  For example, if you wanted to use the Xenko graphics library on it’s own, you can, independent of the rest of the Xenko game engine.  This release also moves towards Xenko using .NET standard.

Details of the release from the Xenko blog:

Xenko was always a big proponent of NuGet: since first version, Xenko was distributed as a NuGet package.

However, due to limitations (hello packages.config and project.json!), we were leveraging NuGet more as a distribution medium than proper NuGet packages: Xenko 3.0 is still a monolithic single package and it would not work out of the box when referenced from Visual Studio without using Xenko Launcher and Game Studio.

Xenko 3.0 paved the way by making Xenko compatible with the new project system (game projects were referencing Xenko using a PackageReference).

Today, Xenko 3.1 brings Xenko as a set of smaller NuGet package, each containing one assembly, with proper dependencies:


As a result, it is now possible to create a game project that references only the packages you want. Here are a few examples of “core” packages:

  • Xenko.Engine: allows you to use core engine runtime (including its dependencies)
  • Xenko.Core.Assets.CompilerApp: compile assets at build time
  • Xenko.Core.Mathematics or Xenko.Graphics: yes, if you want to make a custom project only using Xenko mathematics or graphics API without the full Xenko engine, you can!
  • Xenko.Core.Assets, Xenko.Presentation or Xenko.Quantum: all those piece of tech being used to build Xenko tooling are also available for reuse in other projects. Nothing prevents you from generating assets on the fly too!

Then, various parts of the engine are distributed as optional packages:

  • Xenko.Physics
  • Xenko.Particles
  • Xenko.UI
  • Xenko.SpriteStudio
  • Xenko.Video

If you don’t reference those packages, they won’t be packaged with your game either. In many situations, it results in a smaller packaged game and improved startup time.

In addition to the above changes, you can take a look at the commit log on GitHub for other aspects that made it into the 3.1 release.

GameDev News

8. December 2018

The open source Duality game engine just received a 3.0 release.  The duality engine, that we featured previously in the Closer Look series is a complete 2D game engine built on top of a C# framework that also includes a comprehensive game editor, a modern component based design, as well as good documentation and a decent sized community.  The only real flaw I can think of is that it is currently Windows only, so that limits the audience to a certain degree.  The 3.0 release is loaded with features, the largest of which is due to the complete rewrite of the rendering pipeline and underlying design, which resulted in a more modern shader based approach and up to a doubling of per frame performance.


Rewrote the entire rendering pipeline, allowing massive improvements in efficiency, ease of use and feature coverage while at the same time shifting towards more modern, shader-focused rendering techniques.

  • RenderSetup resources allow replacing how Duality renders a frame, providing a simple entry point for pre- or post processing steps, as well as completely customized rendering behavior.
  • Self-contained scenes allow using Scene resources as isolated simulation spaces independently of the active main scene.
  • Focus on performance and a more data-oriented design of both rendering and update cycles. A worst-case rendering benchmark comparing v2 and v3 performance went down from 13 ms to 6 ms per frame, as well as 2000+ (gen0 to gen2) GC collections per minute to about 5 (gen0) collections.
  • Refactored core API, replacing many “first iteration” designs with more streamlined ones. The most prominent example might be the deprecation of manual context checks in ICmpInitializable in favor of a simple OnActivate / OnDeactivate method pair, but many similar improvements were done as well.

Be sure to check out the full change log, as the above summary only scratches the surface of what’s new in this release.  As mentioned earlier, the Duality game engine is open source and available on Github.  If you want to see a quick hands-on introduction to Duality, be sure to watch the video embedded below.

GameDev News

22. October 2018

Beta 54 of GDevelop 5 was just released with a major change to the way you develop in GDevelop 5, functions.  Using functions and extensions, you can easily structure you code in a way that is easily reused and shared across your GDevelop games, as well as possibly with other developers.  In addition to functions, this release also integrates the jsfx sound effects generator, enabling you to create sound effects directly within GDevelop.  If you are interested in learning more about GDevelop, check out our earlier hands-on video available here.  Also be sure to watch the video embedded below to see beta 54 in action.

Details of the release from the release notes:

New features

  • Introducing Functions ⚙️. Functions allow you to create new actions, conditions or expressions using events.
    • This is an advanced and very powerful feature: Functions will be shareable in the near future, allowing for even faster game creation and sharing of features between games.
    • Read more about functions on the wiki.
    • This feature is in alpha mode (and may slightly evolve). You must enable it manually in the preferences. Please report any issue!
  • Added jsfx, a sound generator that can be used to create sound effects in record time for your games.
    • Open it by clicking on the pen next the audio file in actions to play sounds.
    • Thanks @blurymind for suggesting and implementing this addition.


  • Objects can now be positionned on the scene by drag'n'dropping them from the list of objects to the scene.
    • You can also click on an object in the list, right click on the scene and choose the option to add an instance of it. (Thanks @blurymind!)
  • Added 3 new examples (Thanks @ddabrahim!)
    • including a simple level editor with an example of a function.
  • Add more JavaScript annotations (for autocompletion) (Thanks @Wend1go!)
  • Add option to scan for new image resources or remove unused images in Resource Editor (Thanks @blurymind)
  • Press Alt while moving an object to ignore grid (Thanks @kdparkinson)
  • Add Edit Object and Delete options to context menu on Scene Editor (Thanks @blurymind!)
  • Performance improvements in the IDE
  • Add word wrapping for Text Object (Thanks @Lizard-13!). Resize an instance of a text object on the scene to have it wrapped (you can also use events to do the same).
  • Snap position of objects to the grid when inserted (Thanks @blurymind!)
  • Add "Add event", "Add Subevent" and "Add Other" options in context menu in the EventsSheet (Thanks @blurymind!)
  • Add option to customize particles rotation speed (thanks @Lizard-13!)
  • Add button to rotate the selected instances in the Scene Editor (thanks @blurymind!)

Bug fixes

  • Fix selection of instances on hidden layers (Thanks @blurymind!)
  • Fix action to open URL in games
  • Fix True/False buttons in events sheet
  • Fix missing support for Escape key in "Key Pressed" condition.
  • Fix long action/condition words not breaking properly in the editor.
  • Ensure confirmation of project closing is shown when pressing Ctrl+W (or Cmd+W).

You can download the beta here.  GDevelop is available for Mac, Windows and Linux and is completely free and open source software.

GameDev News

GFS On YouTube

See More Tutorials on!

Month List