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

Um Jogo Fitness - Reduzindo o Peso de seu Projeto

Iniciado por Geraldo de Rívia, 23/11/2017 às 08:43

23/11/2017 às 08:43 Última edição: 04/01/2018 às 16:16 por Corvo
UM JOGO FITNESS
Reduzindo o Peso de seu Projeto




Em várias situações da vida ficamos atrelados a certos limites, principalmente alguns ligados à profissão, que ajudam a definir o quão bons somos nela. Majoritariamente, modelos, por exemplo, procuram manter-se dentro de um limite de peso, pois extrapolá-lo demasiadamente pode significar o fim de sua carreira. Na mecânica, os profissionais têm de manter seus erros em torno de alguns décimos de milímetros de tolerância, pois, acima disso, terão de realizar o trabalho novamente. E nós, apesar de não sermos profissionais, procuramos manter nossos projetos com o menor peso possível. Se há quem fuja de alguns quilinhos a mais, nós fugimos de alguns bytes a mais.

[box class=plainbox]Por que manter o projeto com o menor peso possível?[/box]

Em um tempo onde cada vez mais nos preocupamos com uma qualidade gráfica melhor, músicas cada vez mais refinadas e histórias cada vez mais extensas, pode parecer contraditória a preocupação com que o jogo ainda assim tenha o menor peso possível, afinal, junto com toda essa beleza vem arquivos maiores e isso é inevitável. Porém, não é por essa justificativa que o tamanho total de um projeto deve deixar de ser monitorado.

The Elder Scrolls Online é um perfeito exemplo de jogo grande: belos gráficos com muita variedade, resultantes em mais de 60 Gb



Com o lançamento do RPG Maker MV, em que os recursos padrões deixaram de ser referidos na máquina e passou a ficar na mesma pasta do jogo, os projetos feitos neste programa obviamente ficaram com um tamanho bem maior. E este é um dos pontos citados como negativo por muitos usuários. Mas é tão agravante assim um projeto ter 50 Mb ou 300 Mb? A maioria dos jogos hoje em dia já passam das dezenas de gigabytes e alguém iria se preocupar com alguns megabytes a mais? Pode parecer irrelevante, mas multiplique essa diferença pelo número de jogadores e você, muito provavelmente, terá alguns gigas de download que poderiam ter sido economizados com uma boa gestão dos recursos.

E esta é a proposta desta matéria: dar algumas dicas de como reduzir e gerenciar melhor os recursos de seus projetos a fim de reduzir o tamanho do jogo.

[box class=plainbox]Inicie com o projeto vazio[/box]

Ao iniciar um novo projeto, o próprio RPG Maker já se encarrega de colocar todos os recursos na pasta especificada. O fato é que vão para esta pasta também recursos que nunca serão usados. Recorde-se que, nos recursos padrões há músicas para jogos medievais, bem como para jogos futuristas, e usar ambos num mesmo jogo é uma situação que não se encaixa todo dia. Portanto, tire estes primeiros minutos de trabalho no projeto para limpá-lo, mas também tenha cuidado: alguns recursos, principalmente os gráficos do sistema, podem fazer falta na inicialização do jogo. Para removê-los é necessário editar os códigos padrões do jogo.

Para não sofrer com nenhum erro, veja todos objetos que estão prontos no banco de dados: animações, personagens, sons utilizados pelo sistema, etc. Liste os que você for usar e limpe os campos daqueles que você não planejar utilizar. Desta forma, o jogo não sentirá falta caso você remova o recurso que algum objeto utiliza, afinal, você já apagou este objeto.

Vá adicionando à pasta de teu projeto os recursos conforme for precisando deles, e certifique-se de remover algum que você havia colocado mas eventualmente veio a inutilizar.

[box class=plainbox]Reaproveitar imagens[/box]

Aqueles que gostam de customizar bastante seus projetos e procuram fugir dos padrões que o programa traz, certamente fazem um uso generoso de imagens, principalmente na interface. O ponto é que, muitas imagens possuem usos em comum, em situações semelhantes também, o que valeria dedicarmos um tempo para pensar na possibilidade de usar a mesma imagem em mais de uma situação.

HUDs são um ótimo exemplo desta ocasião. Muitas vezes, este tipo de interface apresenta as barras de vida, magia e experiência, cuja única diferença visual entre elas é a cor. É comum utilizarmos imagens distintas para estas barrinhas pois podemos colocar efeitos diferentes em cada uma também, mas nos casos em que elas forem uma cor sólida, uma boa ideia é utilizar somente uma imagem e mudar a matiz (ou tonalidade) da imagem pelo RPG Maker. Lembre-se que, ainda que o tamanho delas também seja diferente, o programa também possui o controle da largura da imagem que será exibida.

Em The Elder Scrolls V - Skyrim, alterando a matiz de uma das barras de vida, fôlego ou magia, é possível chegar às demais, mesmo elas não sendo simplesmente cores sólidas.



Outra situação em que comumente podemos aplicar essa economia de imagens são nas mensagens com bustos. O sistema de mensagens padrão do RPG Maker nunca foi alvo de muito agrado dos usuários, então sempre estivemos procurando adicionar novas informações para deixá-lo mais interessante. Um destes acréscimos foram os bustos (ou como chamamos: big face). E para dar mais dinamismo a este sistema, hora o personagem está com o busto do lado esquerdo da tela, hora está do lado direito durante a conversa, e não é nada incomum usar-se uma imagem para cada situação.

A grande maioria dos personagens são simétricos, logo, a imagem de um lado é idêntica à imagem do outro lado, porém, refletida. E esta é outra ocasião em que poderemos usar o RPG Maker para usar menos imagens. A imagem do busto com a largura igual a -100% resulta na imagem invertida horizontalmente. Mas lembre-se que, colocando um valor negativo na largura da imagem, o ponto de origem dela deixa de ser superior-esquerdo e passa a ser superior-direito, se não estiver marcado como centro, claro. Neste caso, a origem não muda.

     
A franquia Fire Emblem apresenta um exemplo de diálogo em que se usa faces de uma mesmo personagem, hora à esquerda da tela, hora à direita, sendo esta a mesma imagem porém refletida horizontalmente quando necessário.



[box class=plainbox]Reescalar imagens quando possível[/box]

Em outra situação, hipotética no momento, mas que vivenciamos algumas vezes ao desenvolver é precisar ter a tela completamente preta, como para exibir uma logo ou um texto antes da tela de títulos, por exemplo. Em um jogo com a resolução de 1280 x 720 pixels, seria comum usarmos uma imagem do mesmo tamanho para esta finalidade, certo?

O fato é que podemos usar uma imagem de 1 x 1 pixel e exibir ela com a largura 1280 vezes maior e a largura 720 vezes maior. Porém, o RPG Maker se limita a 2000% da largura, sendo assim, o mínimo que podemos utilizar é uma imagem 20 vezes menor. No caso, com 64 x 36 pixels, que já representam menos da metade do peso.

E esta dica não vale somente para imagens que sejam completamente preenchidas com uma única cor não. Degradês, efeitos de iluminação e fundos de scenes são ótimas circunstâncias para ver a viabilidade também. Mas claro, nem sempre vai dar para usar uma imagem vinte vezes menor, entretanto, qualquer economia no peso já é uma vantagem.

[box class=plainbox]Comprima as imagens[/box]

Imagens são, assim como todos tipos de arquivos, nada mais, nada menos, do que conglomerados de informações que um editor de imagens cria em um formato universal e que ele possa ser lido novamente depois. Essas informações são, majoritariamente, relacionadas aos pixels que as compõem. Por exemplo, uma imagem de 544 pixels x 416 pixels é composta por 226304 pixels. Um número de respeito, não é?

Entretanto, raramente cada pixel deste representa uma informação única. Muitas vezes, as cores de um pixel são as mesmas que em tantos outros de uma imagem. Por exemplo, imagine uma imagem completamente preenchida de preto. Todos os pixels ali contêm a mesma informação de cor e o programa que editou esta imagem se certifica que esta informação de cada pixel será armazenada quando a imagem for salva. E se você entende de programação sabe que, se precisamos ter um mesmo valor várias vezes, usamos referências.
Código: Sem Referência
Pixel 1 = { x: 0, y: 0, cor: #000000 };
Pixel 2 = { x: 1, y: 0, cor: #000000 };
Pixel 3 = { x: 2, y: 0, cor: #000000 };
Pixel 4 = { x: 3, y: 0, cor: #000000 };
Pixel 5 = { x: 4, y: 0, cor: #000000 };
...
Código: Com Referência
Pixel 1 = { x: 0, y: 0, cor: #000000 };
corA = #000000;
Pixel 2 = { x: 1, y: 0, cor: corA };
Pixel 3 = { x: 2, y: 0, cor: corA };
Pixel 4 = { x: 3, y: 0, cor: corA };
Pixel 5 = { x: 4, y: 0, cor: corA };
...


É isso que um compressor de imagens faz. Uma vez que uma cor for encontrada em um pixel pela primeira vez, ela será armazenada em uma variável. Os próximos pixels que tiverem esta mesma cor, terão armazenada a variável ao invés da informação da cor novamente, e isso reduz as informações de uma imagem. Como a imagem é um conglomerado de informações, isto reduz seu peso consequentemente. Abaixo há um vídeo da Tecmundo que explica isto com uma forma de entendimento mais clara:


Então, a dica é sempre utilizar um compressor de imagens para comprimir as imagens de teu projeto. O formato que mais usamos em nossos jogos é PNG, e para este recomendo o CompressPNG.com, que é o que utilizo e consigo resultados bastante satisfatórios. Existe muitos outros que podem executar essa função por meio de um algoritmo diferente, e obter resultados melhores ou piores. Se tiver a curiosidade, vale a pena procurar.

Mas atenção: mantenha um backup da imagem sem compressão, pois, na redução de informações pode ocorrer de alguma informação utilizada pelo editor de imagens que você usa ser perdida e a imagem retornar erro ao tentar editá-la. E não queremos perder aquela logo que demoramos horas para ajeitar, não é mesmo?

Valores do tamanho de uma imagem antes e depois de sua compressão respectivamente, demonstrando uma redução de mais de 60%.



[box class=plainbox]Verifique o melhor formato de áudio[/box]

Arquivos de áudio sempre foram as guloseimas dos projetos, estrelando em lendários jogos que beiravam, ou às vezes até passavam de gigabytes. Certamente, muito desse peso deve-se ao conter muitos arquivos inutilizados que permanecem ali, todavia esta não é a total razão deste mal.

O RPG Maker MV trabalha nativamente com dois formatos de áudio: M4A e OGG. Ao criar um novo projeto, cada música é transferida em ambos formatos para as pastas de áudio, e a pergunta é se são necessários esses dois formatos. A resposta é, na maioria dos casos, não. Se seu jogo irá ser executado somente em sistemas operacionais Windows e Mac, você deve manter somente arquivos em OGG. Se seu alvo são os dispositivos móveis também, aí sim, deve-se manter os arquivos em M4A.

Já nos programas anteriores (ao menos do XP em diante) são aceitos os formatos OGG, WMA, MP3, WAV e MID. Seria um paraíso caso o formato MID fosse tão utilizado quanto MP3, pois ele é extremamente mais leve do que os demais. Todavia, há bastante tempo que este formato não é utilizado em recursos novos. Em sequência vêm OGG e WMA, que resultam em tamanhos próximos, mas o próprio programa recomenda que seja utilizado o primeiro em todas ocasiões. O formato WAV resulta em arquivos muito grandes quando se tratando de sons longos, porém, para efeitos sonoros é geralmente viável. Por último, o menos recomendado mas mais utilizado, MP3. Por ser o formato de maior conhecimento de leigos e por a maioria das músicas encontradas virem nele, muitos somente jogam o arquivo na pasta, pouco se importando sobre o quão pesado é em relação aos primeiros formatos.

Vale a pena converter alguns arquivos e verificar seus tamanhos em cada formato, para ver qual possui a melhor relação qualidade-peso em sua opinião. Pra isto, utilize conversores de mídia, como o Format Factory.

[box class=plainbox]Opção de excluir arquivos não utilizados[/box]

Uma das novas funções que o RPG Maker MV trouxe é a opção de excluir arquivos não utilizados ao criar um pacote de distribuição do jogo. Esta opção, quando selecionada, exclui do executável gerado arquivos que não foram referenciados através de eventos, do sistema e do banco de dados. É uma excelente função para quem não utiliza plugins adicionais que fazem uso de imagens ou arquivos sonoros.

Em contrapartida, se seu projeto usa plugins que requerem imagens ou arquivos de áudio, esta opção não irá saber e entenderá estes arquivos como inutilizados, excluindo-os. Portanto, na necessidade de executar essa verificação de quais arquivos estão sendo usados e quais não estão, o faça manualmente, ou de preferência, como foi citado no início, inicie com o projeto vazio e faça essa moderação constantemente.

[box class=plainbox]Concluindo[/box]

As maneiras de reduzir o tamanho final do seu projeto são muitas, algumas delas citadas aqui e outras você irá descobrir ao longo do desenvolvimento. Muitas peculiaridades de cada projeto permitem uma gerencia melhor de seus recursos e seu aprendizado como desenvolvedor passa por aprender a identificar essas situações. Há casos, porém, em que realmente não haverá como economizar, teremos mesmo que abusar um pouco mais do espaço no disco rígido do jogador, mas onde essa economia for viável, é fundamental que façamos uso dela.

Para adiantar um pouco teu lado e aplicar o que vimos por aqui, o Corvo disponibilizou templates vazios de projetos nos principais programas que utilizamos. Tu pode salvar aí para que, sempre que iniciar um novo projeto, já tenha em mãos um completamente limpo e pronto para receber suas ideias ao passo que já põe em prática a boa gerencia de recursos. Você pode baixar esses templates clicando aqui.

[box class=calendar_today]E você? Tem alguma prática para deixar o projeto mais leve? Costuma pensar nisso enquanto desenvolve? Acha que essa preocupação com o peso do projeto é supérflua? Comente aí suas opiniões![/box]

Até a próxima!


Eu costumo considerar a qualidade do jogo com base no seu tamanho. Talvez seja um resquício das minhas experiências com o PS1 cujos CDs possuíam em média 800MB. Os desenvolvedores não tinham a liberdade dos HDs atuais que são medidos em terabytes. Você tinha uma restrição e ponto, seu jogo precisava caber ali. E nem vou comentar sobre os dezessete disquetes de instalação do primeiro DOOM.
          Se o espaço era bem aproveitado, os jogos eram mais atrativos, mais dinâmicos e, consequentemente, melhores. Haviam jogos divididos em dois ou mais CDs, claro, mas cada parte era utilizada ao máximo.
          Se tratando de RPG Maker, grande maioria sequer pensa no tamanho no projeto. Vão enfiando arquivos individualmente sem nenhum planejamento e acabam com uma pasta recheada de arquivos com diferentes formatos, tamanhos e utilidades idênticas. Excelente matéria, [user]King Gerar[/user]. Serve de alerta para algo que muitos não dão importância.

Concordo 100% com o texto, MAS parece que os jogos hoje em dia, principalmente os AAA não se preocupam tanto, vemos varias vezes jogos enormes de pesado e não vimos isso in game, sem contar aquelas atualizações diárias de gigas que alguns fazem.
Hammer Strike

Citação de: FelipeAbreu online 23/11/2017 às 17:50
[...] MAS parece que os jogos hoje em dia, principalmente os AAA não se preocupam tanto, vemos varias vezes jogos enormes de pesado e não vimos isso in game, sem contar aquelas atualizações diárias de gigas que alguns fazem.
Aí nós temos duas causas disso.

A primeira é que, geralmente, o processador e a memória são os fatores para viabilizar ou não a execução de um jogo, vez que, por maiores que sejam hoje em dia, os jogos ocupam umpercentual pequeno do HD. Sendo assim, é melhor na visão dessas desenvolvedoras, poupar recursos de processamento e descontá-los no tamanho do jogo, por exemplo, tendo duas imagens para renderizar mais rápido ao invés de ter somente uma, transformá-la para então renderizar. Também são jogos muito mais polidos do que os feitos aqui por nós, meros mortais, e do ponto de vista deles é uma qualidade que vale a pena abusar mais do tamanho. Mas pode ter certeza que ainda assim há uma preocupação com o tamanho do jogo final. Se Shadow of Mordor, por exemplo, tem 47 Gb, ele poderia ter ficado com 60 Gb caso não se importassem com isso.

Outra é que, tal como o HD, a internet evoluiu muito. Fibra-ópticas de 50Mb hoje são realidade em grandes cidades e permitem baixar um jogo de 50 Gb na mesma velocidade que baixaríamos um de 5Gb há cinco anos atrás. O problema é que essa evolução não foi uniforme. No Brasil há sim internet com velocidade como a referida, porém é luxo para poucos e os que não desfrutam deste luxo talvez não sejam o público alvo específico daquela empresa que também lança jogos a R$ 300, R$ 400.

O real problema não são jogos grandes. São jogos grandes com conteúdo que não justificam o tamanho que possuem.

Dei uma pesquisada rápida e vou aproveitar o tópico para deixar este site. Além de comprimir imagens, possui várias opções de otimização de diversos tipos de arquivos - incluindo JavaScript. Antes que alguém pergunte, você precisaria adaptar o arquivo comprimido* ao modelo de plugins do MV. A compressão remove todos os comentários e espaçamentos do código.
*Imgur não abriu. ;-;

GIF de anime, huh? :3

É meio chato quando você vai baixar um jogo simples de maker e ele pesa 300MB+. Isso desanima até mesmo para testar as demos que o povo coloca e talz. É uma ótima matéria. Vai ajudar tanto quem tem projeto pesado quanto quem quer testar as demos ^^

Citação de: King Gerar online 24/11/2017 às 10:17
O real problema não são jogos grandes. São jogos grandes com conteúdo que não justificam o tamanho que possuem.
Exatamente.

Acho que ser desleixado com o tamanho do projeto é uma das viroses mais comuns do meio maker.

Vejo que geralmente os projetos ficam pesados por causa das músicas. Lembro que há muito tempo atrás isso não era tão problemático, a maior parte dos projetos utilizavam MIDIs, mas em prol da qualidade sonora os makers atuais vem preferindo apostar em arquivos com mais qualidade e fidelidade. O problema é que nem sempre uma música complexa casa bem com a simplicidade dos jogos mais padrões feitos no Maker.

Eu gostava muito, na época que comecei com o maker, de encher as pastas do projeto com recursos. A maioria das cosias eu nunca usava, mas deixava lá, dava preguiça de apagar o que não estava usando. O amontoado de arquivos não usados só ia aumentando e a vontade de um dia limpar as pastas apenas diminuindo.  Acho que isso é o que geralmente acontece quando encontramos projetos de 900MB por aí.


27/11/2017 às 00:24 #7 Última edição: 27/11/2017 às 00:27 por Marinhomaker
Muito boa essa matéria Gerar! Como usuário do maker MV eu tenho que preocupar demais para deixar o projeto mais leve possível (meu recorde foi 70 MB até agora), pois como sabemos o MV é uma pilha de cargas em bytes!

Como me preocupo com isso eu busco ao máximo utilizar o compresspng na internet, o resultado é satisfatório por demais, uma vez que tem um ganho de em torno de 70 a 80%! O único mal do uso dele é aquele mini que fica no final do nome do arquivo, assim, para não quebrar o sistema, tem que ser retirado aquilo manualmente ... (a menos que eu esteja fazendo uso errado desse programa!)

Mas, uma melhoria significativa que tive mesmo foi referente aos áudios ogg com um programa chamado ogg resizer! Infelizmente o programa é pago ... mas ele chega a reduzir o tamanho do arquivo de 90% para cima!!!

Ele possui uma Trial com limitações ... às vezes até que tiram a praticidade, mas para quem se preocupa em reduzir o tamanho dos arquivos ogg do RPG Maker MV (que são áudios de tamanho exorbitantes para ser sincero) é um excelente programa e com certeza, para quem é dev pode valer a pena comprar, já que o MV no pc usa mais esse tipo de arquivo mesmo (o ogg)!

Gerar, tô passando aqui só pra dizer que achei esse tópico meio que random no chat e ele salvou minha vida. Você merece seu título de King.

Um beijo  :blink:
Alkemarra
Do the impossible.
See the invisible.
Touch the untouchable.
Break the unbreakable.

Citação de: Marinhomaker online 27/11/2017 às 00:24
[...] Mas, uma melhoria significativa que tive mesmo foi referente aos áudios ogg com um programa chamado ogg resizer! Infelizmente o programa é pago ... mas ele chega a reduzir o tamanho do arquivo de 90% para cima!!! [...]
Dei uma procurada aqui pois não conhecia. Mesmo sendo um programa tão bom como diz, é um valor bem alto e as licenças são um tanto específicas, ficando obrigado a adquirir a mais cara caso queira ficar dentro da lei, que é uns R$ 300,00. Talvez seja o caso de aproveitar o tempo da trial e somente utilizá-la com o jogo completo e-e

Quando ao sufixo que é adicionado ao arquivos comprimidos, realmente é meio laborioso remover os '-mini' manualmente, só que também nunca procurei saber se há como tirá-los, hein!? Talvez tenha uma opção lá no site mesmo. Vou dar uma olhada depois.  :sera:

Aproveitando que passei por aqui hoje, o vídeo abaixo também dá algumas dicas muito interessantes. Principalmente na parte do áudio, que não discutimos aqui. Não me banam pelo ressuscitamento, é relevante.  :medo: