[info]
Dia 2 (Parte 1?) - Rodando jogos do RPG Maker VX no RGSS3 do Ace
Dessa vez vou trazer algo bem mais simples (e recente!), mas que creio ser bem interessante, e que pode trazer algumas vantagens para quem tem um jogo antigo e quer ganhar um pouco mais de velocidade nele. Não que os jogos de hoje precisem, mas na época do lançamento do Ace (assim como qualquer outro lançamento) houve um período de transição e adaptação, com conversores improvisados a mil para poder transferir seus recursos antigos para uma versão mais nova do RPG Maker. Eu também entrei na onda e desenvolvi este método e alguns pequenos scripts (scriptlets) pra ajudar nisso.
Isso tudo data de
9 de julho de 2012, época bem próxima a qual foi lançada a 1a edição da revista. Ela foi originalmente publicada neste tópico da
[RPGMakerWeb (em inglês)], e houve uma pequena polêmica alí pelo meio, porém sem perdas para o método (há outra envolvendo o RGSS300 Game Player, que talvez traga para cá no futuro).
Como esses foram apenas uns scripts pequenos, vou tentar mais tarde trazer mais algum conteúdo, quem sabe até os scripts poucos que fiz pro Ace ou plugins do MV. E alguns extras! Quem sabe, né? Até mais tarde!
~Sol[/info]
Usando o RGSS3 com o RPG Maker VX
ATENÇÃO Leia cuidadosamente!
QUESTÕES LEGAIS
Se você deseja distribuir um jogo do RPG Maker VX com o game player do RPG Maker VX Ace, é aconselhável e recomendável você possuir ambos programas licenciados legalmente no computador que você usa, caso contrário, é ilegal compartilhar ou vender um jogo contendo quaisquer recursos, scripts ou executáveis de um RPG Maker que você não possui.
O RGSS3 NÃO RECONHECERÁ O RTP DO VX!
A fim de converter o seu jogo para RGSS3 com sucesso você vai precisar para torná-lo independente de gráficos e músicas do RTP. Se você REALMENTE quiser usá-los, exporte os arquivos necessários para a pasta do seu projeto. Fazendo isso, você não precisará copiar toda a pasta do RTP.
Caso contrário, e principalmente para fins de teste, você pode deixá-lo usar alguns recursos do RTP do Ace. Para isso, copie alguns recursos básicos do RTP da pasta 'Graphics\System\' e os sons no banco de dados "Cursor", "Cancelar", "Evasão" e "Game Over", pois ele não tem recursos equivalentes com exatamente o MESMO nome.
Observe que quando você vai testar o jogo no modo RGSS3, todos os recursos que não estão na pasta do projeto ficarão "em branco" no editor VX; Eles não vão aparecer no Gerenciador de Recursos ou em qualquer outro lugar. Quando o jogo estiver em execução, os recursos do RTP do Ace serão usados automaticamente, em vez disso. Você pode mudar entre os modos VX e RGSS3 livremente e facilmente, a fim de editar ou jogar o jogo, mas é aconselhável como melhor opção remover todas as dependências do RTP, de qualquer maneira.
ESTE É UM MÉTODO AINDA EM CONSTRUÇÃO, PORTANTO, É INCOMPLETO!
O método não perfeito, e tem alguns problemas conhecidos para resolver antes de ser usado em um jogo completo. Ele vai precisar de um monte de polimento antes de se tornar perfeitamente utilizável. É potencialmente incompatível com vários scripts personalizados e sistemas, e não há que eu possa fazer neste momento. Correções para a engine base (que não usa todas as funções do RGSS2) são prioridade, depois que eu posso colocá-lo para trabalhar em qualquer outro cenário, disponibilizando novamente todas as funções disponíveis no RGSS2.
NÃO HÁ GARANTIAS! TESTE POR SUA CONTA E RISCO!
Não serei responsável por nenhum dano causado direta ou indiretamente por isto aqui. Não tenho quaisquer garantias que isso funcionará com jogos encriptados. Não se esqueça: Por ser outra versão do Ruby, vários scripts além dos padrões podem necessitar de conversão adequada. Novamente, não há garantias que esses scripts irão funcionar. Eu recomendo que realize backup dos seus arquivos de projeto antes de tentar isso aqui.
Introdução
O título do tópico já deve dizer tudo. Quais seriam as vantagens de transplantar o RGSS3 em um jogo de RPG Maker VX? Talvez acelerar o seu jogo, aproveitando-se de uma versão nova e melhorada do Ruby, ou talvez devido às classes ocultas padrão também melhoradas, como a AudioFile, criação de Bitmaps maiores que 2048x2048, o uso de uma camada de mapeamento exclusiva para colocar autoshadows (sombras automáticas), ou mesmo ter opções de depuração (debug) um tanto melhores, etcetera...
Independente dos motivos, já que o VX e o Ace são tão similares em vários aspectos, especialmente no funcionamento das classes ocultas, então por que não tentar? Essa foi minha motivação para este projeto até então. Eu espero conseguir isso, já que isso pode vir a calhar pra algumas pessoas por aqui.
Bom, eu tive a ideia algum momento logo após o lançamento do Ace, quando lembrei que algo similar foi feito para rodar o XP com RGSS2. Mas apenas decidi fazê-lo quando eu vi um tópico aqui,
[using RGSS3 with RPG Maker XP] (usando o RGSS3 com RPG Maker XP, em inglês), do a_PK8.
O que é preciso para começar?
RPG Maker VX instalado, obviamente, já que esse será nosso único editor aqui;
(opcional) RTP do VX e/ou Ace, se o seu jogo precisar de algum dos recursos destes;
RGSS300.dll ou RGSS301.dll, crie uma pasta 'System' e coloque esse arquivo;
Game.exe do RPG Maker VX, basta substituir o antigo do VX;
Game.ini do Ace e do VX, basta renomear convenientemente para Game_VX.ini e Game_Ace.ini, respectivamente, e coloque-os na pasta do projeto também;
Alguns scripts, apresentados aqui (siga as instruções abaixo cuidadosamente!);
O que fazer agora?
Prepare a pasta do jogo, com os arquivos exigidos citados acima. Lembrando: (1)RGSS301.dll, na pasta da 'System' exatamente como ele é em um projeto Ace normal. (2)Game_VX.ini e Game_Ace.ini, vindo de projetos do RPG Maker VX e RPG Maker VX Ace; Não se esqueça de editar o título do jogo nestes arquivos. (3) um Game.exe de um projeto do RPG Maker VX Ace (aquele com um dragão vermelho).
Precisamos de um total de três arquivos .INI, porque toda vez que você salvar seu projeto no VX, ele mudará de volta o arquivo Game.ini, e precisamos de um modificado para executar o projeto em RGSS3. Para evitar a parte chata, vamos criar 2 arquivos de processamento em lotes (.BAT) para copiar os arquivos necessários e executar o jogo automaticamente.
Criando os arquivos de processamento em lotes
Abra o bloco de notas ou outro editor semelhante. (você deve saber como fazê-lo, então eu não vou dizer como. Se você realmente não sabe como fazê-lo, saia, este tutorial não é para você, começar a aprender sobre Computadores e Windows tudo de novo). Crie um arquivo chamado algo do tipo "Converter para Ace.bat" e coloque o diretamente no diretório raiz do projeto. No arquivo, escreva isto:
Código:
@echo off
COPY Game_Ace.ini Game.ini
COPY Data\Scripts.rvdata Data\Scripts.rvdata2
START Game.exe
Explicando: Essa primeira linha, bem... eu gosto dela nos aquivo .BAT, deixa ela quieta aí =D. A segunda irá copiar o arquivo.INI correto para executar Game Player do RGSS3. A terceira linha é opcional, use isso se o seu Game.exe se recusar a abrir o arquivo de script do VX. O quarto, bem, você já sabe, né? Agora crie outro arquivo chamado "Converter para VX.bat" e coloque-o no diretório raiz do projeto também. Neste arquivo, escreva isto:
Código:
@echo off
COPY Game_VX.ini Game.ini
Este segundo arquivo é puramente opcional, só necessário para converter o .INI de volta pro modo VX, a fim de editar o seu jogo no VX, se você estiver usando o RTP do VX. É apenas uma conveniência para editar a linha de volta a linha RTP=RPGVX, porque mesmo salvando o projeto no editor do VX, a linha não é revertida de RTP=RPGVXAce, e o VX não reconhecerá o RTP do Ace também.
Para executar o teste do seu jogo, salve o projeto e execute o primeiro arquivo .BAT. Para voltar a editar o seu jogo (SE E SOMENTE SE você estiver usando o RTP) execute o segundo arquivo que criamos. MAS ESPERE! Antes de testar precisamos inserir alguns scripts no editor!
Inserindo scripts no editor
Na verdade, há necessidade de inserir 2 scripts em seu jogo: um antes de todo o resto, para redefinir as classes "ocultas". E outro depois, para corrigir algumas funcionalidades. Ah, sim, eu quase esqueci, você vai precisar editar o script Main também.
O primeiro script é este:
[RGSS2 Data Structure for Ace Slim], ele redefine todas as classes no módulo RPG, e faz o RGSS3 capaz de ler dados do VX. É um código do VX adaptado para rodar em RGSS3, porém levando em consideração tudo o que ele já tem, apenas modificando o que é necessário.
O segundo script é este:
[RGSS2 to RGSS3 Fixes v0.2], o nome diz o que ele faz. Mesmo com toda a estrutura de dados, precisamos de alguns ajustes para tudo funcionar. A maior parte disso é mudar pequenos detalhes da engine, já que eles são idênticos. Viu só? Não é rodar jogos do VX em RGSS3? Oh, só não se esqueça de verificar os Problemas Conhecidos logo abaixo, é importante.
Edite seu script Main. Ele deve ficar parecido com este, na parte útil (excluindo os comentários):
Código:
rgss_main{
Graphics.freeze
$scene = Scene_Title.new
$scene.main while $scene != nil
Graphics.transition(30)
}
Agora estamos prontos para começar! Execute o arquivo em lotes (apenas a primeira vez depois de cada edição no editor do VX), e veja o seu jogo rodar suavemente no RGSS3. (Depois disso, você pode executar normalmente a partir do EXE, tentar executá-lo do editor do VX não adiantará.) Boa sorte!!
NOTAS: se se você preferir não substituir o seu Game.exe, faça o seguinte: você pode usar o Game.ini que desejar, sem necessidade de arquivos em lotes para substituir esses. Basta usar um nome diferente para o Game.exe do Ace (tipo Game_Ace.exe) e um arquivo .INI com o nome respectivo também (aqui, Game_Ace.ini). Fazendo isso, este game player com um nome diferente lerá o .INI com o mesmo nome e vai executar o jogo sem problemas. Viva!
Infelizmente, o jogo não pode ser executado no editor VX desta maneira. Mas eu estou pensando que eu vou fazer um lançador para resolver este problema (só se houver demanda suficiente, então deixe-me saber se você vai querer usá-lo). O lançador incluiria suporte para os modos $TEST e $BTEST.
Perguntas Frequentes/Problemas Conhecidos
Pergunta: Eu só preciso disso para fazer tudo funcionar? Não acredito!
Resposta: Sim, e eu também não. O VX e o Ace são praticamente idênticos, a conversão foi fácil. Não é necessário reescrever drasticamente qualquer uma das classes built-in, tudo permaneceu quase o mesmo. Muito fácil, mas é para fins de teste, este não é o código final.
Pergunta: Por que meu herói está andando sobre as copas das árvores?
Resposta: Não, ele não é o Homem-aranha. A prioridade de mostrar os Tilesets não foi corrigida ainda. Nos arquivos de ajuda, ele diz que a prioridade é a mesma, então eu preciso de um pequeno pedaço de código para fazer o RGSS3 interpretar as prioridades corretamente. Bug já corrigido na versão 0.2.
Pergunta: Não está funcionando aqui! O que devo fazer?
Resposta: Verifique novamente se você fez as etapas anteriormente citadas corretamente. Uma letra fora do lugar e isso pode não funcionar! Ou não pode funcionar de qualquer maneira, quem sabe.... É apenas um procedimento experimental.
Agradecimentos Especiais
Dargor, a_PK8 e Migetman12;
Staff e Comunidade RPG Maker Web, especialmente Lunarea e TouchFuzzy;
Enterbrain e Degica.
Isso é tudo pessoal! Divirtam-se!