Monday, October 9, 2017

Thaumistry: design ruminations

When I mentioned to my friends that I'd finished playing Thaumistry, the first thing they asked was: "Is it old-school?" What a delightfully multivariate question! The answer is "yes and no", of course, but let's not drop it there.
Bob Bates is old-school, because he wrote for Infocom. But he's at the tail-end of Infocom's history: Sherlock and Arthur were two of the final titles in the Infocom canon, as the company tried to push forward into audio and graphics. So in that sense, he's modern. And Bates is better known for his work on the graphical adventures of Legend Entertainment. That was "modern IF" in the 1990s, but it's pretty old-school today, isn't it?
Thaumistry was published with Kickstarter support, and there's not much more modern than a Kickstarter game. Someone will say "how about a game that avoided Kickstarter because that bubble has burst," but let's not be cynical. I like to point out that Hadean Lands got 700 backers and $31000 in 2010, whereas Thaumistry got 1000 backers and $35000 in 2017. That makes the Kickstarter audience for parser IF look awfully stable, doesn't it? But my very rough comparison of the backer lists doesn't convince me that they're the same crowd. The lists overlap some, but they're not primarily the same group.
I don't know what the moral of that is. I backed the Thaumistry KS, in case you're wondering.
What I'll say is that even though Bates is a generation older than me, Thaumistry was constructed within the context of modern IF. I recognized many of the names who tested the game and helped develop the app. I was around when Bates asked coding questions on the intfiction forum. He used TADS 3; he took advantage of a modern parser. The game lays down prose as needed, free of that 1980s sense that every word is a precious commodity. (Or the late-1970s sense that every letter is! Ah, Scott Adams.) It understands that X is short for EXAMINE. It lets you UNDO three whole times in a row.
The game adheres to that principle (more modern than Infocom, but older than Myst!) that the player should not have to worry about getting stuck in a corner and needing to start over. There is one spot where you can die but it's heavily signposted. ("Now might be a good time to save your game," the game says. Even if you don't, UNDO has you covered.) It also supports autosave, which is absolutely necessary for any modern game -- not just IF!
And yet, with all this, Thaumistry feels... old-school. Not the implementation (solid) or the puzzles (reasonable) or the writing (energetic, usually funny). It's about the way the protagonist is presented. Or not presented.

Sunday, September 17, 2017

Meanwhile: now in development for Mac and Windows

I wrote that long post about SkiaSharp in Unity, but I never answered the question: what kind of Unity project am I working on, which requires vector outlines and polygons?
Here's your hint:
Almost six years ago, I released Meanwhile: an Interactive Comic for iPhone and iPad. I've since ported it to Apple TV, but folks without Apple hardware have been forced to live without it. (Or to buy the hardback graphic novel, which I admit is a fine alternative.)
But relief is in sight! I have started building a Unity port of Meanwhile, and am working towards a Steam release for Mac and Windows.
For those who aren't familiar with Jason Shiga's nonlinear tale of mad science:
On the way home from the ice cream store, little Jimmy discovers a mad scientist’s wonderland: an experimental mind-reading helmet, a time machine, and a doomsday device that can annihilate the human race. Which one would you like to test out first?
Meanwhile is not an ordinary comic. You make the choices that determine how the story unfolds. Meanwhile splits off into thousands of different adventures. Most will end in doom and disaster. Only one path will lead you to happiness and success.

Sunday, September 10, 2017

Aporia: design ruminations

I occasionally repeat the mantra, "All game genres hybridize over time." Today's example is Aporia: Beyond the Valley, which presents itself as a Myst-genre puzzle adventure game. Okay, it's a graphical adventure game and it's got puzzles, but I was surprised at how much it didn't remind me of Myst. (Or that genre's modern exemplars, like Obduction or Quern.) Aporia reminded me of several different games, in fact, at different points.
The game opens with an extended introduction which I would call "linear" if that term weren't entirely dessicated. It is, at any rate, an amble down a trail of minor obstacles, geared to teach you mechanics rather than work your little grey cells. Fine; every game starts that way. But Aporia's intro is long enough to let you assume that you've got the rhythm of the entire game. Paths branch just enough to give you the sense of exploration, without letting you miss the next locked door or the key that opens it.
So that's not quite Myst / Quern / Obduction. The usual adventure formula gives you a small introductory area, and then throws the gates open on a world of puzzley madness. Aporia's guided exploration (with wordless narrative and a bit of resource-foraging) is more like, say, Ico. I don't mean it has combat or serious platforming; I just mean the shape of the map. Complex geography with a clean route through to the next area.
Then you pass through a major building, and the gates are thrown open on... a world. The valley. This is a game about a valley, remember? And the valley is enormous, wide open -- a puzzle shrine here, a puzzle building there, but primarily hills and rocks and waterfalls and trees and marshes. You've gone from Ico to Shadow of the Colossus.
That's not the usual adventure formula either, is it? I love open-terrain exploration, but coming from the Myst mindset, I suddenly wanted to wail: guide me! Show me a shiny beacon of goal in the sky! Where's the next locked door? Where am I supposed to solve?

Friday, September 1, 2017

Late Mysterium news roundup

Mysterium was the weekend of August 5th in Orlando. I didn't go, and I had trouble with the Twitch stream so I couldn't watch the presentations either. Happily, the team has gotten the videos up on Youtube, so I've been able to catch up on the Cyan Q&A.
Every year Rand Miller makes himself available for a chat with the fans. This year he was joined by Ryan Warzecha and some of the other art and production people at Cyan.
These Q&A sessions generally don't produce earth-shaking announcements, but there's usually a few interesting bits of company background and hints of what's to come. I've transcribed the niftiest; you can watch the whole 90-minute video if you want. Just remember that it was recorded a month ago.

Wednesday, August 30, 2017

Your load is too heavy: Zork deep reading

This past weekend a screenshot went around Twitter (my part of Twitter at least!)

weight = num_items * Max_held_mult;
  if( weight <= random(100) ) ?label8;
  print "You're holding too many things already!";
  new_line;
  rfalse;
.label8;
  move noun to player;
(-- @icculus, Aug 26)
The clear reading of this code (as the screenshot says) is that the inventory limit in Zork 1 is random, not a fixed number of items. Each item you pick up makes it more likely that you'll hit a "holding too many things" error. But since it's a random chance, you can just try again -- it might work next time.
This was passed around in a commentary cloud of "This game was unfair," "games in the 80s were terrible," and so on. (See this NeoGAF thread, for example.)
This is fascinating! I played Zork, as I played all the Infocom games, and I didn't remember this inventory detail. It felt dimly familiar when I was reminded of it, though.
Research time!

Monday, August 28, 2017

Using SkiaSharp in Unity

For the past two weeks I've been trying to make SkiaSharp work inside Unity. It has been zero fun but I got it to work. Painfully and creakily, but it works. I suspect I'm the first person to do this so I'm going to document the process here.
Yes, this is for a game project. I'll let you know when it's closer to release.
Background: Skia is an open-source 2D graphics library from Google. It lets you fill and stroke vector shapes (polygons, circles, spline curves, text). 2D graphics features are easy for native apps and web pages, but Unity doesn't have any such feature.
(There's LineRenderer but that's very limited. No polygon fill, no true curves.)
Skia is a native library -- you can download compiled libraries for Mac, Win, Linux, etc. Then the Xamarin people created SkiaSharp, which is a C# wrapper for Skia. Problem solved, right? Drop the library into Unity, build Mac and Windows apps, go.
Nope. It was a headache. But I made it work, in a very clunky way.
UPDATE, SEPT 4: Many thanks to Marshall Quander, who read my original blog post and clued me into the right way to set things up. Or, at least, the less-wrong way. This post is much shorter now!
I'm not going to describe every blind alley. (See the end of this post for a taste.) Instead, I will give a recipe for creating a tiny Unity project which displays some 2D graphics. Follow along!
UPDATE, NOV 19: Added a section about disposing of texture objects so you don't leak memory.

Sunday, August 27, 2017

System's Twilight emulator packages

A couple of weeks ago I promised to set up emulator packages to play System's Twilight on modern machines. These are now ready!
These packages are based on Mini vMac, an open-source classic Mac emulator. Special thanks to David Pfaltzgraff-Carlson, who set up Cliff Johnson's puzzle games using Mini vMac in this manner. I just copied his package configuration.
(Yes, these packages include an unlicensed Mac ROM. The ghost of Steve Jobs can come yell at me about it.)

Friday, August 25, 2017

Two-word parser, 1966 AD

It's common to note that the Apollo 11 guidance computer had just 4K of RAM, less than (a microwave | a toaster | your car keys) whatever the current IoT gizmo of the day is. The complete source code was posted to Github in 2016, to the delight of space geeks everywhere.
(I see that the repo maintainer has been accepting patches all this time, which will be handy when... when... I'm not sure how to finish that sentence. But you see a typo, you fix a typo. I get it.)
I remember the articles popping up a year ago. What I don't remember is this control panel, which I saw last weekend during our Air and Space layover:

Image from NASA via Wikipedia
I'm pointing at the labels on the left: VERB and NOUN. What?

Thursday, August 24, 2017

Eclipse report

We had 90% eclipse success. There were high hazy clouds, so the stars didn't come out, but we saw corona. We watched the full star turn, from nibble to bite to high totality and back out the other side. We made crescent-splinter shadows with our fingers. We saw both diamond rings. We caught the blazing-pink edge of the chromosphere. Venus was naked-eye visible. My eclipse partner B. had binoculars, and saw Mercury.
Zero is the wrong number of times to see a total eclipse in your life.

I'm going to tell this out of order. I'm not telling it for you, really. I'm turning and polishing the story for my own future self. If you saw totality you have your own story to polish; you don't need mine. If you're browsing for vicarious eclipse reports, you should be looking at photographs, good grief. I came to praise the sky, not photograph it.

Monday, August 14, 2017

System's Twilight design notes from 1994

On May 10, 1994, my friends and I bundled ourselves into a car and drove from Pittsburgh up to Lake Erie. I forget exactly what town we stopped in. But we stopped there, got out of the car, put on our eclipse glasses, and watched the annular eclipse of 1994. It was fantastic. We got the little leaf-shadow rings and everything.
Why do I mention this? Because (if I recall correctly) after we got home, I bundled up the first playable beta of System's Twilight and send it off to playtesters.
A week from today is the total eclipse of 2017. I'll be heading to Kansas City, unless travel disasters ensue -- which they might! But that makes it an apposite week for this bit of history:
All my design notes for System's Twilight! I've had the folder on my shelf all this time; I just sat down and scanned the pages.
If you played the game way back when, you will find these pages amusing, or at least laden with twisty nostalgia. If you haven't played the game, the notes will be incomprehensible. Either way, enjoy!

Tuesday, August 1, 2017

Nouns: a new tiny Twine game

Several years ago, PR-IF launched the Apollo 18+20 project, creating one short IF game for each track on the album Apollo 18 by They Might Be Giants.
Now another MIT group has launched nanobots, a Twine anthology honoring a newer TMBG album. Which is called, if you hadn't guessed, Nanobots.
I don't know the creators, but I jumped in to create track 15: Nouns. It's my first Twine release, albeit a very short one. But then, the song Nouns is very short as well.
Enjoy.

Monday, July 10, 2017

On the centralization of IF services

Over the past year, we've turned IFComp and the IF Archive into IFTF projects, and we're in the process of figuring out how to support Twine as well.
You could reasonably ask, is this a good idea? Are we building a single point of failure for all of these community resources?
I have a short answer and a long one. The short answer is that this is what happens when the IFComp administrator, the IF Archive manager, and the lead Twine developer get together (with other folks!) to start a nonprofit. The volunteers behind the projects haven't changed.
But there is more to the answer.
Look back to 2014. The Archive had been sitting comfortably on a server at CMU for several years. However, due to people moving around, this was no longer going to be possible. We needed a new hosting solution.
Finding a reliable web hosting service is easy. (I use three different ones just for myself.) The hard question is, who is going to be responsible for it? Who pays the bills, who sets up the software, who answers the email when something goes pop? You'll note in that 2014 announcement that the server went pop just a couple of days after the move.
I could have said, "Look, I'll just host the thing myself." That would have been the obvious answer, right? I could have stuck it on any of my three hosting services and paid the bill. Would have worked fine. But I did not do that. Why not?
I had a notion -- perhaps not a well-formed notion, but a notion -- that everything should not land in my lap. I was fine being Decision Person for the Archive, but I wanted to do that as part of a team. Someone knows the software, someone handles the hosting service, someone deals with submissions. But different people, right? That way, if someone is run over by a tea-cart (or suffers a less drastic fate, like getting too busy to think about IF stuff) then the rest of the team can regroup.
I do not want to be the single point of failure.
Today, with IFTF, I've been trying to solidify this notion and turn it into an operating principle. Each project has a committee. Each committee has a charter. The charters are written with the assumption that the committee will outlast any single person. Jmac is not the owner of IFComp, he's the current committee chair. He doesn't have to run it for fifteen years (like Sargent did, all credit to Sarge for that).
The committees are backstopped by the IFTF Board of Directors, who are empowered to step in if the committee falls apart. That is, if the committee fails to do its job, as defined by the charter. And then the Board can keep functioning if someone leaves or resigns; that's covered by the bylaws. Yes, it's a rule-bound approach. We even run meetings by Robert's Rules! More or less. But the point of the procedure is to keep things steady.
No single points of failure. That is the long answer.
Because when you've seen a community evolve continuously over 25 years, you plan for transitions. I don't intend to go anywhere -- but I am thinking about what comes after me.
(And speaking of community evolution: this is your weekly reminder that IFComp is running a fundraiser for prize money! Our first fundraiser! We just broke $1000, keep it coming!)

Sunday, July 2, 2017

Hadean Lands and Leadlight Gamma bundle sale

Yes, we're deep in summer-sale madness, but let me draw your eyes to one more: the Parser Power Summer Double!
For the next seven days, only on Itch.IO, you can buy Hadean Lands together with Wade Clarke's Leadlight Gamma in a half-price bundle. Comes with some freebies, too -- the LLG soundtrack and a hi-res download of the HL map.
If you're not familiar with Leadlight Gamma, it's a retro CRPG-IF hybrid game of high school monster terror. Originally released in 2010 for the Apple 2! How retro is that?
(Bonus items will not appear in your Itch download inventory list; they will be emailed to you after your purchase of the games.)
Why only on Itch? Because Itch supports multi-author bundles, which is a cool idea and we want to try one.
Enjoy.

Monday, June 19, 2017

Tough mobile puzzle games

Monument Valley 2 shipped, and needs no net-boosting from me. It was mentioned in Apple's WWDC keynote; that's max visibility in ten seconds.

I played MV2, and indeed it was as lovely and finger-satisfying as the original. But, like the original, it wasn't particularly puzzle-intense. Once you locate all the movable objects on the screen, move them, and see how they match up, you've done most of the job. Which is fine: the creators are clearly aiming at the general audience, not at puzzle fiends.
So, the question: what recent puzzle games are as pretty and whimsical as MV2, but will also melt your brain out your ears?

Sunday, June 18, 2017

The combat-free environmental-survival MMORPG

Seltani was built, to some extent, on ideas I'd tossed into a 2008 blog post. Myst Online had just been cancelled (early 2008). I was interested in how such a game -- an MMO puzzle-exploration-adventure -- might have been built without MOUL's technical or scaling problems.
Neither the 2008 post nor Seltani really addressed the question of what players would do in such a game. (Neither did Cyan, of course.) I pretty much threw that problem into the "user content" bucket. People will build stuff and then explore each other's stuff! Well, I'm very happy with Seltani's world-writing model, but this is clearly not enough to feed an active fan-base.
So. This weekend I hung out with two friends who got to comparing their Guild Wars characters. (They're not serious about Guild Wars, but, you know, they raid.) I don't know the game, so their conversation was a cheerful torrent of opaque terminology, but I got to thinking about the depth of MMORPG mechanics. That's a genre which keeps the players coming back, right? It's not a solved problem: most MMOs fail. But we know it's a solvable problem.
This is the MMORPG formula, as I understand it:
  • A deep combat system with lots of options. (Different kinds of attack and defense, different character specializations with synergies.)
  • Long chains of equipment upgrades which require players to go out and complete many different kinds of tasks.
  • Big fights that require lots of well-equipped players to cooperate over an extended interval.
But does any of that make sense in a social, non-combat-oriented scenario? Spoiler: yes.

Sunday, June 4, 2017

Rime: design ruminations

I bought a PS3, in part, because I figured there might be another Fumito Ueda game someday. Then I watched The Last Guardian skitter away into an uncertain future. Then I lost patience with the Playstation platform, and set up a Windows gaming box. Then The Last Guardian shipped for PS4, and I realized that I was never going to play it because Sony was just too awful to put up with.
(Did I tell the story of how I bought all my PS3 games using store-bought gift cards, because I was too paranoid to give Sony my credit card number? And then Sony got hacked and proved my paranoia right? If I'd been a real conspiracy theorist, that would have been the happiest day of my life. I'm not and it wasn't.)
Anyhow, I've seen Rime floating around the convention show floors for a couple of years now, and it looked like a pretty cool... PS4 exclusive. But no! It showed up on Windows, so I get to play it after all.
Rime is a beautiful, moving, lovingly-polished, wordless narrative adventure game. It makes me want to say that the wordless narrative adventure game is a dead genre.
It's not dead dead. But I'm going to be more skeptical about it in the future.

Saturday, May 27, 2017

I'm shifting my bloggery to blog.zarfhome.com

Nine years ago I made my blogging debut with a post titled Games that don't exist. I'd been on the web since 1993 (really!) but 2008 was my first venture into blogging -- which I guess I'd define as a semiregular series of nonfiction essays with an RSS feed.
The Gameshelf was a group blog run by my friend Jmac. I chose to participate because, well, I wasn't sure I'd be writing enough to sustain a blog on my own. Indeed, I never hit a daily or even weekly rhythm. But I got a couple of posts written each month -- which adds up. Over nine years I wrote 323 Gameshelf posts, documenting games I played, IF events I attended, and the entire development cycle of Hadean Lands.
But: everything shifts over time, and that includes the centers of gravity of web sites. Jmac moved his regular writing to a personal blog site. The Perl core of The Gameshelf (a Movable Type fork) rusted until it barely functioned. (That "323 posts" link above is supposed to let you browse all my Gameshelf posts, but it doesn't really.)
A few weeks ago, a routine Perl update broke the blog software completely. Fixing it was a one-line patch (thanks Jmac) but the writing on the wall had clearly acquired <BLINK> tags.
So, behold my brand-new blog page! It now lives at blog.zarfhome.com.
I'm using blogger.com, which is, yes, part of the Google-monster. But it works, it's free, I got the layout the way I want, and I don't have to worry about patching security holes. And there is an RSS feed.
I have imported all 323 of my Gameshelf posts. (Here's that first one from 2008.) You'll note that this post appears on both blogs, but it will be my last Gameshelf contribution. From now on, blog.zarfhome.com for everything.
(Except that I sometimes post on the IFTF blog, and the Boston IF meetup page is more or less a blog, and... well, life isn't simple.)
I expect I'll continue tuning the layout. There are a few remaining quirks:
  • Blogger's web import feature doesn't work (at least, it didn't work for me). I imported the old posts using Blogger's API.
  • Blogger doesn't understand Markdown. O woe! My importer tool did Markdown translation, but the resulting HTML is slightly munged. So the old posts may have slightly broken formatting.
  • All the images in the imported posts, and the cross-links to other posts, still point to The Gameshelf. The Gameshelf site will stay online for the foreseeable future, so that's okay.
  • I imported the blog comments too, but they appear as part of the post body. (For example, this recent post.) So the old posts all say "no comments" even though the comments are really preserved. (The Blogger API includes a verb for "fetch comments" but not "insert new comment". Why not? Who the heck knows.)
  • The search tool doesn't work. I think Google's crawler hasn't caught up with the imported posts yet. Hopefully that will fix itself.
  • For all anyone knows, Google will nuke Blogger next year. Or next week. (It's Google.) In that case I'll have to change platforms again. But I'll still host the site at blog.zarfhome.com, so no big deal, right?
Quirks aside, I am pleased with my new digs and so I bid The Gameshelf a fond and good-natured farewell. Posting will continue at the usual semiregular rate. See you all on the new domain.

Monday, May 22, 2017

Hadean Lands release 2.1.0


I have updated the Mac/Win/Linux version of Hadean Lands on Steam. These are small UI changes, mostly inherited from the past year's worth of Lectrote updates. The gameplay has not changed, and save files will continue to work undisturbed.

The same UI changes have gone out to Itch.io and the Humble Store. (Last week, really.)
  • In the journal window, you can now sort items by name or by date (the order you discovered them in the game).
  • Added two new color themes: Sepia and Slate.
  • Changed the "Reset" menu item to "Reset Completely" (to match the in-game command for completely starting over).
  • Changed the "Close Window" menu item to "Close Game" for the main game window. (Except on Mac, sorry. The Mac's menu bar works poorly with this app framework.)
  • Fixed a slight size miscalculation in the status window.
  • Updated the Electron app framework to 1.4.16.

Enjoy.

Monday, May 15, 2017

The history of Glk!


Last weekend I gave a short talk at BangBangCon, a small New York conference dedicated to "the joy of computing". I talked about the development of Glk -- from its Z-machine origins to modern web-based interpreters.

It's a ten-minute talk (all of BangBangCon is ten-minute talks) so I focused on narrative arc rather than detail. If you're familiar with IF architecture you know this stuff already. If not, hey, you can get an overview in ten minutes.

Gameshelf compadre Jmac also gave a talk: I wrote to a dead address in a deleted PDF and now I know where all the airplanes are!.

BangBangCon was rather delightful, but also rather hard to get into. (Attendance is limited; the organizers use a pay-what-you-want model, which means memberships sell out instantly.) I had a great time and the crowd was full of interesting people. But I'm not sure I'll go back next year. Lots of interesting conferences come over my horizon, and I'm most interested in the game-oriented ones.

(Possibilities for this fall: Practice, AdventureX, WordPlay, IndieCade. No, there is no way I can get to more than one of those.)

Tuesday, May 9, 2017

Making navigation work


I've been playing a bunch of mobile games this spring (for no reason except that I played a lot of PC games over the winter) and I keep thinking about navigation.

Here's a navigation scheme which is common in casual first-person adventures: you always face forward. In every room, there's some number of exits, plus one invisible exit behind you. So you can go forward in various directions (unless you're at a dead end), and you can go back (unless you're at the start). If you bang the "back" button enough times you'll always return to the start room.



I don't know if this scheme has a common name; I'll call it forward-and-back. Examples that I've played recently: The Frostrune, Agent A, Facility 47.

(I'm distinguishing forward-and-back from the common scheme of third-person adventures, where the room contains several exits but they're all visible and the character avatar walks from one to another. That's different; it has no sense of "forward" or "back", although it may have a sense of "left and right".)

Saturday, February 25, 2017

IFTF's Adoptable Technology Archive


An announcement went up last week on the IFTF blog. You may already have seen it, but it's important and I want to talk about it some more.

[...] While we wish we could take over and maintain software projects, we just don’t have the resources right now. What we can do instead is act as social matchmakers and try to connect projects with volunteers.

Toward this end, we’re establishing a new project called the IFTF Adoptable Technology Archive.

The IFTF Adoptable Technology Archive will be a public archive of adoptable technology on GitHub. If someone owns a project that needs a new owner, they can put it on a free and open-source software license (we favor the MIT license) and pass it over to us, and we’ll put it up on the archive. The benefit of using our archive (instead of putting it up on GitHub as an individual) is that it will be visible under the IFTF “adopt me!” umbrella. This will create a place where developers can go and see all submitted IF projects in need of adoption, while abandoned projects benefit from the related publicity. We’ll also announce all new additions to the archive via our social media channels.

(-- announcement, Feb 14, IFTF blog)

(The Adoptable Technology home page now exists!)

One of the unfortunate truths of the hobbyist IF field is that most of our open-source projects have lost momentum since the late 1990s. There are a couple of reasons for this. A cohort of fans who grew up with Infocom became energetic 20-somethings with lots of free time, but are now 40-somethings with families, mortgages, or other such temporal entanglements. Also, the IF field has become more diverse. When everybody was playing Z-machine games, there were lots of people working on Z-machine interpreters! But the field has broadened.

There have also been many, many experimental IF projects that never went anywhere. Some of these can be found on the IF Archive, or even on GitHub. But if you don't know they exist, they might as well have vanished.

The Adoptable Technology project is our first small step towards saving these projects. As the announcement says, we don't (yet) have the resources to actively maintain them. Instead, we can put them into a sort of showcase (a GitHub organization). This has two incremental benefits:
  • Onlookers can see the list of projects in the collection. They are, at minimum, no longer invisible.
  • If someone wants to pick up a stalled or abandoned IF project, they have a list of possibilities to compare.

To be sure, not every stalled or abandoned IF project needs to be in the collection. We're not pushing this as a panacea! Nor have we committed ourselves to filling it up. An IF project maintainer may just be looking to recruit volunteers, or to hand the project off in some other way.

Quest is an example from a couple of months ago. They spread the word that they were looking for new maintainers, and they were able to find people that suited their needs. We're happy to help pass along such requests from anyone in the IF field.

But if a project really loses all support, we've got a place for it that will help avoid total invisibility. That's what the Adoptable Technology collection is. It's currently empty except for a README. Perhaps it will remain so for a while. But it's our small step.

Sunday, February 12, 2017

Text in spaaaace: FTL, Out There, Voyageur


Bruno Dias's space-text-RPG Voyageur was released this week. I spent a bunch of time playing it, which reminded me that I'd just spent a bunch of time playing Out There, and a bunch more time last month playing FTL. Three games about flying through space -- a randomized construction of space, with many hazards between you and your (distant) goals.

Let me start by describing each game. If you're familiar with all of them, skip on ahead to the comparing and contrasting. :)


Voyageur is prominently tagged as "procedural". That is, every planet you land on is described by a little paragraph:

The spaceport district you land on is busy, and surrounded on all sides by endless cityscape. You hurry along the roads past a group of threatening-looking locals. Crimson political graffiti is sprayed across the walls, although you don't understand the context of the slogans. Trash piles up on the roads, sometimes collected by sullen-looking recycler drones.

The sentences and details within them are randomized, based on a set of general stats about the planet. (Urbanized/agricultural/industrial, terraformed/desert/iceball, and so on.) The markets are loaded up with randomized goods ("high-grade computers", "cheap whisky", "curious gold ore", etc). And each planet might have one or more special features: religious centers, alien satellites, universities.

What you do: travel, trade, try to accumulate enough money to keep going. Long-term goals involve accumulating enough special items to make life-changing science-fictional discoveries.

The solar systems in Out There are also randomly generated, but without the detail of Voyageur. Each one has basic stats (rocky, gas giant, or habitable; high-resource or low-resource), but the only distinguishing marks are special events which might pop up:

The gravitational waves in this area have played havoc on my equipment. I fiddled around and some of it is working again, but the rest is completely out of order. What a mess--

These text paragraphs are not procedurally generated; they're selected from a large database, effectively a library of micro-sci-fi stories. On the other hand, the effects can be randomized. In the above example, a couple of your ship's systems are randomly selected to take damage.

What you do: travel, mine, try to gather enough resources to keep going. Long-range goals involve reaching various distant points on the map, where life-changing science-fictional discoveries are hidden.

Finally, we have FTL, which is much less textual; you spend most of your time fighting hostile starships. Small textual encounters are frequent:

A Rebel captain appears on the screen. "I thought we had been doomed to backwater assignments. This is my chance to get back in Command's good graces! Charge the weapons!"

Some of these offer choices (trade with a smuggler or attack him?); others, as in this example, are simply announcements (time for a fight!). In either case, you spend much less time reading text than you spend on the action (combat, upgrading your ship, etc).

What you do: travel, upgrade your weapons, try to gather enough money to survive the fights. The long-term goal, which is presented up front, is to reach the final sector and defeat the Big Boss Rebel Flagship.


Each game offers short textual riffs, but the texture of the texts is quite different.

Monday, February 6, 2017

My Secret Hideout: now available on Itch.IO


A very long time ago (as times go), back in 2011, I released an iOS app titled My Secret Hideout. It was...



...a wacky, creative thing set in a treehouse. It’s not like any app you’ve seen before. Buy it! Play around with it!

My Secret Hideout has no goal, no score, no trophies. Explore it, or play with it, until you find a result you like. Will your treehouse be simple or complex? Can you guide it? What will you discover inside?

Which is to say, it was a procedural text generation experiment that I thought might sell a few copies. It did, in fact, sell a few copies. So I let it sit there on the App Store, generating its handful of dollars a month, and I went back to working on Hadean Lands and Meanwhile and all the other cool things I've done since 2011.

Then, last month, I got a notice from Apple that I really should update that app, please, or they'd yank it from the store. (Apple announced this policy last year.) This was not an illogical request: the last time I touched Hideout, it was to add support for iOS 5. The app never supported retina displays, much less the modern big-ass iPhones. It mostly still worked on current devices and the current iOS, but the layout had gotten screwy. The VoiceOver support was sort of broken. Also it had that "may slow down your device" warning, which I believe translates as "this is a 32-bit app, how Paleolithic, eww."

To be clear, I think that dropping apps from the App Store is a stupid policy. Apple's correct move would be to apply a "search death penalty", hiding obsolete apps from all browsing and keyword search. If someone still has the direct link and decides to buy the app for their ancient iPod, take their money! This is history! Preserve it, jerks.

But, to be equally clear, I could update My Secret Hideout for iOS 10. It's just not worth the time and effort, because the app makes no money. (I got a similar "please update" notice for my Heliopause app, and I jumped right on that, because it uses the same IF framework as Hadean Lands. Which makes a bit of money. All of my IF apps have now been buffed to a pleasingly modern shine.)

So is My Secret Hideout lost forever? No!

I decided that if I couldn't make money on it, I should make it free. But if I'm to make it free, I might as well make it free on a web page. That way, everybody can take a look, even those benighted souls without iPhones.

Thus: play My Secret Hideout on Itch.IO. If you like it, please consider the "donate" button.

The caveats:
  • The leaf-dragging animations aren't quite as bouncy as on iOS, and there are no little rustly sound effects.
  • It's not very accessible to sight-impaired users. This is sad, because the original iOS app supported VoiceOver. (Until that broke.)
  • There is no longer any way to save or export trees. Sorry. You'll have to just copy text from the web page.
  • I have a report that it doesn't work on Linux. Or maybe it doesn't work on hybrid touchscreen-and-mouse laptops. I'm not sure. (You'd think the HTML touch event interface would be solid by now, but no.)

On the up side, I was finally able to delete the Facebook account that supported the "Export your tree to Facebook" feature. Man, was that ever a waste of time.

Wednesday, January 11, 2017

More 2017 IGF nominees


More assorted comments on games!

Some of these were honorable mentions for the Narrative award; some were listed in other categories; some were games that just struck me as particularly nifty in some way.

(See Monday's post for the six Narrative nominees.)

Again, I had access to free review copies of these games, although some of them are games that I bought with my own money. (I was also a Kickstarter backer on one, Neptune Flux.) They appear in (roughly) the order that I played them.

In this post:
  • Rusty Lake: Roots
  • Able Black
  • Neptune Flux
  • She Who Fights Monsters
  • Islands: Non-Places
  • Code 7 - Episode 0 - Allocation
  • Mu Cartographer
  • Inside
  • Burly Men at Sea
  • A Normal Lost Phone

Monday, January 9, 2017

2017 IGF nominees: my comments


The Indie Games Festival nominees are now posted. The IGF is a showcase of indie games which exists as part of GDC (early March, San Francisco, expensive). I was again invited to be on the jury for Excellence in Narrative.

This year, I also took part in the first-phase judging -- sampling a list of some 670 games of games, commenting on them, and passing recommendations up to the second-phase juries. So I have notes on lots of games!

The narrative nominees:
  • Ladykiller in a Bind
  • 1979 Revolution: Black Friday
  • Virginia
  • Orwell
  • Event[0]
  • One Night Stand

In this post, I'll discuss these six games. In my next post, I'll talk about some of my other favorites from the candidate list.

Important details:
  • These are my comments, not my votes! I'm not posting my votes. If you've read any of my Design Ruminations posts, you know that I love to talk about what went wrong and right in a game, which is not the same as how good it was or how much I enjoyed it.
  • I was also invited to vote for the Seumas McNally Grand Prize, but I declined. While I looked at a lot of games, I concentrated on the story games and narrative experiments. I don't feel like I have a broad enough view of indie gaming to talk about "best of the year".
  • I had access to free review copies of all of these games. (Pre-release copies, in the case of unreleased titles.)


Before I begin: I loved all these games. They were all high on my personal list during judging. I also loved many of the other entries!

This was a seriously hard year to judge. I don't mean it was a tight race; I mean... every game was on a completely different track. I was trying to compare text-dense games with completely wordless games. I was trying to compare visual novels with cinematic first-person games. At one point I was sitting there thinking "Which is more important to me -- good porn, real-world politics, or experimental film?" It's an unanswerable question! I wouldn't give up any of them!

Furthermore, all of the games were interesting -- which is to say, contentious in some way. I get that not everybody wants sex in games, or real-world politics in games, or (for that matter) experimental wordless film techniques in games. Every game on this list came in for some design criticism during the jury discussion. Nobody liked all the top nominees. You will see my pros and cons below, both.

In the end, I consulted my feelings and turned in a list of votes. But in a different month -- on a different day -- I might have put a different game on top.

(This post is not my voting order. I will discuss the games in the order that I played them.)