Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon
13. November 2018

Discovered on, Microsoft have just released a new open source project that attempts to solve a very familiar problem, converting from one shader format to another, specificcally converting from HLSL to a variety of different shader formats.  The MIT licensed open source project Shader Conductor, doesn’t actually convert shaders between formats, instead makes use of existing projects Direct X Shader Compiler and SPIRV-Cross to make the process work.  Shader Conductor enables you to:

  • Converts HLSL to readable, usable and efficient GLSL
  • Converts HLSL to readable, usable and efficient ESSL
  • Converts HLSL to readable, usable and efficient Metal Shading Language (MSL)
  • Converts HLSL to readable, usable and efficient old shader model HLSL
  • Supports all stages of shaders, vertex, pixel, hull, domain, geometry, and compute.

You can see the entire conversion process of Shader Conductor in the following diagram.


As you can see, SPIRV-Cross is used to convert SPIRV generated by the DirectX Shader compiler, then SPIRV-Cross enables conversion to a number of different APIs, including interestingly enough earlier versions of Direct3D.  Currently Shader Conductor is only available on Windows, with Mac and Linux support coming soon.  The project is still young and is under active development.  The source code, as well as more information, is available on GitHub.

GameDev News

12. November 2018

The 2geom library is a math library for “Paths, curves, and other geometric calculations. Designed for vector graphics, it tackles Bézier curves, conic sections, paths, intersections, transformations, and basic geometries”.  It was developed for use in the open source Inkscape graphics application in collaboration with Monash University.  Designed originally to improve Inkscape 1.0, the 2geom library was just officially released for public consumption outside of Inkscape development.  This cross platform C++ library is released under a dual LGPL 2.1 and MPL 1.1 open source license.

Features of 2geom:

  • C++
  • Functional programming style.
  • Points
  • Efficient affine transformations
  • Rectangles
  • Convex Hulls
  • Bounded error
  • General purpose paths:
    • Exact elliptical arcs
    • Area
    • Centroid and bending moments
  • Path Locations:
    • Determination of special spots (e.g. maximum curvature)
    • Splitting
    • Point, tangent, curvature at location
    • Efficient arc length and inverse arc length
  • Path algebra:
    • Computations such as offset curves can be written with their mathematical definition and still get a bounded error, efficient curve. (preliminary trials indicate offset done this way out performs the method used in Inkscape)
  • Arbitrary distortion (with bounded error):
    • Mesh distorts
    • Computational distorts such as the GIMP's 'vortex' plugin
    • 3d mapping (perspective, flag, sphere)
  • Exact boolean ops (elliptic arcs remain elliptic arcs)
  • Efficient 2d database
  • Implicit function plotting
  • NURBs input and output
  • Tunable path simplification
  • PDoF constraint system for CAD/CAGD

If you are interested in learning more about this release, be sure to check the following post on the Inkscape website, while more details and the library itself are available on GitLab.

GameDev News

6. November 2018

Defold Engine 1.2.141 has just been released.  By far the biggest aspect of this new release is WebAssembly support, which should result in faster loading HTML5 games.  If you are interested in learning more about the Defold game engine, be sure to check our new tutorial series over on  We also have a full tutorial series covering the 1.x version of Defold available here.

Details from the Defold forums:

This release adds support for WebAssembly . Bundling for HTML5 will now output both WebAssembly and the older AsmJS version of the engine. Depending on browser support the appropriate version will automatically be selected and loaded at runtime. In most cases this new version can decrease initial load time for HTML5 games.


  • DEF-3540 - Added: New WebAssembly platform (bundled together with Asmjs on HTML5).
  • DEF-3582 - Added: Support for dynamicLibs in the platform context in NE config files.
  • DEF-3565 - Fixed: Boot crash on iOS 6.
  • DEF-3523 - Fixed: NE error log parsing for malformed Defold SDKs.
  • DEF-3568 - Fixed: Release audio focus before closing down platform sound.
  • DEF-3574 - Fixed: Internal GUI node optimizations.
  • DEF-3433 - Fixed: Improvements to pprint.


  • DEFEDIT-1474 - Fixed: GUI box node using tile source anim as texture did not respect h/v flip.

GameDev News

5. November 2018

Launched at Unity Unite LA, there is an ongoing contest showcasing newer 2D features that have been added to the Unity game engine since Unity 2018 was released.  This includes new features like improved tilemap support, inverse kinematic animations, 2D animation improvements, cinemachine support, spriteshape and more.  Contest entries must:

  • be made using Unity 2018.1, Unity 2018.2, or Unity 2018.3 (beta) and highlights use of one of the following tools: 2D Animation, 2D IK, 2D Cinemachine, 2D Tilemaps (square, hexagons or isometric), 2D SpriteShape, 2D Pixel Perfect, or Vector Graphics. Assets from Asset store are allowed but not required but use must comply with these Rules;

  • be in a single language, ideally English or Japanese (in the case of non-English/Japanese submissions, Entry should focus on visual, non-verbal elements);

  • be your Team’s own original work;

  • not have been submitted previously in any promotion of any kind;

  • not contain material or content that:

  1. is inappropriate, indecent, obscene, offensive, sexually explicit, pornographic, hateful, tortious, defamatory, or slanderous or libelous;

  2. promotes bigotry, racism, hatred or harm against any group or individual

  3. promotes discrimination based on race, gender, ethnicity, religion, nationality, disability, sexual orientation, or age;

  4. promotes alcohol, illegal drugs, or tobacco;

  5. violates or infringes another’s rights, including but not limited to rights of privacy, publicity, or their intellectual property rights;

  6. is inconsistent with the message, brand, or image of Unity, is unlawful; or

  7. is in violation of or contrary to the laws or regulations of any jurisdiction in which the Entry is created.

Entries are judged on a 100pt scale using the following weighting:

  • up to 50 points will be awarded for quality of execution, interesting/fun gameplay and good usage of new 2D Unity tools;

  • up to 25 points will be awarded for documentation of your project; and

  • up to 25 points will be awarded for project creativity.

  • Prizes are as follows:

  • 1st Place Prize (highest scoring Entry) - $2000 in cash

  • 2nd Place Prize (second highest scoring Entry) - $1000 in cash

  • 3rd Place Prize (third highest scoring Entry) - $500 in cash

  • Special Mention Prize (Entry with most innovative editor tool) - $500 in cash

  • You can learn more about the contest here, while the legal details are available here.  When ready, you can submit your entry here.  The contest runs until December 16th, 2018.

    GameDev News

    5. November 2018

    The Tombstone Engine, the successor to the C4 Game Engine, just got a new update, it’s first since 2017.  The Tombstone game engine is a commercial game engine that runs on 64bit Windows machines, and is capable of targeting major desktop platforms as well as the PlayStation 4.  The 2.9 update is free for existing developers and focuses heavily on new font related functionality, as well as bumping the OpenGL version required to 3.3 or higher.  Full details of the update from the release notes:

    Core Engine

    • All of the unsigned integer types that previously began with unsigned_ have been changed to begin simply with u. For example, unsigned_int32 is now just uint32.
    • The Array::FindArrayElement() function has been renamed to Array::FindArrayElementIndex() to make it clear what kind of information is returned.
    Graphics Manager
    • The Graphics Manager on Windows and Linux now require OpenGL 3.3 plus the GL_ARB_clip_control, GL_ARB_direct_state_access, GL_ARB_multi_bind, GL_ARB_texture_storage, and GL_ARB_texture_storage_multisample extensions. Since Apple does not support some of these extensions (and never will), this means that Tombstone 2.9 does not run on the Mac. We are planning to implement a Metal back end for the Graphics Manager in version 3.0.
    • The projection matrices used by the engine have been modified to produce device-space z coordinates in the range [0,1] with reversed depth. This greatly increases depth buffer precision and eliminates Z fighting artifacts when parallel surfaces near each other are viewed from far away.
    • Generalized depth offset modifications and depth bounds test optimizations have been implemented to handle oblique near plane projections. This can improve the appearance of decals in reflection or refraction images, and it can improve performance of point/cube/spot light sources in reflection or refraction images.
    • The motion blur algorithm has been improved and now generates better results. The velocity buffer has been changed to a two-channel format using 8 bits per channel, using half the space it previously used.
    • The method used to split linear 32-bit depths into two 16-bit depths for the floating-point structure buffer has been improved. This gives better precision farther from the camera position.
    Interface Manager
    • The font format has changed in this version. Any custom fonts that were previously imported must be imported again before they can be used.
    • There are many new text rendering capabilities, including underline, strikethrough, horizontal stretch, transform-based subscript/superscripts, right-to-left writing directions, bidirectional layout, adaptive supersampling, rectangle primitives, fraction formatting, and hyphen-minus substitution. Settings have been added to the Text Widget that can be used to enable these in the Panel Editor, and new embedded format directives have been added to control them within a block of text. See the Slug User Manual for details about all of the text rendering features.
    Effect Manager
    • A new Text Effect node has been added to the engine. This is used to place text on surfaces within a game world and apply materials to the glyphs so they appear to be painted on the surfaces. (This is completely different from using text in a panel effect.)
    • The functions that build terrain geometry have been improved so that vertex sharing occurs as often as possible. Rebuilding terrain geometries can reduce the data size by roughly 5–10%.


    Font Importer
    • The Font Importer contains new settings for the size and position of underline and strikethrough decorations and the transforms for subscripts and superscripts. These are initialized to the values specified in the input TrueType font file.


    • Two basic game projects called SimpleBall and SimpleChar are now included with the engine. See Simple Games.
    • Several new tutorial worlds are included in the Data/Tutorial folder. Some of them are starting points for tutorial articles on the wiki.

    The following video goes hands-on with the downloadable demo, a quick showcase of what the Tombstone engine is capable of, as well as a look at the tooling that is included.

    GameDev News

    See More Tutorials on!

    Month List