Search Results for: programming languages

Holiday gifts of Inform source

I shared the source of The Warbler’s Nest to GitHub last weekend, a project that took a couple of hours by one measure and nine months by another. I started getting the codebase ready for sharing last spring, shortly after giving an invited presentation about the game at MIT. I considered the event as good a capstone as any on the game’s active presence in my mind, and releasing the source struck me as appropriate epilogue. As it turned out, this preparation would end up perhaps the last personal project I picked up before a family crisis would occupy much of my attention until wintertime.[1] And when, things calmer, I happened across this MetaFilter thread asking about Inform source examples shortly after I received an email from a Warbler player pointing out an embarrassing typo in the story, I thought: Oh, right. And so GitHub.

Mere hours after announcing all this on Twitter and such, I would laugh out loud from the solid upstaging my little effort would receive next to a truly delightful surprise: Daniel Ravipinto announced a special 10-year-anniversary re-release of Slouching Towards Bedlam, an IFComp-winning masterpiece released by Star C. Foster and himself in 2003. Daniel recast the game into Inform 7 (which didn’t publicly exist ten years ago) as an exercise, and this in turn allowed him to easily publish a web page linking to both the downloadable game file and its source text. I sincerely recommend taking this opportunity to try the game if you haven’t already; I quite look forward to playing it through again, myself.

Casting around a bit, I find that Inform 7 source examples are not quite as scarce as I may have thought. Inform includes a facility for releasing nicely HTML-formatted source text alongside one’s game, and just because I somehow hadn’t noticed it before doesn’t mean nobody else did either. Two publicly available recipients of this treatment come to my mind immediately: Aaron Reed’s Sand-Dancer exhibits intentional beauty and readability at the source level, since it serves as the game slowly built between the covers of his Creating Interactive Fiction with Inform 7 (which we’ve written about before). On another extreme, Emily Short made available the source for Counterfeit Monkey, which proves as eye-wateringly vast as the game itself. I note that one of the headings on that index page bears the title “Volume 5 - The Repository of All Things Possible”, and it does not exactly exaggerate. (Naturally, while this source is also quite readable, you really should play the game before browsing through its laid-bare secrets.[2])

I cannot fail to point out that Zarf quietly posted the source to several of his games some time ago, as well, including both his more recent work and classics like Shade. (Search for the word source in-page after opening that link.)

Lastly, on the topic of GitHub, Dannii Willis created the Friends of Inform 7 group, which contains lots of language extensions from various authors, as well as the open-source repository of Victor Gijsbers’ utterly gonzo Kerkerkruip, a procedural, stats-heavy, permadeathy dungeon crawl in the roguelike tradition, implemented entirely as prose-driven IF.

I have no doubts that many other examples of shared full-game Inform source lurk in the grue-infested darkness. If you know of a non-trivial Inform-based work with source available, do feel free to link to it here with a comment.

Update: As Juhana notes in the comments, “games with source available are neatly tagged at IFDB”. Wow, that’s quite a few games, too. Well, this is why I write these things.

[1]: And yes, dear reader, that would explain why I’ve written so little on this blog this past year, though I’ve no complaint about once again leaving it over to Zarf’s project-EKG in my absence. I have reason to believe that 2014 will be different, but time will tell…

[2]: Earlier this year, I wrote implementation-focused reviews of Counterfeit Monkey and a few other XYZZY Award nominees.

Tagged , , , , | 4 Comments

Want to make games? Don't worry about the code.

At the top of this year, the Code Hero project launched its Kickstarter drive, quickly attracting positive attention ranging from highly visible blog write-ups to TV news interviews. Code Hero promised to teach anyone how to make video games by way of a videogame, an undeniably attractive proposition to many.

The team’s own enthusiasm for the concept effectively counteracted the fact that the extremely ambitious project was in the earliest stages of development, and they blew past their initial $100,000 funding goal. Their page remains frozen at the moment the drive ended, so you can still see their admirably bold appeals to US senators to plug their states’ educational budgets into the project, and their giddy promise that the game would transform from a single-user experience into an MMO if they could raise just a few more thousand dollars.

As winter settles in, however, the comments page for Code Hero paints a dire portrait of the project’s status: a cascade of unhappy, empty-handed backers asking for refunds, which has more recently evolved into community investigation of where their money might have gone. Clicking around the project’s Kickstarter page and the official website, one gets the picture that the project’s team went completely quiet after missing its self-imposed early-September deadline. (Though you can continue to order $13 copies of the game on its apparently still-functional order form, if you wish.)

Perhaps the team has chosen to take a hard-line approach to completing their development with no further promises or teasers, even to the point of allowing a dissatisfied-customer backlash to flourish unchecked on their Kickstarter page. I would be delighted to see the team resurface a year from now with a polished 1.0 release. But today, I do not foresee this happening.

I surprised myself by feeling a little bit angry about this development as I revisited it recently. Not simply because the project may likely fail — I have been in the software business for long enough to let Failure just keep one of my guest parking passes in its car. It happens, and we move on. But from my perspective, this particular failure helps me better see what sounded a little off-key to me about this project when I first heard during its higher-energy days. The problem, to my ear, lies right in the title: I very much doubt that an effort to teach game design or development that leads with code, or with any other technical aspect of the art, can truly succeed.

From what I can tell by reading the experiences of those who have stumbled around its extant alpha, Code Hero says “I’ll teach you how to make games!” and then proceeds to show you how to cause green cubes to float around in a bare Unity environment by pasting around chunks of JavaScript. At best, this might be laying the groundwork for eventually showing someone how to make a very particular sort of 3D-based videogame. My doubts about its effectiveness to one side, this emphasis on the technical guts of working with primitive shapes and such strikes me as near-sighted nerdery of the bad sort, an obsession on tools and execution over concepts and spirit.

My frustration stems from the fact that this project received so much attention and money from good people hoping for what I fear is a magic bullet, when as far as I’m concerned we already know the best way to learn to make games, and it is this: Start making games. Pick up any tool at all that has a decent online community, and consider something a tad less varsity-level than Unity — Twine has been getting some well-deserved attention lately, for one, and there is also things like GameMaker or my beloved Inform. Start making tiny, awful games with broken code and ill-fitting rules that barely work, but nonetheless lurch towards the model in your head of the game that you know can be beautiful. Each attempt will make you better, and you might be shocked at how quickly you can iterate and improve.

Just as someone who is truly passionate about, say, running should consider nerdery over different brands of running shoes a distraction, so should someone truly determined to make games worry far less about tools and techniques than overall design goals. Once someone is determined to make a game, and is convinced that their dream is possible, they will teach themselves what they need to in order to make it happen. As far as I’m concerned, nothing beats making small, silly, but nonetheless completely self-motivated projects to demonstrate to oneself that one’s dreams are achievable.

Good game-studies teachers already know that the path to getting students’ brains afire about their own ability to create has nothing to do with trying to get them excited about pushing around blocks of JavaScript, or learning how shaders and splines work. The best game-development classes emphasize the value of paper prototyping, or even putting the electronics away entirely and developing compelling tabletop rules.

The code is merely a means to an end. It’s a thing to get good at eventually, sure, if you decide that making video games is a thing you want to spend a lot more time doing. But just as good coders know about the evils of premature optimization, good developers should also know that premature emphasis on code over design presents a similarly tempting pitfall. It’s the wrong foot to lead with in any education about game-making, and I’m sad to see it lead to such a public and potentially discouraging failure in the case of Code Hero.

Pick up a tool. Make terrible games. Surprise yourself. Go.

Posted in Jmac on Games | Tagged , , | 2 Comments

An Inform 7 cheat sheet

Just noticed this Inform 7 Cheat Sheet designed by Mark-Oliver Reiser. It’s actually a few sheets long, but it covers an awful lot of ground. The front page presents a minimal primer on the language’s syntax and the standard library’s class tree, and from there it manages to compress most every major point of Writing with Inform (the IDE’s built-in documentation) down to four pages.

The effect unavoidably resembles a progammer’s complement to the world-famous IF players’ reference-on-a-postcard, and that is not a bad comparison to invite. If you’re planning on sweating over hot interactive fiction compiler this summer (and I can think of at least one reason why you might be), this guide seems well worth the price of five blank pages and a staple.

Tagged , , , | Leave a comment

Announcing: Inform Extensions Search

I am pleased to announce the Inform Extensions Search site, the product of this past Saturday’s procrastinatory toils. It’s exactly what it sounds like: a simple search engine for Inform 7 language extensions.

I created this tool because I miss not having something like the CPAN Search for Inform extensions, even though “only” 230-ish such extensions currently exist in public. In fact, you can see them all (or all the ones released under a Creative Commons license, at least) on a single page at

Up until now, the best way I knew to look for extensions involved visiting that page and using your browser’s Find command. You can also browse by category, but even then you’re limited to extensions’ titles and summaries, and I found myself wanting to search at a deeper level without manually clicking though everything.

My tool offers a solution via searching extensions’ documentation, as well as their more obvious metadata. In this way, for example, a search for guns brings up David Ratliff’s extension to handle weapons and fighting, and searching for water produces several extensions that variously produce and handle liquids, though none have the word “water” in their descriptions.

So that’s that. I hope that someone finds it useful, and welcome feedback and suggestions.

Tagged , , , , | 5 Comments

Nick Montfort on Curveship (PAX East 2011)

Nick Montfort presents Curveship, the experimental narration-centric IF development system that he released last month. (Yes, he’s using an upturned hotel bed as a projection screen. I mentioned that the IF suite was crowded, right?)

Unfortunately, it seems I spoke too soon about no cut-short PAX videos this year; I was surprised to discover that this one ends abruptly after around 22 minutes. However, this accidentally abridged talk still summarizes Curveship’s purpose, form and strengths quite well. If it whets your appetite to learn more, visit Curveship’s website.

Click here to watch this on Vimeo.

Tagged , , , , , | Leave a comment

Key Hero and the Pooping Turtle Story

My friend Christopher Cotton (who played in The Gameshelf's review of Werewolf) has lately been teaching programming to kids, as part of the Young Scholars Institute in Tennessee's Franklin School District. They're using Java and Processing, the latter a new-hotness language I hadn't heard of before this year, but now I find myself stumbling across references to it all the time.

Here's a video of Christopher running and narrating one 11-year-old student's game, a Guitar Hero clone she wrote with Processing in 90 minutes.

I am immensely proud of Christopher and his students. He's doing what I've wanted to do for years, and what I think there should be a lot more of. There is no reason except for institutional timidity that programming isn't taught as a basic course in every school in this country, and that's a crying shame.

Ten years ago, before I became Yet Another Software Engineer, I spent a year "teaching computer" at an elementary school in Hermon, Maine. I chose to subvert the curriculum (how to type and use Microsoft Word, mostly) by trying to teach computer science concepts instead. I will never forget the moment when one student, in the classroom of second-graders struggling over a three-line Logo program I had them try to type in and execute, Finally Got It. "My turtle pooped!" he cried, and everyone crowded around to witness as his Logo-turtle successfully drew a straight line. Within minutes, not only was every kid's turtle also pooping, but they discovered that changing the number changed the line's length, a fact they started excitedly telling each other about with no prompting from me. I spent the remainder of the period suggesting other things they could try, with the kids spreading each bit of new programming knowledge amongst themselves. I have never had an experience quite like this in my life since.

Programming exercises and rewards logical thinking and problem-solving in a way that no xeroxed sheet of math problems can. Any kid capable of doing the latter should also be exposed to the former. As we enter an increasingly ludocentric culture, I'm hopeful to see technologies like Processing, and people like Christopher, allowing children to develop their minds and creative powers through game-making. I just wish that it stretched beyond a few lucky kids who happen to live in the right places.

Tagged , , , , | 2 Comments

Rule-based programming in interactive fiction

This past weekend I gave a talk on Inform 7 at Penguicon, an SF-and-open-source convention in Michigan.

The slides and the text (modulo the umms) are now up on my web site:

Rule-Based Programming in Interactive Fiction

This is not an Inform 7 tutorial. (You can find those on the Inform 7 web site.) Nor do I discuss I7's natural-language syntax. Rather, I try to explain the underlying programming model, and why it exists. I then go on to talk about my crazy ideas for a completely rule-based language, which is not Inform 7, but might be a future mutation of it.

The talk went nicely, in case you were wondering. About eight or ten people showed up, which is pretty good for a programming lecture at 10 AM on a Sunday.

And while I'm at it, let me recommend Penguicon as a darn good time. I've never been to a convention at which Sarah Monette and Elizabeth Bear argued about fantasy, John Scalzi lectured on people skills, while -- in a room party upstairs -- some guys tried to get Debian running on a DEC AlphaStation 200. I've also never been to a convention where I got to be in a panel discussion with Jane McGonigal, the ARG guru.

All these things were awesome! Except the Debian install -- they seemed to be having trouble with that. Mostly because the hotel's wifi network was utterly, utterly crushed.

Posted in Zarf on Games | Tagged , , , , | 7 Comments