More iPhone adventures
Wednesday, August 13, 2008
Comments: 3 (latest 1 day later)
Tagged: adventure games, ifdb, frotz, quick links, iphone
A quick note: Craig Smith has ported Frotz to the iPhone. This means that you can play I am not kidding hundreds of text adventures, including all of mine. Frotz is a free download in the iPhone App Store. (It's a Google code project.)
The app comes with a nice stack of games. (Including the famous Zarf games A Change in the Weather, Spider and Web, and The Dreamhold. Also the famous not-by-Zarf-but-he-shows-up game Being Andrew Plotkin.) But the really boss trick is that it lets you browse IFDB, directly from the Frotz app. Select any Z-code game, and it's automatically downloaded and added to your game list. Think of it as a mini App Store for IF -- only all free.
(I really have to adopt some cover art for my games. I did a cover for Shade that I rather like. For the rest, I will go back and look at Emily Short's IF Cover Art Drive. There were some great contributions in there, but I never bestirred my butt to accept any of them.)
iPhone Frotz is a 1.0 release, and I see some rough edges, but very small ones. The worst problem I've found is that The Dreamhold plays very slowly -- not every move, but when you do something interesting. This bothers me, because The Dreamhold is my shot at an introductory IF game -- it's designed to coach players who have never tried IF. I want it to run well. My current theory is that displaying italicized text is much slower than printing plain text.
More later. (I forgot to charge Mr Shiny since getting back from vacation, and I should save what's left of the battery for, maybe, receiving phone calls.)
Comments imported from Gameshelf
Andrew Plotkin
(August 13, 2008 at 8:32 PM):
Hi! Thanks for commenting.
I retried Dreamhold after installing the 2.0.1 iPhone OS. It's much faster now. (This morning, with 2.0.0, it took me twenty or thirty seconds per move to go "east" twice.) I don't know whether this is a specific software improvement in 2.0.1, or whether it's some knock-on effect of all the rebooting that happened during the update process, but I'm a lot less worried now.
No way to append to the content? Aargh. Horrendous is the word. (Can't Javascript update an HTML widget dynamically?) (I speak from a position of total Cocoa ignorance.)
You talked a little about the Glk/Glulx issue on Emily's blog... I tried to make the arbitrary window splitting as implementable as possible. I have a working Javascript/HTML implementation, in fact, although I had to use CSS absolute positioning to place each text pane. Feel free to email me for details.
Failing that, you could support some Glulx games by only allowing the game to open two windows -- a grid pane above and a buffer pane below. (Just reject all other split requests.) Then implement these using the code you have now. Any Glulx game that used the default window arrangement would work; others would fail (and probably die at startup), but it's better than nothing.
Craig Smith
(August 14, 2008 at 2:41 PM):
I sent an email reply to your eblong.com email address. Just letting you know here in case it got spam-filtered.
Craig
Hi Andrew,
I'm the developer of the iPhone port of Frotz.
I'm glad you like it, and I thought I should return the compliment. I think your IF games are fantastic and was happy to include a few of them so iPhone users new to IF can enjoy them. (In retrospect, A Change in the Weather might be a bit too cruel to include, but it was the first Inform-based game I played after Curses and holds a special nostalgia for me.)
There definitely are some performance issues that I'm pretty sure are related to formatting text. Hopefully I can find ways to better optimize performance, but if not, I'll resort to truncating the scroll back window to a few pages of text, and I'm pretty sure that will help a lot.
The text output uses HTML under the hood (because the iPhone APIs don't include much in the way of text rendering, this was the only way I could figure out to do it), and is expensive to render. There's also no way to append to the content, so I have to rewrite the entire text body with each update, which is horrendous for performance. Hopefully Apple will flesh out their APIs and make things like this easier in the future.
Regards, Craig Smith