Using IF to teach a foreign language

Has anyone considered the use of an IF engine to teach a foreign language? It could really enhance reading and writing skills, and listening too, given the correct sound files (though not, of course, speaking). You could separate vocabulary by room: now you are in the kitchen and all the cooking- and food-related nouns and verbs are in play, in their proper context. Now you’re in a doctor’s office and you learn medical-related words. Player input could begin with the starting language and gradually incorporate more of the target language, in both room descriptions and dialogue.

I have studied a lot of languages and I realize that each one presents unique features; the pitfalls of Italian are not those of Chinese. It depends heavily also upon where you begin; you would teach Italian differently to someone whose native language was Spanish, versus to someone who is Finnish.

Has this ever been done?

interesting idea. I think the part “IF as interactive dictionary” (teach different vocabulary in different rooms) could work pretty well. But please consider that none of the current IF engines (at least none I know of) supports grammar-checking the player’s input commands. So I doubt it could improve writing skills (apart from spelling maybe).

Besides, there are not that many translations of e.g. I7 or Tads, and to translate the entire engine (to a more complex language than english) is a rather difficult and time-consuming task.

The games included are not exactly what you describe (I don’t think any do sound), but you might be interested in this IFDB list of games that were designed to teach English and this game designed for German learners.

I think the prevailing sentiment is that it’s a really interesting idea but that a really killer application of the concept has yet to appear.

I am constantly thinking about how I can use IF systems to teach Lojban, a constructed language.

However part of the difficulty is that it is extraordinarily hard to modify existing parsers (and standard libraries) to parse and work with languages that are not English. That said, I have also contemplated the case where we simply implement a ‘game’ (really environment) that is based in English but where the content is centered around exploring the language even if you cannot interact with it directly.

I currently have a small amount of code in TADS3 making up a virtual school where there are books containing content from the community such as translations of popular works, tutorials and reference material. Then there is a thing that teleports you into an environment that I loosely based off the Portal games where the player must work through a series of puzzle rooms where they can receive hints from an in-game printer that prints out slips of paper with hints written in Lojban.

This reduces the experiment to essentially a reading comprehension test in English, but so far the people I’ve shown it to find it mildly amusing while remarking that if it were ever completed it would probably be useful for some values of useful.

I have also experimented with using MUD technology to simply create an English described environment where a teach and a student communicate using lojban, the MUD environment merely a backdrop. Imagine a scenario where the teacher plays a general store clerk and the student’s goal is to buy an apple from the clerk. While the interaction with the environment is in English the teacher and student interact in Lojban.

Anyway, these are my thoughts on this topic.

I don’t think any similar project exists for Inform 7, but Robin Lee Powell and Martin Bays translated the Inform 6 library into Lojban back into 2002. It was used to compile a translation of Adventure called “nuntalyli’u”.


I’d think as far as the writing part, it could help with noun and verb vocabulary, the imperative mood, but not that much else. Also one issue is that the IF writing style is not often the same as academic or typical language use. It tends to emphasize objects, spatial descriptions, and use some conventions that are otherwise non-standard. But it would be fun for students!

Talking about Inform/z-machine specifically…

It seems to me that the Inform library is designed to be liberal in the utterances that it accepts. But a language tutor, and therefore a language learning game needs to be conservative, and do something when the input is not correct according to the language rules. A standard library game will happily “GET LAMP”, but a language tutor would never allow it, and expect “Get the lamp” at the very least.

But the z-machine doesn’t have a concept of grammar. It’s a general virtual machine, which has a few features that make it useful for implementing IF.

  1. It favours a basically scrolling text interface.

  2. It handily word wraps output.

  3. It has a dictionary of recognisable input words.

  4. It makes it easy to accept text input, and automatically splits the input into recognised words.

  5. It supports unicode input and output.

  6. It has data objects which support trees, attribute flags and arbitrary properties.

  7. It supports sound effects and pictures.

All of these things could be used handily for making a language learning program, if the standard library were not used.

For example those objects could be flash cards, lessons, grammar forms etc.

On the negative side, it’s case insensitive. But that’s a minor drawback.

I’m going to have to disagree. This is the traditional approach to language teaching: make sure the student gets it exactly right, and if there’s one typo or missed article, give them the stick and yell at them for being wrong. Very quickly this kills the motivation and instead of expressing themselves the students don’t say anything unless they’re absolutely sure they have it exactly right.

Foreign languages are taught (or should be taught) for the purpose of learning to communicate with other people. There isn’t a single English speaker who would not understand when you ask them to “get lamp” instead of “get the lamp”. The more conservative the parser is in accepting input, the farther away interaction with it is from interaction with real people.

In a perfect case the parser would be as forgiving as possible, perhaps giving immediate but non-blocking feedback (>GET LAMPP / (get the lamp) / You take the lamp.) but silently collecting all the grammatical mistakes and detecting patterns. Then after it has established a recurring pattern it would notify the student (“Remember to use correct articles” or “Check the spelling for ‘lamp’.”) This way the student would be allowed to make mistakes and learn from them without a constant fear of a slap on the wrist, but still get guidance when they need it.

Sorry about the rant, I have strong opinions on the matter.

Note that this comes under the “do something when the input is not correct according to the language rules” I mentioned. I didn’t meant to suggest that a game/program should be blocking. The important thing is that the program can’t simply be oblivious to the fact that the input was not grammatically correct. It ought to react in some way. Best of all would be to use mistakes to feed a spaced repetition system.

I used GET LAMP as my classic example, but it might be more obvious in French. Definite or indefinite articles are important because the learner needs to learn the gender along with the noun.

I was thinking last night about scenarios for language learning game. The big problem to overcome is the fact that the game can’t possibly understand any example of the foreign language you throw at it. The possible inputs need to be constrained to the parts of language you have been taught by the game. Perhaps you are conversing with a robot that has some fault in it’s language circuits. And progress through the game results in fixing the circuits one by one, and thus levelling up the amount of the language it (and you) understand.

Yes, I realized that shortly after posting. Sorry about jumping into conclusions. (The point still stands though.)

There’s a pretty well-known game that uses nonsense words for basically all the nouns and verbs. Like “The garf smuffles smoothly over the lindhast,” but not those nonsense words. Part of the fun of playing is figuring out what the nonsense words mean. I’m blanking on the name, though. This is probably a good source to look at if someone can remember what it’s called :confused:

Also, “The Edifice” by Lucian P. Smith has a well-received language-learning puzzle. You can check it out in the ClubFloyd transcript; the NPC’s name is Stranger so CTRL+F that.

Edit: The Gostak, yes, thanks StJohnLimbo! While neither of these IFs would teach someone a full language, they do alright for limited vocabulary learning.

The Gostak, probably?

There’s also this list:

(Disclaimer : Contains a few of my games, like the two translations I did)

I’m pretty late here, but I use IF to teach reading comprehension in English, and to keep up with my Spanish and Mandarin. After some experimenting, I’m beginning to think that IF is not very good for beginning learners. Other computer-assisted methods are much better for that. However, IF is the ONLY computer assistance that I know of for intermediate and advanced learners. Really, flashcards and other online games lose their appeal after getting to a certain point. Now, lots of teachers of intermediate learners know that a focus on reading is important. They also know that short chunks with frequent comprehension checks are really helpful… but boring. IF is simply the only way I know of to gamify reading comprehension for intermediate and advanced students.

Playing parser IF in Spanish has not helped my writing skills, but it sure does a great job of making me read precisely, critically, and technically. I can’t just skim if I’m not getting it. I have to think laterally about the text if I want to solve the puzzles. And I’m not even talking about CALL games.

Playing choice-based IF in Chinese {which is the only Chinese IF that exists!! :frowning: } less effective for me, but still much more motivating and inductive of higher-order thinking than when a Mandarin teacher asks a bunch of superficial questions after I read a paragraph or two.

Does anybody else here find that IF, even without targeting language learners, is great for language learners? That said, my dream would be for some wonderful person to create some kind of IF game/work with a graded-reader feature. Each puzzle could unlock further content with carefully controlled vocabulary incrementation.

Any takers?

I remember how playing Infocom games as a teen really drilled my touch typing skills. It was very convenient to type commands without looking away from the screen, and a fun way to practice.

I sometimes wonder if that might be part of the rift between people who enjoy parser and people who can’t get into it.

I agree, HanonO. I’d rather type than click. Reading and deciding to type “e” rather than “n” uses more of my brain and requires more attentive reading than deciding to click the hyperlink, “east” rather than “north.”