-
-
- (10738)
-
premium membership
MVP
-
Posts
6.661
|
Re: Has your game been localized?
|
Abel García Plaza: Machaira: Game development boards (the place where most people find coders and artists) usually don't have translators.
Well, then that's a bad thing that should be corrected by the game development industry ;-) Developing a game is more than coding it...
This isn't the game industry, that's the problem. We're talking indies here. It's not something that can be corrected. It's just the way it is.
Abel García Plaza: Machaira: Usually translators are only paid to provide the translation, they don't usually get a copy of the game nor get paid to do testing.
Yet another error that might be corrected. I just understand the Oblivion case... :D
I don't think that's something that should be corrected. It's two separate things.
Jim Perry - Microsoft XNA MVP If people spent a minute searching the forums and reading the FAQs before posting I'd be out of a job. Got some XNA Game Studio/XNA Framework development info to share with the community? Put it on the XNA Wiki. Please mark posts as Answers or Good Feedback when appropriate.
|
|
-
-
- (0)
-
premium membership
-
Posts
22
|
Re: Has your game been localized?
|
Personally as an indie, I wouldn't worry about this until Microsoft or a publisher has shown interest in the game AND wants to release it globally. I might try to keep text out of the game in a config file, but I don't see the benefit of the extra work until its actually "signed".
my .02
|
|
-
-
- (1834)
-
premium membership
-
Posts
966
|
Re: Has your game been localized?
|
Machaira: This isn't the game industry, that's the problem. We're talking indies here. It's not something that can be corrected. It's just the way it is.
I thought you were talking about game development, in general, not only here. Anyway, there should be indie translators too. And, yes, I think it can be corrected. For example, if anyone knows people who can and want to help others by translating their work, he could say that people "hey, enter here!, there are many people you can help!". As an advertisement said, "impossible is nothing" :D Machaira: I don't think that's something that should be corrected. It's two separate things.
Really? There are also enterprises in which marketing people only know how marketing works. They sell unfeasible things because they don't know how the product is made (for example, they aren't developers) and have no communication with technical people. The latter haven't got decission capabilities on the marketing area. After all, they're two separate things. On the other hand, there are enterprises in which marketing areas have technical people selling the product and, curiously, they usually work better than the first ones ;-)
|
|
-
-
- (12538)
-
premium membership
MVP
-
Posts
8.749
|
Re: Has your game been localized?
|
Knertified:Personally as an indie, I wouldn't worry about this until Microsoft or a publisher has shown interest in the game AND wants to release it globally. I might try to keep text out of the game in a config file, but I don't see the benefit of the extra work until its actually "signed".
my .02
For me it's knowing that I've made a better experience for the user. My current game idea only has text for a couple of menus and a tutorial level, so it should be easy to get translated. Others (RPG makers for instance) aren't quite so lucky.
|
|
-
-
- (1834)
-
premium membership
-
Posts
966
|
Re: Has your game been localized?
|
Knertified:I wouldn't worry about this until Microsoft or a publisher has shown interest in the game AND wants to release it globally.
As far as I know, Xbox Live! Community Games will be released gobally. Knertified:I don't see the benefit of the extra work until its actually
"signed".
What did you mean with "signed"?
|
|
-
-
- (0)
-
premium membership
-
Posts
22
|
Re: Has your game been localized?
|
Signed as in a contract has been given to you and you have signed it.
Like I said, this is just how i see it. I see both sides of the point being made. This is just personally how I feel. I think companies are ran the same way in the USA. Start nationally first, then go global if it works out. Maybe its just the way we all think :)
|
|
-
|
|
Re: Has your game been localized?
|
I personally plan for my game to have as much multilanguage support as possible.
As a result I plan for all of my displays to be intuitive images (Like, for example, so people in Iseal or other cultures who read numbers and text right to left, instead of using a number based timer, I'm using a piechart based timer). Also, the tutorials will be "intuitive" real time movies (I.E, instead of just showing text for how to do something and having the player do it, it will show the game doing it and the button presses it's doing. There will be text to explain it, but it will be minimal and not required for the game to be understood).
There will be a story mode, but that will be handled with text as concise as possible, with as few characters as possible (also, the most attention given to only a few characters, if done right, will give the best character developement).
|
|
-
-
- (1834)
-
premium membership
-
Posts
966
|
Re: Has your game been localized?
|
JohnWestMinor: so people in Iseal or other cultures who read numbers and text right to left, instead of using a number based timer, I'm using a piechart based timer.
Hmm... what a good idea! JohnWestMinor: the tutorials will be "intuitive" real time movies (I.E, instead of just showing text for how to do something and having the player do it, it will show the game doing it and the button presses it's doing).
Walaber's Gymnast implements the same idea. I think it's very useful and, as you said, reduces the amount of text to be read (and localized) while incrementing the expresivity.
|
|
-
|
|
Re: Has your game been localized?
|
As unfortunate as it is, many people mathematically minded enough (at least in the Indie sect) to do well in programming aren't as well read as they should be to understand some simple writing principles that apply to programming (y'know, the whole "engineers suck at language" thing that people always say).
The most simple of these is: Show, don't tell.
This, in programming and game design in general, is a good piece of advice to follow. As you said, it makes tutorials more expressive. Also, if people can gain information on the fly (piechart timer, for example), they're likely to enjoy the game much more than if they have to read and comprehend something (a paragraph on the state of the character would be bad, as opposed to just showing a picture of where the character is injured).
A couple of others are:
Be as concise as possible (I.E, simple HUDs. Making sure the player doesn't feel cramped by stuff that could be more efficiently done)
And
The story matters little if the characters aren't well done (In a gameplay based game, this means the mechanics. The game Chrono Trigger, for example, isn't as good as it is with the music by a long shot. Another example is the Devil May Cry series. On 1,3, and 4 the camera angles were done supremely and added to the feel of the game).
If programmers do their best to take these things into account, many things, including localization, will be much easier to implement.
|
|
-
-
- (0)
-
premium membership
-
Posts
113
|
Re: Has your game been localized?
|
I thought I would just chime in quickly to explain how I got the translations for Gymnast. I posted about the game on a physics games enthusiast forum (fun-motion.com), and got lots of feedback on the game, and created many fans of the game there. Later I asked for translations, and it turned out that there were many users interested in helping (and ALL of them came from that forum).
Because they liked my game, they were much more willing to help out. Although I have no way of verifying the quality of their work, I think it's better than nothing. Anyway, looking to fans of your game is definitely a good way to find people willing to spend time to make the game better.
Go Go Gadget XNA!
|
|
-
-
- (1834)
-
premium membership
-
Posts
966
|
Re: Has your game been localized?
|
JohnWestMinor: If programmers do their best to take these things into account, many things, including localization, will be much easier to implement.
Agreed. Walaber: Although I have no way of verifying the quality of their work, I think it's better than nothing.
Agreed too, BUT if you provide a way for setting the English texts (as you did in Gymnast) if the player don't like the translated ones, for any reason.
|
|
-
|
|
Re: Has your game been localized?
|
newclyusinju:I plan taking a strict approach to localizable assets & making sure all text is organised & read from an excel sheet (probably put a VBA macro button in their to write out the data to language specific text files before running a buildprocessor on the files to create the final localized string banks..) This should keep the process relatively clean & it also means that all text translation can be done remotely (by even multiple sources) without any requirement of the engine's source assets..
Hey newclyusinju,
what you describe here is exactly what I need to do for a multi-language learning game I've been contracted into to make, it will consist of 10 mini games that teach kids vocab and grammer in 4-5 european languages. I have all the translators and they are all ready translating text for the games, and have been doing so long before I was brought in to code it. I just don't have the foggyist how to do what you described above. Is there any tutorials on that excel approach, preferably C#/XNA. I really need to get this framework in place before I can get going with all the game logic and scoring system and other fun stuff.
Cheers,
Mark.
www.markdunne.info
Mark :-)
|
|
-
|
|
Re: Has your game been localized?
|
Kramd:
Hey newclyusinju,
what you describe here is exactly what I need to do for a multi-language learning game I've been contracted into to make, it will consist of 10 mini games that teach kids vocab and grammer in 4-5 european languages. I have all the translators and they are all ready translating text for the games, and have been doing so long before I was brought in to code it. I just don't have the foggyist how to do what you described above. Is there any tutorials on that excel approach, preferably C#/XNA. I really need to get this framework in place before I can get going with all the game logic and scoring system and other fun stuff.
Cheers,
Mark.
www.markdunne.info
Hi Mark!
There are a number of ways to do this..
I'd go with setting up a spreadsheet first & formost with each row representing an in game string & each column designating the languages to be read.
You could distribute that to your translators but IMO it probably isn't going to be the best approach because it's likely that silly things they do (such as reformatting, adding removing rows/columns, adding invaldi characters to cells etc..) will likely break your build process & give you extra headaches to debug.
So your probably better off keeping this yourself & collating the translated string data from your sources & adding it to the spreadsheet yourself (or you could get someone else whose dedicated to do it)..
Once you get this far you need to setup a macro to export the files from the .xls using a VBA macro (there are literally hundreds of tutorials online on writing VBA scripts for .xls files so jump in & start googling.. I managed to get this bit coded up in only a couple of hours..)
How you decide to export is upto you as well. IMO there's probably one pretty convenient method i'd use, based around getting your VBA script to write a batchfile & then executing it directly (all of this can be done in the VBA script too..).
The batchfile should copy the strings into text (or XML if you prefer) files per language, copying them into an appropriate directory structure.
Also the batch file will need to write a .cs file containing enum IDs for each text string.
Finally all you need to do is rig up your engine with some kind of string manager which loads up the game strings for a specified language (for localised builds or loading a set of languages however required..) & then anytime you need to draw text in the game you'd just make sure you add/overwrite the stringID.cs to your project, copy across your exported string .txt files & make calls to
string strStringToDraw = MyStringManager.GetString( cStringEnum );
Hope that makes sense!
My Game Blog: http://houseofsmash.blogspot.com My Blog: http://watchhogstories.wordpress.com
|
|
-
-
- (1834)
-
premium membership
-
Posts
966
|
Re: Has your game been localized?
|
newclyusinju:
Finally all you need to do is rig up your engine with some kind of string manager which loads up the game strings for a specified language (for localised builds or loading a set of languages however required..) & then anytime you need to draw text in the game you'd just make sure you add/overwrite the stringID.cs to your project, copy across your exported string .txt files & make calls to
string strStringToDraw = MyStringManager.GetString( cStringEnum );
You don't need to create an string manager. Visual Studio makes it for you. You only need to go to the project options, resources section. Once there, you have to add your strings using the visual editor. The resource names must fulfill the C# naming rules. That's because Visual Studio generates automatically a class to manage those resources so that you just need to do something like this (supose you created a resource named MyString):
string text = Properties.Resources.MyString
This automatically selects for you the system language. If you need to support more languages, you just need to add more .resx files to the project. For example, to support Spanish you need to add a Resources.es.resx file. To support French, you have to add a Resources.fr.resx, and so on. It's really simple.
The only thing I don't like is that the current language is shared by all threads. But that shoulnd't be a problem in game development.
|
|
-
|
|
Re: Has your game been localized?
|
Thanks guys, thats a great help, you've put me in the right direction. I just need to get coding now.
Cheers,
Mark.
www.markdunne.info
Mark :-)
|
|
-
-
- (0)
-
premium membership
-
Posts
26
|
Re: Has your game been localized?
|
I was once the lead programmor on a game that was translated in 9 languages including Chinese and Korean. Even if we were saying that the game game was extremely boring as hell, my bosses wanted to translate it anyway. So I just asked "Why ? We got a boring game and you want to tell it in 9 different language ? " He answered me "Business people doesn't care if it's boring, having the game in 9 languages is awesome for them".
I just wanted to say that having your game in different language is a good point to tell if you want to promote your game.
Btw, i'm a french canadian, and when Mario Galaxy came out, it was translated in a very bad French Canadian language. A lot of people started to says that the game was badly translated, that we have to protect our language blablabla. But you know what ? In all the news they were talking about that game. Yup, Marketing++. And each time they translated an english movie and insert an typical French canadian insult, all the people come out and talk about the movie "Did you heard ? It said 'Tabarnac' ! OMG it was really funny".
I know it's a pain in the ass, i made it, but i'm sure there's is a way to make the translation's funny, by adding a personal feeling for each language just as the Simpsons do, then gamers will be more attached to your game.
Also, I want on a trip in Uruguay, Bolivia, Argentina and Peru, and in all those country, i never seen a single game in english, but in every single city I went, there were people playing video games.
Well, that was my 2 cents.
Lachhh
P.S. Hey Abel Garcia Plaza, we want to translate our game in Spanish. If you know people who could help we translate it, i'll be pleased :P. I could check for translating yours in french :P
Lachhh
Games experiments : lachhh.blogspot.com
|
|
-
|
|
Re: Has your game been localized?
|
Planning for localization is a good thing. Even if you have no translator, have the framework set up to localize. It's much easier to do it you start at the beginning planning for that, than to tack it on at the end of development.
For example, my game uses a simple XML serialization of a Language class. The Language class just contains a string of the name of the language (so in-game I can list "English", "Espanol", "Francias", or whatever, or list the name of the current language) and a Dictionary<string, string> of strings to display in the game. The keys are short descriptions of the string, the value is the localized text.
Then, the Language class has a parameter:
| public string this[string entryName, params object[] args] |
| { |
| get |
| { |
| if (GameText.ContainsKey(entryName)) |
| { |
| return String.Format(GameText[entryName], args); |
| } |
| else |
| { |
| return "<" + entryName.ToUpper() + ">"; |
| } |
| } |
| } |
I pass around a reference to a single Language object, and any string I need in the game is accessed by this parameter of the language. If it existed in the XML file that was loaded, the correct localization is used in the game. If it didn't exist in the XML file, an obviously erroneous string is returned so that is can be fixed. It also supports formatting the strings with numbers and whatnot. :)
|
|
-
|
|
Re: Has your game been localized?
|
Hi Abel,
I've been using the "string text = Properties.Resources.MyString" like you suggested. At present I have one game near completetion. All that is left to do is retrive my strings in the approiate languages. What I hoped I'd be able to do is when the mouse scrolls over an image, ie: an apple. The string "apple" would be passed along, depending what language the user has selected certain letter would be attached to this string, for French the letters are "_fr", these will be attached to the end of the name of the item. At this point I've got a string, "apple_fr". In mt property resources, I have a string assests named apple_fr, apple_en, apple_es, apple_de and apple_it each which contains the translation of apple in the relative language. How can I use the new string "apple_fr" to retrive the correct string. Some sample code here;
if (French)
string lang = "_fr";
string item = "apple"
string apple = Properties.Resources. + "item" + "lang";
How can I do this? I'm drawing a blank. I hoped, I could search the resources using the string I generate. Any ideas?
Cheers, I hope I'm making sense. :-(
Mark :-)
|
|
-
-
- (1834)
-
premium membership
-
Posts
966
|
Re: Has your game been localized?
|
Hello everybody and sorry for the delayed response. Lately I was very busy preparing my career thesis presentation (I'll upload it to the project's site asap) and visiting UK in order to prepare my relocation there in later August.
Lachhh, maybe I can help you in translating your game into Spanish of Spain (I know no one who can translate it to any other Spanish dialect). Drop me an e-mail if you want to.
Kramd, what you want to do is easier than you think. Currently, you have a file named Resources.resx or similar, right?. Simply, create new ones by copying the existing one and renaming it so that the new name has the extension .two_letters_language_code.resx instead of .resx. For example, copy your Resources.resx to a new Resources.fr.resx for creating the French version of your resource file. For the Spanish one, create the Resources.es.resx file and so on (Resources.de.resx, Resources.it.resx, etc.). Then add these new files to your Visual Studio project, so that they appear at the same Solution Explorer tree level in which the Resources.resx file does. That is, drag and drop them into the Properties item of the Solution Explorer. Then, double click them and modify their values. For example, if you had a resource named Apple with the "apple" value in the Resources.resx file, you have to double click the Resources.fr.resx one and set the Apple value to "pomme".
If you do nothing more, the player will see "pomme" if his system (say, his Xbox 360) is configured to display French messages, "manzana" if it displays Spanish messages and so on. He will see "apple" otherwise (note that this includes English-configured systems). Going that way, the language of the resource is automatically selected by the system and will be the users's one. You don't have to do anything to select it.
If you want to set the resources language manually (for example, for setting one which is different from the user's configured one), you can use the Culture property of the "static" Resources class. For example, my Xbox 360 is configured to show me Spanish messages, but you want me to see the ones in French, regardless my preferences. You have to do the following:
//using System.Globalization CultureInfo neutralFrench = CultureInfo.GetCultureInfo("fr"); Properties.Resources.Culture = neutralFrench; string apple = Properties.Resources.Apple;
Of course, you don't need to set the Culture property each time, as it's an static one. Set it only when the culture is changed.
I hope this will be helpful.
|
|
-
|
|
Re: Has your game been localized?
|
Thanks Abel,
This has been really helpful. I have it setup now and it is working fine except for when I have special characters in the text such as the German Umlauts:
ä
Ä
é
e
ö
Ö
ü
Ü
ß
There is also special characters in French too. My problem is now creating, finding a spritefont for specific languages that contain these special characters, realistically I would like to have a spritefont for each language just to keep everything separate. Any ideas where or how I could do this?
Cheers,
mark.
Mark :-)
|
|
-
|
|
Re: Has your game been localized?
|
If you're using a spritefont XML file, just change the <End> tag of the <CharacterRegion> to ü If you're using a bitmap, you need to have 220 characters on it (or if you're using the ttf2bmp tool, change the character region before creating the bmp)
|
|
-
|
|
Re: Has your game been localized?
|
Thanks a million BShields,
What an amazingly simple solution and it worked prefectly. :-) I really thought I'd have to do some fancy coding to get it right. Thanks again!
Kind Regards,
Mark.
Mark :-)
|
|
-
|
|
Re: Has your game been localized?
|
Kramd:There is also special characters in French too. My problem is now creating, finding a spritefont for specific languages that contain these special characters, realistically I would like to have a spritefont for each language just to keep everything separate. Any ideas where or how I could do this?
Shameless plug: You might want to checkout Bnoerj.Locales (it is a XNA FX 1.0R project right now, e.g. I need to find some spare time to upgrade it...)
We are boki. The rest is known. The not so known part of the rest: It is Björn or Bjoern, but never Bjorn. Twitter ~ Bnoerj ~ SharpSteer ~ SgtConker.com
|
|
-
-
- (184)
-
premium membership
-
Posts
157
|
Re: Has your game been localized?
|
Will it help translating the l33tsp34k of Little Gamers in other languages? How would you say "Pwned! You n00b" in German ? :/
epsicode.netLittle Gamers: Teh Game IceCreamFree 2D XNA engine and authoring tool
|
|
-
|
|
Re: Has your game been localized?
|
Ok. While agree that localization will benefit non-English speaking users, the chances of a independent developer finding a person who will translate their text for free (because we know many xna game developers are not rich, besides Krisc and Zman) are very low. Most translators out there don't do it for free, that's why most people who are going to localize their games will use free automatic translators. I'm going to try to localize my games, but it will probably come last. I will design the game with text in mind but not going to go all out at first. The main thing independent game developers focus about is the game, then they focus on the other stuff later. I'm doing the same as Nick with using less texts where it's not needed or use images that people can understand.
Independent Game Developer - Blog
|
|
|