This year, I experienced the French IF comp not as a reviewer, but as an entrant. I’m ecstatic to report that not only did I survive the comp, but I came in second in a field of five thanks to a lot of help from proofreaders, editors, and bêta-testeurs/bêta-testeuses that helped me polish my not-so-fluent writing into something presentable. I’d like to share some thoughts about the comp, the community around it, my motivation for entering, some design decisions, and how it all worked out.
This was the eleventh iteration of the comp, so it is already an established tradition. The francophone IF community is tight knit but small, so occasionally the comp skips a year until there are enough games. One major difference between the IFcomp and the French Comp is that each French Comp has a theme. At some point early in the year, there is a discussion on the forum and various themes are batted about until a general consensus is achieved. It isn’t strictly necessary to follow the theme, but there is an award for the story that best captures the theme, and adherence to theme is part of the scoring criteria. Aside from that, the rules are pretty loose: parser, hypertext, hybrids, and other are all welcome. The theme for this year was “memory”.
As mentioned, the online francophone IF community has centered around a bulletin-like forum for a number of years, and still does, but in the last year or so the central website has greatly improved and the community is now generating a lot of content in the vein of tutorials, reviews, and events. In addition to the forum, a lot of the discussion in recent months has migrated towards the Discord platform, which allows real time text messages or even voice. There are several channels, but the most popular seem to be the ones for general and technical discussions.
The forum and related activities can be a little confusing for newcomers because everyone seems to have (at least) two names: their forum name and their real name. I suppose that’s not so odd considering the same could be said in the anglophone IF world of people who use one name on IFmud and another in real life. In addition, in the past it was more common to enter the competition under a pseudonym with a grand reveal when scores were announced. This is no longer a requirement, but about half of us did it this year (although with so much chatter between authors during the writing and playing phase, I wouldn’t say it was a tightly held secret this time around).
A few years ago, this year’s comp coordinator, Hugo Labrande (aka, Mule hollandaise), had written a history of French IF (in English). Since the time that was written, a number of authors have made a name for themselves and there is now a representative body of francophone IF works, mostly parser-based games. However, we seem to be approaching a turning point: in the last couple years there’s been a lot more interest in alternative platforms and hypertext, and even those using parser engines have incorporated hyperlinks and web-friendly front ends.
There is a lot of talent in the community in terms of both story telling and game design, but also on the technical end. French games have been written for quite a while in Inform 6, and when Inform 7 came out, Eric Forgeot was quick to develop an extension — no, wait, don’t go download it. It’s been superseded and if you’re starting something new you’ll want the most recent version, which is maintained by Natrium. This version not only takes care of grammatical issues like adjusting the indefinite article to agree with the gender of a noun, but also has an option where the Inform 7 syntax is entirely in French. Since I work primarily in English and am already set in my ways regarding Inform 7, I preferred to stick to what I know with English syntax, but for someone whose primary language is French, if they are coming fresh to Inform, it should lower the barrier to writing stories. The most recent version is compatible with 6L38, the version of Inform 7 one release earlier than the current one, 6M62.
Why Enter This Comp?
The obvious question is why would I enter a competition where I am at a disadvantage in terms of language skills? I can read French with no problem and with frequent consultation (word reference and reverso are my new best friends; Google Translate remains more of a frenemie), I can get what I’m thinking down on a page, but with nowhere near the flair of a native speaker. I lived in a francophone commune near Brussels for two years and have spent the last three and half in Madagascar, exposed a bit each day to French, and while some has seeped into my head, my oral skills are best suited for conversations with Spanish cows. Luckily, my speaking ability has no bearing on what I write.
So, I had three real motivations. First, while I was reviewing games last year for IFcomp, I came across a number written by non-native English speakers; these ran the gamut from barely readable to top notch. Generally, I don’t hold back on comments because I figure that I’ve been on both sides, as an author and as a reviewer, but I felt a little self-conscious making criticisms when I had never been in their shoes, writing outside my native language, so I thought this would be a good chance to gain some perspective. Second, I liked the theme. Everyone probably has a list of games they’ll write some day, and this one had been kicking around for years. As conceived, it had a central theme that related to memory, so this was an ideal excuse to move it from the to-do list to the to-done list. Finally, constraints really help me write. I knew that if it came down to literary talent, I would have no chance against the writing skills of some of the folks planning on entering this year, so I tried to find a way to limit the amount of text and its complexity.
“Limited parser” was a frequent term in last year’s IFcomp, so I went that route. Without giving away any of the mechanics of the game, I can say that it is based on ten verbs and while the player may use them in various orders, at some point the player is likely to expose about 90% of the written content. In the past, I’ve often fallen prey to the desire to reward a player that digs deeps with Easter Eggs, like the ability to type unix commands in Rover’s Day Out, or the ability to at least attempt to burn or lick everything in Pogoman Go! Often, this ends up being more for my own entertainment than actually contributing to the game, so limited by time and linguistic skill, I tried to be particularly efficient this year in making almost all of the text visible on each play through.
Writing in a foreign language was not the biggest challenge. The words flowed well enough and there are enough tools around that when I was unsure about phrasing, I could look something up. Also, I knew I could rely on proofreaders to catch any horribly mangled phrases or awkward anglicisms. No, the hardest part was punctuation because I didn’t see it coming. While I’ve read plenty of French novels, I never really paid much attention to the punctuation in them.
The obvious difference in French punctuation is their version the quotation mark, the « guillemet ». Most of the other punctuation symbols are the same as in English. However, there’s a subtle difference — spacing. In English, “quotation marks” hug their content, but in French, there is a space between the words and the enclosing symbols. Similarly, if you end a phrase in a semicolon, exclamation mark, or question mark, you need to put a space in front of the symbol. These space should be of the non-breaking type (les espaces insécables), i.e., if the line wraps, the symbol should not be orphaned on the next line. Not only that, but the space between the guillemet and text should be smaller than a standard space. When I drafted the story, I just used English punctuation and had to go back and revise. However, it was not a matter of simple replacement because Inform treats quotation marks one way and guillemets another, for example with regard to automatically generating subsequent paragraph breaks.
The other major difference is that the French have an abbreviated form for marking up dialogue. When a chunk of text consists solely of conversation alternating between speakers, the convention is to put an opening guillemet at the start of that speech and a closing one at the end. Whenever speech alternates to a different speaker, it begins on a new line following a long dash. There are also some conventions around identifying who is speaking during these passages. I had a lot of interstitial conversation in Faute De Servo, and this format allowed me to convey it in a compact, procedurally regular format. It does, however, mean that translation to English will involve some significant reformatting.
The changing landscape of Inform was also a challenge. The initial design required some graphic layout, so I used the flexible windows extension and GLIMMR graphics framework. Unfortunately, while flexible windows is still being maintained by Dannii, GLIMMR is no longer current and I had to use an older version of Inform (6G60) to get it to compile. As a side benefit, I was able to use the French extension from the same period, so no worries about compatibility. Everything worked great in the browsers that I had on hand for texting: Gargoyle, Zoom, and Spatterlight. However, when I released for web, the quixe interpreter threw an immediate error — the GLIMMR library is not entirely compliant with the glulx standard. So, back to the drawing board. Judging by IFcomp, games that can’t be played online get less play, so I absolutely wanted an online version. Since I’d be rewriting some of the mechanics anyhow, I decided on a major change — I’d try out the latest version of Vorple, version 3.0 (preview), to handle the graphics layout relying primarily on CSS for formatting the web version.
Vorple: A Game Changer.
The French community have been avid early adopters of Vorple, in both I6 and I7 games. Of note, the top two games in this year’s competition relied on Vorple to achieve very different looks. I would not be surprised if Vorple surfaces frequently in this year’s IFcomp as well.
I just scraped the surface of Vorple’s capabilities, using it to create some graphic buttons that generate game commands when clicked. In this year’s competition, Corax went further by incorporating sound effects and text layout tricks into his game, “Hansel et Gretel – La Ravanche“, and just before the competition, Hugo had taken advantage of Vorple’s ability to display inline graphics in his “Le Kebab Hanté“.
One under-appreciated benefit of Vorple is its potential to make content more accessible. In my game, for instance, apparently unlabeled buttons are actually labeled with invisible text. Some additional text appears only for players using screen readers or voice synthesizers.
The future of Faute De Servo
Vorple wants the most recent version of Inform, but the most recent French extension wants the preceding version. Given the simple nature of my game, I realized that I could get by 99% without the French module and I wrote a bit of not very generalizable code to handle that last 1%. Once I had done this, I realized that the game’s structure is largely language-independent. With its constrained inputs, the player will only encounter a couple library messages. Given that, it shouldn’t take too much work to port the game to other languages. The English translation is already in the works and who knows, it may show up in a future comp of some sort later this year. Meanwhile, the source code for the French versions (browser and interpreter) are available on github.
The Other Entries
Finally, a couple words about the other entries in the competition, each of which brought its own strengths. In order of final score, the games were:
Winner: Hansel et Gretel – La Revanche, by Corax
2nd place: Faute De Servo, by Jack Welch
3rd place: Old Man’s Tale, by Hugo Bourbon, Ludovic Moge, Gabrielle Cluzeau, Drice Siamer, Enzo Carleo
4th place: La Tempête, by Stéphane Flauder
5th place: L’exil, by Benjamin Roux
Hansel et Gretel: To look at this game, you might not realize that it is based on a parser engine rather than a web-native hyperlink platform like Twine. There is no command line input, it is all hyperlinks. The underlying technology will not enter into most people’s minds at all though, because this story achieves ideal balance between narrative and RPG elements — something that none of the games in the last IFcomp quite got right. It is a long game, but broken into progressively more difficult modules that serve an overarching plot. Game play is challenging enough that successfully completing the game took me more more than a week of intermittent effort. I refused to use avail myself of the laser pistol cheat code, so I felt very satisfied when I had reached the end.
Old Man’s Tale: This was a team effort by a number of game design students. They opted to develop on the Unity platform, which was also seen in this year’s IFcomp Unity/Ink entry, The Dream Self. On one hand, Unity is a heavy platform and no doubt a ton of work, but the benefits were that they could come up with their own custom interface, they incorporated sound and graphics, and the resulting game could run either in a browser or as an executable on numerous platforms. Game play consisted of moving a narrative along by dragging cards into a limited number of slots, an effect no to dissimilar to what was achieved in 10pm, a twine-based game in the 2017 IF comp.
La Tempête: With his previous entry, L’observatoire, Stéphane Flauder established his credentials as strong writer capable of building immersive, atmospheric worlds. In that game, he implemented a hyperlink interface on top of Inform, and I had wondered if he would also go the Vorple route this year. Instead, he went in the more traditional direction and his was the only entry this year to typed and parsed commands. He described his process on goals recently on his blog: deep implementation and more natural interaction with the parser.
L’exil: Yoruk, aka, Benjamin Roux, submitted the third installment of a story set in and around the Underground Empire. Here’s something we don’t see in IFcomp: a serial adventure. All of these stories (L’Envol, which won the 2015 competition, and Le Diamant Blanc, which took 4th place in the 2016 competition) have been written in Inform 6, but unlike the previous traditional parser entires, this one sported a CYOA-like hyperlink interface more along the lines of ChoiceScript. This year’s entry is a prequel, but stands on its own as well. There’s still plenty of story to tell to connect the stories together and finish this saga, but it looks like we might have to wait another year…
As always, authors are starved for reviews during the play period. Brian “mathbrush” Rushton provided the first reviews for all the games on IFDB, and subsequently other reviews appeared on both IFDB and the French IF website. Since it is a small contest, getting scores and review feedback is a challenge, but every year the number of voters has grown, this year reaching 21. A full spreadsheet including anonymized comments is appended to the official announcement of this year’s results. In addition to the written feedback, towards the end of the event, two live play sessions were organized by Stormi on his twitch channel, and these sessions were recorded and are available online for viewing.