Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon
31. January 2016


Kha is a cross platform, open source, cross platform game engine for Haxe developers.  Also, as was just recently covered, they also launched Kode Studio, an IDE for Kha and eventually Haxe development.  With all of these recent launches, they also just relaunched their website at  The new design is much cleaner and better organized:



I intend to do some more Haxe coverage in the future and was considering using Kha or Snowkit.  Which framework would interest you most?

GameDev News

24. January 2016


Kode Studio 16.1 was just released, a fork of the Visual Studio Code editor specifically modified to work with the Kha library for Haxe.  Eventually Kode Studio should be useful as an IDE for general Haxe development... maybe, read on for more on this.


From the release notes:

The first public version of Kode Studio is out, Github hosts the downloads. Kode Studio is a fork of Visual Studio Code, optimized for Kha (Kore support will also be added). This is a very early version of Kode Studio but features debugging support which is in many ways superior to anything else currently around for Haxe based development, based on VSCode's Chrome debugger, Haxe's JavaScript target and a modified HTML5 target in Kha. It's cross-platform, very fast (runtime and compile time) and very convenient (no additional software required).

To get started with Kode Studio, just unzip the archive, start the executable and open a directory (File -> Open Folder) containing a Kha project - or open an empty folder and hit the "Init Kha Project" command (Press F1, type Kha, click it).
Kode Studio Create Kha Project

To debug open the debugging panel (the bottom icon on the very left) and click the green play button.
Kode Studio Debugging

Code completion will work after your first debugging session.

We hope you will enjoy developing in Kode Studio but as mentioned before, this is a very early release. Please tell us about any problems you encounter.

Oh and here are the answers to the questions everybody wants to ask:

Is the fork necessary? Couldn't it be an extension?
Currently it could be an extension for the most part, there are about 20 lines of code outside of extensions right now. But that is not were Kode Studio is headed. All functionality of Kit (Kha's previous GUI tool) will be integrated. The IDE will be tightly coupled to Kha's and Kore's build systems. Much of that can not be done in extensions. VSCode is a strong base but it's also a cage that has to be blast open to do Kha justice.

Is this a general Haxe IDE?
Right now - no. In the future - probably yes. But will it be a better Haxe IDE than VSCode plus the proper extensions? Probably not. The focus is clearly on Kha and Kore for Kode Studio. Every change done to the VSCode Haxe plugins that's not specific to Kha will end up in pull-requests for the original projects - namely and

GameDev News

12. December 2013


OpenFL, the popular cross platform gaming library formerly known as NME have recently released version 1.2.  The biggest addition is Tizen support.  Full releaseimage notes are below:


We are happy to announce that OpenFL 1.2 is now available, and includes a brand-new platform target, Tizen!

Tizen is a new device platform, supported by Intel, Samsung, The Linux Foundation and other members of the Tizen Association. Through partnership with OpenFL Technologies, Tizen is helping support our development, so we can continue to create free and open-source software for you.

OpenFL 1.2 marks a transition, we have a brand-new library we are co-developing called “lime”, which we will speak more about in the future. We want to open our codebase to a wider audience, both to collaborate and to also enable further innovation in game frameworks and APIs. As we continue to invest into OpenFL, we are also opening doors to share the build tools and platform support of OpenFL across multiple frameworks.

In addition to Tizen support, we have made specific investment in streaming audio support, as well as other fixes and improvements. You will need some new libraries (“lime” and “lime-tools”) for this release, so run “openfl setup” again to be sure that you have everything you need to get going.

Other fixes include better multi-core support for parallel C++ builds, improved support for error output on mobile, we added “Assets.getMusic” for specifically requesting streaming audio (regardless of what is set in your project file), context lost events for Android when using OpenGLView (other platforms retain the GL context during a resize) and other audio fixes.


run ‘haxelib upgrade’ to get the newest version, otherwise head on over to the OpenFL webpage.


4. August 2013


I took a look at the Awe6 inverted game framework a couple months back and was quite impressed.  Shortly after I decided to go with Haxe the NME project announced the rebranding to OpenFL and move to Haxe 3, something I looked upon with some doom and gloom.  Fortunately it’s not that bad after all.  A couple days ago, Awe6 announced a new release supporting OpenFL and Haxe 3, among other things.


From the release notes:


RC 2,0,572


Major release, some breaking changes. Includes:

  • Haxe 3 compatible (refactor to new syntax and conventions)
  • NME drivers replaced with OpenFL drivers
  • Optional paramaters refactored (Floats, Ints, Bools made non-nullable)
  • Run script NME references replaced with OpenFL references
  • FlashDevelop templates updated for above
  • API docs not yet revised, due to chxdoc compatibility


Good news and good work.


So, I guess I have to eat some crow about the move to OpenFL.  At this point in time, Aw6, Flixel and Haxepunk are all compatible with OpenFL.  So it appears the move hasn’t fragmented the landscape as much as I expected.

Programming News

4. June 2013

I think I must have bad karma or something.  I spent several weeks looking at what technology to use for my upcoming game project.  After much research and community feedback, I decided to use Haxe with NME using the Awe6 framework.  Well, that plan didn't last long, dying with this statement:

OpenFL is an advancement of everything there is to love about NME, and NME is taking a backseat so it can focus on being a stable, powerful C++ backend for native platform support


You see Joshua Granick, the creator of NME just recently announced OpenFL a replacement of sorts for NME, or more accurately I suppose, a replacement built on top of NME.  Here is a blurb from the OpenFL announcement:

OpenFL combines years of work to provide for the industry-standard Flash API without the Flash plugin.

In order to succeed on mobile, it is important to take of advantage of device hardware, and to be as native as possible. That is why OpenFL allows direct access to device features using extensions, why OpenFL makes it possible to target iOS, Android and BlackBerry as fully native applications, and to accelerate the Flash API using OpenGL for a fast, productive development environment.

OpenFL can also target JavaScript directly, thanks to the Haxe Toolkit that powers the platform. Today, users of OpenFL can target HTML5 or the beta support for Emscripten and WebGL, while supporting the Flash Player runtime, for flexibility when providing content for the web.

OpenFL is free, hosted on Github under the permissive MIT open-source license. We invite to join as we build the best 2D development platform for the next 5-10 years.

Though Flash is a popular API, we believe in allowing the community to innovate in new ways to build games and applications. That is why OpenFL seeks to also provide an open platform, including OpenGLView, an accelerated way to build content for Windows, Mac, Linux, iOS, Android, BlackBerry and HTML5 using the WebGL API.


Elsewhere in the comments he says:


NME is going to become a "native media engine" that can enable Haxe frameworks to run on native platforms. It is used as an internal dependency for openfl-native


On one handed, this could be simply looked at as a rebranding of sorts of the NME project as well as a port to the (just released) Haxe 3 language.  That said, I personally think its a really stupid move.


Moving closer to the Flash branding seems… dumb.  Perhaps I am in the minority in that my interest in NME had nothing to do with it's Flash roots ( I have zero prior Flash experience ).  To say nothing of the fact the Flash brand isn't exactly thriving at the moment.  With some people it's an outright swear word!  Another thing I really didn't like about the above comment was:

and HTML5 using the WebGL API.


Suddenly it sounds like the HTML5 target just became HTML supporting WebGL.  Basically meaning Internet Explorer and 95% of mobile browsers just got dropped from the supported list.


Back to OpenFL and NME, even if it is a simple rebrand, that has dire side effects, especially as many of the library names are being changed.  Suddenly there isn't just one place to go for information, or one source of documentation.  Now you have the NME version and the OpenFL version.  If it is not just a simple rebrand, that is even worse.  I love shiny and new, but no way in hell I am going to start a new project on such a bleeding edge technology, especially coupled with the fact it is also tied to a new Haxe version.  As we have seen with Lua and Python, new versions don't always take!


So why not simply use Haxe/NME as it exists today?  Well frankly, one of the biggest downsides to NME was the bugs that crop up.  I encountered a couple during my evaluation and often this would have been a deal breaker.  That said, the NME folks moved fast, released fixes often the same day, so I had faith that any problems I might have encountered would be quickly fixed.  Now that NME support is "taking a back seat", I no longer have that confidence.


Don't get me wrong, I am not saying OpenFL is a bad thing, it's really too early to tell that.  In a few months/years time, OpenFL might be vastly superior to NME.  That said, I can't hitch my boat to a technology that is that young, nor can I hitch my boat to a technology that has been basically retired.  Maybe for my next project I will be able to use Haxe and NME…. er OpenFL.  Just not today.


Guess it's time to take a closer look at libGDX?

News Programming

AppGameKit Studio

See More Tutorials on!

Month List