For the longest time, I've come up with app ideas that would be great as simple utilities confined to the menu bar as a menu extra, but I never actually got around to learning what that entailed.

Well, it's actually pretty simple, as various tutorials make clear. So, to keep me from making excuses next time, I've created a simple template app and put it up on GitHub

If you have any questions or find a bug (geez, I hope not), write up an issue on Github!
It seems like not a month goes by where I don't get steamrolled by an app feature that makes sweeping assumptions about my particular system configuration. This month was no different. 

If you use Parallels Desktop to run Windows on your Mac, and also have multiple keyboard layouts, Parallels has an undocumented "feature" that will stomp on your Mac input method whenever you switch focus to a Windows application.

The issue is Parallels' assumption that Windows/Mac input methods are exactly equal, and therefore it would make sense to switch input methods whenever switching between Windows/Mac apps. Of course, they aren't equal, and the end result is that Parallels switches my Mac to the lowest-common denominator version on Windows.

In this particular case, when I switch to Windows, Parallels forces my input method away from Kotoeri (Apple's Japanese IME) to the standard "U.S." layout. This causes me to lose functionality upon switching back to a Mac window, like double-pressing the Eisu key to get instant Romaji conversion, but most importantly, I don't even use the U.S. layout in OS X. 

I use Dvorak, and the U.S. layout is there for if/when someone needs to type on my laptop. This might sound like a pretty rare setup(and I guess it is), but similar issues will be encountered for anyone with a unique IME, be it Dubulsik, Pinyin, raw Unicode input, etc etc etc. 

True to form, the undocumented, assumptive feature is not able to be turned off without diving into the .pvm file and editing config.pvs with a text editor, and setting KeyboardLayoutSync to 0. 

Moral of the story: Features that assume too much about a system configuration will end in frustration, and it's an extra slap in the face to have those features hidden, when the relevant settings page is so spartan.

Parallels Coherence Options

When you're jamming on, oh, say, a 48-hour solo game competition, super fine-grained control over the movement of characters/projectiles is something you need instead of being at the whims of a full physics engine.

Unity makes this possible, but the relevant documentation page doesn't exactly spell it out explicitly enough for my tastes.

So anyway, if you're making a Unity game where 1) You're not using the PhysX engine and 2) You want to detect collisions, then here's what you need to do:

  • Give rigidbodies to all your colliders.
  • On those rigidbodies, set isKinematic to true.
  • On the collider, set isTrigger to True.
  • Detect collisions in the trigger functions, OnTriggerXXX(), not OnCollisionXXX().

That's it! I'm happy I figured this out during a Ludum Dare, and not on a more important project, but either way I'm glad I know what to do next time.

TechJournos: JTop Posts Without Reading

Joshua Topolsky has made a living out of breathlessly writing about tech trends that he and his teams don't understand, so this is really just the latest straw on that poor camel's back:

jtop_icon

In case you didn't follow the original post days before Topolsky stumbled upon it, a designer decries a certain type of icon, claiming (without any evidence or citations) that they cause more work for the human eye, and are therefore bad design.

(Yes, of course that same author posts the exact kind of work he's decrying on his own Dribbble page. Would you expect any less?)

Nicalis' Scummy CaveStory+ Update

Nicalis, the publishers of Cave Story, have a version on the Mac App Store called Cave Story+. I saw this gem in their update notes today:

Scumbag CaveStory Update

So, "your data will be erased due to how data is handled via the App Store?" Seems like Apple should reject Cave Story+ updates for 1) lying and 2) deleting user data. This unfortunate bug is due to where Nicalis saves player data, and is no fault of Apple's. 

Can you imagine how bad it would suck if every developer deleted all your data upon update?

Good to see the insanity of lazy financial analysis isn't confined to Apple:

Nintendo will be forced to reform its approach to gaming and will start selling its software titles on mobile devices such as smartphones and tablets, rather than pushing its hardware as its sole avenue of distribution.

Spoken like a true outsider, with no clue how Nintendo is structured or what its internal teams are capable of making.

This is a post-series I should have started a long time ago. Kickstarter is a website that lets you invest in projects that are ambitious, daring...but might not be attractive to traditional investment channels (software publishers, VC, etc etc etc). However, the site is structured to make "backers" expect physical/digital products in return for their money, despite the fact that what they're doing is "backing the project," not "buying a product." Kickstarter is not a store, and various KS projects prove it all the time.

The Double Fine Adventure Kickstarter Project was, in my opinion, the first KS project to really set the standard of ridiculous goals for software development projects. The words "stretch goals" never even appear in the project's pitch/updates, but you can see in their blog that they didn't take their ridiculous overfunding seriously, and now here we are a year later with an over-budget, twice-delayed software project.

The sad thing about this is that the Double Fine Adventure could have been an on-time, under-budget $400K-$1M project, and everyone would have won. That's one of the poisonous things about Kickstarter; encouraging extra goals past what you've pitched. The pitchers haven't thought enough about these extra goals, or what they would do with the extra cash (hint: it should be "profit") should they receive it.

I tweeted out a (somewhat general, not targeted) complaint to @TimOfLegend on Twitter, and his response was understandable in a perverse way; since they're paying their own money to finish the game, and still fulfilling backers' promised rewards, isn't that okay?

But this is exactly what I'm getting at: If Double Fine had just made a game that could have actually been met with a $400K budget, there would be no stress in the budget, and the delays would likely have been much more tolerable.

Kickstarter is not a store, but is it too much to ask the project managers to just make what you pitched?

So many gems in this Gamasutra article (originally printed in GameDeveloper Magazine's final issue) about the opportunities afforded to game designers when planning your game's ending, but I'm going to stick to the wrap-up quote, as it really struck a personal chord:

It was the existence of this magazine that gave me my first glimpse into the murky, somewhat-secret society of game developers...It's much later now. We have internets, game developers are meeting with vice presidents, and 99.9% of people under 25 have played video games. It's a world in transition, and I cannot wait to see what happens next... Thanks. Thanks for that, and for all the other stuff.

...That is my truth on endings: I mark them, I use them to reflect, and if I can get away with it, I give thanks to people who have had an impact on my life...

As a college student, joining IGDA (and, at the time, thusly getting GameDeveloper Magazine) was my first "real" visibility into the world of game development. Suddenly, the code I knew how to write had more meaning. Suddenly, I couldn't just run a UNIX cluster or program a spreadsheet, I could make worlds. I couldn't just find cheap flights and detect credit card fraud, I could find the shortest path to my teammate, and detect visible enemies. Without GameDeveloper Magazine, I wouldn't have the drive and inspiration that took me to where I am today.

Thank you, GameDeveloper Magazine. You have inspired generations of game developers, and I owe a personal debt to the legions of artists, programmers and designers who have shared their knowledge with all of us.

UI Facepalm: The Daily Beast's Ads

It appears Mr. nwab has a serious message for me, obscured by that darn social media widget:

Mr. Nwab

UI Facepalm: Adobe Revel for iOS

I've never used Adobe Revel before. On first opening, I have photos from some other Adobe service, in this nicely-named folder:

Adobe Revel