I just spent half an hour playing a funny, choose-your-adventure adaptation of Pokémon that was built inside a font. It's not an easy concept to understand, so I'll try to explain. Normally, when you hit the 'a' key on your keyboard, it makes an 'a' appear on the screen. That 'a' is a glyph, and it looks different depending on the font you're using. In wingdings, for example, pressing 'a' types this: ♋︎.
In Fontemon.otf, typing 'a' doesn't make a letter appear. It plays Pokémon (well, a short, very clever Pokémon parody, but close enough).
"I imagine the average english speaker thinks a font is something like this: You type a key… [and] the letter appears on the screen," writes Michael Mulet, who created font/game Fontemon. "But fonts can do so much more. A lot more."
In a post on Github, Mulet breaks down how Fontemon (and fonts themselves) work. The short version is that in open type, a popular font format, there are actually a lot of ways to draw the letters, aka glyphs, that appear on your screen. They don't have to be letters. At the most basic level, you write code that determines where to draw pixels on the screen, and Mulet manipulated that to make full images, like Pokémon doing battle. Every time you press a key you advance to another image, and by stringing together loads of them, Fontemon takes on a sort of flip book quality. The faster you type, the faster your "framerate."
Every single frame in Fontemon—all 4,696 of them—is its own individual glyph, just a much more impressive one than the letter 'a.' To make reasonably detailed graphics Mulet blended black & white by drawing half-size black pixels—the font rendered will average the black half with the white half to produce gray. You can read more about how it works in Mulet's Github post, but the game is impressive even if you don't know why mashing random keys on your keyboard makes it work.
I was able to install Fontemon in Windows and get it to show up in LibreOffice, though the formatting was a bit wonky. It's most easily played in the browser window Mulet made, but if you're determined, he shows it's possible to play on your desktop, too if you download the font.
While mostly linear, Fontemon regularly forces you to make choices by typing a specific letter, usually to choose which attack to use in battle. Every attack is goofy and several made me laugh out loud. There's no real strategy here—just making choices and then seeing the results play out in funny ways. Take this battle against the dual threat of Sans-Scareif and Chiller, when I incorrectly chose to use my leaf attack: Verdanta uses LEA… wait where did it go? It's behind you! AAAAAH! AAAAH! Aaa…"
Then I got a Game Over.
But that's okay, because you can just hit backspace a few times to delete the letters you typed—remember, every letter is advancing the game by a single screen—and go back to choose a different attack. If you really want to explode your brain, go back to any point in the sequence of letters you've typed and insert a new one to suddenly pick up the game from that point. It's like time travel.
The whole game is genuinely funny. It's set in the known Pokémon-heavy state of Minnesota, with some regional jokes I didn't get and a lot of font jokes I did, like two of the starter Fontemon being named Papyromaniac and Verdanta.
Without spoiling anything, there's a touch of Frog Fractions in here, too. The ending I got, going down what I thought was a linear path, isn't the only one.
Fontemon would be a fun way to spend half an hour even if it wasn't, incredibly, built inside a font. But it is, and knowing that while you're playing it is pretty amazing.
"I've always told my friends this: 'If you want to make a game, make a game. If you want to make a game engine, make a game engine. But never, ever, make a game engine to make your game!'" Mulet wrote on Github, explaining that writing your own game engine leads to the endless temptation of fixing and improving things rather than just making a game.
I'm glad he didn't follow his own advice and made Fontemon because, as he says: "I had to break my own rules because there are literally no other font game engines in existence."
Thanks, Daniel (opens in new tab).