Struggle

to try very hard to do, achieve, or deal with something that is difficult or that causes problems

Most people probably associate struggle with something unwelcome. Look at the definition – the words “very hard”, “difficult” and “problems” are in there. We do not like problems, especially very hard ones, or do we?

In a peculiar way, we enjoy struggle. Most successful past-times involve struggle in some form or another. In many video games there is an increasing level of challenges to overcome–just as you begin to reach one milestone, another is set out ahead of you. When you reach the final milestone is often the last you play. When you play a musical instruments, you try to reach the next level of expertise, learn the next song, increase your proficiency you do know. Faster, stronger, better – we are always in pursuit of perfection, achievement, accomplishment. There is always another level to reach and we are never quite “there” yet.

The very thing we want all along is a wholeness and completeness, when we reach (or almost reach it) our enjoyment starts to wane. No one that I know accomplishes something and says it is enough for them. There is always an urge to keep going further.

Maybe struggle is both an ally and adversary. We wish that it was possible, sometimes, to achieve and reach goals without paying a price, yet it is the pain and the effort we pour into pursuing those goals that make them matter to us, that do not make them ring hollow… empty.

If we embrace our struggle, perhaps we can realize that this is part of the enjoyment we have in the pursuit of bigger and better goals. Realizing this may be a life-long pursuit, we should give ourselves some slack. If we burn ourselves out chasing each milestone, that is how our whole life may look. If we try to pin our self-image on whether we reach our goals, we may never be satisfied in ourselves. A form of chasing the wind. There is a deeper well that we need to draw our self-worth from than our achievements. In baseball, winning games are often done with base hits and team plays, not home runs. Pace yourself, enjoy the process, remember to find enjoyment in more than victory. Do life for the love of the game.

Reducing Weight

Recently I have been thinking about the idea of “throwing off every weight that hinders” considering what life would be like if I removed things that weighed me down.

There are more connotations to this concept than one might think. For example, one type of “weight” might be physical weight, in the form of poor health. If I am not as healthy as I should be, it becomes a burden on my family, and keeps me from doing all that I have in my heart to do. Being sick, being tired, or worse — living a life that is cut short — these are not blessings. They are a hindrance to me. I should remember this next time I want to eat something I know is bad for me. Food is meant to nourish, not hold me down.

Rather than keeping all my possessions, like a monument to “me” and “my worth”, the things that I own should help me, not own me.

If they exist to serve me, then I need to take a good hard look at whether they benefit. When I started questioning the things I owned, magical things started to happen. Did you know it is so much easier to keep a house clean with less items in it?

For example, it is very common to find a kitchen that has strange, unused plates and bowls stacked on the ones that one might use daily. When you go to find the utensil you really need, you dig through a lot of others you do not need. Why? If I feel that I am always working too hard to keep my home clean, maybe it is too crowded. Maybe the things I need are enough.

I can also be weighed down with debt. Stress and pressure, why not live within my means? The more I get out of debt, the more I feel a weight lifted. I think it can be a little like cleaning a dirty closet. Have you done that before? Somehow, you are aware that no filth and clutter lie behind those doors. The room feels better. You feel lighter. Having no debts hiding is similarly lightening.

Obligations are also a weight to the busy. I once heard a saying, that “good is the enemy of best,” if you fill your life too full, you will not have room for what matters to you. Sometimes saying “no” may be just what you need to say “yes” to the big things that matter most.

So look at what is in your hand, does it benefit you? Pick up and carry the tools that enable you to climb the next mountain. Drop all the useless weight that holds you back and burns up all your strength.

Changes in the Lime Repository

As I previously discussed, we have decided to collaborate with the NME project, in order to build an even more stable, feature-rich shared C++ codebase for both projects.

Over the past couple weeks we have been migrating improvements, adapting the build process and preparing for the next release, which uses the unified codebase and targets HXCPP by default. As a user of Lime or OpenFL, nothing should change, except for the improvements we have all been making in the project. Continue reading Changes in the Lime Repository

Introducing OpenFL Technologies

I am happy to announce that OpenFL Technologies LLC is now official!

I have expressed my desire to make deeper investments in OpenFL. Together with my business partner, we are scaling up a company to support the long-term growth of the OpenFL platform. We are open to your feedback as we seek to improve OpenFL and provide additional value to the community. Immediately, OpenFL Technologies is available to provide enterprise support and custom development, to help make sure your projects are a success.

We are also announcing a new beta porting service for game developers. As you concentrate on your title, we can help leverage the cross-platform power of OpenFL to bring your games to new platforms, for a low revenue share, allowing you to generate new sources of revenue without the added cost of supporting new devices or markets. If you are interested in being part of this beta, please contact us.

We welcome your support and look forward to a bright future ahead! :)

How to Install Support for OUYA in Windows 8

I just added support for the OUYA on Windows 8, but it was fraught with peril.

I want to help by providing this little guide, so the next person won’t have as much trouble as I did. The OUYA developer has documentation to lead you through the process, but unfortunately that was not enough to get it working. Read on!

Android SDK

The first step is having a copy of the Android SDK installed. You’ll get this if you used “openfl setup android” and went through the steps, or if you go to the Android developer site. After you have the Android SDK on your system somewhere, you will need to run the “SDK Manager” which is in the same directory. Continue reading How to Install Support for OUYA in Windows 8

How OpenFL Works

OpenFL, as I shared earlier, combines years of development to bring you a fast and stable implementation of the industry-standard Flash development API, free and open-source, ready to provide a backbone for mobile, desktop and web projects.

How does it work? At first, it may seem to be a mystery, but I know that some of you (most of you?) like knowing how things are put together, so let’s dive into it.

Run script

OpenFL begins with a run script. The source is located here:

https://github.com/openfl/openfl/tree/master/script

When you execute “haxelib run openfl” (or run the “openfl” alias for the same command), this script is being executed. Continue reading How OpenFL Works

Replacing an OpenFL Backend

When I was designing OpenFL, one of the goals was to build an architecture that would allow for easy development on one of the backends. Currently, we have two backends: “openfl-native” and “openfl-html5″

If you install OpenFL, you will probably notice that these are completely different Haxe libraries. This makes it possible to make changes to the native backend without rebuilding command-line tools, or to make HTML5 improvements without rebuilding native binaries.

The README for each project on GitHub includes instructions for using a development version. For example, to use a development version of openfl-html5:

git clone https://github.com/openfl/openfl-html5
haxelib dev openfl-html5 openfl-html5

This can also let you replace a backend entirely. Continue reading Replacing an OpenFL Backend

Introducing OpenFL

I am happy to announce a new platform for building creative content — OpenFL — which is currently available as a release candidate for Windows, Mac and Linux users.

In 1999 the world began to embrace the Flash browser plugin as a way to create and experience interactive content, reaching 92% of internet users. Times have changed, but the need to deliver creative projects has perhaps become even more important than ever.

In the past ten years, we have seen the wireless industry explode and we have seen web browsers develop features that only plugins could deliver before.

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 you to join with us 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.

You can Get Started with OpenFL now. More details and a new website will be coming soon.

Deploying C++ to JavaScript using Emscripten

If you paid attention during the post-GDC news, you probably heard that Epic Games and Mozilla teamed up to get the Unreal Engine running in the browser, without plugins, in a matter of four days. The secret? Emscripten.

Alon Zakai has worked three years on Emscripten, and its an amazing piece of software.

Literally, you take C++ (or technically, something that compiles to LLVM), and out comes JavaScript. Not only can you do basic code, you can take large, complex projects with myriad dependencies, and actually run it in the browser.

Let’s take one of my previous samples, and port it to the browser. Ready? Continue reading Deploying C++ to JavaScript using Emscripten