SnaX – Version 1.6: Libraries!

It’s been almost a year since the previous release of SnaX – Time flies! Then it’s good to know that SnaX version 1.6 today bring you lots of new and great features! Let’s have a look!


All programming languages out there support libraries in some form. Libraries are great because it means that you can create common functionality once, and use it over and over again in different projects. You’ll only have to do bugfixes and updates once, and all users of the library will benefit from this single update. Libraries are now a part of SnaX as well! Libraries are regular project files that are located in special library paths on your system. This means that you build and use libraries just like you do with any other project file in SnaX. You’ll just have to store them in a location that is defined to be a library path (done in the Settings menu)! Your libraries can then be found under the new “Libraries” tab in SnaX Developer. Usage and deployment is just as simple as before!

The Simple Render Framework

With the introduction of libraries in SnaX, work has begun on a library I’ve called the Simple Render Framework. This is/will be a library containing common functionality for rendering and development. Currently, it contain some functionality for cameras, lighting, shadows, HDR and PBR. It’s still in an early stage, so more work is needed to make it a stable and useful library.

Caution: The Simple Render Framework is to be considered as work-in-progress! It is an immature library that can change a lot in upcoming releases of SnaX. You should therefore be careful about using it for some serious work. You are of course free to make a copy of it and modify it on your own!

Multi-connectors and the Multi Proxy

A chip in SnaX can have two type of child connectors: Single and growing. A single-connector can be connected to exactly one other chip, while a growing connector can be connected to any number of chips. An example of the latter is the Caller chip that has a growing child connector. It will call, in a left-to-right sequence, all of the chips that are connected to it, before it returns control back to its caller. Version 1.6 brings you a new type of child connector – The multi-connector. This is similar to a growing connector, but it is looks like a single-connector in the way that it can only be connected to one single chip. Any growing connector can be converted to a multi-connector (and vice versa) by right clicking the connector and selecting the type from the popup-menu. The strength of the multi-connector is seen when it is connected to the new Multi Proxy chip. The purpose of this chip is to supply chips to the multi-connector. It can be configured to work like an ordinary growing connector, or it can be configured to work like the For Loop chip – You connect a Value chip with a number indicating how many children you want to supply, and then the same “supplying” connector is called multiple times over, possibly returning a different chip each time. This is for example beneficial if you want to iterate over the content of an Array chip. Until now, there has been no easy way to do this. In the future, this concept can be extended to other types of chips, perhaps making it possible to create function calls with a variable number of child connectors.


A lot of work has been put in to make the UI of SnaX Developer easier to work with. There is the new startup dialog with easy access to examples, templates and previous projects, and many panels throughout the application have been improved for better readability. Colors have been added to the message log to make it easier to locate the important messages. The ‘C’-key context menu in the editor view now accept functions and classes (from libraries as well!), in addition to regular chips. This makes working in the editor easier and faster than ever before!

Other improvements

In addition to what has already been mentioned, version 1.6 of SnaX include many bugfixes and other improvements. The AssImp-importer now support embedded textures and files containing nothing but skeletal animations. Some of the examples have been updated to use the Simple Render Framework and the PhysX wrecking-ball example now include lighting and shadows. A complete list of updates in this release is found in the change log!


4 thoughts on “SnaX – Version 1.6: Libraries!”

    1. Hi, I really would like to make some better tutorials and larger examples/games, but my days are quite packed already. I’ll do my best to answer any questions about programming SnaX though 🙂

  1. I just discovered SnaX from Gamesfromscratch, and it’s a really interesting and unusual project. Congratulations! I’ll give it a try. I think it’s perfect for learning the underlying technologies, as you wrote on the website. For making games, it’s too low level IMHO… I wouldn’t call it a game engine, rather a 3d engine.

    Something I’d like from it, to make it more practical, is to be able to wrap the output of SnaX (some sort of DLL), into a GUI framework, or any other code that would use the Snax graph. And one would choose the parts of Snax’s graph that can be modified from the “outside world” (the wrapping code).

    I hope you keep developing it further 🙂

    1. Hi! SnaX is certainly low level, and is for sure missing lots of features you find in the typical game engine (level editor, sound, ai, multiplatform etc etc). Lots of it can be added though, but yeah its still low level. It’s interesting to think of other ways to use SnaX, eg embed it into other applications to make it work as a visual scripting language for example, but currently a SnaX project has to be run through the SnaXViewer.exe application outside of the developer.


Leave a Reply

Your email address will not be published. Required fields are marked *