Torches & Tonics

Helsing’s Fire for the iPhone OS is a puzzle game with a clever mechanic and terrific presentation

HelsingsFireTorch.pngI’ve been neglecting my site for iPhone OS recommendations, but I haven’t forgotten it. But I didn’t want to wait until I could fix it up before recommending a cool new game that, for me, perfectly encapsulates why the iPhone is such a genuinely exciting platform.

The game is Helsing’s Fire by developer Ratloop, published by Chillingo. It’s a puzzle game in which you destroy creatures of “The Shadow Blight” with a combination of Professor Helsing’s torch and his assistant Raffton’s tonics. The puzzle is positioning the torch so that your target creatures (and only your target creatures) are hit by the light of the torch, and then using the matching-colored tonic against them. It’s a simple, clever, and surprisingly engaging mechanic that I’ve never seen in a game before.

It’s a good thing the mechanic is so novel, because the puzzles themselves take a long time to get interesting. The entire first screen of the game is no challenge at all, and it takes a while for the game to start throwing new complications at you. In effect, the first 20 or so puzzles play more like a “software toy” than a puzzle game. But the puzzles are generated randomly, so you’re free to keep experimenting.

That sense of experimentation is the most interesting thing about the game, since it’s so rare for puzzle games. Typically in a puzzle-based game, you’re expected to think of a solution first, and then start interacting with the game to put the solution in motion. In Tetris, you find where the piece fits, then move it into place. In Bejeweled, you find the match, then click or tap on the screen to make the swap. And in an adventure game, you stop and think about what item works with what object, then try the combination to see if it works. It results in the player “switch modes” throughout, alternating between passive and active, and it can be a turn-off. On the other end of the scale, you’ve got physics-based games, where the developer just sets up a condition and lets you do whatever you can think of to hit on the right solution. That has its own set of problems, since to me it always feels like I’ve just interacted with a simulation, instead of interacting with the developer — there’s too much randomness involved to make me feel like I’ve accomplished anything.

I think that the torch in Helsing’s Fire does a great job of splitting the difference: you’re constantly moving the torch around, seeing how the light interacts with obstacles, actually playing the game. Not just staring at a screen waiting for inspiration to hit.

HelsingsFireChars.pngAnd even taking all of that into account, the puzzles aren’t even the best thing about Helsing’s Fire. The presentation is fantastic — you can tell that the developer’s a fan of Mike Mignola’s work on Hellboy (and Edward Grey: Witchfinder), which earns it double plus extra points with me. It’s not just in the artwork, either, but in the tone of the whole game. It doesn’t take itself seriously, but isn’t filled with desperate attempts at humor, either. The dialogue’s clever and used sparingly, and the music carries the tone throughout, blending a contemporary-sounding track for the puzzles with a title-screen track that reminds me of a 16-bit Castlevania game.

And best of all: the victory screen for each puzzle has Helsing and Raffton giving each other a fist bump or high five, one of those completely gratuitous touches that can send a good game over the top.

According to the credits, only two people worked on the game, but you wouldn’t know from playing it. It’s got a professional level of polish to it while still feeling weird and novel enough to be an indie project. And it’s only a dollar, so there’s absolutely no reason not to recommend it. Even if you breeze through all the puzzles, you’ll be entertained while doing it.

Reeder for iPad

The Reeder app is finally available for the iPad, and the iPad finally feels useful

I’ve got a pretty nasty RSS feed-reading habit. I’m currently subscribed to 116 feeds (down from around 200 at my peak), and I start to feel anxious and disconnected if I go too long without sucking from the webtap. I blame NetNewsWire by Brent Simmons, which set the standard for how a desktop RSS feed reader should be written. It’s so extensible and so efficient, it practically makes fun of you if you’re not keeping track of thousands of posts in hundreds of feeds.

One of the most important things I was looking for in the iPad was a way to make the whole feed-reading ritual more enjoyable and less like work. Instead of getting up in the morning and immediately sitting in front of the computer to pore over news articles like a less effective Winston Smith, I could lean back on the couch like they show in the Apple ads, and develop some kind of “morning paper”-esque ritual that would make me feel more like a bonafide grown-up.

The iPad version of NetNewsWire was released at launch (or maybe soon after), and I’ve been using it since then. It’s fast and efficient, but it just didn’t flow as well as it does on the desktop. It understandably stays very close to Apple’s established UI for iPad apps, which is part of the problem: I don’t like the standards Apple’s put into place. They claim that “it doesn’t matter” how you hold the iPad, but their own system of pop-ups and full page views ends up giving every app two modes: an orientation that’s efficient (usually landscape), and one that’s enjoyable to use (usually portrait). With NetNewsWire, it meant a lot of flipping the device around — landscape to get through lots of posts quickly, portrait to read in depth — and forwarding the ones I wanted to read in greater detail to Marco Arment’s outstanding Instapaper app.

There’s a separate app called Early Edition that compiles newspaper-style page views from your available RSS feeds, but it wasn’t quite what I wanted, either. It was kind of the opposite extreme to NetNewsWire: nice-looking, but not as efficient. What I really wanted was something that would split the difference: good for reading single posts in detail, efficient for scanning through blogs that could have hundreds of entries, and a seamless way to switch between the two modes.

Reeder for iPad by Silvio Rizzi is exactly that. I’d already been a fan of the iPhone version of Reeder, but reading lots of text on a cell phone is never going to be ideal. The iPad version, though, gets just about everything right. I started gushing about it as soon as I tried it, but it’s really not an exaggeration to say that it’s turned the iPad from an overpriced novelty to a genuinely useful computer.

Here’s why I like it, with pictures. I really do believe that the interface is worth studying; anybody who’s considering making an iPad app should look at how Reeder does things and why they’re usually a good idea.

Continue reading

Stress Test

Some days it ain’t easy to be a fan of Apple

iphone4stresstest.jpg
Here’s a fun game as long as you have a very loose definition of “fun” and “game:” see how long you can watch the iPhone 4 “Design Video” before all the hyperbole and breathless exclamations of wonder make you have to turn it off. I lasted until the head of iPhone OS Software said he was blown away by a video conference call.

(And yeah, I’m going to avoid calling it “iOS” for as long as I can because I think that’s a dumb name).

Maybe it’s just because I assumed video conferencing was something that all other non-iPhones could already do, but Apple exceeded my tolerance for marketing with this whole push. To hear them tell it, they make it sound like the polio vaccine and the discovery of fire were baby steps on the way to a backside illumination sensor. (Great for both a band name and a sex act).

Sure, all the Apple reps talked about the iPad as if at any moment they were about to put a hand up over the camera and ask for a moment to recompose themselves. But that’s understandable — the iPad is kind of a tough sell. Unlike the iPad, everybody knows what an iPhone does, and this is a better one.

And I think that’s ultimately what my issue is: the new version is basically a no-brainer of an upgrade. Based on Engadget.com’s recap and hands-on, it’s got just about every single thing that’s been missing from my current 3G model: the iPad’s processor, a better display, a better camera, a forward-facing camera, video recording, thinner form factor, less plastic-feeling build, Wireless N.

I usually go through my ritual of denial-acceptance-preorder-purchase-guilt whenever Apple releases a new iThingToBuy, but there’s none of that here. I’m going to get one, it’s going to replace both my phone and my point-and-shoot camera, and I’m going to get a lot of use out of it. It would’ve been a completely stress- and guilt-free first world purchasing experience, but then they had to trot out the video. And that just makes me understand why so many people roll their eyes at the sight of an Apple logo and accuse people who like their products of being “cultish.”

I said “just about every thing,” because it’s still missing compact flash storage, and it’s still tied to AT&T. I understand why they don’t do the compact flash — so the price difference between the 16GB and 32GB models will go to Apple instead of SanDisk.

But I’d sort of hoped that after years of profiting from flash memory markup on the iPhones and iPods, Apple had collected enough money to buy its way out of AT&T exclusivity. Like just about everyone else with an iPhone in San Francisco, I’d love to drop AT&T, and their reneging on the unlimited data plans just makes me want to even more. But Apple may have saved them once again, by putting out a phone that’s appealing enough to make up for being lousy as an actual phone.

Everyone's entitled to my opinion

Only the finest things are recommended by Spectre Collie.

I got a totally not-lying, for-real request from an actual human being to make a list of my favorite iPhone apps and put it online. Seriously — making lists and giving out my opinions unsolicited are two of my favorite things to do, and now I’m being encouraged to do them.

So I put up a Tumblr log, called Recommended by Spectre Collie, which I’ll eventually expand on and possibly incorporate on this site, depending how ambitious I get and if I ever get more free time. For now it’s only got a few iPhone games, but eventually it could be a repository for anything I’d like people to buy, read, or watch, and then come back and thank me for pointing it out to them. The RSS Feed is here for people who swing that way.

Incidentally, if you weren’t aware, and you’re interested, there’s already another Tumblelog called SpectreCollie Annex that links to my favorite stuff from YouTube, Flickr, and random websites (when that works).

Helpful Tips for Adobe

I’ve been getting increasingly annoyed with Adobe’s attempts to spin the whole Flash-on-iPhone OS story.

underdogcover.jpgIn a blog post on Tuesday, Mike Chambers of Adobe announced that the company was abandoning its plan to support creation of iPhone OS apps using Flash CS5. The post is less emotional than Lee Brimelow’s “Go screw yourself, Apple” but every bit as whiny.

All the angles on the issue have been covered extensively on tech blogs, in particular Daring Fireball, so you won’t see any particularly novel insight here. But I haven’t yet seen them all gathered in one place. Apple has gotten a lot of criticism across the internet — much of it entirely deserved — for its App Store approval policies and the closed system approach it’s taking with the iPhone OS. And it bugs me to see Adobe employees — whether representing the company as with Chambers’s post, or not as with Brimelow’s — getting so much traction by taking advantage of that ill will, when Adobe doesn’t have a leg to stand on.

After citing various stories about Apple’s rejection policies and an even-handed piece on Slate called Apple Wants to Own You, Chambers goes on to say that Adobe will be shifting its focus with Flash CS5 onto the Android platform. Here are a few helpful tips for Adobe that might make this next choice of platform go more smoothly:

1. Don’t promise something to your customers unless you’re sure you can deliver.

Adobe’s claiming that Apple suddenly introduced a new clause to the developer program license that blew all their hard work out of the water. How could they possibly have predicted that Apple would so cruelly impose a last-minute ban of Flash on the iPhone suddenly out of nowhere? I mean, sure, the iPhone has been out for three years now and it’s never allowed a Flash player, but with Apple’s draconian secrecy, who knows why that is? Okay, fine, the CEO of the company has repeatedly said that it’s for performance reasons and battery life, but that’s just spin. Adobe had no way of predicting that the company that’s refused to allow Flash on their devices would suddenly decide not to allow a program that runs Flash. It’s all Apple’s fault!

2. Have a chat with Google and Motorola first.

There’s no way that a small start-up like Adobe could’ve communicated with industry giant Apple, either. Who even knows those guys’ email addresses? Plus, they’re scary: Gizmodo made a whole post about the guy whose book-reading app was rejected for containing adult material. Who’s to say that the exact same thing wouldn’t happen to a multinational corporation proposing to create a new development environment for the platform? Unlike Apple, Motorola and Google are pledged to complete openness, and they won’t have any qualms about performance or security on their branded Android OS devices. You probably don’t even need to ask first.

3. Try running your software on the device in question.

Apple’s reasons for refusing Flash are so arcane and mysterious that nobody can figure them out. Even though it’s been said repeatedly from multiple sources both inside and outside Apple that Flash is a hit on performance on battery life, that’s just idle speculation. Better to try to sneak something in instead of actually trying to find the problems with interpreted code and non-standard video playback and getting it to run acceptably.

4. Don’t use a Mac for development.

Because if you want to get anything done, you’ll have to use Adobe software, since Adobe has near-total market dominance in every area of production. And Adobe software runs like shit on a Mac. Mr. Brimelow, I suggest that your talk about the long relationship Apple and Adobe have had with each other would be more convincing if you had a dramatic backdrop, or a YouTube video playing in the background. For the backdrop, you’ll want to use Photoshop CS4, the first version that supports a 64-bit OS, which came out a year and a half after OS X converted to 64-bit. And for the YouTube video, be sure you speak up loud, because playing anything with the Flash video player on a Mac will cause your computer’s fan to kick into overdrive from the increased processor load.

5. Consider what “cross-platform” means for a platform built entirely around its unique identity.

If the blog posts from employees weren’t enough to convince you that Adobe’s committed to cross-platform development, then running any piece of Adobe software — especially any AIR app — should do the trick. Using PhotoShop or Flash on a Mac means that you get to give up everything that made you choose the Mac OS in the first place. The closest they’ll come to “Mac look and feel” is begrudgingly including a “Use OS Dialog” button on their file dialog boxes. But the iPhone, even more than the Mac, is specifically branded as a device that wins not on features, but on the OS.

Chambers makes a point of saying “While it appears that Apple may selectively enforce the terms, it is our belief that Apple will enforce those terms as they apply to content created with Flash CS5.” Or in other words, Apple will allow Unity, .NET, et. al., but is singling out Flash/Adobe to screw them over specifically. Adobe’s complaining about Apple not giving them fair treatment is a lot like a polygamist accusing one of his wives of cheating.

6. Have someone define “closed system” to you.

Apple already covered this one beautifully with its terse and awesome response to Chambers’s post:

“Someone has it backwards–it is HTML5, CSS, JavaScript, and H.264 (all supported by the iPhone and iPad) that are open and standard, while Adobe’s Flash is closed and proprietary,” said spokeswoman Trudy Muller in a statement.

This is the most galling part of the whole thing, to me: Adobe’s desperately grabbing on to Cory Doctorow’s coat tails and waving the flag of intellectual freedom, while simultaneously suggesting that the iPhone OS is gimped because Flash has something like 98% market saturation with internet video.

The best explanation I’ve seen is from Louis Gerbarg on his blog: allowing Flash, or even iPhone-targeted Flash, onto the iPhone would mean Apple effectively turning its OS development cycles over to Adobe’s engineers. It’s the same reason they’re so uptight about developers using private frameworks: if they change something with an OS update, the app breaks, and customers complain to Apple. Not the developers.

Adobe’s essentially going into a store, handing the owner a big black box, refusing to let the owner see what’s inside, and then complaining about freedom and openness when the owner refuses to sell it.

7. Learn to appreciate the monopoly you’ve already got.

It’s not particularly insightful to point out that the environment Apple’s created with the iPhone OS is very similar to the environment that game developers have had to deal with for years. Game console manufacturers have very tight restrictions on what they will and won’t allow to run on their devices — if you think that Apple’s approval process is complicated and draconian, you should go through Nintendo’s technical certification process sometime. (Note that this isn’t a complaint: the certification process means it’s much, much harder to find a buggy game that crashes your system or runs poorly on your particular console configuration).

And the lesson in game development is that content is more of an investment than code. (At least, code written in a particular language. And that’s partly my programmer bias showing through, where it’s a point of pride that once you’ve learned how to do something in one development environment, it’s much easier to do the same thing in a different one). Art assets will port from platform to platform, even if the code base doesn’t. [More on this in point number 10.] I have yet to see a game company that didn’t use Photoshop to generate art assets, and most also use a combination of Illustrator or AfterEffects or any number of other Adobe products.

8. Come out and acknowledge who multi-platform development benefits, exactly.

There is an ease-of-use and familiarity benefit to using Flash. But Adobe reps hardly ever mention that. (As someone who’s developed games using Flash and using Cocoa, I can kind of understand why Adobe wouldn’t push the “ease-of-use” or “predictability” claims where Flash is concerned). Instead they talk about cross-platform capability. An independent developer might be drawn to Flash for, say, making a game because it’s an environment he already knows. A publisher would be drawn to Flash for being able to make the same game for the iPhone, Android, Web, and anything else.

And this makes it a little bit like trying to explain to poor people why they shouldn’t vote Republican: they don’t care about you. Adobe isn’t going to make such a big stink, or for that matter build a campaign around a new feature in one of their flagship products, for the indie developer who’s going to blow a thousand bucks on the new Creative Suite. Adobe wants to get publishers to buy site licenses. And publishers want to make something once and then get it onto as many platforms as possible, because for a publisher, development time is more expensive than hardware purchases, testing, and customer support. Smaller developers will quickly reach the point where having their product on multiple platforms is costing more than the revenue it’s generating.

So when Chambers says:

The cool web game that you build can easily be targeted and deployed to multiple platforms and devices. However, this is the exact opposite of what Apple wants. They want to tie developers down to their platform, and restrict their options to make it difficult for developers to target other platforms.

what he means is: Apple includes a free development environment on their machines, to encourage people to buy their hardware. It comes complete with documentation, visual design tools, and built-in animation and layering libraries that make it relatively easy to achieve Flash-like results using native code. However, this is the exact opposite of what Adobe wants. They want to tie developers to Flash, to ensure that they have a proprietary development environment that’s most appealing to larger publishers, and restrict their options to optimize the runtime to target any particular platform, guaranteeing that it runs equally bad everywhere.

The “cool web game” bit is there to make it sound like the guy sitting in his bedroom who’s just finished his cool Bejeweled clone-with-RPG-elements can just hit a button in Flash CS5 and suddenly be rolling in heaps of money from App Store sales. And to the smaller, independent developers who would like to try releasing their games for multiple platforms: learn Objective C. It’s not that difficult, and you’ll have developed another skill. That to me seems more valuable than getting upset that a game designed for a mouse and keyboard on the internet won’t port to a touch-based cell phone without your intervention and a little bit of effort.

9. Make a genuine attempt at an open system.

If Adobe really is all about content creation, and if they’re going to insist on jumping on the anti-Apple “closed system” bandwagon, why do it for an inherently closed system? They’ve got one development kit that requires a plug-in and forces all its content into a window on a webpage, and they’ve got another development kit that works with HTML and PHP but nobody uses it. Why not put their content creation software expertise to work creating stuff that’s genuinely based on open standards?

There are tons of great HTML 5 demos getting passed around the internet, and they’re all done with a text editor. (And, most likely, Photoshop). Why not take the Flash front-end, since people like it for whatever reason, and let it spit out HTML 5, CSS, and JavaScript? ActionScript is already a bastardized sub/superset of JavaScript. HTML 5 has a canvas element and layering. There’s a browser war going on, where everyone’s trying to come up with the fastest JavaScript interpreter; only Adobe can make Flash Player plugins run faster, and they don’t have a great track record at that. Flash that doesn’t require Flash Player would be huge. No doubt Flash has some power-user features I’m not familiar with, and of course Flash Video is a whole different topic, but I’ve never done anything with Flash that couldn’t be done according to the HTML 5 spec and some clever JavaScript.

10. Stop the damn whining already.

Brimelow closed comments to his post to avoid “the Cupertino Spam bots,” and Chambers warned that non-constructive comments such as “Flash SUXXORS!” would be deleted. Because, as everyone on the internet knows, anyone who defends Apple for any reason, ever, is automatically a drooling Apple fanboy who believes Steve Jobs can do no wrong.

Which means, I guess, that everyone in the tech industry is 12 years old.

What these guys need to understand is that complaining about Adobe’s closed, proprietary system doesn’t automatically make Apple’s good, and vice versa. (Although it’s a big point in Apple’s favor that they don’t try to claim that their system isn’t closed). There are definitely problems with iPhone development.

The restriction on interpreted code does indeed suck, and is the biggest problem that Apple needs to find a solution for. When I mentioned that game developers have spent years learning how to port games to different consoles, I didn’t mention that the key to that is often a scripting language, like Lua. That allows a big chunk of code to be included in the portable game “content:” tailor the engine specifically to each console, but let the game logic stay fixed. (In theory, anyway). If Apple would just have a set of approved scripting languages — instead of just JavaScript via WebKit — and include them with the OS, it would open up a huge number of possibilities. The appeal of Lua on a mobile phone is even more evident than on a PC: it’s tiny, relatively efficient, and too simple and general-purpose to cause many problems when the underlying OS gets updated.

(I’d be remiss if I didn’t mention again that an iPad-native equivalent of HyperCard would be sweet. It could even use the Keynote front-end and run everything with WebKit. If you need a consultant on the project, Apple, let me know).

The other problem is the lack of transparency in the approval process. I mentioned that the certification requirements for consoles are a lot more complicated than those for the App Store; the advantage, though, is that they’re very explicit. You can and will still get surprised by a rejection, but a lot of the more obscure problems are solved when there is a huge list of requirements and developers are forced to test everything.

As for the other objections that are so often brought up, they seem reasonable enough to me. Yes, the state of file management on the iPad is really terrible right now, but I’m confident it’ll improve. Sure, Apple can reject an app for “duplicating functionality” of one of its built-in apps, but that situation is fluctuating (witness their support for VOIP apps like Skype, and browsers like Opera Mini) and the core apps are functional enough anyway. (Rejecting an app for the “pinch to preview a stack of pictures” functionality is pure bullshit, though).

And Apple can and does reject apps based on content alone. But as John Gruber pointed out, Apple’s still selling a brand as much as a platform. That’s the fundamental philosophical difference between the Android model (and Adobe’s whining) and the iPhone model: Android is selling you on the idea that you can run anything, Apple is selling you on the idea that you can run anything good. That’s why it’s a good thing that both platforms are available to both developers and customers. If you want a general-purpose phone that can run anything you throw at it, including ports of web games, then get an Android. If you want only the stuff that’s been specifically tailored to run well under the iPhone OS, then get the iPhone.