Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon

13. February 2018

irrKlang 1.6 was released earlier today.  irrKlang is a cross platform C++ powered sound library with C#/.NET bindings available.  It is able to play 2D and 3D audio on multiple platforms and able to handle audio in WAV, MP3, OGG, FLAC, MOD, XM, IT, S3M and other file formats.  It is available freely for non-commercial projects and is available at several other indie friendly price points if shipping a commercial title.

Details of the 1.6 release:

  • irrKlang for .NET 4 now needs version 4.5 at miminum
  • there is now a new function stopAllSoundsOfSoundSource() to stop all sounds of a specific sound source
  • irrKlang.NET for .NET 4 now also has a strong name (it is now a signed assembly)
  • stopped support for .NET 1.1, please use the versions for .NET 2 or .NET 4 instead, or an older version of irrKlang if you still need .NET 1 support
  • irrklang for gcc now supports gcc 5.1
  • irrKlang 1.5 for windows was depending on the MSVC runtime dll, this is now no longer the case with irrKlang 1.6
  • fixed a bug causing duplicated DirectSound buffers to share the playbackSpeed sometimes, causing some sounds to have a wrong frequency when played.
  • fixed update() problem in single threaded mode.
    If you run irrKlang in single threaded mode, you can now call irrKlang::update as often and fast as you want. This was supposed to be called only about once every second prevousliy, and could cause irrklang to stall previously if called too often.
  • added support for Visual Studio 2017

The following is a simple C++ code example illustrating irrKlang in action.

#include <iostream>
#include <irrKlang.h>
using namespace irrklang;

int main(int argc, const char** argv)
  // start the sound engine with default parameters
  ISoundEngine* engine = createIrrKlangDevice();

  if (!engine)
    return 0; // error starting up the engine
  // play some sound stream, looped
  engine->play2D("somefile.mp3", true);

  char i = 0;
  std::cin >> i; // wait for user to press some key

  engine->drop(); // delete engine
  return 0;

You can download irrKlang 1.6 here in both 32 and 64bit formats.

GameDev News

12. February 2018

Today Unity have released a very high quality and full featured 2D Game Kit, available here.  The kit is a combination of 2D platformer game with multiple levels, a loading screen etc.  It has been designed in such a way that much of the game content can be customized and configured without ever having to write a single line of code.  Additionally there is a step by step tutorial series as well as comprehensive reference material that show you how to create your own 2D game using the game kit.  The kit is available completely free and can be downloaded from the asset store.

If you are interested in seeing the Unity 2D game kit in action be sure to check out this quick video, which is also embedded below.

Programming, GameDev News , ,

12. February 2018

HaxePunk 4.0 has just been released and is available here.  HaxePunk is a popular 2D framework, starting life as a port of the popular FlashPunk library.  It is capable of makingimage games for several platforms including Windows, Linux, Mac, iOS, Android and HTML.  HaxePunk 4.0 has been in development for over a year and includes several new features including custom shader support, signal binding for events, an improved input system and more.

Details of the release from the HaxePunk blog:


HaxePunk's Flash target and software rendering support have been removed, simplifying the code and allowing us to focus on hardware rendering features, such as custom shader support. Custom shaders can be applied to any individual graphic as well as entire Scenes.

In addition, the renderer is more robust and has been heavily optimized.

(Read more)


As an alternative to extending and overriding behavior, many parts of HaxePunk now support Signals, which let you bind one or more functions to be called whenever an event occurs. For example, Scenes have signals that fire before/after update, before/after rendering, on input, when the screen is resized, etc.


Improved Input system

The Input system has been unified, making it easier to mix multiple input devices:

Input.define("start", [Key.ENTER]);
Mouse.define("start", MouseButton.LEFT);


These abstract inputs can also be used as Signals:

class MyScene extends Scene
    public function new()


    function onStart()
        trace("You either pressed enter or clicked the mouse!");

(Read more)

Better BitmapText

BitmapText now supports rich text via XML markup:

BitmapText.defineFormatTag("red", {color: 0xff0000});

var txt = new BitmapText("Here's some <red>colored</red> text!", {
    font: "fonts/azmoonfleet.64.fnt",
    size: 14,

With these tags you can animate characters, render inline images, change fonts, and more.

Backend abstraction

HaxePunk now officially supports recent versions of both OpenFL and NME. Support for additional backends such as Kha is on the roadmap!

GameDev News

9. February 2018

With the release of Unity 2018.1 beta, Unity have developed a completely new programmable graphics pipeline.  On top of this new rendering technology Unity have a new shader tool called Shader Graph.  Shader Graph enables you to create shaders using a drag and drop interface by creating graphs of render nodes.

To get started with the new Shader Graph, you need to be running Unity 2018.1 Beta or newer.  Additionally you currently need to download this example scene.  You can see the Shader Graph in action in this video also embedded below.

Programming, Art

6. February 2018

Today on /r/gamedev a new online tool for generating procedural 2D sprites was just released.  I did a quick video of Spritify in action you can check out here on embedded below.  Spritify is a free browser based tool for generating procedural sprites.   The tool is quite simple but could certainly use some improved documentation ( or… any documentatio for that matter! ) but it is certainly usable now.

Essentially you start by painting on a fat grid pixel display using these controls


Draw the contour and your shape, fill the body accordingly with optional mirroring like so:


Various controls are available about how your sprites should be generated:


And at the bottom of the screen, several different procedural sprites will be generated:


Pretty cool tool over all.

Art , ,

Month List

Popular Comments