Increase Battery Life in Linux

The main drawback I have experienced in using Linux on my laptop is the battery life.

Fortunately, there are several things you can do to extend the life of your battery. Now my laptop is running close to the same length of time as it would under Windows 7, and is going much longer than when I was testing the Windows 8 Consumer Preview. Continue reading Increase Battery Life in Linux

How to Install the Standalone Flash Player on Linux

If you are interested in testing a Flash application while you are running Linux, you will want to install a standalone version of Flash Player.

Unfortunately, installing the Flash Player Debugger and associating it with your SWF files can be tough to figure out, so I have written a script that will download, extract and associate the standalone Flash Player for you 🙂 Continue reading How to Install the Standalone Flash Player on Linux

NME + wxWindows

In addition to writing HXCPP, NME and most of the SWF library, Hugh Sanderson also has a “waxe” project that I’ve never really played with. On the Haxe mailing list, Luke Davies asked if it was possible to display a “file.browse” dialog box from NME.

This hasn’t been possible, but Hugh pointed out that waxe could make this possible, and offered suggestions for anyone interested in trying it out. I’ve known about this project for a while, and also known that wxWidgets powers well known cross-platform applications, such as FileZilla, but somehow my interest was never piqued until I read these instructions last night.

So I downloaded waxe from SVN and lept into it. Thanks to Hugh’s instructions, I was able to get wxWindows and the waxe NDLL compiling on Windows. This morning, I worked on getting it to compile for Linux, but there are still a few linker errors that need to be sorted. Nevertheless, with some changes I was able to create a Cocoa-based OS X build… and as far as I have tested, it works! Continue reading NME + wxWindows

Joystick and Gamepad Support for NME

Ask and you shall receive.

I know that some people have wished NME could support a joystick or gamepad natively. I am very happy to announce that joystick/gamepad support was added today in the development builds for NME!

Earlier I was not able to find my gamepad, so I installed MotioninJoy and plugged in my PS3 controller.

Please check out my example project, and let me know what you think about the API. There is a new JoystickEvent class, which you use to listen to events from the stage, similar to KeyboardEvents. You can listen for JoystickEvent.AXIS_MOVE, JoystickEvent.BALL_MOVE, JoystickEvent.BUTTON_DOWN, JoystickEvent.BUTTON_UP or JoystickEvent.HAT_MOVE.

If the device is a gamepad, the analog joystick will usually appear as an axis, and the d-pad will appear as a hat. Continue reading Joystick and Gamepad Support for NME

Sample Native Extension for NME

I created a native extension sample for NME this morning that I would like to share with you:

http://www.joshuagranick.com/code/haxe/NME%20Extension%20Test.zip

Have you ever wanted to access your own code, written in C, C++ or Objective-C? This sample should help illustrate the “glue” that makes it possible to write and access native code from Haxe. I’ve also added a new “extension” tag to the NMML project file format which should make the workflow even easier. Continue reading Sample Native Extension for NME

Cross-Platform Game Running in Flash *and* HTML5

I am very happy to share with you some of the first-fruits of integration between NME and Jeash — a working game!

Yesterday, I began the process of experimenting with adding an HTML5 target, thanks to Jeash. I am really impressed with how the project has developed since I last tried it out. Niel Drummond has done a great with the framework, as well as all others who have contributed to Jeash.

Similar to other targets in NME, I am publishing to Javascript using “haxelib run nme test MineHX.nmml html5”. Embedding assets as well as managing the build process is handled by the tool. I have unified Jeash with other targets, so you can still use a single API for loading embedded fonts, accessing bitmaps or playing sounds. The platform differences are being handled under the hood.

Flash

http://www.joshuagranick.com/examples/minehx/flash/

HTML5

http://www.joshuagranick.com/examples/minehx/html5/

NME 3: Flash, C++ and now HTML5

From the beginning, Haxe was created to be a “multi-platform programming language.”

NME relies on Haxe for reliable compilation to Flash and C++, but these aren’t the only languages Haxe supports. Meanwhile, a project (you may have heard of) called Jeash used Haxe to mirror the Flash API… but for Javascript.

For everyone who is excited by HTML5, you can now publish to Flash, C++ and Canvas as easy as…

haxelib run nme test MyProject.nmml flash
haxelib run nme test MyProject.nmml ios -simulator
haxelib run nme test MyProject.nmml webos
haxelib run nme test MyProject.nmml android
haxelib run nme test MyProject.nmml cpp
haxelib run nme test MyProject.nmml cpp -64
haxelib run nme test MyProject.nmml html5

Here is my previous “Actuate Example,” running in Flash and in Canvas as a comparison:

http://www.joshuagranick.com/examples/actuate/circles/flash/
http://www.joshuagranick.com/examples/actuate/circles/canvas/

Feedback from the “Muther” of all Hackathons

This past Friday and Saturday, I had the opportunity to attend the “Muther” hackathon in Mountain View, CA. I am not sure how many developers attended in total, but approximately 70 new mobile applications were created during the 36 hour event.

This was a fun experience, but it also taught me some things about application development. Of course, it also provided an excellent opportunity to hack all night on some fun stuff. I’ll get to that soon.

There were several vendors who sponsored the event. In total, around $125,000 in prizes were up for grabs. Teams had the opportunity to create one or more applications, and to enter into as many competitions as they were eligible for. There were competitions for haptic feedback, geolocation, application frameworks, web services, and target platforms. It was interesting to compare the teams who targeted one or two competitions, and the teams who tried to cover as many categories as possible. Continue reading Feedback from the “Muther” of all Hackathons

Getting Started with haXe for Flash, webOS, and Windows/Mac/Linux

They aren’t joking when they say that haXe is a multi-platform programming language.

Here is an example project which will compile to Flash or webOS from Windows, OS X or Linux. It even compiles as a native desktop application for OS X or Linux, and almost for Windows — I just need to fix a couple of header references.

http://www.joshuagranick.com/code/haxe/Getting%20Started.zip

It’s pretty simple to get things started. I’ll walk you through the steps it takes to get things configured for each platform. Continue reading Getting Started with haXe for Flash, webOS, and Windows/Mac/Linux

Installing haXe (Flash/Canvas/PHP/C++)

You might not be familiar with haXe, but you should be familiar with its compiler targets. haXe can publish the same project to Flash, Javascript, PHP, C++, Neko, and in the future it will support Java and C#. I have written games myself which run in Flash and webOS without platform specific code. It is an amazing tool for focusing on making great games and not being caught up instead with how to make them work.

Writing code in haXe is similar to writing Javascript or Actionscript, but everything is typed and the compiler provides code completion. You could write a game that targets Javascript and HTML5 Canvas, or you could leverage server side targets like PHP or Neko so that you can share your game classes on both the front-end and back-end. Create a game that runs on Facebook and runs on an iPad or TouchPad.

I know other developers who use haXe to write Javascript with compile-time error checking, or to create libraries which are compatible with both Javascript and PHP. Other developers use haXe to add new features to Flash like macros, generics and inlining, or to better take advantage of the memory functions exposed by Adobe Alchemy in Flash Player, which are not normally accessible through Actionscript. I believe that haXe has an exciting future as it continues to mature. Being able to cross-compile applications to the web, to iOS, webOS and Android with native performance is very compelling. haXe applications on these platforms run as quickly as native applications because they are still C++ applications built with the same compilers.

Unlike other cross-platform tools, the code is MIT licensed, so you have no licensing fees and you aren’t limited. haXe has a passionate open-source community behind it, and the code is unlocked, so it isn’t hard to delve into the underlying code if you want to add a new feature. Continue reading Installing haXe (Flash/Canvas/PHP/C++)