Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon
22. January 2020

Material Maker 0.8 was just released.  Material Maker is a free procedural texture generation software that was built on top of the Godot game engine.  We previously covered Material Maker in this video.  The 0.8 release brings several new features including several new nodes and examples.

Details from the page:

Regressions and incompatibilities

Bad news come first, as always:

  • 2D SDF nodes do not output greyscale information and cannot be directly connected to greyscale/color/RGBA inputs anymore. you will have to use the sdShow Node
User interface
  • the 2D and 3D previews are now in separate tabs
  • the 3D preview in the background of the graph pane can now be shown and hidden using the "cube" button at the bottom left of the graph view and controlled independently,
  • the 2D preview now shows a tiled version of the selected node (so it's easy to check the result is seamless)
  • the 2D preview now has controls that can be associated to (float) node parameters (this applies mainly to shape/transform nodes)the UI will now be dimmed when exiting the application (this change was contributed by Calinou)
Nodes and code generation
  • 2 new types of node inputs/outputs have been added for 2D and 3D signed distance functions. Both types have a custom preview (distance field for 2DSDF and shaded scene for 3DSDF)
  • shader nodes inputs now have a "function" attribute. When this option is selected, the input is generated as a function and is usable in instance Functions. This feature made all 3D SDF nodes possible.
  • a few problems in convolution nodes have been fixed
New and improved nodes
  • all 2D signed distance functions have been modified to use the 2DSDF inputs/outputs (that are shown in orange). The sdShow node is now the only way to generate an image. Added 2DSDF transform and morph nodes.
  • the new 3D signed distance functions nodes can be used to describe 3D shapes. Many shapes (sphere, box, capsule, torus, cylinder...), transforms (translate, rotate, scale), operators (boolean, repeat, extrusion, revolution...) are provided and the Render node can be used to generate a height map and a normal map from 3DSDF information. All this is based on ray marching and can be used to describe 3D objects that can then be spread on the textures, as demonstrated in the "skulls" and "pile_of_bricks" examples.
  • the new 3D box and a sphere nodes are not based on 3DSDF and just output a height map
  • the new "workflow" nodes can be used to define base materials and mix them using height/orientation/offset maps, and to ultimately create complex materials without drawing spaghetti monsters in the graph view. A few simple base materials are provided in the node library as templates. The new "marble" and the updated "medieval_wall" examples show how to use all those nodes.

  • the bricks node has been improved with round brick corners and output UV information for each brick and each brick corner. Also added an output that gives brick orientation.
  • the new CustomUV node uses one of its input as coordinates to read the other input and can thus be used to implement psychedelic image transforms
  • the new generic truchet node tiles its input, randomly flipping it horizontally, vertically or both
  • the beehive node just outputs hexagonal tiles
  • the new convolution nodes are 3 edge detectors and a sharpen filter
  • the normal map node has a new option to disable its input buffer. The buffer should still be used when the input is complex, but disabling it will generate smoother normal maps
  • the new greyscale node converts color input to greyscale with a choice of 5 algorithms
  • the new swap channels node replaces all channels (R, G, B, A) of its output with 0, 1 or a (optionnally inverted) channel of its input

Material Maker 0.8 is available for download for Windows and Linux here.  You can learn more about Material Maker 0.8 in the video below.

GameDev News

21. January 2020

The Armory game engine is an interesting open source project built on top of the Blender graphics application.  If you are interested in learning more about the Armory game engine, be sure to check out our complete tutorial series over on  Details on Armory have been scarce since 0.5 was released due to a lack of release details.  The developer recently released an update with a bit of a roadmap of future Armory development.

Details of Armory 2020 from GitHub:

Welcome! With 2020 already in full swing, I would like to outline some plans for Armory architecture in the upcoming year.

  • Move rendering to Graphics5. G5 is a newer API being developed in Kinc, leveraging modern graphics APIs like D3D12 / Vulkan / ..
  • As a result, support for D3D12, Vulkan, Metal and WebGPU will be priority. Once running smoothly, older graphics APIs will be dropped.
  • Implement ray-tracing for dynamic scenes. Right now Armory already has DXR support, but only handles static scenes. The goal is to have tanks demo running on a ray-tracing render path.
  • Move low-level parts of Armory (like iron) to C. This is to better take advantage of multi-threading coupled with Graphics5 API. As a result, Armory will not be dependant on Kha (Haxe), but will interface directly with Kinc (C). An extended version of Krom which exposes Armory-specific functionality from C to Haxe/JS will be developed to accomplish this.
  • Armory traits will be written in Haxe/JS like usual, or anything which compiles into WebAssembly.
  • For web deployment, WebAssembly and WebGPU will be used.

Feel welcome to bring up any of these points for a discussion. If you have additional ideas which may improve the project further, please bring those up as well. The goal is to keep Armory viable long-term with a modern base ready for upcoming years.

My biggest thanks to everyone who already contributed to the project in any form over the years!

You can learn more about this release and recent Armory history in the video below.  You can learn more about Kha in this video and check out our recently created video on ArmorPaint, a PBR based painting application built on the Armory engine.

GameDev News

18. January 2020 (Game Of the Month) is a completely free hosting services for hosting and sharing your Godot developed game.  In just a few moments you can host your Godot developed game by simply uploading the PCK file.

First you need to be able to generate a PCK file, a process we just described in this tutorial.  With your generated PCK file, you simply have to register and account using your GitHub, Gmail or Twitter credentials and upload. recently launched the Game Hosting Dashboard enabling you to configure your home page and manage installed games.

This is just the beginning of GotM.  According to their roadmap there are a number of great features coming down the road including statistics, leaderboards, commenting, achievements, remote play together and more.  Check out in action, including how easy it is to make and publish a Godot title in the video below.

GameDev News

17. January 2020

JetBrains, the makers of programmer tools such as IntelliJ, WebStorm, CLion and Rider, as well as the programming language Kotlin have been working on a font specifically designed for code.  JetBrains Mono is an open source font family consisting of 8 fonts specifically designed with reading and writing code in mind.

Details from the JetBrains blog:

For the most part of our day we, as developers, look at the code. And it is no wonder that we are always on the lookout for the best font to make looking at the text on the screen easier on our eyes. However, the logic in many popular fonts does not always take into account the difference between reading through code and reading a book. Our eyes move along code in a very different way, often having to move vertically as often as they do horizontally, which is opposed to reading a book where they slide along the text always in the same direction.

Therefore, while working on JetBrains Mono we focused, among other things, on the issues that can cause eye fatigue during long sessions of working with code. We have considered things like the size and shape of letters; the amount of space between them, a balance naturally engineered in monospace fonts; unnecessary details and unclear distinctions between symbols, such as I’s and l’s for example; and programming ligatures when developing our font.

Today, we proudly present JetBrains Mono – a new open-source typeface specifically made for developers. Check out what makes JetBrains Mono unique in the big family of monospaced fonts and try it in your favorite code editor. Have a look at JetBrains Mono, your eyes will thank you for it.

More details about Mono are available here.  It is the default font on all 2020 JetBrains IDEs and is available as an option in version 2019.3 and beyond of all JetBrain products.  If you use another IDE you can download the zip here.  Learn more about JetBrains Mono, including how to install and configure in Visual Studio Code in the video below.

Programming GameDev News

15. January 2020

The Khronos Group have just announced the release of Vulkan 1.2.  Containing 23 extensions, there are plenty of quality of life improvements for Vulkan developers in the 1.2 release including HLSL support, the new timeline sempaphore, a formal memory model and more.

Details of the Vulkan 1.2 release:

Today, The Khronos® Group, an open consortium of industry-leading companies creating advanced interoperability standards, announces the release of the Vulkan® 1.2 specification for GPU acceleration. This release integrates 23 proven extensions into the core Vulkan API, bringing significant developer-requested access to new hardware functionality, improved application performance, and enhanced API usability. Multiple GPU vendors have certified conformant implementations, and significant open source tooling is expected during January 2020.

Vulkan continues to evolve by listening to developer needs, shipping new functionality as extensions, and then consolidating extensions that receive positive developer feedback into a unified core API specification. Carefully selected API features are made optional to enable market-focused implementations. Many Vulkan 1.2 features were requested by developers to meet critical needs in their engines and applications, including: timeline semaphores for easily managed synchronization; a formal memory model to precisely define the semantics of synchronization and memory operations in different threads; descriptor indexing to enable reuse of descriptor layouts by multiple shaders; deeper support for shaders written in HLSL, and more.

All three major GPU providers support Vulkan 1.2 today, as well as Mesa drivers on AMD devices.  If you are a developer looking to learn Vulkan Resources Page on GitHub is perhaps the best place to get started.  If you want to learn more about Vulkan 1.2’s release be sure to check out the video below.

GameDev News

AppGameKit Studio

See More Tutorials on!

Month List