Especial na Alura

Jogos Pokemon: curiosidades de tecnologia e programação

Mario Souto
Mario Souto

Se você é fã de Pokémon provavelmente já jogou algum dos jogos da série, e se é programador tem altas chances de algum dia ficar pensando em como os jogos eram feitos, no meu caso essa curiosidade foi fundamental para hoje trabalhar como programador e compartilhar algumas dicas principalmente se você for que nem eu e tem bastante curiosidade com o mundo do desenvolvimento de games (meu eu de 12 anos ficaria feliz em ver esse post) que eu tenho levado como um hobbie.

Ainda falando de Pokémon, é extremamente mágico ver uma franquia que começou lá na época do gameboy com gráficos assim:

Se tornar um jogo assim:

Após 20 anos de história e com a evolução dos hardwares e das tecnologias disponíveis dos videogames hoje é possível ver os pokémons andando fora das pokébolas com gráficos bacanas, capturar pokémons no meio da rua com Pokémmon Go! (cuidado com isso gente pelamor), ter interações entre videogame e celular além de podermos andar na diagonal nos jogos da franquia principal! (essa aqui quando surgiu em Pokémon XY era o que eu mais comentava por algum motivo).

E como são feitos os jogos da franquia?

Embora os jogos sigam a temática clássica e já bem conhecida de jogos RPG, onde vamos subindo de nível ganhando poderes e ficando mais fortes para derrotar um inimigo forte no final, a linguagem de programação por trás dos jogos é um mistério. Um pessoal em fóruns como Reddit e Quora especulam que os primeiros jogos: Red, Green e Blue; Tivessem sido feitos em Assembly, enquanto outros jogos da franquia foram feitos em C e C++.

O fato é que a Game Freak, produtora de todos os jogos da franquia principal, são muito bons em conseguir manter o código que tem a essência por trás dos jogos, o sistema de batalhas, lógicas de evolução entre outras comuns na série e portar em cada plataforma nova que surge, sempre com muita qualidade.

Já quando falamos de Pokémon Go!, desenvolvido pela Niantic, esse foi feito em cima da famosa engine Unity, que facilitou o desenvolvimento do mesmo para os sistemas operacionais Android e iOS. E se você já conhecer a Unity deixo a dica para usar a biblioteca Vulforia, que caso você queira fazer experimentos com realidade aumentada é uma excelente dica e a documentação dela é super bacana.

O que eu preciso saber para criar um jogo?

Criar um jogo completo com uma boa narrativa, música cantarolante e personagens super bacanas com roupinhas legais é uma tarefa que exige bastante conhecimento em área muito distintas. Alguns desenvolvedores como o criador de Undertale se aventuram em tentar fazer um pouco de cada coisa, o que é bem legal e é o que eu faço como hobbie hoje em dia, mas na prática isso exige bastante esforço e estudo, coisa que o Marcos Castro da uma noção legal no vídeo falando do making of de um jogo que foi sucesso indie no brasil "A Lenda do Herói". Se você quiser começar como programador aqui vão algumas dicas:

Primeiros passos: Ferramentas e escolhendo uma linguagem de programação

Existem diversas linguagens de programação no mundo (Java, C#, JavaScript, Swift, Kotlin, Scala, Haskell, Clojure...), vou deixar aqui as que eu vejo que podem ser boas pedidas para quem quer começar a fazer jogos:

Lua

Jogos grandes como Tibia e Civilization foram feitos em cima dessa linguagem que é bem simples se comparada com outras mais populares. Aprendendo as básicas da linguagem instruções e tento uma base de lógica de programação já da para dar os primeiros passos e arriscar fazer alguns jogos. Aqui na Alura temos um curso super legal onde você pode aprender a criar um jogo super bacana, o fuga das sombras no melhor estilo pixel art 2D. Ele roda em cima do TIC80 que é um programa que emula um computador antigo onde você já tem todo um ambiente para fazer os sons, mapas e os códigos do jogo, além de tudo ser fácilmente portável para rodar num navegador no final e até mesmo no seu celular com alguns ajustes.

Imagem do jogo fuga das sombras

E aproveitando a deixa de falar em navegador, uma linguagem relativamente próxima do Lua é o famoso JavaScript que é uma boa alternativa para quem quer começar a fazer jogos também.

C# e Unity

Essa aqui é uma dupla popular entre os que usam a engine Unity para fazer jogos e C# como a linguagem de programação. Ambas possuem uma curva de aprendizado considerável, mas aliada ao desenvolvimento de jogos pode ser uma experiência bem bacana, é só ir com calma e se inspirar em jogos populares feitos em cima da Unity (Lembrando que nem todos eles foram feitos em C#) e segue a formação Unity aqui da Alura para ajudar nesses estudos, mesmo que você não seja aluno os materiais abertos da formação podem ti dar um norte super bacana :)

Jogos feitos em Unity

Outras Engines e ferramentas

RPG Maker

Com certeza é uma ferramenta que fez parte da história de muita gente que jogou no computador durante os anos 2000 e é uma boa forma de começar, principalmente por já existirem uma infinidade de scripts prontos com sistemas de batalha de jogos como Zelda e Pokémon que podem ajudar no pontapé inicial do seu jogo, além de ter jogos populares como To the Moon, feitos em cima dela.

RPG Maker modo editor de mapa

Unreal

Essa é a engine por trás de vários jogos com gráficos absurdos como (Kingdom Hearts 3, A Way Out, Injustice), pode ser complicado desenvolver em cima dela no começo, pois para conseguir fazer alguns testes você pode precisar de um computador potente, mas caso queira curiar sobre ela da uma olhada na formação que temos aqui da Alura.

Sprites e imagens em jogos

Aqui já são skills que alguém com conhecimentos de Design pode ter mais facilidade, para eu que sou mais focado em desenvolvimento é uma das partes mais difíceis quando se tenta criar o próprio jogo. Criar os personagens, items e mapas é um desafio bem grande, eu que estou me aventurando nessa jornada como hobbie uso bastante sprites prontas que pego da internet para projetos pessoais, mas se você quiser aprender na prática aqui na alura também tem um curso bem bacana que vai ti ensinar tudo do 0

Músicas

O Tic80 que eu citei anteriormente é uma boa para começar, e existem outros programinhas bacanas para fazer as músicas como o http://www.ymck.net/en/download/magical8bitplug/. No começo pegar audios prontos é o que mais vai poupar tempo de vida, principalmente se seu foco na carreira for ser desenvolvedor de jogos.

Outras habilidades são necessárias, como criar uma boa história, saber divulgar do jogo, conversar com os fãs (vai que seu jogo da super certo?), gerenciar redes sociais... Mas calma que você pode começar com os projetos aqui dos cursos da Alura ou se inspirar em jogos comuns mais simples de celular que são um ótimo treino e com o tempo você vai vendo o próximo passo que precisa, lembrando que com a ajuda de outras pessoas tudo pode ficar mais fácil.

E depois dessa tour sobre o mundo do desenvolvimento de games que começou falando de Pokémon, da uma olhada em como criar seu próprio jogo no estilo da franquia nesse vídeo, infelizmente somente em inglês, do curso introdutório de ciências da Computação de Harvard mostrando por onde começar

Lembrando que Pokémon é uma marca da nintendo, então quando for criar os seus jogos se inspire no pessoal que eu deixo como exemplo logo na sequência de jogos que se inspiraram no formato da franquia dos nossos amados pokémons.

Jogos e Franquias que inspirados por Pokémon

E para fechar esse post, vou deixar algumas dicas de jogos que você pode dar uma olhada com uma mecânica bem próxima do que estamos acostumados com pokémon:

Ricky and Morty

Yokai Watch

Notemon

Monster Sanctuary

Temtem

Quer criar seus próprios programas e entrar no mundo da tecnologia?

Conheça os Planos para Empresas
Especial na Alura