📜 ⬆️ ⬇️

Snowkit announcement

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 infrastructure of Haxe in the best way that I know - do, and not say.

image
')

So what is snowkit?


snowkit is a live band. This is a set of libraries, tools and developers united by a common goal - the creation of high-quality infrastructure for Haxe.
On the snowkit website 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. Learn more about it on the Haxe website .

image

Alpha release


Published today (September 30, 2014), the alpha version includes a high-level game engine, a low-level framework to support various platforms and an assembly 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 continues, I am very pleased to announce and publish the initial version of these libraries. And I do it with the aim of you to start using them today.

Like any alpha version, published libraries have functionality that is being worked on, libraries may have errors and some missing documentation. But with your help, I hope we will reach a stable version much earlier.

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

However, I want to warn you, because this is an alpha version, then small changes will always 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 is finished in order to receive error corrections 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, the work will continue on the githaba.
Well, now with great pleasure I want to go to the description of libraries:

flõw


And the first thing you want to talk about is the flow assembly system. It was created from scratch in order to build a new infrastructure for Haxe.

image

Flow receives a small Json file as input, and following the descriptions in it, flow creates the application layout using standard templates, compiles the source code using Haxe, compiles the generated code using hxcpp, and builds the finished application for the Web or native platforms.

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

image

Flow is independent of any external libraries or tools. It includes templates for Flash Develop, a plugin for Sublime Text for managing projects and supporting code additions (code completion).

snõw


image

The first large library that uses flow-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 the NME (Native Media Engine, cross-platform library for Haxe), which I called lime (light media engine, which became part of OpenFL, another library that developed from NME). But I continued to need a completely lightweight framework without any dependencies. So in the end, I created snow from scratch, completely independent of NME and lime.

An example of a simple snow application:

image

snow is a very low-level 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 more. snow can be started without windows (headless), with or without a message processing cycle, it allows you to receive notifications from the OS about file changes, supports file dragging events and provides access to the full power of the SDL on all native platforms.
snow is a portable and very flexible framework.

luxe


image

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 dig deep into the depths.

luxe is designed to adapt its structure to your needs. It looks 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 tools, luxe is the starting point for creating libraries and modules for a particular game. luxe contains state machine, event system, collision handling, tilemap support and much more, besides, it is based on a flexible shader rendering engine.

image

Below is a small video demonstrating luxe features.



Additional Information


Documentation and manuals for each library can be found in the corresponding section on the snowkit website.

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

What's next


There are still many impressive things that I want to tell both myself and the rest of the community. I look forward to what we can do as a community.
I wrote a brief overview of the story and the reasons why I created the snowkit ( translation ).

Source: https://habr.com/ru/post/239405/


All Articles