Our project is to localize an android game into English, Japanese, and German by using the Android Studio. Isabella Sun is together with me in this project. The game is a traditional Chinese Board Game – Xiangqi, and it is also often called as “The Chinese Chess”. The history background of this board game is based on Chu–Han Contention, the years of battles before the establishment of Han Dynasty. The game represents a battle between two armies – Chu and Han. A snapshot of the game is shown below.
The rules of Chinese Chess and Chess share some common points. For example, the moving rule of horses are the same as that of knights in Chess, except for one thing – In Chinese Chess, horses cannot jump if they have another piece (no matter whom it belongs to) located one point horizontally or vertically adjacent to it. Comprehensive rules of Chinese Chess can be found here
Localizing this game is not as complicated as it might seem to be. Localization of a software or game is different from translation of it, some adaptations, either for the cultural reason or linguistic reason, might be necessary. After thinking that non-Chinese users are not familiar with the rules, I decided to add a new feature to this project – the illegal move warning function. Whenever the user makes an illegal move, a pop-up message will show up, saying that it is a wrong move, and tell the user the moving rule of that piece. Here is how it works. First, I found the java file which was responsible for the game logic; rules of the game were declared here. Then I created a variable, which will equal to a number that corresponds to a specific piece. For example, when the user makes a wrong move with the piece Pawn, the number equals to 1, while he/she makes a wrong move with the piece Rook, the number will be 2. By passing this variable to another file which is responsible for the game functions, I was able to recall this variable and created a switch statement, that decided which error message (of course, you have to add the texts of the messages to the strings files first) would show up based on the variable.
Another adaptation we made is the XML customization. XML is a mark-up language at which many operation rules and information of the main program can be saved. As we know, the text length of a sentence that is written in German is usually longer than the same sentence but is written in Chinese. Because Chinese is more condensed than most of the Roman languages, I modified the xml game settings page and adjusted the font-size, so that the Chinese characters will appear a little bit larger than other languages. While for German message and text boxes needed to be enlarged otherwise texts cannot be fully displayed. In localization industry, in case of truncation and text overlap, it is always a good practice to stay sensitive about text expansions. Therefore, thoroughly testing the entire game running process is essential.
We test the game by playing against the AI. However, the game AI is super smart, or at least it seems to be too smart to someone like me who only has the beginner level of ability to play Chinese Chess. In order to win the game and test what would happen after winning, I went to an online Chinese Chess playing platform that allows users play against each other online, then found someone who had a high ranking and played against him. I chose to let him move first. After he made a move, I would go back to the Android Emulator and used the same move. And after the AI responded me, I would go back to the webpage and used the same move as the AI just used to respond the player. By this “indirect match” between him and the AI, I was finally able to win the game. It’s worthy, because I found an audio file which would only be played after victory, while I did not know it at all before testing and winning the game.
As a conclusion, this is a successful project. Of course, new features will only be added with clients’ approval, so in this project, we assumed that we got the approval. As a good result, we successfully localized this android board game and managed to make some adaptations.