
Game Engine, Conceitos iniciais!

Fala pessoal, aqui é o Silas! O seu mais novo apresentador de tecnologia, curiosidades e noticias sobre Gamedev e Game Engines do seu Youtube! E blogueiro de carterinha!
Como já dito durante o nosso último vídeo, estamos migrando nosso conteúdo no canal para Curiosidades e Devlog de jogos.
Todo o processo criativo e todo o conhecimento necessário
que é preciso para fazer um jogo em todas as áreas possíveis, isso inclui a programação é claro!
Mas não se preocupem, as curiosidades gerais, principalmente
sobre a cultura pop e recomendações de filmes, animes, desenhos e jogos também se manterão no blog. Não focaremos apenas nisso, pois a ideia é ir mais para o lado dev!
Mas não se preocupem, as curiosidades gerais, principalmente sobre a cultura pop e recomendações de filmes/animes/desenhos/jogos também se manterão no blog,
mas não focaremos apenas nisso, pois a ideia é ir mais pro lado dev! Mas de nada adianta se não trabalharem seus conhecimentos e criatividade não é mesmo?
Isso será principalmente destacado, na parte de Roteiros e criações de Mundo e personagens, mas por hora, apenas esse aviso de que sim, ter bagagem criativa
e de informação é extremamente necessário nessa area!
Isso inclui no próprio desenvolvimento de jogos e projetos
de escopo grande, onde o roteiro tem que conversar com o gameplay do jogo e o Character Designer!
Dito isso, vamos explicar fundamentalmente, o conceito de Engines,
nesse artigo, apenas para introduzi-los a esse mundo e
também ensinar vocês a não cair em golpe de cursos de gamedev
que aparecem por ai, principalmente no face, relatando inclusive uma experiência pessoal da minha parte!
Resumidamente, muitos cursos se vendem como Gamedev,
mas quando você vai ver, não é bem isso, mas você já foi enganado e seu dinheiro já foi gasto. E isso é um baita problemão! Mas então como identificar um curso real ou não de dev?
Primeiro de tudo, vocês devem entender o conceito de Engine! Engines são o que movimentam o jogo e fazem ele funcionar!
Inclusive, questões como física da agua, dos personagens e etc
nos jogos, são todas feitas através da Engine, é como você automatiza esse processo criativo!
Isso acontece porque muitas das faculdades brasileiras não possuem profissionais que de fato trabalham na área. Mas isso não quer dizer que faculdades sejam inúteis, pelo contrário! São um bom lugar para fazer sua networking.
Quando vocês fazem uma faculdade de DEV de jogos, normalmente, as pessoas fazem vocês aprenderem o código bruto do processo.
Isso é desnecessário em muitos casos, pois você não vai para a área do TI
e tão pouco vai usar o código bruto para fazer seu primeiro jogo!
E além disso, existem faculdades que de fato, são boas!
Além de facilitarem o processo seletivo em casos de empresas que fazem
competições ou precisam de um jogo pra marketing da empresa, pois sim,
isso ocorre, ainda que não seja tão comum por todo o brasil, ainda!
Mas conforme esse mercado vai se expandido e ganhando forças aqui,
cada vez mais é comum verem processos como esse, pelo setor publico ou privado.
Em resumo, para criar jogos hoje em dia, com o uso de Engines, vocês precisam aprender apenas lógica de programação. As engines tornam todo o processo criativo e de desenvolvimento automático.
Como podemos bem ver nesse print da Unreal, que eu tirei do meu próprio PC.

Essa por exemplo é uma lógica simples e padrão dentro da própria unreal, que permite o personagem pular.
Nessa lógica padrão da unreal, o char pula, só pelo fato de ter
essas 3 caixinhas conectadas, onde essas caixinhas definem o
evento de “Jump” Quando o jogador pressionar o botão correto que ta configurado no programa. Detalhe, isso dai eu nem precisei fazer, quando você começa
um projeto novo com câmera TP (Terceira pessoa) Onde você vê
as costas do personagem, igual nos Resident Evils mais Novos, a própria Unreal, por padrão, já define essa programação básica. E o nome disso é Blueprint.
Inclusive, recomendo acostumarem com esse termo “Blueprint.”
Pois tem algumas diferenças também, pois temos a Blueprint da Unreal
e temos o Blueprint que é usado em desenhos, principalmente na
modelagem 3D, onde futuramente, eu explicarei melhor à vocês em outro tópico.
Legal né? Mas agora, imagina fazer toda essa configuração basica de um pulo,
no código puro, vocês levariam muito mais tempo e seria muito mais trabalhoso. É ai que entra a praticidade das Game Engines, quando você escolhe uma pra mexer.
Viu como você não preciso de calculos complexos ou programação bruta?
Você literalmente, só usou a teoria da programação e a lógica
e criou um mecanismo dentro da Unreal, através de blueprints,
isso que nesse caso, eu nem contei o código manual, mas programando, é a mesma coisa.
Você define a função com seu conhecimento lógico e a
Engine faz todo o processo de calculo e checagem pra ativar ou não
um efeito, de acordo com o que você definir.
E é assim que você programa, via Engines. Em alguns casos mais complexos,
você também consegue fazer esse processo, mas demora mais,
é ai que é onde você de fato vai programar no código fonte da engine,
mas não apenas nele, mas também, com a própria engine rodando em paralelo.
Mas pra gente que é iniciante, apenas o blueprint, nesse caso da Unreal,
é mais que o suficiente para esse processo.
Outra coisa que define a importância e uso de
Engines no desenvolvimento do seu jogo, é a questão de mapeamento, como bem podemos ver aqui.

Outra coisa que define a importância e uso de Engines no desenvolvimento do seu jogo é a questão de mapeamento. Como bem podemos ver aqui.
Mas enfim, retornando ao tópico anterior, sobre Engines, vocês estão vendo os modelinhos 3D ao lado? Pois então, são objetos que eu posso colocar no meu
mapa do jogo para fazer o meu level design, onde posso inclusive,
colocar efeitos sonoros e música, como eu fiz experimentalmente, nessa imagem.

Eu sei, eu sei, esse mapa não ta nada incrivel! Mas era apenas um teste também! Apesar do nome da Engine, não se enganem, é possivel fazer jogos de plataforma, nela também, ou FPS e RPGS laterais como alguns jogos recentes, como é o caso de OCTOPATH TRAVELER da Square enix,
onde a maioria dos mapas, tem câmera e Design Lateral!
Provavelmente, daria pra fazer algum jogo metroidvania também,
mas ainda estou explorando para dar certezas a vocês, mas já posso adiantar,
que é mais completo que o RPG Maker, devido a esses fatores.
Além de por padrão, essa Engine trabalhar com modelos
3D pra cenários e Sprites pros personagens, mas você também
pode optar em usar modelos 3D pros personagens, enfim, fica a seu gosto!
De qualquer forma, o ponto que eu quero dizer pra vocês, é que a função
das engines vai muito além de apenas Programar as ações e física dos personagens!
Ela também influencia nos reflexos, iluminação, Level Design, uso e organização de assets e etc. E isso é refletido pelo potencial da Engine! Além de ser possivel ganhar dinheiro apenas no conhecimento dela!
O que quero dizer com isso, é que basicamente,
existem engines, como a Unity e Unreal que são as mais famosas do mercado global,
onde você pode criar um sistema de agua e reflexos ou algum sistema
esqueleto para um jogo, para que outros desenvolvedores possam usa-los
em outros projetos, e vocês podem comercializar isso, ganhando em dólar!
Inclusive, é uma das maneiras de ter uma fonte de renda,
antes dos seus projetos de jogos estarem concluidos, pois isso leva um tempo e você precisa se manter não é?
E existem várias maneiras de fazer isso!
Mas é necessário bastante conhecimento da Engine que vocês usarem, mas enfim,
falaremos mais sobre isso, no futuro, quando focarmos mais em falar de Marketing Digital para jogos.
No artigo atual, vamos priorizar as engines!
Mas não se enganem em achar que toda engine é o mesmo processo, pois varia de uma pra outra, ainda que a base seja a lógica da programação, para ambas, é necessario aprender a engine de acordo, pois a programação primária no qual a engine é feita, também influencia no funcionamento dela, como RPG Maker por exemplo, que é criado em cima da Linguagem Ruby, enquanto Unity e Godot, são feitos em C# (C-sharp) E a Unreal em C++
E isso influencia em como elas funcionam, como por exemplo,
nessa imagem que tenho aqui, da godot, também tirada direto do meu PC.

Isso vem de um jogo teste que eu tava dando uma olhada, na godot, enquanto reaprendo a engine, pois eu já mexia com ela, nas primeiras versões, mas de lá pra cá, mudou muito a programação base dela, além da interface de usuário e códigos que ficaram ultrapassados, pois foram feitos novos que facilitam mais o trabalho.
Inclusive, já fica uma dica pra vocês! Em qualquer engine que forem trabalhar, mantenham ela atualizada, mas se já começaram um projeto especifico em alguma versão antiga da Engine, mantenham ela na mesma versão até o final, vão por mim, isso evita muita dor de cabeça no futuro, como seu jogo quebrar e você ter que refazer a programação dele.
Ou no caso, vocês pegarem um curso mais antigo ou que trabalha em versão mais antiga da engine, um bom exemplo disso, é a própria Unreal, também, da Unreal 4 Pra 5 Mudou tudo, incluindo a interface do programa, fora as coisas novas que foram adicionadas na 5.
Se forem se basear em algum curso pra estudar, certifiquem de baixar a versão correta do programa, pra evitar problemas ou coisas distoantes do curso comprado.
Mas enfim, voltando com o artigo, o outro exemplo que tenho aqui, é a estrutura de um dos testes que andei fazendo no bakin, percebam o quão diferente é a estrutura de programação, ao mesmo tempo que é semelhante à da unreal.

Nesse caso, é de um códigozinho que eu fiz pra brincar, usando apenas
lógica de programação, onde eu criei um sistema simples pro
meu personagem pode bater, sem entrar no modo padrão de
RPG de turno, que tem no bakin, como podem ver nesse vídeo que eu gravei!
Ignorem o detalhe de no cenário não ter nada, pois como eu disse,
ainda estou apenas brincando e testando essa engine que mal
tem conteúdo pra estudo, mesmo na gringa, por ser muito nova.
O ponto aqui é, viu como não é necessário você já saber programar no código bruto para começar?
É simplesmente, aprender lógica de programação e ter uma Engine
que você goste de usar, pois se você for programar tudo no código bruto,
você levaria dias apenas pra esse basico de colocar objetos no mapa
e fazer movimentação simples, a engine facilita todo esse processo
e o automatiza, por isso, sabendo a lógica por trás, você já se torna apto
a fazer praticamente qualquer jogo em qualquer engine,
com exeção de casos de limitações da Engine,
tipo o RPG Maker por exemplo, você não vai conseguir fazer
um FPS (First Personal Shooter) Ou um jogo de Luta nela, pois ela não é indicada para esse fim.
E é ai que a escolha da engine deve ir de acordo com o produto que você planeja, além disso, o motivo da Unreal, Unity e Godot, atualmente serem as favoritinhas de todos, porque elas trabalham com todos gêneros de jogos possiveis, mas mesmo elas, ainda possuem algumas restrições
quanto a impacto que pode ser desenvolver algo especifico nelas, tipo a Unreal, por exemplo,
que apesar de trabalhar com 2D e 2.5D, não é a mais indicada para fazer jogos de sprite
ou 2D puro, sem falar dos requisitos que ela pede pra rodar, pois,
da mesma maneira que ela é uma das mais indicadas e amadas,
ela também é uma das mais pesadas para rodar e você precisa de no minimo, um PC intermediário.
E mesmo assim, se você for usar o sistema de Landscape dela, é bem possivel que seu programa e projeto, não fique tão bem otimizado, devido às exigencias dela,
principalmente, se você considerar as tecnologias mais novas como o Lumen ou o Ray Tracing.
Está aí a importância de conhecer novas engines e de variados tipos e propostas. Para os mais variados requisitos, como a Unity e a Godot, que são bem mais leves em comparação com a Unreal, mas não possuem o mesmo potencial gráfico.

E pra concluir, outra parte importante da Engine! O level design! A maioria das pessoas é leiga quando se trata de level design e não entende muito bem o conceito e sua importância
no desenvolvimento de jogos. Level design vai bem além de só fazer um cenário bonito!
Ele tem que ser coerente e bem iluminado, além de ter a física correta,
de acordo com a temática dele e a proposta, além da física, além disso, level design também envolve as programações mais passivas, como por exemplo, você entrar na casa de um NPC, ou até mesmo no cenário que você começa do jogo, você apertar para seu personagem interagir com a mobilia do cenário e algum evento acontecer ali, isso é comumente usado em jogos de RPG, por exemplo, onde você quebrando caixas ou jarros quebraveis dentro de uma construção, ou até mesmo, interagindo com um guarda roupas/armário/barril indestrutivel/baú, você ganha algum item ou um dinheiro inicial, além de poções de cura pra começar sua jornada.
Isso vale também, para uma simples conversa com NPCS, ou um carinho em um gato ou cachorrinho ali no mapa, em alguns casos, até mesmo, o fato de você interagir com um Objeto que pareça uma arma ou armadura e de fato, você ter essa arma ou armadura, para poder usar no seu personagem.
Tudo isso é Level Design, não apenas o visual. Isso inclui a sonorização e trilha sonora que vai tocar naquela cena, ou até mesmo, uma cutscene ou “Filminho.” Como também é conhecido, onde você chega em algum mapa ou level e o jogo é interrompido para acontecer a história dele, sem falar de coisas como passagens secretas, lugares que o jogador só vai ter acesso lá na frente, depois de passar por algum evento especifico e voltar naquele mapa, ou até mesmo, obter um poderzinho diferente para superar um obstaculo atrapalhando sua passagem, ou a destribuição de monstros no jogo.
Cada level design vai exigir suas próprias coisas além da escolha dos desenvolvedores do jogo e como pretende fazer o cenário e contar sua história. Um Level Design mal elaborado, torna as fases confusas e muitas vezes, o jogador não sabe pra onde ir nem consegue enxergar direito, dependendo da paleta de cores que usar, ou até mesmo, achar o cenário sem graça, o que acabaria com a imersão dele e a vontade dele de ficar naquela fase, muitas vezes até evitando jogar, porque o Level design é feio e incomoda a vista, ou é sem graça e morto.
E tudo isso vai contribuir e culminar no final com o sucesso ou não do seu jogo ou sistemas que você criar.
Tão entendendo a importância disso? Mas o ponto aqui, é que tudo isso, também é feito através de uma Engine, mesmo que você importe seus assets de outro programa, se você não tem uma boa engine pra trabalhar com elas e causar efeitos de iluminação e etc de maneira coerente, de nada vai adiantar você ser um eximio modelador ou pixel-artista e desenhista.
A engine é onde todo o processo vai ser combinado no caldeirão e vai ser gerado o efeito desejado pelos desenvolvedores e a visão de projeto da empresa.
Em resumo, a engine é o coração do seu projeto, mas tudo que vem acompanhado junto, é importante, mas como a ideia aqui é falar exclusivamente das engines, de maneira introdutória e resumida, eu vou parar o assunto por aqui, mas agora vamos à finalização.
Como identificar um curso de Gamedev?:
Como eu disse no começo desse artigo, eu tive uma experiência pessoal, junto de amigos, não muito legal. Por sorte, eu não cai, mas conheço gente que caiu e se arrependeu.
Basicamente, existem algumas escolas técnicas que falam que são um curso de gamedev, mas quando você vai ver na realidade, eles focam em design gráfico ou dá a introdução de coisas como modelagem 3D e pixel arte, mas você não aprende de fato a criar jogos, ou usar Engines.
No caso desse curso que eu falei por exemplo, eles se vendiam como um curso de gamedev, ensinavam modelagem 3D e bastante até, além de introdução ao conhecimento de sprites e Design gráfico, mas no final do curso onde de fato, era pra ensinarem a programar em alguma engine, eles ensinavam a mexer no flashplayer… É… No flashplayer! Lembrando que na época, o flashplayer já estava caindo em desuso e sem nada de engine. Ainda que o flashplayer dê pra fazer uma coisinha ou outra, não é a mesma coisa de uma engine real, pois o flash era originalmente pensado em animações um pouco mais complexas ou casos de Kinect Novels, que algum dia, explicarei pra vocês.
Mas entendem o quão prejudicial é isso? Então, quando forem comprar um curso, tirando os casos de internet, onde já deixam explicito a engine que vão usar, nesses cursos pessoais, apenas perguntem pra pessoa que ta te vendendo o curso, de qual Engine eles ensinam e tratam e vocês vão ver o mundo ruir.
Se for um curso de falcatrua, eles vão desconversar ou dar alguma desculpa esfarrapada de que tem que ver com o professor ou algo do tipo. Mas caso seja um curso minimamente sério, eles vão te falar e tentar dar uma resumida sobre a engine.
Mas não se enganem! A maioria dos cursos, mesmo caso de faculdade, na area de Gamedev, tendem a ser bem basicos, então assim como o TI e o Marketing digital e praticamente qualquer profissão moderna, no PC, vocês não podem parar de estudar.
E nem ferramentas de IA, que hoje em dia, quebram um baita galho e aumentam sua produtividade, por exemplo, sabiam que hoje em dia, vocês conseguem criar texturas pra usar em seus projetos, por IA? Logo falarei disso também, pois uma das coisas que tem facilitado demais, trabalhos criativos hoje em dia, é justamente o uso de IAS.
E após todo esse resumo e explicações, terminamos o artigo e a explicação de como funciona uma Engine, e a importância de conhecer elas a fundo e o quanto você não precisa se preocupar com programação à principio.

Dito isso, nossa jornada só esta começando, então fiquem ligados nesse blog e no canal!
Nos vemos na próxima, pessoal! E em breve, teremos mais novidades e vídeos incríveis no canal! Estamos definindo a data para o lançamento do nosso conteúdo, então, enquanto isso, vamos tentar postar sempre que possível e torcer para que não surjam mais imprevistos, como problemas na internet ou o computador quase explodindo, não é mesmo? Com isso, nossa jornada está apenas começando, então fiquem ligados neste blog e no canal!