Andy Moore

May 212013
 

Anytime I criticize Unity3D, I am quick to point out that it cost me 4,500 USD just to install it. For a poor indie developer, that’s a lot of money, especially considering that all of the tools used to make Monster Loves You! were absolutely, 100% free*.  Going from a free environment to one where the barrier to entry is nearly $5K is a bit of a shock.

Still, people get confused – isn’t Unity free?

Well, for most people, yes – yes it is. But Unity has one little gotcha in their licensing terms:

  • If you are an incorporated entity (I am),
  • and you have a “turnover” of over $100,000 in the last fiscal year (I did),
  • Then you must pay $1,500 for Unity plus $1,500 each for Android and iOS (which I need for my cross-platform games).

This brings my total to $4,500, but some of my developer friends have paid over $10,000 per seat because of their specific unity requirements. I hear the console plugins are hella-expensive.

Just today Unity announced that the basic versions of their mobile plugins has gone free-of-charge, which is awesome and enough to get most people started, but the basic editions are missing critical features that most developers will want to take advantage of – then the price jumps back up to $1,500 per platform.

It’s hard to bitch out-loud about this though, because the “$100K turnover” thing implies that I am rich and I should be able to afford it. As soon as I start complaining about this, people start making accusations about why my money-losing business should be a charity or some such. But it’s more complex than that. Here’s the thing: a turnover, specifically, is not profit.  As a quick example, Unity doesn’t care if you spend $40K hosting a unity-themed charity game-jam and recoup $40K in ticket prices and sponsorships. Though you are not doing this for profit and just trying to give back to the community, that counts as 40% of your “turnover” right there.

Turnover is a terrible metric for who should get the “indie edition.”

Here at Radial Games, I do a lot of giving back to the community. I get reimbursed (not paid) to travel to schools and speak for students; I put on game jams and pay for them out-of-pocket, with sponsors and ticket sales making up the cost.  Last year I ran a local meetup group that met more than twice per month.  Sure, I have a few games making a few dollars here or there, but the events I throw for the community dominate my turnover.

Yes, Radial Games’ bank account received $100,000 in gross income last year.

Right now Radial Games’ bank account has $0 in it.

And I, personally, did not make minimum wage. Legally speaking, if Andy Moore was to take Radial Games to court for abusive employment practices, it would be in some serious financial hot water. I’m not counting “my own personal salary was $100K/yr and now radial is broke;” Radial doesn’t have the money to even pay me enough to live (I take on personal contract work to fill the gaps).

I’m not rich. I’m not “lucky” to be “making” so  much money.  Radial Games is, at this point, more of a facilitator for other people’s success, and I’m very proud of this fact despite the hardships it brings me. I’m confident I’ll be making a modest profit for the first time in this fiscal year, but Unity only cares about last year.

Yes, I can probably restructure my company and make a non-profit division that can use the free edition. Maybe I can sign up for the free edition personally, and not get Radial Games involved in this. Maybe I can just download the free copy and just secretly not tell anyone about it. There are workarounds to this problem, but I like to keep myself on legal solid ground. If I wrote Unity privately, I could probably work something out with them, which goes against my whole ideal of not raising the ladder behind me. And besides, this isn’t my problem, this is Unity’s problem.

So here’s what Unity can do.

Switch away from the “$100K turnover” rule. Make Unity3D cost $4,500 per seat, where each seat owner takes home $100K. Make the rule count for Corporate profit before payroll. Switch it up so that struggling indie developers like myself can use your free product, and not be punished for throwing UNITY THEMED GAME JAMS. 

Hell, drop the requirement if you aren’t doing a commercial release! Right now I’m just poking at the thing, yet I still have to pay the full $4,500.

Don’t make blanket rules and assumptions about how turnover means success.

As a quick side-note, it’s sorta ridiculous that if you DON’T Incorporate and just personally make $100K turnover, you don’t need to upgrade from the free edition. Heh.

*: FlashDevelop + AIR SDK gets you a free compile for PC, Linux, Blackberry, HTML5, Flash, and Android from Windows. I had to buy a copy of OSX to upload iOS builds and compile for OSX targets.  Contractors  may have used tools such as Photoshop for art in Monster Loves You, but this was not paid for by Radial Games.

May 202013
 

Lately I’ve been filling my Twitter feed with complaints and questions about Unity3D. It’s a very different beast than any other coding environment I’ve been in, and a bunch of things really bug me about it.  I’ve been poking away at it every few days, as a break – just trying to get a quick jam-style-game out.

Here’s some sample complaints I’ve made:

  • The documentation mentions “Levels” but the IDE mentions “Scenes” and only experience will tell you they are the same thing
  • The documentation for plane-snapping is flat out wrong (at least vertex snapping works…)
  • There is no code editor; you must use an external application
  • Their default on install is to give you a copy of Mono, whose autocomplete is atrocious to the point where I think I’m doing things wrong
  • All the decent tutorials are videos and it’s hard to find a good written one
  • My Unity license cost me US$4,500.

I’ve probably complained about a hundred or so of such little “gotchas” in the last week, but each time you learn to overcome them Unity becomes even more usable. I’m sure half my complaints are wrong, unfounded, or based in some “old school” thinking, but that’s what I have to work with and my experience is my own.

One of the most interesting things for me, though, is how quickly you can prototype a 3D game in Unity. Slapping together some primitive shapes, adding physics, putting a bit of keyboard control code in them… whammo, you have your very own racing game, first person shooter, 3rd person runner, or even an isometric RPG. In fact, with my week’s-worth-of-knowledge right now, I could prototype any one of those up faster than I was able to initially get “Hello World” on the screen.

And that’s where Unity really shines – is with the broad strokes and the silhouettes. The borders of your game you can sketch out incredibly quickly, and be playing something that feels really solid, rewarding, and fun really fast.

Where Unity falls short compared to my regular platform (the 2D world) is probably the detailswhen it comes time to ship a game and you have to put on all the polish. Beyond-game-jam stuff.  Making everything gleam.

Texturing things properly might take you years just to learn the proper skills. Making your 3D models look right. Animating run cycles now is better suited to mocap than spritesheets. 3D just makes everything way harder.

But also smaller things, like making Unity’s physics engine do what you want instead of glitching.  Making your car controls not sluggish. Getting the AI opponents in your FPS working decently. Making shadows work properly. Making the particle projector actually emit a prefab particle. Installing custom editor scripts so the game executes the correct initialization scene instead of your currently open scene. Tweaking a few variables in a late-game-mechanic. All that stuff is much more difficult in Unity; getting that fine-grained, low-level control is a stumbling block and doesn’t come naturally to Unity.

That’s not to say any of that can’t be done; it’s just abnormally, surprisingly more difficult than the other languages I am used to.

I swear that I can, however, make a greyboxed FPS in under an hour (probably 10 minutes?), and that is phenomenal. That is something to be proud of, and being a visual creature seeing 3D cubes flying around the screen with that kind of speed is very rewarding. There’s a reason why I’m sticking with Unity through all this pain, but damn they could really do with a complete tutorial re-write.

I just wonder if I’ll ever ship anything in this.

May 162013
 

I ran into a bit of trouble putting together Monster Loves You! for iOS, and I’ve been tearing my hair out over it for weeks now.

To put it briefly, the game refuses to run on the iPad2 or the new iPad.  For a longer rundown, check out this Stack Overflow question I put a bounty on.

I’ve put the question out to Twitter, Google+, Facebook, and to everyone I could pry a few moments from. Adobe isn’t having much success helping me out either.

By this point I’ve stripped everything out of the game – it is a simple “Hello World” .SWF with no assets, and hardly any code at all. It’s probably the bare minimum a .SWF project can be, and I’m still running into the problem. I’ve tried on multiple machines, and tried with different AIR SDK versions as well.

I’m pretty sure this is a bug with the AIR .IPA creation tool (ADT).

I’ve scraped together this test project in a .ZIP file if you want to take a look.  Any help would be super appreciated! You’ll need your own provisioning certificates, and I’ve included a readme file with the command-line stuff I’m trying to pull off.

A beer for whoever can help me!

UPDATE:

FOUND IT. Documented for future bughunters:

The ADT command line has a -C flag to change the current working directory on the command line, which allows you to keep your project better organized and keep the command line a bit more sane. -C can be called as many times as you want when importing assets, and I used it several times. IDEs like FlashDevelop also use -C in the AIR template files so this is sorta standard behaviour. As a quick example of asset inclusion:

ADT.exe [blah blah] assets/icons/icon1.png assets/icons/icon2.png

is the same as

ADT.exe [blah blah] -C assets/icons icon1.png icon2.png

(and, with wildcard use) is the same as

ADT.exe [blah blah] -C assets/icons .

As I have different compiling instruction sets for iOS, android, steam, etc., I had adt switch directories with a variable to the current config and execute from there.

This all works fine and as-documented in ipa-test-interpreter mode. When in native-code mode (ipa-test), however, including the main executable .SWF after a -C command [somehow for some reason] messes up the internal pathing; the file ends up being included but ends up being all “file not found” internally when executed, hence the blank screen and no code executing.

So the fix is simply to include the .swf from the current directory, before any calls to -C. As a quick example of my workaround that just tested a-okay:

copy /bin/flash/game.swf ./
adt [stuff] game.swf -c assets/icons .
del game.swf

I’ve gotten in touch with Adobe about this and hopefully they’ll fix -C so it’s functionality is the same for both compile targets in the future.

(Eternal thanks to @iBrent for pointing me in the right direction on this one. I might not have tracked this down if not for him.)

May 132013
 

I made the best pizza I ever made yesterday:

  • Gluten Free Crust
  • Base sauce was Nutella
  • Add thinly sliced Grapple ™
  • Thinly sliced Asian Pear
  • Chopped Banana
  • Lightly sprinkled with Skor chips
  • Even more lightly sprinkled with Butterscotch Chips
  • Layered with Marshmallows
  • Topped with fresh Raspberries

Put in the oven @ 450F for about 10-15 minutes. The marshmallows roast as if they were over an open flame, and the raspberries get nice and soft (along with all the other fruit). Orgasmic. This was all that was left (with sound effects by Brian Provinciano)

Apr 252013
 

I had a “misanthrope” wrist band for most of 2012, but it snapped back in November. It made me very sad.

I also became single back in November; I decided that it would be a good time to start travelling the world.  I was going to strike off on my own – put my stuff in storage and experience life.  I was pretty excited about this because living abroad is actually, in most ways, cheaper than my old digs back in Victoria; it seems foolish to not do this!

It would also give me a chance to escape people. I hate people! I’m a misanthrope, after all!

So what have I been up to since then?

  • I flew out to Boston for a few weeks, where I met some wonderful new friends.  I was staying with Dejobaan which was awesome and comfortable, though we were crunching on MLY! so it was also a bit stressful.
  • I popped back to Victoria to say goodbye to my friends and make sure the LevelUp community was all sorted before I took off.
  • I flew down to Mexico for over two months. There I stayed with the Northways, my old friends from highschool who have been doing this “living abroad” thing for years now.  These months were some of the best days of my life – it was incredible, relaxing, and I even got some work done. I’ve made a few blog posts about the Mexico leg of my trip, but one of my favourite things is meeting all those new friends, learning new tricks (kiteboarding!), and just generally having a blast.
  • After that I flew back to Boston where I forged even more new friendships, some I would say are quite special to me and I hope last me the rest of my life.  I stayed with Dejobaan again and we spent a week crunching on, and finishing MLY!, then it was time for PAX East where I had a booth.  Graham Davis, a good friend from back in Victoria, flew out to help out with my booth so it was good to see a familiar face again.
  • Next up was GDC in San Francisco where I stayed with Dejobaan for a third time. GDC was back-to-back with PAX this year so the stress was a bit higher than normal, but I also skipped buying a badge this year – no attending talks, and just barely visited the Expo floor. I was only attending evening parties! This let me get all my socializing and business meetings done while still getting enough sleep and relaxation in. It made the trip quite enjoyable; I think I’ll do it again next year. Some of the after-parties and events were amazing, and I met even more new friends and forged some new relationships that I’m sure will be with me for the rest of my life.  I get really excited whenever I’m in SF; there’s always so many people to see, and so many things to do.  GDC13 was probably one of my favourite “party-weeks” ever. I’m still riding the high, a month later.
  • And then, I took a big deep breath in, and hopped on a plane to Australia (starting in Brisbane). This is my first time crossing an ocean! I had never left North America before. I had a tinge of extra nervousness, though, as I had a date lined up with a woman I met online.

And here I am! I’m in Australia. That catches us almost up to the present.

The date I had lined up (let’s call her “D”) didn’t end with a romantic happily-ever-after,  so I won’t linger on it too long.  D has been my tour guide for the local beach-towns I’m staying in, and we’ve spent many nights staying up late, drinking and chatting.  She made an interesting observation though: that my bullet-pointed list up there sure contains a lot of people. Maybe I don’t hate people after all? Maybe I’m not really a misanthrope!

Of course, this argument got me very defensive and I started listing all the ways that I hate humanity, but I slowly settled on how it’s probably true… I hate people, I do! I hate how stupid the world can be sometimes. But my friends? I love them. I love my friends to bits. I get energetic and enthusiastic around them, my game-production-multiplier increases, and I have a lot of exciting fun times being around my game-developer-buddies, chatting about things like how nature and the world around us can inspire code, or game ideas. I want to stare at the ocean and chat about how many games there are in the concept of water alone.

And I’m missing all of that, here in Australia.

I’m lonely.

Turns out I like travelling with a partner, or with my friends.  Without those, I’ve just changed the scenery and my life is largely the same: Sitting on my laptop, making lame tweets about the world that goes on around me, making blog posts that are way too long.

It’s making me very unhappy here.

There are other things that make travel a bit harder for me, too; I’m not really in to doing the touristy stuff. I don’t really want to see the big rock in the desert, or holding a koala at a petting zoo, or going on some guided snorkeling adventure. I am interested in living; going grocery shopping. Seeing all the different things people buy. Doing things locals do on weekends, kicking my feet up at the beach, and just relaxing about town. Sitting at the pub and watching the surfers. But I feel like I can’t really do that stuff: Australia is really expensive. REALLY expensive.

I think I can safely and categorically say that nearly everything is twice as expensive in Australia as it is in Canada.  The beers available at any of the local pubs are [big-brew crap, and] only available in this bullshit “Schooner” size which is like, half a pint, but 50% more expensive than a pint.  Mixed drinks are typically $5-8 at most places in the US and Canada; the cheapest I have been able to find down under is $12 (but the average seems to be $15). [To be fair, Australia's minimum wage is around $15 vs. Canada's $10, so cost-of-living is probably a bit closer to what I had hoped. But I'm not working here.]

Groceries are expensive.  Clothes are expensive.  Rent is expensive.  Everything is really, really expensive, and it bugs me because I wanted to travel to make things cheaper for myself. I wanted to travel to not have to worry about money. Sure, MLY is doing well, but I haven’t gotten my first cheque from Valve yet and the whole money thing stresses me out so much I’m pretty much paralyzed.  I can’t enjoy myself at the pub. Every beer tastes like regret (for both price and flavour reasons), and I find myself ordering tiny servings or going to really shitty hamburger stands.

But, I do feel like I could stomach those shitty burgers and expensive beers if the Northways were here. If my old roommates back in Victoria were here with me. If there was a conference going on. If I had compatriots; if I had someone to share the pain with, to laugh about it with. Someone to bounce game ideas off of, to distract me from the pain of the price.

But no; I sit here, largely alone, tentatively poking at my ultra-expensive swill, gazing out across the ocean as my bank account drifts farther into the red.  Sure there’s been some good days; and around half my time here is spent having a lot of fun with D (playing in the surf, trying new foods, cramming vegemite into my face, her laughing at my wobbly skateboarding, etc) – but it’s not enough.  Her company is wonderful, but I’m still feeling cut off and lonely, feeling separated from my game development community. One of the highlights of my trip was watching my copy of Indie Game: The Movie with D, and I think that’s probably hinting at something.

I started asking myself: If money was no object, what would I do right now?  After buying a helicopter (obviously), I would definitely leave – I would immediately book a flight back to North America. Back to my friends.  I just don’t travel well alone, it turns out, and this was my first time trying it.  The only reason I’ve been sticking around is because the airfare was so expensive – I feel like it’s a sunk-cost and I have to make it “worth it” by sticking around, making myself miserable.  Sticking around to make your plane ticket worth it is a really shitty reason to stick around.

So I bought myself a return flight. I’ll be returning to North America in a week or two from this post, and I’ve got some plans to head out to Boston, Vancouver, Santa Barbara, San Francisco, and maybe even New Brunswick and Newfoundland — all for conferences, game jams, and seeing all my friends. I’ve already got plans to live for a week on a houseboat in Arizona. I’ve got a lot of friends I want to see, new relationships to catch up on, and adventures to be had… Adventures with people. Adventures with friends, adventures with (hopefully!) a partner.

I’m not done with Australia – far from it. I think it’s wonderful here; I am celebrating having crossed an ocean, I am enthusiastic about this continent and want to explore it, and the people within. I daresay the drivers are more courteous than any other place I’ve been, and people talk with their endearing accents all the time. There are plenty of gamedevs scattered throughout that I’d love to visit and hang out with.  I do still love Australia and their TimTams… And yes, even their Vegemite.  I just need to experience it with the right people to not ruin it for myself.  It’s my dream to go to New Zealand, and I was originally planning on doing it with this trip. I’ll put it off though, I want to save that… so I can share it with someone special.  Travelling alone just doesn’t work for me.

I have a new wristband now. It doesn’t say “misanthrope” this time; it just says “don’t read the comments.”

Apr 212013
 

Last night I saw a bunch of tweets going out about the Canadian Video Game Awards, and I noticed that Far Cry 3 was really sweeping things up.  I was a big fan of Far Cry 1, at least the open world beach bits before they forced combat down your throat, and I decided to purchase it on Steam (half price!).  I’ve been on a bit of a non-violent kick recently (combat in games is so yawn-inducing), and maybe it’ll satisfy me.

As I waited for it to download, I noticed Dishonored was also on the Steam Storefront. Because it was missing a “u” (any good Canadian knows it should be Dishonoured), I decided to pick it up too. You know, to even out the US/Canadian purchasing decisions for the night.

I fired it up today.  Here’s a major-spoiler-free review; but it’s moreso intended for people that have already played the game.

Dishonored is a game that comes in three distinct chunks, and can be played through in the course of about an hour. There is a prologue section that sets the stage (more of a tutorial), there is a brief jailbreak sequence you can murder (yawn) or stealth (yay!) your way through (a bit boring and tropey though), and then you reach the glorious finale of the game.   And this is where the game really shines.

Living out the rest of your days in a post-apocalyptic shanty town beside the river, you are given a few awesome godlike abilities (you can warp up to rooftops or over some fences), you can explore about, chat with the various other citizens that are in similar situations as yourself.  There’s no combat, no stealthing, no murder — just straight up, enjoyable, fun exploration of this little pub you call home.

There are areas that seem inaccessible at first but soon you find yourself climbing a chain and finding whole new rooms.  Books lay scattered about. You can open up tomes and read the wonderful writing that populates the backstory of this world; you can learn about whaling, or read a script to a stage-play, or clippings from newspapers. Skyrim did something similar, but this feels more connected somehow. The text is more concise and it connects more relevantly to the world around you. I really enjoyed trying to “read it all” as I soaked in the ambience.

They never really tie up some major plot-points; I was hoping for a happier ending (or an ending at all!), and they probably could have fleshed out the shadowy dream dude a bit more. But it still works; the protagonist accepts his fate, and not all stories have happy endings. The city is doomed by the plague anyway; might as well enjoy a nice pint before going out with the rest of them, eh?

There are a few characters that try to bug you with irrelevant side-quests (someone’s uncle is in trouble, blah blah), but thankfully they are not forced upon you.  One of the main characters in this village tries to convince you to murder a public official, but one of the gleaming bits about this game is that it allows you the freedom of choice.  You don’t need to murder anyone; you can just knock them out (or just sneak around them in the shadows). Likewise, you can choose to not go on these side-missions at all; you can just live out your life, like a regular person for a change.

But the absolute best feature of the game is this mechanical heart you hold in your hand. While holding this heart, when you look at something you can press a button to make it whisper secrets to you about that object. I know this sounds crazy but, honest-to-god, this is an actual thing in the game. I stare at my feet and right-click. “There are hounds, down there somewhere. People place bets,” a pleasant voice whispers in my earphones.  I spot a women sitting woefully across the courtyard. “She’s the last of her family,” it starts.  Every person in the world seems to have several “secrets” to them. You start learning about everyone’s lives, their hopes, their dreams.

This feature makes the game incredibly deep. You can hear about your surroundings, about all the details of the people that inhabit the world. It’s as if you hold in your hands an on-demand narrator.

This person over here wants to be a whaler and Captain their own ship… But cannot, for she is a woman.  I walk up next to her and see a deep sadness in her eyes; a longing for travelling abroad, for adventure. She notices me and looks up; you can see her hopes fade and she puts on an earnest face. “Can you help me sir,” she starts.

“I’m sorry, I cannot,” I interrupt. I am a broken man; betrayed by my friends. The city itself seems to want to kill me with booby-traps; and between hostile guards and rat-infested plagues it is simply terrifying to go out into the world. I look down and see I am still holding a sword soaked with crimson regret; a reminder of the deeds I convinced myself I had to do to escape prison. Though the value of this weapon is immense, I hand it over to the woman without thinking twice. “Solve your problems with this, and may god forgive us both.” (The game doesn’t actually allow me to hand over my sword, but the narrative leaves gaps so that you may fill it with your own imagination.)

I haven’t yet fully explored the world (there is a climbable chain leading to the basement, but it looks too spooky down there for me to venture forth – maybe those hounds I heard about are down there?), but I have to say that this game is one of the most fulfilling and exciting raw experiences of exploration I’ve ever had. It’s refreshing to see a game start out as filled with combat sequences, and raise itself up into a nice pacifistic sunset experience so quickly. I’m very happy with my purchase, and I was happy to shut the game down at this point and smile to myself.

I only have one major complaint about the game: The standard RPG-style “loot everything” mentality. I was breaking into everyone’s rooms and stealing their silver trays and little bundles of copper wire. I was happy that all of this loot was instantly converted to cash and there was no encumbrance system, but I’d really like people standing right there to complain about me stealing their most valuable items for a change. I also want to know why people leave coins just laying around everywhere.

I’m pretty excited to fire up Far Cry 3 next. I hope it also has similar exploration and involvement with characters. I can’t wait!

Apr 202013
 

When I try to select a dev environment for my next project, I usually pick the best tools for the job. These days that seems to usually be Haxe/NME, compiled to SWF, wrapped in AIR.  Which is a bit awkward to wield, but it’s effective.

I started jotting down my wish-list for development. I’m thinking this is a pie-in-the-sky, unicorn-like list. But if you have any suggestions, let me know.

  • Must be a higher-level language geared in favour of rapid prototyping (no “months of low-level work” to get things working). It’s fine if this makes for less performance potential.
  • Must produce executables for Windows, Mac, Linux, Browser,  iOS, and Android.
  • Must support (natively or via 3rd party libraries) native-extension stuff for those platforms. Eg: GameCenter on iOS, microtransactions on android, SteamWorks on PC/MAC, etc.
  • Must produce all of those executables from a Windows dev environment.  This is required, for reals, hardcore.
  • Must have excellent audio playback support
  • Must have potential (not necessarily a focus) in 3D graphics (not just sprite-based stuff)
  • Must have good documentation online with a healthy community to ask questions of.
  • Bonus: None of the components should have any names that remind you of Coffee in any way

Right now I think Adobe AIR is the closest to matching that. It can produce all builds from Windows, including iOS, with the exception of OSX builds.  Unity requires mac to do most of what AIR can do on PC.

I hear good things about Monogame too. Any suggestions out there?

Apr 182013
 

Monster Loves You! was entirely written in Haxe/NME, and primarily targets .SWF (Flash) output for the greatest flexibility in reaching all platforms within a single code-base.  This works out well, and PC/Linux/Mac/iOS/Android/Flash builds are all running well from a single compilation. Not having to maintain several branches makes me very happy.

(I recompile the .SWF with Adobe AIR to turn the game into a native EXE for the current Steam release)

To use Steam Achievements (or, in iOS land, GameCenter or various other platform features), you need to create what are called Adobe Native Extensions. These are .ANE files you include in your project, and Adobe AIR compiles them in when it’s time for distribution.

Thankfully, someone already created the .ANE for SteamWorks, and there are a bunch of other native extensions available online ready-to-go. I use several from Milkman Games (in IceBurgers), they work fantastically, and it opens up a lot more meta-stuff that you can do with your games.

But here’s the trick.  The .ANE files are written for AS3, and all the library header files needed for compilation aren’t compatible with Haxe. When I found this out, I panicked!  Would I have to write my own native extensions for everything?

Turns out… No! I whined and complained enough on Twitter that Grapefrukt came to my rescue and figured out.

Step 1

The first thing you have to do is realize that .ANE files are just .ZIP files in disguise. Rename your .ANE and unzip it!

Step 2

Inside the zip file is a file probably called Library.swf. This is the bit we need. Extract that out and put it somewhere.

Step 3

Open up the command-line prompt. You should already have Haxe installed if you are reading this, so this magical command should work for you:

haxe -swf nothing.swf --no-output -swf-lib library.swf --gen-hx-classes

This command beautifully creates empty classes (like header reference files) for all the stuff in the library you want to use.

Step 4

The above command will have generated a directory full of .HX source files.  You can ignore most of the base system stuff (it’ll generate classes for basic things like array.hx and Sprite.hx) and instead pick out the bits you need – for me, that was the /com/company/extensionName/ directory. Copy this directory to your project’s source folder.

And that’s it!

I use FlashDevelop and this negates the need for me to “include as library” any SWC files or “add to library” the .ANE files. Let Adobe AIR compile in the .ANE files as per usual and you are good to go!

Apr 082013
 

I’m trying to test the viability of Monster Loves You! on the new iPad, and I’m running into a bit of a gotcha. Any advice would be appreciated.

(I’m use Haxe+NME and Adobe AIR)

The high resolution of the new iPad means that the background art takes a half second to load for each image (and there are about 40 or 50 of them). This puts a very visible “chunk” into the gameplay, which I work around by pre-loading all the backdrops at load time. Which takes quite a while and takes up a horde of memory, but it works. Still, fetching the image from memory makes a (now smaller) but still noticeable delay.

Worse, pre-loading all the images requires more memory than the iPad 2 has, and it crashes on load right at the start. So I’m stuck with the individual-loading delay no matter what here.

I’m terrified of even glancing sideways at the original iPad.

Is there an easy way to get large (2048×1536) images from the Haxe Asset Library to display onscreen super quickly that I’m overlooking?

Apr 012013
 

Last night was the end of an amazing GDC trip. A handful of remaining friends and I made a journey out to JapanTown and we had an amazing meal. It was a great way to end the trip.

One of my friends, and a fellow game developer, was there for dinner.  Her trip to GDC was planned last-minute, thanks to someone obtaining her a (very expensive!) all-access pass.

When recounting this chain of events, a male game developer at the table said that she only got the GDC pass “because of her tits.”

The table largely responded with aghast looks and silence. It was brought up that perhaps her ticket was thanks to being an award-winning game developer.

The same male responded with the ever-classy “sure, award winning tits.”

Defenses and arguments tried to be brought up, but conversation quickly moved on with the men talking over the woman until she just sat there quietly and resigned.

I’m posting about this because this shit has to stop.

I’m posting about this because I was silent when I should have spoken up. I shouldn’t have let the conversation sweep this transgression under the rug.

I’m posting this because I am tired of being made complicit (due to inaction) when these things happen. I’m tired of having to yell at people for this shit every night at GDC. I’m tired because I want this to end, and I’m tired of having this conversation over and over again.

I’m tired of feeling like shit because I don’t have enough energy to defend my friends every fucking DAY.

I’m terrified of losing friends over this.

I’m not a very confrontational person. Usually I deal with shit like this by making a mental note to avoid the person in the future. And now that my friends’ feelings are hurt and people are accusing me of inaction and being a bad person because of it, I feel like my last few years of championing anti-harassment policies (and ENFORCING them) doesn’t even matter.

It sucks that my entire personality can be judged on my last exchange.

So, hey: if you are a sexist ass around me, and think it’s just ironic meta-humour, know that it’s hurting me. It hurts me for days, weeks, months afterwards. It hurts my friends. It hurts my business. It makes me less creative, it makes me want to just hide in my basement all day. It makes me not want to go to GDC again.

If I don’t tell this to your face it’s probably because I’m tired of having this exchange this week. It makes me feel angry, upset, and sad.  I hope someone links you to this.

And if you’re going to write me to apologize, you’d sure as shit better apologize to the actual people you pissed on first.

I’m so tired.