Como falhar como desenvolvedor de games
Estou celebrando os 15 anos desde que desenvolvi meu primeiro jogo. Não pretendo desabafar, mas sim refletir sobre o tempo transcorrido e os projetos que realizei.
O desenvolvimento de jogos sempre foi um hobby para mim, uma atividade que eu praticava nos momentos de lazer. Contudo, sempre aspirei a lançar um jogo e alcançar algum nível de sucesso. Nunca cheguei a publicar meus jogos na Steam, Google Play ou plataformas similares, tampouco obtive qualquer ganho financeiro com isso, apesar de ter tentado em alguns casos.
Falta de Foco
A primeira engine que explorei foi o RPG Maker VX. Naquela época, eu estava bastante envolvido na comunidade de fóruns do RPG Maker, sempre compartilhando ideias e projetos. Minha criatividade não tinha fim, e eu constantemente tinha novas ideias para jogos. Durante esse período, estimo ter criado pelo menos uma dezena de projetos, embora muitos deles tenham permanecido apenas no estágio inicial de desenvolvimento. Como estava no ensino médio na época, tinha bastante tempo livre para me dedicar a esses projetos. Eu cuidava de tudo, desde a escrita do roteiro até o design do jogo, criação de arte e desenvolvimento de quebra-cabeças.
Um dos projetos aos quais dediquei mais tempo foi um jogo de terror nos moldes de "Amnesia: The Dark Descent" e "Silent Hill", chamado Insomnia. Infelizmente, perdi todo o progresso desse jogo quando formatei meu computador. Outro projeto que estava bastante polido era "Brian's Mansion", que incluía até mesmo uma seção de tutorial e arte original. No entanto, todos os jogos que criei nessa fase acabaram ficando apenas no estágio inicial, pois sempre me empolgava com uma ideia nova e abandonava o projeto anterior.
Um dos últimos projetos que comecei, envolvendo uma casa assombrada por fantasmas, estava se mostrando promissor. No entanto, também acabei abandonando-o após criar apenas o início. Meses depois, ao revisitar os arquivos do meu computador, encontrei esse projeto novamente e decidi não abandoná-lo dessa vez. Em vez disso, resolvi ser pragmático e utilizar o início do jogo como base para finalizá-lo. Transformei esse começo em um jogo completo, ajustando a história, as fases e os desafios. Embora tenha sido um processo desafiador, consegui dar ao jogo um começo, meio e fim coerentes.
O jogo resultante era simples e curto, mas mesmo assim ganhou destaque na comunidade do RPG Maker. Recebi feedback positivo e até mesmo alguém fez um trailer para ele. Embora fosse breve, essa experiência de conclusão trouxe uma sensação de realização, mostrando-me a importância de persistir e finalizar meus projetos, mesmo que de forma simplificada.
Não usar abstrações
Depois de adquirir habilidades em programação, completei um curso técnico em Informática e, em seguida, me formei em Ciência da Computação. Iniciei minha jornada profissional trabalhando por um ano com Unity, realizando freelancers em projetos pequenos para uma empresa, em colaboração com colegas de equipe. Nosso foco era desenvolver jogos educacionais para escolas. Durante meu tempo na faculdade, também desenvolvi um projeto que consistia em um jogo similar a Sim City, porém ambientado na gestão de uma pequena startup. Embora tenha sido uma tarefa simples para atender aos requisitos da disciplina, essa experiência foi valiosa.
Mais tarde, ao ingressar no desenvolvimento web, concentrei-me em aprender JavaScript e front-end, incluindo HTML e CSS. Comecei a criar pequenos jogos minimalistas, sem o uso de engines, aproveitando a oportunidade para desenvolver minhas habilidades e compreender o processo de criação desde o início. Ao longo desse processo, percebi que tinha a capacidade de construir algo do zero, uma vez que agora era capaz de programar. Isso me impulsionou a buscar projetos desafiadores, como o jogo "Get Out".
"Get Out" foi desenvolvido sem o suporte de uma framework, utilizando apenas conhecimentos básicos de HTML, CSS e JavaScript. Este projeto, ao longo dos anos, tornou-se uma jornada de aprendizado, onde constantemente integrava novas tecnologias que ia aprendendo. De JavaScript a JQuery, PhoneGap, Unity e React, busquei sempre aplicar novos conhecimentos no jogo. Concentrei-me em desenvolver a arquitetura e a estrutura do jogo, aplicando boas práticas de programação, princípios de orientação a objetos, SOLID e Design Patterns.
Apesar do código estar bem estruturado e de fácil manutenção, duas questões importantes surgiram. Primeiro, o jogo não era divertido. Era um jogo baseado em texto, inspirado em "Oregon Trail" com elementos de sobrevivência, mas eu lutava para torná-lo atraente e envolvente. Investi anos em estratégias de gameplay e sistemas, experimentei com pixel art e, posteriormente, com imagens reais para criar uma atmosfera mais sombria. Além disso, o escopo do jogo nunca foi fechado. Sempre surgiam novas ideias que eu tentava implementar, o que tornava difícil estabelecer uma direção clara para o projeto.
O último obstáculo foi o custo de não usar uma engine. Problemas simples, como lidar com efeitos sonoros e animações, tornaram-se complexos e começaram a afetar a performance do jogo, uma vez que ele era baseado em uma página web e não em uma engine dedicada para jogos.
Após essa experiência, prometi a mim mesmo que sempre utilizaria uma engine para meus projetos futuros. A ideia de ser um programador que constrói tudo do zero perdeu seu apelo. Passei a confiar mais em abstrações e ferramentas especializadas como game engines, reconhecendo sua importância para o desenvolvimento eficiente que fui abandonando com o tempo.
Escopo fechado
Um jogo do qual me orgulho profundamente é o meu primeiro jogo completo, com um início, meio e fim. Este jogo, Zero to One, destaca-se por não ter sido abandonado em busca de uma ideia melhor logo em seguida. A criação desse jogo foi uma experiência marcante, não tanto pela quantidade de aprendizado ou disciplina adquiridos, mas sim pela circunstância que o impulsionou: uma Game Jam.
Participar de uma Game Jam significa ter um prazo definido, um tema estabelecido e a pressão de criar algo dentro desses limites. Para essa ocasião, optei por utilizar uma engine minimalista, que forçava a concentração no design do jogo e na narrativa. Essa restrição acabou sendo uma bênção disfarçada, pois me permitiu transmitir minha mensagem de forma clara e eficaz e finalmente terminar o jogo.
Embora tenha sido um projeto pequeno, criado exclusivamente para a Game Jam, Zero to One me deixou com uma sensação de realização. No entanto, após sua conclusão, decidi embarcar em um projeto mais ambicioso, algo que poderia ser considerado meu trabalho definitivo no mundo dos jogos.
O grande projeto
Decidi mergulhar nos estudos da engine open-source chamada Godot. Sua simplicidade destacaram-se para um desenvolvedor solo como eu. Comparada à complexidade do Unity e Unreal, Godot parecia mais adequada. Seu escopo era menor e sua linguagem extremamente acessível.
Observando o sucesso atual de jogos como "The Legend of Zelda: Breath of the Wild", reconhecido pela mídia mainstream como um dos melhores jogos já feitos, vi uma oportunidade de criar algo semelhante, mas com uma abordagem mais simplificada e de escopo reduzido. Muitos elogiaram o retorno desse jogo à essência da franquia Zelda, como visto no primeiro jogo lançado para NES, "The Legend of Zelda" de 1986. Esse título antigo, apesar de sua idade, oferecia uma exploração livre e não linear, um mundo repleto de segredos. Com a tecnologia atual e a engine como Godot, vislumbrei a possibilidade de recriar essa experiência, mas com minha própria narrativa.
No entanto, subestimei grandemente a complexidade de criar um jogo estilo NES completo, com um mundo vasto, quebra-cabeças, inimigos e segredos. Após mais de um ano de trabalho, tinha apenas uma base para um jogo semelhante a Zelda, com alguns itens, partes do mundo e narrativa. A exaustão começou a se manifestar, e percebi que havia caído na mesma armadilha de sempre: acrescentar constantemente novas ideias ao projeto, resultando em um escopo infinito e dificuldades crescentes. Enfrentei desafios de desempenho mesmo em um mundo relativamente pequeno, problemas com a dimensionamento da tela e a resolução do jogo, além de insatisfação contínua com o pixel art. Como programador, constantemente alterava o visual do jogo, mas nunca alcançava a satisfação desejada.
Criar jogos é dificil
Como desenvolvedor de software e programador web, reconheço que criar um jogo vai muito além do código. É um empreendimento multidisciplinar que abrange diversas áreas, incluindo arte e design visual, roteiro, game design, marketing, publicação, música e áudio, produção e gerenciamento de projeto, testes e controle de qualidade. Como um programador, será que posso afirmar que estou verdadeiramente desenvolvendo um jogo? Mostrar o jogo e apresentar todo o código que escrevi é apenas uma parte ínfima do processo. Há muito mais envolvido, muito mais do que eu poderia imaginar ou sonhar.
Um jogo é uma entidade complexa, que vai além de sistemas e mecânicas. Eu posso ser habilidoso como programador, uma vez que dediquei minha vida a essa área, mas e as outras habilidades necessárias? Será que consigo criar um design de jogo envolvente, elaborar quebra-cabeças criativos ou conceber uma história cativante que prenda o jogador? E depois de lançar o jogo, consigo dedicar tempo para corrigir bugs, lançar atualizações, manter a comunidade engajada e viva? A verdade é que um jogo é muito mais do que apenas programação.
Ao aprender uma nova ferramenta ou engine, é natural ficar fascinado com as possibilidades que se abrem, como se fosse um deus em seu próprio universo, ditando suas próprias regras. Mas no final das contas, isso não é suficiente para criar um jogo completo. Um jogo é o resultado do trabalho de uma equipe diversificada, composta por profissionais de diferentes áreas. Sempre tentei criar jogos sozinho, mas agora percebo que, dependendo do que você quer alcançar, talvez essa abordagem não faça tanto sentido.
O mundo precisa de mais jogos?
No final das contas, aprendi que criar um jogo vai muito além das minhas expectativas iniciais. Se o seu objetivo é publicar na Steam e outras plataformas, ou mesmo se você busca apenas ver as pessoas desfrutando do seu jogo, há uma série de aspectos além do desenvolvimento em si. A parte das redes sociais, a criação de conteúdo para o Instagram, a gravação de vídeos e trailers - tudo isso faz parte de um vasto universo chamado marketing, e é, na verdade, a maior parte do negócio. A frase tão simples e aparentemente trivial "marketing é a alma do negócio" começa a fazer todo sentido.
Navegando e explorando o itch.io, encontrei jogos incríveis, inovadores, em um nível que talvez nunca chegasse na vida inteira, mesmo se dedicasse 100% do meu tempo a isso. No entanto, muitos desses jogos passaram despercebidos, sem comentários ou feedback. A verdade é que estamos vivendo em uma era onde são lançados mais jogos do que nunca, e o mundo simplesmente não precisa de todos eles. As pessoas têm suas listas de jogos para jogar já lotadas, e a cada dia ela cresce mais. A realidade é que apenas alguns poucos têm a sorte de se destacar nas redes sociais ou contar com milhões em investimento em marketing. Para a grande maioria, ser ignorado é a norma.
Todo ano, são lançadas listas gigantes de jogos que são verdadeiras obras-primas, mas a verdade é que nunca teremos tempo para jogar todos eles. Apenas em 2023, foram lançados 12 mil jogos na Steam - é impossível dar atenção a todos, avaliá-los ou transmitir suas mensagens para o mundo. Além disso, há uma concorrência feroz pela atenção das pessoas - os smartphones estão implorando por nossa atenção, e muitos jogos online são projetados para viciar os jogadores em troca de skins e recompensas.
Então, será mesmo que o mundo precisa de mais jogos? É uma questão válida. Mas podemos olhar para isso de uma perspectiva mais positiva. Se ajustarmos nossas expectativas e motivações, podemos encontrar um novo sentido na criação de jogos. Podemos criar um jogo pelo simples prazer de criá-lo, como um hobby, onde ter alguns amigos jogando já é recompensa suficiente. Acredito que essa mudança de perspectiva pode resolver muitos dos dilemas que enfrentamos nesse mercado tão competitivo. Pelo menos para mim, tem sido uma jornada de autodescoberta e redefinição de propósitos.
Eu acredito que a resposta à pergunta "O mundo precisa do meu jogo?" seja um claro "Não". O mundo já está repleto de jogos inovadores e incríveis, muitos dos quais são ignorados diariamente, apesar de suas mecânicas geniais e ideias inovadoras concebidas por mentes brilhantes. No entanto, às vezes, eu preciso do meu jogo para mim mesmo - como um criador e artista, é uma forma própria de expressão. Não importa quantas pessoas irão jogá-lo; se forem apenas alguns amigos, desde que o façam com consideração e respeito pelo meu trabalho, isso já é o suficiente. Mesmo assim, terei criado algo valioso, extraído um significado da vida, indo além do mero consumo de arte para criar arte.
Apesar do tom inicial deste texto ser um tanto pessimista, o desfecho é bastante otimista. Basta alinhar o seu propósito.
Controle seus animos
Quase todo mundo, depois de aprender como criar jogos, sente uma enorme vontade de se aventurar nesse universo. Como programador, posso afirmar que é uma das atividades mais cativantes e empolgantes que alguém pode experimentar. A diversão está em pensar em ideias, elaborar histórias, construir mundos e explorar novas ferramentas e engines. É fácil se entusiasmar no início, mas é igualmente fácil se desanimar no meio do caminho e se sentir exausto no final.
Se você estiver se aventurando desenvolvendo um jogo como "Zero The Hero" e simultaneamente aprendendo uma engine como Godot, como fiz, pode acabar perdendo o entusiasmo, com duas demandas concorrentes de energia. Talvez seja mais sensato focar primeiro em aprender uma ferramenta e depois criar um jogo. Porém, é importante entender que o seu entusiasmo no início é como uma chama que arde intensamente, mas pode se esgotar com o tempo. Embora você possa começar cheio de energia, capaz de trabalhar por anos sem se cansar, essa empolgação não é eterna e ela engana.
Por isso, sugiro começar com um jogo simples e pequeno, mais simples até mesmo do que o Pac-Man. Defina claramente o escopo do jogo e siga em frente, evitando ideias inovadoras que possam atrasar o progresso. Se algo não estiver funcionando, é melhor falhar rapidamente do que passar meses desenvolvendo algo que não atende às suas expectativas.
Ao imaginar um jogo curto, esteja preparado para subestimar completamente o tempo necessário para desenvolvê-lo. Mesmo os projetos mais simples podem levar muito mais tempo do que o previsto. E quando lançar o jogo, esteja ciente de que é normal esperar que ele seja ignorado. Não se deixe abater por isso. Se algumas pessoas jogarem, ótimo! Mas concentre-se no prazer de ter criado algo, e não coloque todas as suas expectativas no sucesso externo, que pode ou não acontecer. Lembre-se: o entusiasmo pode diminuir com o tempo. E não se esqueça novamente de fazer jogos curtos.
Conclusão
Essa jornada que percorri foi intensa. Agora que concluí este post, reflito sobre uma mescla de experiências enriquecedoras, aprendizados que ultrapassaram minhas expectativas e profunda reflexão. No entanto, ao me perguntar por que considero que falhei, mesmo tendo lançado alguns dos jogos mencionados no texto e alcançado algumas pessoas, percebo que subestimei significativamente o desenvolvimento de jogos. Minhas expectativas foram além do razoável, consumindo um tempo valioso - noites, anos - que poderiam ter sido dedicados a outras atividades. A jornada foi repleta de desafios, frustrações e momentos difíceis.
No fim das contas, a falha é uma combinação de fatores complexos: falta de foco, escopo mal definido, expectativas desproporcionais e altos e baixos no ânimo. No entanto, acredito que agora estou mais apto a evitar tais falhas. Embora atualmente não esteja desenvolvendo jogos, sei que o retorno a essa paixão é uma possibilidade. E, sinceramente, apesar das dificuldades, considero que tudo valeu a pena. Sou grato por cada experiência vivida.
Espero um dia compartilhar um post sobre o sucesso pessoal que alcancei neste hobby que tanto amo: criar jogos. Talvez uma abordagem com expectativas mais realistas teria mudado o curso das coisas. Por enquanto, resta apenas aguardar.
Agradeço sinceramente por ter acompanhado esta longa jornada até o final.