O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

Sobre Bancos de Texto

Iniciado por Corvo, 04/03/2020 às 11:45

04/03/2020 às 11:45 Última edição: 04/03/2020 às 13:43 por Corvo
Havia postado isto em sites gringos, é interessante discutir aqui também. Damas e cavalheiros, eu trabalho com textos. Esporadicamente, recebo um ou outro projeto para revisar e todos eles contém um probleminha bastante incômodo. Aliás, é um erro incentivado pelo próprio RPG Maker, cujo funcionamento em si não leva em consideração o tratamento de textos. Imagine que você esteja enviando seu jogo para revisão e/ou edição dos diálogos. À princípio, seu contratado abre o jogo normalmente e encontra a seguinte mensagem:


Um diálogo simples, não? Imagine que haja algum erro de ritmo, estilo ou, talvez, será feita alguma tradução. A primeira coisa a se fazer é achar a mensagem. Ela está dentro de alguma página de algum evento em algum mapa por aí. É isto mesmo, o responsável pelo texto terá que procurar. Quando encontra, achamos este belíssimo sacrilégio:

\c[9]\n[1]:\c[0]
Hello, \.\c[9]\n[2]\c[0]!\. Did you find the \i[147]\c[3]Sword\c[0]?\|
I've heard that it could be on the river.


Considere que o revisor / editor / tradutor, na maioria das vezes, não é desenvolvedor de jogos. Ele não saberá o que diabos está acontecendo aqui e, portanto, vai cobrar por cada "\[]" como se fossem caracteres normais. E, mesmo que ele saiba que se tratam de caracteres de formatação, vai cobrar do mesmo jeito porque será preciso reorganizá-los depois que o texto for tratado. Dito isto, por amor ao conteúdo do seu bolso e à sanidade de quem você contrata, não envie textos crus. Organize-os em um único lugar e retire a formatação. É mais barato para você e consome menos tempo do responsável. Logo, o projeto pode ser terminado mais rapidamente e ambos ficam felizes. O RPG Maker possui um banco de textos que você pode expandir para organizar suas mensagens. Por exemplo:


Sim, no final do projeto este módulo ficará enorme. Porém, você pode dividir em códigos diferentes, cada um contendo os textos referentes à determinada parte do projeto. É muito mais organizado e mais profissional. Pode te dar mais trabalho - não muito - no desenvolvimento, mas poupar tempo e dinheiro no futuro. Lembre-se de que as mensagens podem ser acessadas e mostradas sem problemas:

$game_message.add(Vocab::Message001)


Enfim. Usei como exemplo o VX Ace (obrigado aos senhores Gabriel N. e Syureri pelas explicações sobre a chamada acima). No entanto, o que estamos discutindo aqui é a estrutura, o conceito da organização dos termos. Você pode, inclusive, colocar ali palavras/frases de uso frequente como "Sim" e "Não" para que não precisem ser traduzidas mais de uma vez. Por fim, algumas palavras de consolo caso seu projeto seja muito grande:

I. Para ter uma revisão / tradução de qualidade, mantendo as vozes dos personagens e considerando ritmo de leitura dos diálogos, considere ter um responsável por isto na sua equipe. Não é um serviço barato.
II. Para maior organização, você pode usar plataformas de tradução / revisão como Text Master e Mota Word.
III. Para encontrar tradutores você pode procurá-los neste fórum ou em My Translation, Translators Base, Proz, Translators Cafe etc.



E vocês? Que métodos utilizam para organizar seus textos? Quais programas, plataformas ou formas de organização?

Todas mensagens do meu jogo ficam em arquivo .JSON externo, é a melhor maneira de trabalhar com texto em jogos.

Tenho um en-US.json e um pt-BR.json definindo os textos de cada termo e mensagem nas duas linguas, e fica facil criar outros.

Céus! Eu nunca parei pra pensar no quanto isso daria dor de cabeça aos contratados! Mas, apesar de nunca ter parado no trabalho que daria a eles, a forma que encontrei pra evitar dores de cabeça com isso foi armazenar num documento todo o script (os textos mais importantes) do game. Na minha equipe, temos o responsável pela narrativa, mas ele também não é nenhum expert em textos e muito menos revisor. Logo, será necessário contratar alguém futuramente pra revisar o texto.

Agora, na hora de trazer isso pra dentro do game em si, quem vai fazer vai ser eu mesmo!! Acho que só eu me entenderia em meio a tanta bagunça que faço com comandos e códigos.

Citação de: Ellye online 04/03/2020 às 12:47
[...]

Excelente, facilita até para enviar os termos. Embora seja preferível que o editor tenha acesso ao contexto no qual eles serão usados, não ter a necessidade de baixar o projeto inteiro é muito bom. Principalmente por poder acessar os JSON por algum programa que esconda os caracteres de formatação e mostre só o que precise ser trabalhado.

Citação de: Eliyud online 04/03/2020 às 13:12
[...]

Pois é. Se me mandam um negócio sem tratamento nenhum eu cobro até pelo orçamento. De toda forma você não precisa de um expert. Contanto que os personagens não percam a identidade ao trocar de idioma, está valendo. Ritmo de leitura e afins são frescuras minhas.

04/03/2020 às 13:27 #4 Última edição: 04/03/2020 às 14:27 por Ellye
Citação de: Eliyud online 04/03/2020 às 13:12Agora, na hora de trazer isso pra dentro do game em si, quem vai fazer vai ser eu mesmo!! Acho que só eu me entenderia em meio a tanta bagunça que faço com comandos e códigos.
Não coloque os textos em si dentro do jogo, só coloque uma referência.

Por ex, no meu projeto no RPG Maker MV (mas a mesma lógica serve para qualquer tipo de engine):

Trecho do arquivo ptBR.json:
Código: json
"alberta_field_01": {
	"mapName": "Redondezas de Alberta",
	"signPost": "Oeste: Izlude\nNorte: Payon\nLeste: Alberta"
}


Dentro do RPG Maker MV:

  • Nas propriedades do mapa, ao invés de digitar "Redondezas de Alberta" no campo nome, eu digito só #{alberta_field_01.mapname}.
  • Na mensagem de dialogo do evento da plaquinha, eu digito só #{alberta_field_01.signPost}.

E uso um plugin para puxar as referências (e também uso um plugin para adicionar uma opção de idioma no menu de opções do jogo, que muda o arquivo da onde são puxadas as referencias):

https://forums.rpgmakerweb.com/index.php?threads/iavra-localization.53699/

Sendo assim, os escritores/tradutores não precisam nunca mudar nada dentro do código do jogo. Basta mudar os arquivos de texto e pronto, já é tudo automático.





Assim como na maioria dos jogos "não-rpgmakerianos", todo texto dos meus projetos fica em um banco de texto (de preferência em um arquivo binário ou JSON).
Faço isso desde que decidi traduzir Pokémon, e o fato de todo o texto do jogo ser organizado em um banco facilita demais o processo:

Spoiler
[close]

CrossCode também faz a mesma coisa, em que todo o texto (basicamente todos os dados) do jogo são salvos em diferentes arquivos JSON.

Hyperdimension Neptunia também utiliza o mesmo processo, em que todo o texto do jogo é serializado em um arquivo binário:

Spoiler
[close]

E nem é por questão de estilo, a maioria dos jogos (indies com uma pequena equipe ou projetos grandes e comerciais) possuem uma equipe responsável pela revisão, localização e qualidade do texto.

Os cara são brabo memo, olia essa organização :O

Cara, que tópico interessante. Essa é a primeira vez que um Script/Plug-In realmente desperta meu interesse e me faz olhar para as versões mais atuais do Maker sem aquele desprezo típico =D Mas sério, não imaginava que havia soluções tão práticas pra questão de textos In Game... se eu soubesse, talvez não teria feito todo o Creaptive usando condições em cada fuckin' message box por causa da escolha de idiomas. Ah mas não só isso, essas condições foram feitas depois do primeiro lançamento, ou seja, foi ainda mais trabalhoso do que vcs pensam queridinhos D=<<<

==//==

Anyway, minha forma de organização segue inexistente... eu escrevo na hora, não mantenho back-ups, e cada pedaço dos meus rascunhos tá num canto diferente de dois PCs velhos - é lindo, vcs deviam ver =D

Detalhe pro diálogo final que foi escrito no Bloco de Notas do meu antigo trampo - tirei uma foto da tela do PC com o celular, e esse é o único registro que tenho pra consulta hoje em dia. Me sigam para mais dicas de organização pessoal =)

05/03/2020 às 07:07 #7 Última edição: 05/03/2020 às 07:12 por Ellye




Aproveitei para pegar uma screenshot de como fica no editor do RPG Maker.

Outra vantagem que eu gosto é que eu posso trabalhar facilmente com os textos do jogo até quando estou fora de casa, sem acesso ao RM.

05/03/2020 às 08:04 #8 Última edição: 05/03/2020 às 08:33 por Corvo
Citação de: Ellye online 04/03/2020 às 13:27
Não coloque os textos em si dentro do jogo, só coloque uma referência.
[...]

Exatamente. Este é o ponto sobre os revisores, na maioria das vezes, nem terem pés em desenvolvimento de jogos. E estes eventos aí estão ó, uma beleza.  :clap:

Citação de: Syureri online 04/03/2020 às 17:59
[...]

Acho que nem são só estpudios pequenos. Os muito grandes terceirizam o serviço, mas alguns estúdios médios também cagam e andam pros textos. Tem AA saindo por aí - originalmente em inglês - com umas traduções de dar dó. Agora, sobre esse programinha mostrando os dados do arquivo, facilita mais ainda pra quem não tem costume. Quando possível eu prefiro editar direto nele, é mais rápido. Mas que facilita, facilita.

Citação de: Ciclope online 05/03/2020 às 03:52
[...]

Da próxima vez tu já saberá como lidar com essas tralhas. Mas é. Jogo com um idioma só já é triste de lidar se não tiver cuidado, com dois então, Deus me livre. :D

Vocês me convenceram! Vou criar um arquivo só pra textos no Outer Heart! o/
Até porque, posteriormente, penso em contratar um dos indivíduos aqui presente para uns trampos e ele é bem exigente! HAHAHAHHAA

Pior que até pouco tempo atrás eu nunca tinha me preocupado com isso. Só fui ver os problemas com o padrão do maker quando comecei a pensar em com como seria realizada a tradução do meu projeto.

No inicio apenas pensei em duplicar os dados do jogo, de modo em que cada um correspondesse a um idioma, mas isso não seria nada prático e ainda não anularia o problema de que para alterar qualquer texto seria necessário ter acesso direto ao projeto e aos eventos do jogo. No fim acabei chegando a um ponto bem parecido com os já citados aqui no tópico, talvez por isso ser um consenso, é realmente mais fácil deixar todos textos separados do projeto em arquivos externos.


Citação de: Gabriel N. online 05/03/2020 às 08:34
[...]

Antes de mexer com textos eu também pensava em criar dois projetos separados, um em cada idioma. Daí vem a verdade quando dizem que preguiça é uma virtude. Inventaram estes bancos para glória da procrastinação haha.

Citação de: Eliyud online 05/03/2020 às 08:28
[...]

Apenas observo.


E me esqueci de comentar, mas tu não precisa largar o XP, Ciclope. Apesar do nome, você não necessariamente precisa ter um sistema em JavaScript funcionando para acessar o arquivo. É um formato de dados que pode ser acessado com qualquer linguagem, incluindo Ruby. Olhe este exemplo, converteram os dados de um projeto do RPG Maker XP para JSON. Como eu também preciso estudar este bagulho, aproveito pra deixar as dicas que Grande Bill deixou pra nós.

Estou desenvolvendo meu projeto com a intenção de usar dois idiomas, mas com os textos no próprio jogo, na janela de eventos, usando duas variáveis e uma condição: se a variável IDIOMA for igual a 1, eu digo "Olá", se for igual a 2, eu digo "Hi". Mas essa opção de ter o texto em arquivo "json" é bem mais organizada pra isso. Aí eu criaria um arquivo "pt-br" e outro "en-us". Até aí tudo certo. Mas a minha dúvida, que não vi aqui nas respostas desse tópico é: como fazer o jogo escolher ou, vamos dizer, "puxar" os dados de um arquivo ou outro? Qual seria o script pra isso?

Eu daria a opção pro jogador escolher o idioma A ou B e armazenaria esse valor em uma variável. Aí, baseado nessa variável, o game buscaria os textos de um arquivo ou de outro. Mas como fazer o game pegar os dados de um arquivo ou de outro?

Desculpa a noobice aí com essa dúvida. 

Citação de: DerniBorges online 05/03/2020 às 10:20
Estou desenvolvendo meu projeto com a intenção de usar dois idiomas, mas com os textos no próprio jogo, na janela de eventos, usando duas variáveis e uma condição: se a variável IDIOMA for igual a 1, eu digo "Olá", se for igual a 2, eu digo "Hi". Mas essa opção de ter o texto em arquivo "json" é bem mais organizada pra isso. Aí eu criaria um arquivo "pt-br" e outro "en-us". Até aí tudo certo. Mas a minha dúvida, que não vi aqui nas respostas desse tópico é: como fazer o jogo escolher ou, vamos dizer, "puxar" os dados de um arquivo ou outro? Qual seria o script pra isso?

Eu daria a opção pro jogador escolher o idioma A ou B e armazenaria esse valor em uma variável. Aí, baseado nessa variável, o game buscaria os textos de um arquivo ou de outro. Mas como fazer o game pegar os dados de um arquivo ou de outro?

Desculpa a noobice aí com essa dúvida.
No RPG Maker MV? Para não precisar re-inventar a roda:

https://forums.rpgmakerweb.com/index.php?threads/iavra-localization.53699/

Esse plugin já é bem completo, e inclui um módulo com o menu de opções de idioma para o jogador.

Citação de: Ellye online 05/03/2020 às 10:35
No RPG Maker MV? Para não precisar re-inventar a roda:

https://forums.rpgmakerweb.com/index.php?threads/iavra-localization.53699/

Esse plugin já é bem completo, e inclui um módulo com o menu de opções de idioma para o jogador.

Valeu, obrigadão. Vou testar esse quando chegar em casa. No caso, usaria só o "Core" mesmo, porque todos os menus são personalizados mesmo (usando imagens, scripts e eventos comuns), só pra buscar os textos mesmo em mensagens e tals. Essa escolha de idioma, eu faria também com um menu próprio, que ficaria armazenado em uma variável, tanto pra definir que arquivo de idioma o plugin vai buscar os textos, como também que imagens com textos os eventos normais irão buscar pros menus.

Obrigadão.