terça-feira, 19 de janeiro de 2021

Atualizei um dos meus jogos e portei ele pra Android.

 



Entre o período de todas as revisões de Máscara Omega (da 0.2 pra 0.5 pra 0.6 pra 0.62 e finalmente na 0.64), eu fiz um pequeno trabalho adaptando o começo de "Encontro Destinado", que é/será/seria? a continuação de Paixão Destinada, meu primeiro livro escrito em 2017 (cuja publicação na Amazon se deu em 2018 e só agora em 2020 chegou a versão revisada).

Adaptando pra Novel eu tive que fazer algumas alterações, principalmente por falta de um cenário em específico, e adicionando a falta de sprites de pra dois personagens, entre os capítulos que foram publicados no Wattpad e o que está aqui, coisas mudaram.

Como escritor, eu tenho uma idéia da direção que quero dar a história, o que me falta é o ânimo para escrever ela.

Enfim, ao contrário do primeiro livro, que era basicamente do ponto de vista somente do Renan (o protagonista que se apaixonou pela professora), agora ele traz os pontos de vista de quatro personagens, Renan, que se prepara como pode para o vestibular, Kasumi, que dá aula em um novo colégio e tem a tarefa de colocar uma turma de encrenqueiros no lugar, Gabriela, garota que tem medo de multidões devido a um trauma e depois de muita insistência dos pais, voltara a frequentar um colégio comum e precisa lidar com isso, e por fim Rey, um talentoso ex-tenista que passou a dar aulas de inglês após sua carreira ter sido interrompida.

A versão 0.11 não adiciona nada em relação a 0.1, abaixo o changelog:

Mudança nos Sprites do Renan (agora usa a base que eu fiz, ao invés da edição porca)

Mudança nos Sprites do Guilherme (Agora é um sprite de olhos verdes, como os da irmã dele. Mas a piada que fiz continua lá)

Mudanças nos Sprites da Aluna que aparece na cena do Fliperama, no sprite da Renata e no Sprite da Jéssica (decisões estéticas minhas)

Alterações leves em um sprite da Kasumi e um do Flávio (correções mínimas)

Correções de pequenas coisas que não lembro

Um novo encerramento (que deve ficar só nessa versão, mas vou usar o template pra encerramentos futuros, mas caso você esteja jogando em streaming, escolha o encerramento original que a música é Royalty Free, a música usada pra esse encerramento da versão 0.11 é licenciada porque eu queria testar)

Porte para Android


Downloads:

Versão 0.11 beta (PC)

Versão 0.11 beta (Android)

segunda-feira, 18 de janeiro de 2021

Criando um RPG com quinze anos

 

Tela título editada no Paint atual...

O ano é 2003, faziam poucos meses que a família tinha comprado o primeiro computador, que tinha humildes 128 MB de RAM e eu tinha ficado encantado com o jogo Saint Seiya Asgard Chapter. E como vi nos créditos que o jogo era feito em um tal de "RPG Maker 2000", resolvi nos momentos em que eu tinha disponíveis na internet (lembra do 'pulso único' do período entre meia noite e seis da manhã nos dias úteis, após as duas aos sábados e durante todo o domingo? Pois é, eu só fui adquirir banda larga em 2012) saber mais sobre essa ferramenta.

O primeiro entrave era justamente o Running Time Package (RTP), o pacote de gráficos e sons necessários para se rodar o RPG Maker 2000. Para os padrões atuais, 11 Megas não é nada, mas imagina baixar isso usando um modem de 56K.

Depois disso, criar meu primeiro jogo foi uma tarefa difícil porque... Eu não sabia nada sobre como funcionava o RPG Maker 2000 e coisas como Switches e Variáveis eram um conceito tremendamente alienígena pra mim. Tanto que meu primeiro "jogo" sequer tinha uso de switches. Como? Não sei, mas repare nas aspas em "jogo".

Provavelmente existiam tutoriais na época, mas eu era um moleque de quinze anos e não tinha tempo pra tutoriais... Eventualmente aprendi como funcionavam os switches e agora sim eu podia fazer um jogo "de verdade".

Foi então que sem planejamento nenhum, comecei a fazer o Força da Amizade.

A história era simples, uma semana antes da formatura (?), o protagonista e seus amigos estavam ensaiando (eles tinham uma banda? ??????), quando uma amiga do grupo é sequestrada por um cara em uniforme de chefe de cozinha (??????????) pois por alguma razão, essa amiga do grupo era considerada filha de Lúcifer (???????????????????????) e então eles resolveram ir sair ao resgate dela.

E essa coisa do parágrafo anterior é a segunda versão. A primeira tinha menos roteiro ainda, mas perdi ela de algum modo. O fato é que tudo o que eu tinha era a ideia de resgate e ia bolando as coisas conforme ia fazendo as coisas. Mas vamos considerar que isso era um jogo feito por um garoto de quinze anos, entre as aulas e a necessidade do resto da família  de usar o computador igualmente.

Como personagens, obviamente eu coloquei a mim mesmo (coisa que toda pessoa que cria um jogo, livro, faz em algum momento) e meu ciclo de amigos da turma do colégio, e dentre as classes do jogo, uma era MALUCO (Não Maluco de 'sofre de problemas mentais', mas Maluco de 'Sem Noção' mesmo). De fato, levou 16 anos para eu explicar o que diabos era esse conceito de 'Filha de Lúcifer' (história pra outro post), então certamente o jogo não ganharia nenhum prêmio de melhor roteiro, mas garanto que o roteiro era melhor que The Last of Us Parte II.

O jogo usava talvez 98% de assets do RTP do RPG Maker 2000, porque a maioria dos criadores não se importava com isso na época, o pessoal só queria criar os jogos, por mais simples que fossem. Porém, o protagonista, eu consegui fazer um sprite mais ou menos customizado. Eu consegui, através de um software que permitia criar sprites, separar o cabelo do protagonista padrão do RPG Maker (Alex) e com a ajuda do paint, juntei essa peruca com o sprite do Thief masculino do jogo, assim formando um sprite mais ou menos original. 

Os diálogos do jogo, obviamente improvisados, hoje em dia soam tremendamente cretinos e exagerados, mas na época... Talvez fossem exagerados e cretinos, oh, o poder de olhar as coisas por outra perspectiva. Mas como todo moleque de quinze anos, eu achava que estava sendo genial. Ou pelo menos fazendo um bom trabalho.

O mapa mundi original era um mapa de 20x15 espaços e tudo era conectado rapidamente, você não precisava de muito pra ir de um ponto a outro do mapa. Muita coisa foi feita sem cuidado do por quê. Por quê todas as cidades tem o mesmo mapa? Por quê só uma loja tem os itens corretos de cura e equipamentos? Quem é Anna? 

Respondendo essas perguntas: Eu estava com preguiça de fazer cidades diferentes depois de ter perdido o primeiro projeto, então eu simplesmente copiei e colei o mapa na cara de pau mesmo. A segunda pergunta, eu esqueci de colocar lojas funcionais nas cidades. Anna não era baseada em ninguém em particular (nem lembro se tinha uma Anna na minha turma da oitava série) e a explicação sobre quem é ela, só veio na versão revisada do jogo.

A trilha sonora original era boa parte composta por midis de musicas da Legião Urbana... Felizmente a versão revisada de 2019 remove essa praga, mas na época era o que eu escutava. Eu tinha quinze anos, caspita. O fato é que boa parte das musicas não encaixava com o que o jogo pedia. Mas quem ligava pra isso na época?

Enfim, fazer aquilo na época me dava uma sensação de diversão, porque eu tava fazendo algo e esse algo se mexia na tela quando eu clicava pra jogar. Talvez essa seja a parte divertida de fazer jogos, não sei.

Agora, a parte importante: O download do jogo.

Você pode baixar "Força da Amizade" aqui 







sábado, 16 de janeiro de 2021

Anatomia de um Sprite + WIP

 


Olá, Sancini novamente. Recentente, terminei a publicação da versão 0.64 de Máscara Omega (link no final do post) e no momento estou revisando alguns sprites para "Encontro Destinado" (versão 0.1b no fim do post igualmente), e entre uma coisa e outra pensei: 

"Eu peguei boa parte dos sprites de Máscara Omega graças a comunidade de Student Transfer, então seria legal eu meio que retribuir o favor, liberando o recolor negro do John que fiz", e no momento estou recolorindo o resto das coisas que faltam, no caso, as expressões faciais. E como bônus, estou recolorindo algumas CG's também.

Isso é necessário? Não. Vou ganhar algo com isso? Absolutamente não. Mas eu não tenho mais o que fazer, então decidi vazer assim mesmo.

Os sprites tiveram seu recolorimento dividido em diversas fases, vou detalhar o processo abaixo.

Sprite concluído

Fazer o sprite acima foi um processo dividido em seis partes. E explicando um pouco antes de começar, os sprites da novel Student Transfer são em sua base, divididos em duas partes:


Como visto acima, eles são divididos em corpo e expressão facial. Muitas visual novels, mesmo comerciais, usam esse esquema, com variações  (especialmente se elas são programadas na Ren'py) e a maneira como o jogo é codado, deixa o sprite como um só. Deixo bem claro aqui que o trabalho de ripar os sprites utilizados em Student Transfer é hérculeo, por assim dizer. Enfim, dito isso, passemos pro processo de recolorimento. 

Eu primeiro peguei o sprite base pelado do personagem:



(Usei a versão de cuecas só pra exemplificar, mas a base foi o peladão), daí eu utilizei a varinha mágica de seleção do GIMP, não lembro qual foi o limite de tolerância de cor semelhante que usei, se foi 50, 70 ou 100%, mas enfim, fiz a seleção, assim somente a área que eu queria seria recolorida, e utilizei o balde de tinta pra recolorir, com o hexadecimal da cor sendo #8b6245, com a opacidade em 30% e exatamente duas mãos de tinta, chegamos ao corpo base:



As partes que não haviam sido recoloridas por falta de seleção na varinha mágica, eu usei o lápis com as mesmas propriedades do balde de tinta (mesma cor e opacidade, com dois toques).

Tinhamos o sprite base pelado, mas como vestir ele? Simples. Pegando outro sprite e apagando a pele original.


Pegamos o sprite base original e removemos a pele. O problema das partes claras da roupa é que a varinha pode colocar elas junto com a pele, então o corte teve que usar da ferramenta de seleção livre ao invés da varinha pra apagar partes, pra não dar merda.

Meio do processo

Removendo a pele, temos um sprite só com a roupa, daí foi um processo simples de juntar a roupa com o sprite pelado, e esse é o resultado final:



Daí em diante, foi fazer o mesmo com as outras 8 roupas que o personagem tem. Algumas deram mais trabalho que outras, mas por fim, as roupas foram feitas. Agora, o trabalho das expressões foi um pouco diferente.

Como as expressões eram variadas, algumas deram trabalho, outras nem tanto. Primeiro, eu pegava obviamente, a expressão original (escolhi a expressão abaixo porque ela mostra olhos e boca abertos.

Primeiro, através de um tedioso processo de corte usando a seleção livre, eu deixei só os olhos da imagem, criando uma nova imagem que vai ser usada depois:


Usualmente eu renomeio esse arquivo de xolhos (com x sendo o numero da expressão), em seguida, pego novamente a imagem da expressão e uso a confiável varinha mágica com o limite de tolerância de cor em 100% e seleciono a pele, que será recolorida. Sim, a cor invadirá os olhos e foi por isso que a imagem acima foi criada. O resultado é mais ou menos esse:



Digo mais ou menos porque eu só recolori um arquivo rapidamente pra esse artigo. Por fim, eu pegava a imagem recolorida e os olhos, juntando e esse era o resultado final:


Agora com o corpo e expressão da mesma cor, juntando os dois, temos um sprite inteiro.

Ainda existem algumas arestas a serem aparadas nos sprites (como a falta de sombras nos braços) e ainda faltam algumas expressões a serem recoloridas (a princípio só recolori as que usei em meus jogos) e estou recolorindo algumas CG's.

Por fim, os downloads:







quinta-feira, 14 de janeiro de 2021

Olá, bem vindo ao meu blog

 Olá, seja bem vindo ao meu trilionésimo blog, porque sim.

Apesar de escrever desde 2019 no Arquivos do Woo e escrever em blogs pequenos faz mais de uma década, resolvi fazer esse espaço aqui para postar as criações que faço em termos de jogos e um pouco do processo por trás delas. 


Talvez eu fale de meus livros, se me der na telha.

Por enquanto é só isso. Outros posts falarão de outras coisas.

Atualizei um dos meus jogos e portei ele pra Android.

  Entre o período de todas as revisões de Máscara Omega (da 0.2 pra 0.5 pra 0.6 pra 0.62 e finalmente na 0.64), eu fiz um pequeno trabalho a...