Jogar Heroes parece fácil. Mas você conhece as pessoas por trás dos jogos e como eles fizeram isso?
Neste blog você irá:
- Aprender o que basicamente são o mecanismo de jogo e a codificação
- Conhecer o criador, gerentes de projeto e engenheiros do jogo
- Obter um vislumbre do processo de engenharia de jogos
- Escutar suas experiências e sugestões
- Levar para casa lições importantes desta jornada
Vamos começar!
Vamos simplificar alguns termos técnicos primeiro
1) Engenharia de jogos
Geralmente, a engenharia é a aplicação da ciência e da matemática para resolver problemas.
Tem vários campos como os seguintes:
- Engenharia Agrícola
- Engenheiro químico
- Engenharia Civil
- Engenharia da computação
- Engenharia de dados
- Engenharia elétrica
- Engenharia Naval
- Engenharia Mecânica
- Engenharia de software
- Engenharia estrutural
Agora, vamos colocá-lo no aspecto dos jogos.
A engenharia de jogos é a ciência de criar códigos para um jogo que está sendo desenvolvido. Envolve matemática técnica para dizer o que um computador deve fazer.
Para isso, você precisa de um motor de jogo, um engenheiro de jogo, um código e um codificador, que discutiremos a seguir.
2) Motor do jogo
O que é basicamente?
Dicionários e enciclopédias definem o mecanismo de jogo como uma estrutura de software projetada para o desenvolvimento de jogos. Inclui bibliotecas e programas de apoio.
Em outras palavras, é uma ferramenta usada por designers de jogos na codificação e planejamento de um jogo. Isso torna o trabalho muito mais rápido e fácil sem construir um do zero.
“O motor é a analogia perfeita aqui”, de acordo com o Arquiteto de Soluções Jader Feijo. É “o que faz o carro se mover”.Então, sem ele, “você não pode ir a lugar nenhum”.
Ou seja, o mecanismo de jogo é “o que faz o jogo rodar essencialmente nos dispositivos das pessoas”.
Além disso, é usado “para programar todos os recursos que queremos”. Ele fornece a “funcionalidade básica que você precisa para criar um jogo”.
Quais são os tipos de motor e seus exemplos?
a. Motor de jogo de código aberto
Um motor de jogo de código aberto é um software de desenvolvimento de jogos gratuito.
Você pode usar, copiar, estudar e alterar o código de qualquer maneira. le é compartilhado abertamente para que você possa melhorar voluntariamente seu design.
Aqui estão alguns exemplos:
- Amazon’s Lumberyard
- Armory
- Cocos2d-x
- CryEngine
- Defold
- GDevelop
- Gideros
- Godot
- Monogame
- Openage
- Phaser
- Solar2D (formerly Corona SDK)
- SpriteKit
- Starling
- Unreal Engine
b. Motor de jogo de código fechado
Um mecanismo de jogo de código fechado, também chamado de mecanismo de jogo proprietário, é um software de desenvolvimento de jogos licenciado.
Obviamente, não é de uso gratuito. Existem direitos de licenciamento infringidos ao usá-lo, modificá-lo e compartilhá-lo. Em alguns casos, inclui até direitos de patente.
Os exemplos são os seguintes:
3) Engenheiro de jogos
Obviamente, um engenheiro de jogo é a pessoa que projeta um jogo. Mas profissionalmente falando, ele é um desenvolvedor de software que produz jogos.
Parte de seu trabalho é realizar a função visual e os aspectos funcionais do jogo. Para isso, ele colabora com outros engenheiros, designers e programadores.
4) Codificação
O que é isso?
A codificação, ou carinhosamente chamada de programação de computadores, é o processo de comunicação com computadores.
Envolve a criação de um conjunto de instruções na forma de códigos que informam ao computador o que fazer.
Quais são seus tipos?
a. Data compression
A compactação de dados também é conhecida como codificação de origem ou redução de taxa de bits.
É o processo de codificação de informações usando menos bits do que a representação original.
Em outras palavras, reduz o número de bits necessários para armazenar e transmitir dados.
Como resultado, você economiza tempo, memória, espaço de armazenamento e largura de banda de rede no desenvolvimento de um jogo.
b. Error control
O controle de erros, ou codificação de canal, é uma técnica que permite a entrega confiável de dados digitais em canais de comunicação não confiáveis.
Ele detecta e corrige erros resultantes do ruído do canal na transmissão de informações da fonte para um receptor.
No processo, permite a reconstrução dos dados originais.
c. Cryptographic coding
A codificação criptográfica está escrevendo códigos para proteger informações e comunicações.
Envolve a criptografia de dados confidenciais para que apenas os destinatários pretendidos das informações possam lê-las e processá-las.
d. Line coding
A line coding é o processo de conversão de dados em sinais.
Durante a transmissão, você codifica a informação em um sinal digital e a decodifica pelo receptor.
Para tornar isso possível, você precisa de esquemas de codificação de linha para evitar sobreposição e distorção de sinais.
5) Código
Você acabou de aprender o que é codificação.
Agora, um código é o conjunto de regras ou sistema de comunicação que diz a um computador o que fazer. Geralmente envolve números e letras atribuídos aleatoriamente com significados especiais.
Em termos mais simples, é a instrução do programa escrita por programadores para criar um jogo.
As leis de veículos, por exemplo, são um dos códigos que um estado impõe para a segurança do transporte.
Outro exemplo é o significado secreto que você descobre a partir de um alfabeto codificado. Você o usa para determinar uma palavra, frase ou sentença em uma determinada atividade.
6) Codificador
Um codificador é muito parecido com o engenheiro de jogo. Mas ele é particularmente encarregado de se comunicar com computadores e softwares para fazê-los executar determinadas tarefas.
Para isso, ele utiliza linguagens de programação como as seguintes:
As pessoas por trás da engenharia de jogos e gerenciamento de projetos do Heroes
1) O criador
Como você deve ter lido em outros blogs, Sam Neves é o criador do Heroes.
Nascido no Brasil, ele foi influenciado e equipado pelo ministério da igreja. Isso o inspirou a estudar Teologia/Estudos Teológicos.
Depois de pastorear a Igreja Stanborough Park de 2005 a 2016, ele se mudou para a Conferência Geral.
Lá, ele começou a trabalhar como diretor associado de comunicações. Envolvia a supervisão dos esforços de marketing da Igreja Adventista a nível mundial.
Juntamente com suas responsabilidades dentro do departamento, ele criou Heroes com o objetivo de conectar as pessoas com a Bíblia por meio da tecnologia.
Ele começou com alguns profissionais talentosos e habilidosos para desenvolver o jogo. Eventualmente, a equipe cresceu em centenas de pessoas que ajudaram o jogo a florescer.
Mesmo com essa enorme força de trabalho, Sam nunca deixou de cuidar de sua equipe.
Ele quer saber sobre eles e seu trabalho de tempos em tempos. Ele sempre os desafia a pensar e inovar para melhorar o jogo.
2) Os gerentes de projeto
a. Arnaldo Oliveira
Arnaldo foi o gerente de projeto original do Heroes.
Cresceu no Brasil como Sam, ele trabalhou no setor financeiro como assistente, gerente, consultor e afins.
De 2018 até o presente, ele gerencia projetos para a Associação Geral dos Adventistas do Sétimo Dia. Como parte de seu trabalho, ele tem ajudado no Departamento de Comunicação e no Centro de Evangelismo Online.
Enquanto isso, ele começou a trabalhar com Sam para Heroes.
Como gerente de projeto, ele tinha que supervisionar todas as operações e o progresso do desenvolvimento do jogo. Ele tinha que se certificar de que os membros da equipe estavam fazendo bem o seu trabalho.
Mas mesmo com sua posição, ele deu uma mãozinha em algumas das tarefas. Por exemplo, ele ajudou a formular perguntas triviais e traduzi-las em diferentes idiomas.
E, claro, parte de seu trabalho era ajudar a equipe a resolver conflitos e desafios ao longo do caminho.
b. Jefferson Nascimento
Jefferson é o atual gerente de projeto de Heroes.
Assim como Arnaldo, ele é brasileiro.
Concluiu o bacharelado em Comunicação Social com especialização em Publicidade na Universidade Mackenzie.
Com isso, ele vem trabalhando como designer e gerente de mídia social. Então, ele se mudou para a Irlanda para estudar inglês.
Lá, ele conheceu Sam, que o convidou para trabalhar para a Igreja Stanborough Park, onde permaneceu por quatro anos.
Em 2019, foi para Portugal fazer o mestrado em Design Communication na Universidade de Lisboa.
E em 2020, ele foi nomeado novo gerente de projetos de Heroes para dar continuidade ao que Arnaldo havia iniciado.
Como tal, ele tem sido muito prático gerenciando as equipes envolvidas no desenvolvimento e marketing do jogo.
3) Os engenheiros
a. Jader Feijo
Como mencionamos anteriormente e discutimos em outros blogs, Jader é o arquiteto de soluções para Heroes.
Brasileiro radicado em Londres, começou a programar aos 12 anos. Eventualmente, conseguiu desenvolver um software de gestão financeira para a empresa de seu pai usando Visual Basic.
Além disso, ele ganhou experiência em mais de 14 linguagens de programação e se especializou em plataformas Apple para desenvolver aplicativos iOS e Mac.
Mais tarde, ele foi escolhido por Sam para trabalhar para Heroes.
Seu trabalho tem sido descobrir maneiras de como a tecnologia digital pode trazer ideias para a realidade.
Para isso, ele vem trabalhando com seu primo, Julio, na parte técnica do desenvolvimento de jogos.
b. Julio Flores
Julio é o principal desenvolvedor do jogo.
Ele é um residente da Dinamarca.
Com experiência na indústria de software de computador, ele tem trabalhado como engenheiro de software.
Como você aprendeu anteriormente, ele é primo de Jader. Então, ele tem trabalhado lado a lado com ele.
Como desenvolvedor, ele foi responsável por codificar os elementos visuais e programar os recursos do jogo.
Um vislumbre de como eles fizeram isso
Como é que tudo começou?
Quando Sam decidiu criar um jogo bíblico, “ele veio até mim com alguns desenhos muito rudimentares”, Jader compartilhou.
Ele se sentou com ele para entender o que ele queria alcançar. Ele teve que descobrir “como podemos usar a tecnologia para tornar isso realidade”.
Escolhendo um mecanismo de jogo
Jader começou: “A primeira versão do Heroes na verdade usava um mecanismo completamente diferente da segunda versão. Então, pegamos alguns dos aprendizados da primeira versão.”
Como você aprendeu anteriormente, existem dois tipos de mecanismo de jogo. O mecanismo de código aberto é gratuito, enquanto a versão paga exige cobranças.
Mas, além do tipo de motor, havia “muitas considerações diferentes”, afirmou Jader. “Não é apenas a tecnologia e o que o motor pode fazer”, mas também o “modelo de licença”.
Uma preocupação que ele mencionou foi “quanto custa porque o projeto tem restrições”. Então, “você não pode simplesmente… comprar um motor de jogo que custa milhões”.
“Pode ser o mecanismo de jogo mais incrível, mas se torna proibitivo nesse ponto”, continuou Jader.
“Então, queríamos escolher algo que tivesse o poder de que precisávamos. Mas, ao mesmo tempo, “não nos limitaria no futuro e no que podemos fazer”.
Para simplificar, deveria ser “muito flexível, mas… não era proibitivamente caro”.
Depois de considerar as coisas, eles se estabeleceram com o Unreal Engine.
Como você leu anteriormente, é um mecanismo de código aberto. “Qualquer um pode entrar e [modify] o código” e “aprender com isso”, acrescentou Jader.
Maximizando suas vantagens
Como líder, Julio teve várias instâncias em que “ele modificou o código”, compartilhou Jader. Foi porque “ele [had] encontrado bugs nele”.
Então, ele “o modifica ao invés de esperar o apoio de uma empresa que pode ou não responder. Portanto, o [engine] de código aberto tem muitas vantagens a esse respeito.”
Em termos de modelo de licenciamento, o Unreal Engine “opera em um modelo gratuito… até você começar a ganhar dinheiro”. Então, “há um limite de quanto dinheiro você ganha”.
Depois disso, “você começa a pagar uma porcentagem desses lucros” para a empresa de software.
Por isso, Heroes sempre foi gratuito. Nenhum anúncio aparece quando você joga o jogo. Você obtém todos os recursos sem pagar por eles. Não é ótimo?
Programando o código
Não vamos entrar muito nos detalhes técnicos da engenharia de jogos. Mas para você ter uma ideia, Julio disse que ligaria caixas e pontos em uma plataforma de programação.
Por exemplo, você tem “uma palavra [and the] número dois. Então, você tem uma caixa com um sinal de mais. E então, você obtém os dois e obtém o resultado [of]quatro”. É tão simples quanto 2 + 2 = 4.
Mas, mais do que isso, você vai mais longe em “escrever código”, continuou Julio.
Para isso, ele vem utilizando C++, uma linguagem multiplataforma usada para criar aplicativos de alto desempenho.
Segundo Julio, esse software de programação “se conecta ao mundo”. Ele fornece acesso a serviços em nuvem, segurança, criptografia, segurança de dados, análises e muito mais.
Há muito mais coisas técnicas para discutir. Mas não podemos cobrir tudo aqui. Pelo menos, você teve uma visão geral do que a engenharia de jogo para Heroes implicava.
Como foi a experiência de engenharia de jogos deles?
Criar um código para Heroes tem sido um desafio. Significava investir muito tempo para trabalhar e estar pronto para modificações a qualquer momento.
Por exemplo, Jader admitiu: “Depende de quantas vezes o pastor Sam muda de ideia sobre o que ele realmente quer”.
Ele disse: “Acontece muito quando você está… desenvolvendo [um] software. Você acha que quer algo e então começa a desenvolvê-lo.”
Depois disso, “você coloca na frente das pessoas”. Estes são geralmente um pequeno grupo de testadores beta. A partir deles, um engenheiro de jogos tem uma ideia de como seria o jogo quando publicado.
Na verdade, realizamos esse teste beta alguns meses antes de lançarmos Heroes em 25 de março de 2021.
Com isso, havia muitas coisas que não funcionavam ou precisavam mudar. “As mudanças são o que inflam o projeto”, afirmou Jader.
Então, criar ideias e códigos simples levou algumas horas ou até dias para os engenheiros conseguirem algo. Então, “geralmente em torno de três meses, você pode ter… um beta aproximado” para testar e brincar.
Mas, no caso de Heroes, eles levaram seis meses para chegar à primeira versão preliminar.
Foi muito mais rápido do que demorou para a segunda versão. Bem, obviamente foi porque a segunda versão era muito mais complexa.
Mais de suas experiências e desafios estão no vídeo abaixo.
O que podemos aprender com isso?
1) A engenharia de jogos não é uma piada.
Quando você vê um jogo, “perceba que há muito trabalho envolvido nele”, enfatizou Jader.
É muito complexo. Há muito planejamento, sessões de codificação tarde da noite, reuniões, discussões, decisões de última hora e assim por diante.
2) Aproveite o que você realizou.
A engenharia de jogos pode ser difícil, mas vale a pena aproveitar o fruto do seu trabalho. Celebre suas conquistas!
Para Jader, o que mais lhe traz alegria é ver o quanto as pessoas gostam de jogar. É uma recompensa por todo o trabalho duro que eles investiram nele.
Alguma ideia?
Aparentemente, a engenharia de jogos é um trabalho técnico.
O que discutimos é apenas o básico. Mas o que você aprendeu até agora?
Além disso, você ama jogos? Quer trabalhar nesta área?
Compartilhe suas ideias abaixo!