{"id":1521,"date":"2015-09-28T13:05:47","date_gmt":"2015-09-28T11:05:47","guid":{"rendered":"http:\/\/www.aymericlamboley.fr\/blog\/?p=1521"},"modified":"2015-10-02T17:46:49","modified_gmt":"2015-10-02T15:46:49","slug":"a-call-to-the-haxe-community","status":"publish","type":"post","link":"http:\/\/www.aymericlamboley.fr\/blog\/a-call-to-the-haxe-community\/","title":{"rendered":"A call to the Haxe community"},"content":{"rendered":"<p><em>This a blog post version of <a href=\"https:\/\/groups.google.com\/forum\/#!topic\/haxelang\/QkQQ-PmCfQk\" target=\"_blank\">my post<\/a> on the Haxe forum which didn&#8217;t catch enough attention I think. Native Extensions are crucial for game development.<\/em><\/p>\n<p><em>Update: Kha &#038; OpenFL, for example, have their own IAP extensions because of the different engine architecture. The blog post mentionned share some thoughts on Native Extensions, in fact&#8230; but nothing concrete is going on at the moment, no repository shared. Finally the native code should be the same, but the wrapper around the extension can change depending the engine. A native extension should have different building scripts depending the engine targeted, but the same native &#038; Haxe codes. I hope we&#8217;ll see examples in the near future.<\/em><\/p>\n<p>We made recently several HTML5 games (Canvas\/WebGL) that were also delivered as an app thanks to <a href=\"https:\/\/www.ludei.com\/cocoonjs\/\" target=\"_blank\">CocoonJS<\/a> which deliver better performances than Phonegap\/Cordova. But the journey wasn&#8217;t easy: no obb support on Android, push notification certificate needed for iOS, a custom analytics library didn&#8217;t work on Android but worked fine on iOS. It&#8217;s simple if you deliver your game with CocoonJS you don&#8217;t have any control on the packing solution and so the whole process could be a nightmare. Recently CocoonJS has updated its portal and finally announced <a href=\"https:\/\/cocoon.io\/pricing\" target=\"_blank\">pricing<\/a>, no way! It&#8217;s time to reconsider some plan&#8230;<br \/>\nUnity WebGL is getting better, but still not ready to deliver properly WebGL <strong>browser<\/strong> mobile game. So it&#8217;s definitely time to focus (again) on <a href=\"http:\/\/haxe.org\/\" target=\"_blank\">Haxe<\/a>!<br \/>\n<!--more--><\/p>\n<p>There are a tons of awesome Haxe frameworks\/libraries nowadays : <a href=\"http:\/\/openfl.org\/\" target=\"_blank\">OpenFL<\/a>, <a href=\"https:\/\/github.com\/haxenme\/nme\" target=\"_blank\">NME<\/a>, <a href=\"http:\/\/luxeengine.com\/docs\/\" target=\"_blank\">Luxe<\/a>, <a href=\"https:\/\/github.com\/ncannasse\/heaps\" target=\"_blank\">Heaps<\/a>, <a href=\"https:\/\/github.com\/KTXSoftware\/Kha\" target=\"_blank\">Kha<\/a>&#8230; pick the one you want to make your mobile game! But each time I try a new &#8220;system&#8221; for mobile game I&#8217;m looking its ecosystem. Making a mobile game nowadays, is not only pushing pixels on screens, it&#8217;s also having access to native services like In App Purchase, Push Notifications, Facebook Connect&#8230; and many of them shouldn&#8217;t affect if you&#8217;re using OpenFL or Luxe&#8230;<\/p>\n<p>I see engine offering their own solutions like <a href=\"https:\/\/github.com\/luboslenco\/iap_kha\" target=\"_blank\">Kha&#8217;s IAP<\/a> or <a href=\"https:\/\/github.com\/openfl\/extension-iap\" target=\"_blank\">OpenFL&#8217;s IAP<\/a>. But is there any reason why Kha created its own native extension?<\/p>\n<p>Since native extensions should be engine independant it could be something managed via the Haxe Foundation! I was disappointed when I read the post on <a href=\"https:\/\/groups.google.com\/forum\/#!searchin\/haxelang\/framework\/haxelang\/r5T-wNknAWI\/Qf3JpD-tDAAJ\" target=\"_blank\">Sharing between frameworks (Nme \/ OpenFl \/ Kha \/ GameDuell \/ Heaps \/ Snow \/ YourGreatFramework )<\/a>, nothing on Native Extensions!!<\/p>\n<p>Making native extension is a complex task and require lots of works to be fully tested and updated (I made several for AIR), things like In App Purchase are critical in an application&#8230;<\/p>\n<p>Is it something which could be managed by the Haxe Foundation? Or at least, be in one place? At the moment, it makes Haxe ecosystem feels way weaker than AIR&#8217;s one (and so hard to convince clients but also developers!) due to awesome ANEs developers like <a href=\"http:\/\/airnativeextensions.com\/\" target=\"_blank\">Distriqt<\/a> &#038; <a href=\"https:\/\/www.milkmanplugins.com\/air-native-extensions\" target=\"_blank\">Milkman<\/a> or also Unity thanks to <a href=\"http:\/\/prime31.com\/\" target=\"_blank\">Prime31 plugins<\/a>. It would benefit to many developers. They could be free &#038; open sourced available in one place, or even managed by a commercial company with pricing&#8230; at the moment <a href=\"https:\/\/github.com\/aduros\/flambe\" target=\"_blank\">Flambe<\/a> sounds like the best way to go thanks to the AIR ecosystem which sounds more complete.<\/p>\n<p>And you, what&#8217;s your current position concerning Haxe Native Extensions?<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This a blog post version of my post on the Haxe forum which didn&#8217;t catch enough attention I think. Native Extensions are crucial for game development. Update: Kha &#038; OpenFL, for example, have their own IAP extensions because of the different engine architecture. The blog post mentionned share some thoughts on Native Extensions, in fact&#8230; &hellip; <a href=\"http:\/\/www.aymericlamboley.fr\/blog\/a-call-to-the-haxe-community\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">A call to the Haxe community<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0},"categories":[70],"tags":[71],"_links":{"self":[{"href":"http:\/\/www.aymericlamboley.fr\/blog\/wp-json\/wp\/v2\/posts\/1521"}],"collection":[{"href":"http:\/\/www.aymericlamboley.fr\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.aymericlamboley.fr\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.aymericlamboley.fr\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.aymericlamboley.fr\/blog\/wp-json\/wp\/v2\/comments?post=1521"}],"version-history":[{"count":11,"href":"http:\/\/www.aymericlamboley.fr\/blog\/wp-json\/wp\/v2\/posts\/1521\/revisions"}],"predecessor-version":[{"id":1532,"href":"http:\/\/www.aymericlamboley.fr\/blog\/wp-json\/wp\/v2\/posts\/1521\/revisions\/1532"}],"wp:attachment":[{"href":"http:\/\/www.aymericlamboley.fr\/blog\/wp-json\/wp\/v2\/media?parent=1521"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.aymericlamboley.fr\/blog\/wp-json\/wp\/v2\/categories?post=1521"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.aymericlamboley.fr\/blog\/wp-json\/wp\/v2\/tags?post=1521"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}