In Babel, you must build the Tower of Babel by placing coloured bricks next to other coloured bricks. However, the instructions regarding the desired location of each block are given in several languages, which makes the game substantially more difficult.
- Se incluyen diez idiomas diferentes. (Ten different languages are included.)
- Le jeu a six couleurs de brique passionnantes. (The game has six exciting colours of block.)
- Os tijolos caem bem e fazem um baque. (The bricks fall nicely and make a thud.)
- Когда вы проигрываете, ваша башня падает. (When you lose, your tower falls down.)
- C'è musica. (There is music.)
- तीन कठिनाई स्तर हैं। (There are three difficult levels.)
- 不需要键盘。(No keyboard is required.)
- Wenn Sie versuchen, zu schnell zu spielen, werden Sie vergessen, wie links und rechts herum sind. (If you try to play too fast, you will forget which way round left and right are.)
- গেমটিতে এমন অনেকগুলি ভাষা রয়েছে যে আমি তাদের সবার জন্য অর্থবোধক বৈশিষ্ট্যটি ভাবতে পারি না। (The game has so many languages that I was unable to think of a meaningful feature for all of them.)
The Rosetta Stone award for teaching languages using masonry
Presented by rdb
Ratings (show detail)
The final game.
The final game.
End of Day 2 – Instruction Generation Complete
The basic idea of the game is that you must built the Tower of Babel, while being given instructions in several different languages. I have implemented instruction generation in six of the seven most widely spoken languages in the world: English, Chinese, Hindi, Spanish, French and Bengali. I had to exclude Arabic because it is written right-to-left, and Pygame can't handle it. So far the fonts have bloated the game to about 200 MB, but I should be able to delete the vast majority of them. I think this game might be a nightmare for any die-hard Python 2 fans who still try to port games instead of installing Python 3. 331 lines of code done, a few hundred to go!
Start of Day 7 – Nearly Done
I have made lots of progress, but there is still important stuff left to do. You can actually drop the bricks in now, and the game checks if they are correct. A (currently quite generous) time limit is included¸ and you lose if it drops to zero. The game now highlights the important words to make it a bit easier, but there is still one important issue left to fix: the game's difficulty curve hits a cliff when it starts using Hindi and Chinese. I think I will have to add some kind of in-game reference to help (or at least give a translation when a brick is incorrectly placed), and possibly limit them to the 'hard' difficulty. I also need to add winning and losing screens and a score indicator.
711 lines so far. Good luck everyone!
If you are playing the game, note that it is hard. Anything other than easy mode will probably require a few attempts unless you already know one of the languages in the game.
Here are a few additional customisation options which you can get by editing the code, if you want to (although be careful with your file encodings if you're re-saving src/text.py, and I'm not sure if these changes will actually work):
- If you find the button 'click' sound annoying you can disable it by commenting out line 42 in src/ui.py.
- If you want to play with a custom set of languages, you can edit the dictionary on lines 163–165 of src/text.py.
- You can give yourself more or less time by editing the inital_time() and extra_time() functions on lines 15–36 of game.py.
I got quite a lot done in the last day: music and sound effects, winning and losing screens, four new languages (German, Italian, Portuguese and Russian), a much better difficulty-select screen, the ability to show the English for an instruction after a mistake, and lots of bug fixes. I managed to reach exactly 1000 lines of code, which is not as many as Floodboat (which had two people), but more than any of my other Pyweek entries.
I think this is probably the best game I have made for Pyweek so far, in terms of idea, gameplay and polish.
I apologise for any inaccuracies in the translations: if I've butchered your language's syntax you can rest assured I've done much worse with Python syntax in the code!