I have spent my spare time in the last ~year and a half or something creating a set of libraries, all the while gathering like minded developers to foster a new collective for the Haxe programming toolkit.
The most important of these is a cross platform game engine called luxe, for deploying games to Mac, Windows, Linux, Android, iOS and WebGL from the same code.
Haxe is a powerful tool for me with an important role in cross platform development and I wanted to help empower the Haxe eco system in the best way I know how - show, don't tell.
Find out more below.
What is snowkit?
snowkit is a collective. It is a group of libraries, tools and developers with a common set of goals toward a high quality eco system for Haxe.
You can read about the full goals and ideals behind the community and libraries on the snowkit website.
What is Haxe?
Haxe is an expressive, beautiful modern programming language
that compiles its own code into other languages. learn more on the haxe website
The first set of libraries are releasing today in alpha status including a high level game engine, a lower level platform framework, and a build toolchain for Haxe. These currently focus on deploying to Mac, Windows, Linux, Android, iOS and WebGL.
As the first set of libraries continue in development toward an initial release, I am excited to announce and release the alpha versions of the main libraries for you to start using.
As with any alpha, there are work in progress features, potential bugs, and possibly undocumented areas but with your help in testing and contributing a stable release cycle can be met.
Aside from alpha status, the libraries are considered fairly stable and are being used in production already - and have been used daily for months by a good handful of developers. I prefer to work from a solid base line and test prior to release and the best way to do that is to use it.
Also, be aware that it is alpha and has the potential to change slightly. With every change though it will be clearly documented on migrating, but it would be advisable to stay close to the latest commits anyway during alpha to eliminate issues quickly.
Once the last few features are reached for each library, the first official versioned release will start at beta-1. Until that time development continues on the github repos under the alpha tags with no release cycle - for simplicity.
There are many exciting things to announce in the same breath - but for now, here are :
the first snowkit libs
The very first tool is a project based build tool called flow. It was created brand new to serve the Haxe eco system.
You give flow a small json-like project file, and it can generate complete applications through a selection of tools like file copying and templating, building haxe code, building through hxcpp and packaging a final application file for web or native targets.
It leans on the existing Haxe eco system using haxelib directly, and only enhances the build process.
flow was created as a truly agnostic, a no dependency build toolchain to bolster the Haxe workflow. It includes project templates for Flash Develop, and a Sublime Text plugin for code completion and project management.
The first large library to use flow is called snow. I created snow because I needed a light weight, minimal code, portable native framework to power my game engine. Originally, I created a minimal wrapper of the nme (native media engine) native code, which I called lime (light media engine), but the need for a truly light weight, no dependency framework I still required. snow is made from scratch, completely separated, to be exactly what I had intended.
snow is a very low level framework that gives you audio, input, windowing, and openGL access across Mac, Windows, Linux, Android, iOS and WebGL with the same consistent code. On native targets it also exposes multiple windows, direct access to OpenAL from haxe, and much more. snow can run headless, with or without a loop, and has access to assets and other utilities like OS level file change notifications, file drop events, and leverages the power of SDL on all native platforms. It is a very portable and explicitly flexible framework.
The second largest library to use both snow and flow, is luxe. luxe is a cross platform rapid development game engine for building applications and games on Mac, Windows, Linux, Android, iOS and WebGL.
With a write once, deploy anywhere approach and a bottom up design strategy, luxe is a high level engine making it really easy to use - BUT it does not get in your way if you want to get deeper.
It is designed for you to subvert it's structure to suit your needs, more like a toolbox, with a set of comprehensive building blocks for creating games and apps without making assumptions on the application domain code. It doesn't impose much structure at all.
With a hand crafted API and a large set of tools on hand, it is intended to be the starting point of building more game specific libraries and modules for it - and for various types of users. With tools like stackable, transient and modal state machines, events systems, collision classes, tilemap helpers and tons more, plus a flexible rendering engine with a shader driven pipeline at heart, luxe is intended for expressive coding in a self controlled way.
Here is a short video of some of the things you will find made in luxe already.
Finding more information
Each library has it's own comprehensive documentation and guides, you can view the links to them on the snowkit libs page.
For specific posts about the reasoning and history of snow, flow and luxe, these will be posted on the http://snowkit.org website in due time. Please subscribe to the hashtag and the rss feed, as that will be the direct feed of the community.
There are lots of exciting things to announce, and a lot of efforts underway by various members of the snowkit community toward an even greater Haxe eco system, and I look forward to seeing what we can do as a community.
For a brief look at the history and reasoning, here is a post about why I made snowkit.