Unity-Chan Yonkoma Translations

Recently the official Unity-Chan blog has been releasing some fun 4-panel comics (yonkoma) featuring Unity-Chan, drawn by fan artists. Here's a rough translation of the ones posted so far.

From Uni-Yon #1:

Panel 1

  • "Daad, I want my own room to play in."
  • "Hmm, there's no empty rooms...but, there's a warehouse over by the docks, go for it."
  • "THE SCALE [Ed: 3D transform joke] IS HUGE"
  • [Kohaku Ootori] [Papa/Dad]

Panel 2

  • "Ah, uh, wait--"

Panel 3

  • jump
  • "Wha--"

Panel 4

  • "The collision on the floor hasn't been set up yet."

From Uni-Yon #2:

Panel 1

  • "Yeah, my very own playroom! (actually a warehouse)"

Panel 2

  • "Yeaaaah"

Panel 3

  • "Yeeeaaaah"

Panel 4

  • "....there's nothing in here!" "It's empty...empty..."

From UNITY-4! #1:

Panel 1

  • "I made a 'Love Simulation Dropping Blocks Puzzle'..."
  • "What kind of a combination is that?"

Panel 2

  • "First, the 'love part' starts."
  • "Hey, we're childhood friends so should you be acting like that?" --T-Block
  • "With a BLOCK?!"
  • "But that's not interesting at all!""

Panel 3

  • "And you experience the life of a high-school third-year..."
  • "Oh, without me you wouldn't be able to do combos or even rotate..." --T-Block
  • "Why's he saying that?!"
  • "Aaand, moving on to the 'puzzle part'..."

Panel 4

  • "Ah! It 'fell' [Ed: in love]"
  • "Next we'll try the L-Block's route..."
  • "How many years does this game take?!"

From UNITY-4! #2:

Panel 1

  • "Okay, I made a classic 'action game'..."
  • "Oooh, it has a kind of 'retro' feel!"

Panel 2

  • "It pays homage to a certain 'M' character."
  • "Yeah, this hat really sells it. "

Panel 3

  • "You jump on enemies to defeat them."
  • "Ooof--"
  • "Simple is best, eh!"

Panel 4

  • "The enemies are also 'M' [Ed: masochistic]"
  • "MORE, step on me MORE!!"
Asymco presented some hypothetical questions to Eddy Cue and Craig Federighi, hoping that they are asked when the two are interviewed by Walt Mossberg and Kara Swisher at this year's Re/Code conference.

You can go to Asymco's (normally lucid) site to read the questions. I've assembled a transcript of how the two would answer the questions. 

Eddy Cue's Answers:

1) "Because the Apple TV is not a general purpose computing platform. Too many developers would create garbage apps that don't fit in the "channel" metaphor of the Apple TV OS, making it confusing. Besides, Apple TV already supports the legion of apps on the App Store, via AirPlay."

2) "Because no one actually thinks "it's all just content" unless they're thinking at a high level of abstraction. We can't make every single content producer create an app for every single piece of content. Can you imagine how terrible it would be if your library of hundreds of albums were actually hundreds of disparate apps?"

3) "Kara, Walt...are you two high right now? You know YouTube, Vimeo, and others already run on Apple TV, iOS, and browsers on Mac, right?"

4) "Okay, no more questions, these two are definitely high. Let's go, Craig, don't answer anything."

It's a shame, too, because the questions for Craig were a lot more reasonable.

Recent Github Projects

My last post was about a Mac specific menubar template app. Next up is a sleep timer for Windows, which I think works pretty great. 

You might also see a repo called "tablature" with nothing in it. I'm working on that! More updates to come.
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:


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?