Por Matheus Gonçalves
Se você gosta de videogame, é muito provável que você já tenha considerado a ideia de trabalhar com isso, certo? Talvez testar jogos, talvez traduzir, algo na área. Como eu programo desde muito cedo, foi fácil me imaginar trabalhando com a programação de games e afins, e sempre sonhei com isso.
A vida foi caminhando, consegui às duras penas fazer uma faculdade de Ciências da Computação e, com ainda mais luta, uma pós-graduação em Produção de Games. Claro que assim que eu peguei o certificado, eu estava contratado e trabalhando na área, não é mesmo? Não. Não é mesmo. Demorou muito para conseguir alguma coisa.
Mas já fiz alguns jogos e trabalhei em alguns projetos que me agregaram muito conhecimento. Um Sudoku feito na faculdade ainda, precário, em C++, traduções aqui e acolá, advergames, além do meu futebol de botão, que continua em sua fase beta:
Ainda assim, como aconteceu com Zoe Quinn, autora do artigo original que inspirou este meu texto, tudo começa com um pequeno jogo, feito de forma independente.
Ela é co-fundadora da Dames Making Games, em Toronto, que tem vários projetos legais, incluindo o incentivo na formação de garotas que trabalhem neste segmento de mercado.
Vou detalhar aqui várias dicas que a ajudaram a chegar onde ela chegou, bem como experiências pessoais minhas, pra formar esse guia ilustrado do Game Developer iniciante.
A primeira coisa que você precisa saber é que criar jogos de videogame não é a mesma coisa que jogar videogame. Aliás, trabalhar na área tem um grande potencial de te fazer passar a ver os games com olhos muito mais técnicos, e que podem ou não te fazer apreciar menos algumas obras.
Isso, pois esse tipo de conhecimento te torna capaz de enxergar as falhas com mais facilidade. Ao mesmo tempo que as qualidades, aqueles detalhes feitos com maestria, ganham ainda mais brilho e mais cor. Copo meio cheio, meio vazio, ou apenas um copo, depende do seu próprio referencial.
É possível trabalhar com o roteiro, game design, level design, inteligência artificial, arte, com a programação em si, com a implementação, testes, com a parte comercial e mais uma infinidade de funções. Tudo isso pode exigir de você conceitos que são muito diferentes da sua atual realidade, principalmente em projetos nos quais se tem apenas uma ou duas pessoas para criar o pacote todo, ou três ou quatro, em pequenas empresas independentes.
Há também a situação na qual você pode contar com um grande time de hábeis ilustradores e programadores de grandes estúdios. O importante é estar aberto para absorver esse conteúdo e não ter medo de trabalhar duro. Mas essa é uma realidade bem distante dos iniciantes. Por isso…
Como qualquer outra habilidade, aprender a projetar e desenvolver games leva tempo, paciência e muita prática. Por mais que isso seja óbvio, preciso lembrar que é muito provável – e plenamente aceitável – que seu primeiro jogo não tenha a mesma qualidade dos excelentes títulos que você costuma jogar.
E ele vai ter bugs e erros que vão exigir de você algumas horas pra criar as devidas correções. E isso talvez te faça perdoar os constantes atrasos nas atualizações dos seus jogos, que nunca chegavam, e que antes te fazia correr pra reclamar muito no Twitter.
Considere também trabalhar com protótipos, que são versões menores da sua ideia principal, com funcionalidades reduzidas, mas que te permitam ver seu jogo em funcionamento. Isso vai te ajudar a aprimorar os requisitos e te dar um panorama do tamanho total do projeto.
Aliás, uma vez que você faça isso, é bem provável que você já comece a ver problemas no escopo inicial. Isso porque a gente tende a querer enfiar o mundo dentro de uma caixa de fósforos, planejando um game com várias mecânicas diferentes e conteúdo além da conta.
Essa ambição pode te colocar em várias enrascadas (e muita confusão na Sessão da Tarde). Portanto, esteja pronto para diminuir o escopo e fazer algo simples. Conhece o conceito do KISS? Keep It Short and Simple {pra ser educado aqui.}.
Para o seu primeiro jogo, pense em algo com uma mecânica simples, com comandos básicos. Quer um exemplo? Pegue dois jogos antigos, daqueles do Atari, com mecânicas triviais, e misture ambos. Algo assim, como eu postei esses dias no meu Twitter:
Pense em algo mais próximo do Pong, em vez de querer fazer a nova versão do The Elder Scrolls, ou o GTA VI.
Faça um jogo no qual o personagem principal, que pode ser apenas uma barra horizontal, evite que uma bola toque o chão. É um desafio simples, mas que vai te dar experiência para dar um passo maior no futuro.
É necessário evitar algumas coisas no começo, como querer criar uma função multiplayer, placar online hospedado em um servidor, gráficos em 3D, coisas assim. Não que você deva abdicar de aprender como isso funciona, mas tente não colocar isso no seu primeiro título, entende? Mais uma vez, KISS.
Essa foi uma das partes mais tristes pra mim, e me desculpe se sou o portador de más notícias. Há várias etapas na criação de um game, desde o seu esboço até a versão final. Mas uma coisa é certa: se você pretende seguir a carreira com programação de jogos, em algum momento será necessário codificar conceitos de cálculo e geometria analítica. Lembra de matrizes, vetores, produto escalar e mais uma porção de exercícios que você fazia nas coxas (ou não) na escola? Pois é… Pode ser que surja a necessidade de reaprender tudo isso. Esteja preparado para um futuro assim. Mas não quero assustar ninguém, vamos por partes…
“Então maravilha, já pensei o suficiente, tenho uma ideia pra fazer meu primeiro jogo, algo simples, facilmente gerenciável e com escopo plausível. E agora Matheus?” – Bem, você tem uma batalha pela frente, e é preciso escolher suas armas.
Existe uma variedade enorme de Game Engines e softwares que podem te ajudar a desenvolver um game. Como a ideia aqui é auxiliar os iniciantes, vou tentar focar em ferramentas utilizáveis mesmo por quem tem pouquíssima ou nenhuma experiência com programação. Muitas delas já possuem vários exemplos de games, que você pode utilizar o projeto para fazer algo diferente com eles, mexer no código, separar funções, estragar e fazer parar de funcionar, tudo isso caracteriza uma das melhores formas de aprender a desenvolver e programar, tanto jogos, quanto aplicativos em geral, que é sair fuçando. Mesmo, é sério.
Vou focar, portanto, em quatro ferramentas que considero que tenham uma curva de aprendizagem curta, capazes de produzir uma grande variedade de jogos e protótipos, de forma relativamente rápida. Afinal, é seu primeiro jogo, o ideal é poder jogá-lo em um prazo aceitável, não quero desestimular ninguém, certo?
Todas elas possuem versões gratuitas, o que significa que você não precisa gastar os tubos pra poder adentrar esta carreira que você tanto busca.
1. Twine
Você já leu aqueles livros de aventura, no qual você tinha que escolher a próxima atitude do personagem, indo para a página tal? Ou mesmo jogado games assim, no qual você clica na próxima ação a ser executada e assim a história vai seguindo?
Então, o Twine é um programa relativamente novo, feito para a criação de aventuras assim. Nesta ferramenta visual, você cria a história, com os possíveis comandos, em uma série de nós conectados, que podem ser compartilhados através de um arquivo HTML. Sim, simples e rápido com você está imaginando, tudo depende da sua criatividade. E, veja, sem usar nenhuma linha de código ou sintaxes bizarras.
Se você não tem experiência nenhuma com programação, este pode ser o ponto de partida ideal. Não somente por ser bem simples de usar, mas também porque ele pode te ensinar os princípios básicos de programação, como estruturas SE-SENÃO-ENTÃO (IF-ELSE-THEN), laços de repetição ENQUANTO e ATÉ-QUE (como Loops e Whiles), manipulação de variáveis e outros conceitos que formam o coração deste tipo de aprendizado.
Se você já possui experiência com codificação ou web development, fica ainda mais fácil usar o Twine para criar jogos mais complexos.
E já que ele exporta os projetos em HMTL, basicamente você pode fazer uma salada maluca dentro do jogo, com imagens, música e até outros jogos, como os feitos em flash. Só não vale fazer uma chamada para um emulador embutido e falar que você tá desenvolvendo games.
Se você ficou curioso pra saber o que pode sair do Twine, vale a pena conferir os jogos Howling Dogs e Afterward, que mesmo em inglês, dá pra se divertir bastante.
Esse tutorial aqui é fantástico e vai te ajudar muito. De qualquer forma, trata-se de um aplicativo limitado. Se você quiser fazer algo mais complexo que chamadas com as estruturas citadas acima, ou eventos aleatórios, procedimentos com tempo, será necessário escrever seu próprio código. Esse tipo de função, infelizmente, não tem suporte nativo.
E, claro, se sua meta é desenvolver um shooter simples ou algum game de plataforma, essa não é a ferramenta indicada.
2. Stencyl
Outra ferramenta recém criada, o Stencyl tem uma interface gráfica bem amigável, que vai te ajudar a conceber uma grande variedade de games. Se você gosta de programação na pegada LEGO, encaixar blocos e procedimentos parecidos, será ainda mais atraente.
Você pode organizar, encaixar, empilhar e conectar os blocos com as ações em comandos lógicos. É óbvio que, se você quiser, dá para abrir e modificar o código destas peças. Aliás, neste modo dá até para programar suas próprias funções do zero.
O Stencyl também possui uma biblioteca com jogos exemplos para que você possa utilizá-los ou modificá-los. Ver e editar o código destas peças vai te ajudar a aprender Actionscript3, uma linguagem que pode ser aplicada para fazer jogos em Flash, com ferramentas da Adobe e sem a necessidade de usar o Stencyl em si.
Uma vez que esta ferramenta gera games em flash (arquivos .swf), é bem fácil compartilhar seus jogos entre seus amigos. Aliás, nem é necessário ter seu próprio serviço de hospedagem, já que é possível fazer o upload do jogo para o site do Stencyl e compartilhar o link de lá mesmo.
Outra vantagem interessante deste software é que você pode criar e inserir seus próprios ativos de arte, como modelos, sprites, texturas, sons, músicas e até outros jogos completos.
Dois exemplos do que já foi feito nesta plataforma: Handheld Video Game e o The Brim.
Ainda assim, como eu disse, trata-se de uma ferramenta nova e ela possui sim alguns bugs. Um dos que mais me irritou até hoje apagou todo meu projeto. Por sorte, eu tinha backup e eu aconselho que você também o faça. Constantemente. Em vários lugares. Sim, nunca é demais.
O programa básico é gratuito, mas se você quiser adquirir a versão Pro, que oferece várias customizações e cuja assinatura te dá acesso a fóruns privados de desenvolvedores, basta desembolsar US$ 79 por ano. E se sua ideia é portar seus games para o iOS, será necessário pagar mais US$ 149 por ano.
Mas, lembre-se, você está apenas aprendendo. Pessoalmente, acho interessante que você saiba que estas opções existem, mas recomendo pensar nelas mais pra frente, ok?
Se você procura tutoriais, vídeos e projetos para iniciantes, basta seguir as instruções que existem dentro da própria ferramenta. Além disso, existe também o Stencylpedia, um site com informações adicionais que podem te ajudar.
3. GameMaker
Chegou a hora de falar de um dos game engines mais conhecidos entre os game developers iniciantes. Trata-se do GameMaker, uma ferramenta que é bem parecida com o Stencyl, mas possui algumas diferenças chave. Por exemplo, a versão gratuita do GameMaker só exporta seus jogos para arquivos binários executáveis (.exe ou .dmg), e ainda assim com marca d’água neles. Nada que impeça seu aprendizado, é verdade.
As edições pagas (Standard por US$ 49,99; Professional por US$ 99,99; Master por US$ 499,99) oferecem mais formatos e funções, que são essenciais para quem deseja criar um game comercial.
O conceito de arrastar-e-soltar os blocos também é bem similar ao Stencyl, mas com uma linguagem própria, que só funciona no GameMaker.
Todavia, o software tem sido largamente usado para a criação de vários jogos independentes de bastante qualidade, como as versões originais de Spelunky e Stealth Bastard, o que deixa evidente sua flexibilidade.
O GameMaker também conta com uma porrada de tutoriais embarcados, que eu recomendo fortemente que você siga para aprender como as coisas funcionam nesta plataforma, e sentir sua usabilidade.
Uma vez que você tenha feito isso, pode ser a hora de dar uma navegada no YoYo Games, que possui também uma tonelada de tutoriais que certamente vão te ajudar a criar aquele jogo específico que tanto você deseja desenvolver.
Pra ficarmos na sessão “Favorite estes sites agora“, ainda recomendo o GMLscripts, o TIGsource e essa thread com vários jogos open-source feitos com o GameMaker.
4. Shiva3D
Se você achou que estas plataformas são simples demais e deseja sentir como é trabalhar com um game engine mais parrudo, mas desde que ele seja fácil o suficiente para um iniciante, indico aqui o Shiva3D.
Seu game-exemplo mais conhecido é o The Hunt, um First Person Shooter/Horror Survival bem legal, que você pode ter acesso ao código, ao projeto e modificar ao seu bel-prazer.
Foi com essa ferramenta que eu comecei a criar meu jogo do futebol de botão mostrado lá em cima, e achei os tutoriais bem didáticos.
Diferentemente das outras sugestões, é necessário se enfiar um pouco mais nos conceitos de desenvolvimento tradicional de games, além da necessidade de se familiarizar com a linguagem de Scripts Lua (que é brasileira, vejam vocês), mas uma das coisas mais legais é que você tem todos os aparatos para desenvolver o mesmo game e exportar para diversas plataformas, mesmo na versão gratuita (também com marca d’água).
Você encontra uma lista de games feitos com Shiva3D neste link, bem como vários outros tutoriais, documentação, dicas e afins, na comunidade aberta de desenvolvedores.
Essas são as quatro ferramentas que eu poderia sugerir para iniciantes que possuem pouca ou nenhuma experiência. Evidentemente, estas não são as únicas ferramentas disponíveis no mercado. Há por aí uma gigantesca oferta de softwares mais avançados e poderosos, como o Unity, frameworks como o Flixel e o Flashpunk, bem como ferramentas diferentes para tipos específicos de games, como o britânico Adventure Game Studio (jogos de aventura, como o nome sugere) e o Inform7 para design de sistemas interativos. Tenha em mente então que esta é apenas a ponta do iceberg.
Se você precisar de qualquer coisa específica para um jogo, é provável que você já encontre algum código ou biblioteca pronta que vai te ajudar a chegar onde você quer, e desenvolver aquela função que você necessita. Pai Mei Google salve a todos nós, amém.
Comentei alí em cima sobre art assets, música, sons, modelos, sprites e texturas, e tudo isso será necessário para deixar seu jogo mais bonito, com maior imersão e com melhor acabamento.
Mas não se preocupe, existem vários sites que podem te ajudar a conseguir tudo isso, em versões gratuitas e open-source, como o Freesound.org, que possui diversos efeitos sonoros disponíveis, o OpenGameArt.org no qual é possível baixar elementos gráficos dos mais variados e o SoundCloud, no qual várias pessoas divulgam suas músicas próprias sob licenças como a Creative Commons, que te permitem utilizá-las como trilha sonora, sem nenhum custo. Dependendo da licença oferecida, basta creditar o autor.
Afinal, é o auxílio mútuo de artistas que permite que essa realidade cooperativa continue existindo. 🙂
Ótimo, você fez o protótipo, ele está jogável, mas seus testes estão viciados. Sim, estão, não duvide disso jamais.
Então é hora de chamar alguém honesto para testar o game e te passar todas as impressões. Portanto, compartilhe com seus amigos mais próximos. Pessoas nas quais você confia, e que estejam sinceramente dispostas a te ajudar.
Peça para que eles joguem e observe os resultados. Anote as reações, dicas e sugestões, suas respostas instintivas, o que eles entendem e o que eles não entendem. Com isso, você vai aprender muita coisa sobre o design do seu jogo.
Quanto mais pessoas, mais testes, e melhor assim seu filtro do que deve ou não ser melhorado. Mas, por favor, não seja chato. Ninguém quer ajudar uma pessoa inconveniente, seja legal com seus amigos.
E aqui, é bom citar que você pode ser alvo de críticas duras ou que te peguem de surpresa. Mas não tenha vergonha ou se irrite se você deixar passar algo bobo e óbvio, já que fazer um jogo é um processo iterativo, com várias etapas de construção-teste-reconstrução, até que se chegue no produto final.
Nenhum jogo é perfeito e você vai perceber que seu jogo tende a nunca estar completamente terminado. Sempre vai ficar faltando um ajuste fino daqui e dali. Saiba quando parar. E saiba entender as críticas de uma forma construtiva, sem que isso te abale. O próximo projeto sempre vai ser melhor.
Ah, e se lembre que a última etapa no desenvolvimento de um jogo, é desenvolver outro. Então crie, teste, jogue, ajuste, corrija, publique, e pense no próximo jogo. Esteja em contato com a comunidade de desenvolvedores, muita gente vai estar disposta a te ajudar se você estiver disposto a ajudá-las. Manter-se junto de outros profissionais da área vai te inspirar.
Estudar game design é algo que eu sugiro pra qualquer pessoa que gosta de videogame, não apenas para aqueles que queiram trabalhar com isso. É uma habilidade complexa de ser desenvolvida, é verdade, e em vários aspectos, mas vale a pena.
Existe uma infinidade de materiais disponíveis na Internet, tutoriais, vídeos, novas técnicas, é só querer buscar. Vários outros desenvolvedores mantém blogs e sites pessoais nos quais é possível ler suas experiências e aprender muito com erros e acertos alheios. Existem listas e mais listas, por exemplo, do que um Game Developer nunca deve fazer, mas se sua vibe é ler livros físicos, recomendo o How to Do Things with Videogames que é bem didático, o Extra Lives do Tom Bissel, e o HTML 5 Game Development For Dummies (não se ofenda com o nome, é de fato útil e de rápido aprendizado).
Como dica final, que vale mais para quem trabalha com a arte do jogo, sugiro manter sempre a preocupação de utilizar gráficos otimizados.
Use somente as texturas necessárias, e considere sempre diminuí-las pela metade. Feito isso, pense se dá pra diminuir novamente, sem perda do resultado final.
Utilizar muitos recursos visuais pode deixar seu game desnecessariamente pesado e esse é um anti-pattern que deve ser imediatamente aprendido e corrigido.
Se você está começando agora, acredito que você tenha aqui todas as informações necessárias para criar seu primeiro game. E, por favor, uma vez que estiver pronto, deixe a gente ficar sabendo. Vamos fazer essa máquina girar. Se você é um desenvolvedor independente, compartilhe com a gente também o seu trabalho.
Forte abraço.
Send this to friend