<![CDATA[snowkit - ruby0x1.notes]]>https://notes.underscorediscovery.com/Ghost 0.11Sat, 06 Feb 2021 08:52:34 GMT60<![CDATA[why snõwkit]]>This post is a short reasoning and history post about creating the snowkit collective and especially, the initial set of libraries.

If you haven't yet, please read the announcement post first.


Aim higher

This is the real reason for the creation of snowkit and it's libraries. I believe Haxe has

]]>
https://notes.underscorediscovery.com/why-snowkit/bc3aae75-8727-45eb-a7c8-e6d8866ea526Tue, 30 Sep 2014 18:31:16 GMTThis post is a short reasoning and history post about creating the snowkit collective and especially, the initial set of libraries.

If you haven't yet, please read the announcement post first.


Aim higher

This is the real reason for the creation of snowkit and it's libraries. I believe Haxe has great potential - and is already astounding growth and amazing output and libraries, tools, frameworks, games and much more from the community. The Haxe Foundation continues to press forward in a positive direction, working hard at making the compiler and targets better and better, and improving the face of the Haxe eco system with renewed web presence and a huge manual, which is a continued work in progress by great people (you should help there if you can).

snowkit is a continuation of this upward trend, hoping to set a precedent for high quality, community powered development to enrich and empower the Haxe eco system for the future, for all of us, and for those that have yet to find Haxe and stumble upon it - we want them to know that Haxe is a beautiful thing.

A short history

on the road to luxe

I have always used my own engine/tech to build my games, do game jams, and create tools for them. In 2009/2010, I had finally made one that felt like other people could use it, so I started documenting it, and preparing it for a first release. The homepage, looked a bit like this :

This older technology I was looking for something, I wanted to write games quickly, efficiently, and once - and have it run on the platforms that I care about. I wrote the initial engine in C++, and after about a year of use, I added full deep integration with the V8 javascript engine, and moved all the game specific classes into the javascript code which gave me exactly that. It was also quite portable, except for the V8 part. V8 also wouldn't run on iOS, so I ended up binding the engine to SpiderMonkey, JSCore as well as V8, for easiest portability.

Haxe/nme

Over time, I used the engine for many games but could never get around to finishing the "user facing" experience I had in mind, until around 2011, when I stumbled on Haxe - and in it, NME.

What Haxe gave me (the programming language/toolkit) was a write once, deploy everywhere approach I was looking for, but the code ended up as native to the target I was deploying too. NME gave me a simple flash like API to experiment with, and I was really happy with the simplicity of the build tools and being able to work quickly.

enter lime

After a few weeks I really wanted to get back to my own API (I hate the flash API, sorry) and I wanted to get porting my existing games, but the nature of the API's I had in front of me weren't fitting. I explored the option of undercutting the NME stack, and going directly to the native code so that I can use the tools + the platforms without the API, and upon the announcement of OpenFL and the great efforts by Joshua, it was finally possible to do that, to some extent.

I pushed hard and constantly to make the tools more agnostic, more flexible, and allow me to build a reincarnation of my engine on top of it. Aside from some hitches here and there, I was still able to make great progress and within a few weeks I had something usable.

and then luxe

My end goal all along was a reliable, portable, simple to use engine for my own games and the people that work like me. I managed to achieve that about 90% of the way in terms of workflow, and flexibility with the tools, and at the same time invested a lot of time into improving the haxe eco system, the OpenFL framework and native backends, and helping out wherever possible while I get up and running.

From May 2013, through to about March 2014 I was pretty happy with the direction things were headed. Around that time some merging had to happen, and I had already cultivated a user base alongside me and I was starting to feel the need to promise them stability and reliability and I needed control over the decisions to do that.

along came snow

Originally called lumen, I explored the idea of a completely divorced native+web backend from the entire toolchain I had been using. This took about a weekend to get rolling and I was really excited about the clean minimal approach I had originally intended it to be. It would also seem that my efforts weren't unnoticed and inspired other frameworks to follow suit, and we shared code where possible.

snow was taking shape, and originally still relying on aether, it started to feel the strain of the chunky xml project files and the build times, I was fighting for agnostic flexibility in the project format and only partially getting results so I decided, much like with snow, that I should explore the possibility of more focused tools as well.

working flow

After a long time using the nme, then lime stack, and using the aether tool stack it had come to the point where I had moved away from the eco system entirely and was really happy with the results. I continued to bring alongside testers and friends and the original audience of lime alongside for testing, and we duked it out and started using the trio in full.

Finally, luxe

As luxe has evolved, a now third generation of my preferred approach to development, there are many tools, editors, features and things I would love to show you, more modules/libraries I would love to write for luxe but as time moves forward I am continually pressed by friends who know about luxe to get it into peoples hands already - so I am looking forward to seeing what the future holds for haxe, luxe, snow and flow and the rest of the snowkit family.

I will continue to press toward positive growth and I am really excited about where Haxe has, and will be taking us.

]]>
<![CDATA[announcing snõwkit]]> 
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

]]>
https://notes.underscorediscovery.com/announcing-snowkit/6abc9d71-8705-4198-bb72-8c454c4f34c5Tue, 30 Sep 2014 18:30:00 GMT 
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.

snowkit logo

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

haxe

Alpha release

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

 

flõw

The very first tool is a project based build tool called flow. It was created brand new to serve the Haxe eco system.

flow

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.

snõw

snow

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.

luxe

luxe

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.

luxedesign

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.

future

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.

]]>