Fatty Rabbit Hole – noun | \'fa-tē ra-bət hōl\ : A conversation which, at the mere mention of food, sharply digresses to be only about food, typically for an extensive length of time.
In Fatty Rabbit Hole, you're a hapless and hungry rabbit who is falling down an endless hole. As you descend, gobble up all the junk food you can to complete rounds. Each round of the descent has a special challenge that keeps things fresh and fun, along with a halftime bonus round to net you some extra points.
You're a rabbit of exquisite taste, and as such, you want the finest junk foods available. Eating disgusting healthy foods, like vegetables, will make you sick. If you puke, you'll lose some of your progress toward completing the round, so try not to blow chunks!
There are a lot of things in the Fatty Rabbit Hole trying to slow down your feast. Mostly rocks. But also a cavalcade of dangerous creatures, including a grumpy bear, a dolphin out for vengeance, and a mysterious gentleman wielding an arsenal of mayo packets. If you don't stay on your toes, these guys will leave you with a bad taste in your mouth!
Got an appetite for art? Every image in Fatty Rabbit Hole was hand drawn and digitally painted to ensure a high quality, entertaining experience. Coupled with a collection of legendary cartoon sound effects and some classical hits, it almost looks (and sounds) good enough to eat.
Fatty Rabbit Hole was inspired by the podcast Matt & Mattingly's Ice Cream Social, and features many jokes and running gags from the show. The game is enjoyable by all, whether or not you're a fan of the show, but we encourage everyone to give the podcast a listen all the same. Check it out at: heyscoops.com
Additionally, a prototype (but fully playable) version of Fatty Rabbit Hole is available to play in your browser right now, over at fattyrabbithole.com. If you like it, please consider voting for us here at Greenlight and eventually purchasing the enhanced version of the game on Steam!
In my last article, I talked about how keeping things up to date lead me from upgrading the game engine behind Fatty Rabbit Hole to making some long-wanted additions to the game, but I didn’t elaborate much on what those will be.
With this article, I’m revealing one of the first major additions to the game: 3 new languages!
The coming update to the game will bring the option to switch between English, Spanish, German, and French, with under-the-hood changes set to make it much easier to include more languages in the future.
For a game like Fatty Rabbit Hole, which is largely dependent on English for its jokes and puns, and which includes a lot text in general, this was not an easy task. Additionally, the game wasn’t built with alternate languages in mind, so a lot had to be done to make this work properly. I’ve run down the steps I had to go through to get things working below.
Language changing script
The first thing that had to be done was to find all the text in the game and swap it out for variables that could be changed depending on the language the user has selected. This wasn’t particularly easy, because almost all the text in the game existed within individual objects, and much of it wasn’t drawing in a way that would help prevent overflow in case a new translation was longer than the original.
I started by organizing the game’s text content by what screen it appeared on: Titles, Options, Tutorial, etc. I created global arrays for each screen, and then slowly picked through each object that operated in these screens, adding each word or phrase to the array and substituting the appropriate key, so that when they game runs, it just pulls content from the array.
This took some time but was mostly easy to implement. I had to make some special cases for arrays that included text that is pulled at random – since some of the translations, I knew, would not have as many elements as others. Luckily, GameMaker Studio 2 allows for functions that take variable amounts of arguments, and so I was able to write some scripts that would let me punch in however many strings I needed.
The round-choosing Spinner in Endless mode
About halfway through swapping out the text for array keys, it dawned on me that a fair number of graphics in the game included text that was not dynamic, and was instead pre-rendered in Photoshop or Illustrator. At first, I though I might be able to just get away with leaving it there – it’s not uncommon, after all, to see some graphics that still use the native language of a game when you’re playing a translated version. But then I remembered that a key element of the original game, the “Spinner”, would definitely need to be translated – it would be silly to have each round get chosen on a wheel that showed only English, and then be presented with a title underneath in Spanish, German, or French. I had no choice but to also translate all of the pre-rendered text as well.
The Spinner turned out to be one of the simpler fixes. Instead of rendering the text directly on the graphic in Illustrator, the wheel would be empty of text, and I would use GameMaker Studio 2’s ability to draw transformed text to dynamically add the translated round titles on the wheel at runtime.
With that out of the way, I set my focus on a seemingly trickier aspect: swapping out the text in the graphics created in Spine (a skeleton animation software that is supported by GameMaker). Some of the game’s graphics, like the congratulatory messages after finishing bonus rounds, include a message like “Nice!” as part of the animation, and these needed the ability to be changed.
After fiddling with things a bit, I settled on including alternate images in the animation itself, and swapping out the contents based on what language the user had chosen at runtime.
Animated bonus round banner
There is perhaps a more eloquent way of doing it (I think I could have also left those slots blank in Spine, and then subbed in a new image at runtime), but this solution works and wasn’t hard to implement. A larger game would want to handle it differently because holding all the sprites for every language in memory at all times doesn’t make much sense.
After getting done with all of the above steps, all that was left was to have the game actually be translated! This seemed straightforward, but I quickly realized that it takes quite a bit of organization to go through this process.
I don’t speak any of the translated languages (well, anyway), and so I needed to hire people to help me with this – but I didn’t want to get others involved before I had everything organized in a Word document, with clear instructions, contextual hints, etc. These documents took a long time to write up, and I realized after I’d submitted some of them that they weren’t complete, and so I had to ask my translators to do a few extra lines after the fact – or rely on machine translation in limited cases.
I also had to find people who were up to the task of translating a game that included a lot of jokes and puns that wouldn’t convert well to other languages without a fair amount of re-interpretation. Luckily, I was able to find some people on Fiverr who seemed to understand the nature of the job well, and were willing to work with me to get things done right.
Options menu, with new language button
Though I’m happy with where things are at now, if I had this to do over again, there are a few things I’d do differently:
In addition to support for Spanish, German, and French, there are many other new features – big and small – that are coming to Fatty Rabbit Hole, including a new game mode!
I’ll have more on that in a coming article however, so thanks again for reading, and hope to see you back here soon!
A quick story about upgrading Fatty Rabbit Hole's game engine to GameMaker Studio 2, and the future of the game after having lifted the hood on it once...
It's been a while since the last update, so I wanted to detail some of the things I've been working on for Fatty Rabbit Hole over the last few weeks...
Greetings everyone – I know I’ve been saying this a lot lately, but I mean it: thanks to everyone for their support of this project. I couldn’t...
No articles were found matching the criteria specified. We suggest you try the article list with no filter applied, to browse all available. Post article and help us achieve our mission of showcasing the best content from all developers. Join now to share your own content, we welcome creators and consumers alike and look forward to your comments.