Snowkit Announcement

Original author: Sven Bergström
  • Transfer
Over the past year and a half or so, I spent my free time collecting a set of libraries for Haxe and the community around it.
The most important library is the luxe game engine, which allows you to create games using the same code for Mac, Windows, Linux, Android, iOS and WebGL.

In my opinion, Haxe is a powerful tool that plays an important role in cross-platform development. I want to make my efforts to develop the Haxe infrastructure in the best way that I know - do, not say.


So what is snowkit?

snowkit is a lively collective. This is a set of libraries, tools and developers united by a common goal - to create high-quality infrastructure for Haxe.
On site snowkit you can find more information about the goals and ideals that unite the community.

What is Haxe?

Haxe is an expressive and beautiful modern programming language that compiles its code into code in other programming languages. You can learn more about him on the Haxe website .


Alpha release

The alpha version published today (September 30, 2014) includes a high-level game engine, a low-level framework for supporting various platforms, and a build system for Haxe. At the moment, they are aimed at creating applications for Mac, Windows, Linux, Android, iOS and WebGL.

Despite the fact that work on these libraries is ongoing, I am very pleased to announce and publish the initial version of these libraries. And I do this for the purpose that you start using them today.

Like any alpha version, published libraries have functionalities on which work continues, libraries may have errors and in some places missing documentation. But with your help, I hope we reach a stable version much earlier.

Despite the fact that the libraries are in alpha version, they are quite stable and suitable for everyday use - and for several months they have been constantly used by a large group of developers. I believe that before you release the product, you need to thoroughly check it, and the best way to do this is to start using it in your daily work as soon as possible.

However, I want to warn, because Since this is an alpha version, small changes will invariably occur. Of course, all changes will be documented and I would like to advise you to use the latest version of the source code until the alpha version ends, in order to get bug fixes and new functionality as quickly as possible.

As soon as the work on the main functionality is completed, the first “numbered" official version - beta-1 - will be published. In the meantime, work will continue on the github.
Well, now with great pleasure I want to go on to the description of the libraries:


And the first thing I want to talk about is the flow assembly system. It was created from scratch with the goal of building a new infrastructure for Haxe.


Flow receives a small Json file as input, and following the descriptions in it, flow will create an application layout using standard templates, compile the source code using Haxe, compile the generated code using hxcpp, and build a ready-made application for the Web or native platforms.

Flow builds on Haxe’s existing infrastructure, uses haxelib, and is intended only to improve the build process.


Flow is independent of any external libraries or tools. It includes templates for Flash Develop, a plug-in for Sublime Text for project management and code completion support.



The first major library that uses flow is snow. I created snow because I needed a lightweight, compact, portable native framework to create my own game engine. Initially, I created a small wrapper for the native part of NME (Native Media Engine, a cross-platform library for Haxe), which I called lime (light media engine, which became part of OpenFL, another library that evolved from NME). But I continued to need a completely lightweight framework without any dependencies. Therefore, in the end, I created snow from scratch, completely independent of NME and lime.

A simple snow example application:


snow is very low levelA framework that provides access to the audio subsystem, I / O system, window management and OpenGL on the following platforms: Mac, Windows, Linux, Android, iOS and WebGL. On native platforms, snow also allows you to create multi-window applications, provides direct access to OpenAL from Haxe, and much more. snow can be run without windows (headless), with or without a message processing cycle, it allows you to receive notifications from the OS about file changes, supports file drag and drop events and provides access to the full power of SDL on all native platforms.
snow is a portable and highly flexible framework.



The next library - luxe - uses snow and flow. luxe is a cross-platform game engine for quickly creating applications and games for Mac, Windows, Linux, Android, iOS and WebGL.

Using the “write once - publish everywhere” approach and the bottom-up approach - luxe is a very simple high-level engine, but it will not work for you if you are used to digging into the depths of the very depths.

luxe is designed to tailor its structure to your needs. It is more like a toolbox or a wide range of building blocks for creating games and applications. We can say that it does not have a clear structure and does not oblige you to use it, only in one conceived way.

With a neat API and a large suite of luxe tools, it is the starting point for creating libraries and modules for a specific game. luxe contains a state machine, event system, collision processing, tilemap support and much more, moreover, it is based on a flexible shader engine for rendering.


Below is a short video demonstrating the capabilities of luxe.

Additional Information

You can find documentation and manuals for each library in the corresponding section on the snowkit website.

I also advise you to subscribe to the hashtag or rss feed on the site if you want to receive timely information about snow, flow and luxe.

What's next

There are many more impressive things that I and the rest of the community want to talk about. I look forward to what we can do as a community.
I wrote a brief overview of the history and reasons why I created snowkit ( translation ).

Also popular now: