Ponto V!

Home Ethanon O que são Game Engines
André Santee
O que são Game EnginesImprimir
Escrito por André Santee

Existem ferramentas de software voltadas especificamente ao desenvolvimento de jogos. Cada uma se adequa à alguma necessidade do desenvolvedor. Os requisitos de um projeto variam desde as plataformas para as quais o jogo se direciona a tecnologias gráficas empregadas, por isso não existe uma ferramenta que possa ser considerada ideal para qualquer game.

Praticamente toda a base do software usado no desenvolvimento de games é escrita em C e/ou C++. É bem verdade a maioria dos jogos profissionais não a utilizam diretamente na programação do gameplay específico do game, mas logo mais abaixo lá estará C/C++, por ser uma linguagem muito poderosa e flexível.

Por outro lado, sendo C++ uma linguagem muito ampla e complexa, a maioria dos desenvolvedores de jogos optam por outras mais simples na hora de programar o gameplay e eventos do jogo. Também chamadas no desenvolvimento de jogos de linguagens de script, essas linguagens normalmente rodam em máquinas virtuais executadas no topo de uma base de código nativo escrito em C/C++.

Exemplos de linguagens de scripting de alto nível amplamente usadas por desenvolvedores de jogos são AngelScript, Lua, C#/Mono, Python e JavaScript. Normalmente esses softwares que "empacotam" uma linguagem de alto nível simplificada, além de outras ferramentas de interface mais amigável, são chamados de engine.

Engines

Na medida em que os games ganham mais complexidade em sua mecânica de jogo e no uso do hardware, seu desenvolvimento exige mais tarefas específicas, código cada vez mais extenso e testes mais rigorosos contra falhas de software. Se os primeiros jogos eletrônicos eram simples e podiam ser facilmente escritos em linguagem C, sem necessidade de muitas ferramentas visuais para aumento de produtividade, os jogos eletrônicos atuais não podem dispensar o uso de linguagens de alto nível e ferramentas visuais que auxiliem seu desenvolvimento, por alcançarem um grau de complexidade centenas de vezes maior que nos primeiros video games.

Neste contexto surge o conceito de Engine (ou Motor) no desenvolvimento de jogos, conhecido em inglês como Game Engine, eles trazem uma suíte de ferramentas visuais e componentes de software reutilizáveis, normalmente integrados em um ambiente de desenvolvimento unificado que simplifica e agiliza a criação de games, abstraindo todas as tarefas específicas de hardware.

Engines para games trazem uma série de ferramentas de software que simplificam processos mais complexos e de baixo nível e eliminam tarefas mais repetitivas. Muitas questões devem ser levadas em consideração ao escolher o engine ideal para cada projeto, e essa avaliação deve se aplicar a cada projeto de game exclusivamente:

  • Plataformas: os jogos desenvolvidos com o engine rodam nas plataformas para as quais você quer lançar o game?
  • Requisitos técnicos: sua equipe vai saber utilizar as ferramentas, especialmente em programação do engine? O nível técnico da equipe e experiências anteriores deve ser considerado. Também não deve ser ignorado o tempo e esforço empregados na aprendizagem.
  • Poder do engine: ele será capaz de fazer o game do jeito que a equipe quer? Quanto mais alto o nível da ferramenta, maior é sua limitação. Projetos de games que queiram apostar mais alto na inovação e usar elementos e recursos que não foram feitos antes, podem precisar de engines mais avançados (mais baixo nível) ou contar com um engine opensource que possibilite modificações para suprir as necessidade do projeto.

O processo de escolha da ferramenta a ser utilizada pode ser longo algumas vezes, mas o único passo realmente difícil que poucos conseguem dar é o de aprender como um game funciona e qual a lógica básica por trás dele. Engines podem parecer todos muitíssimo diferentes entre si, mas a lógica de programação sempre estará lá, intacta.

Ethanon Engine

A inovação é um dos principais pilares que determina o sucesso ou fracasso comercial de um jogo eletrônico. Atualmente, o grande foco nas pesquisas em inovação para video games está no desenvolvimento de gráficos tridimensionais mais realistas e imersivos, sobretudo aqueles voltados aos “hardcore gamers”, jogadores que investem pesado em hardware para rodar jogos das últimas gerações. Esta tendência já dura vários anos e os investimentos ficam a cada ano mais intensos. Por outro lado, contraditoriamente, abremse simultaneamente portas para investimentos muito menores e tão inovadores quanto os do primeiro escalão do mercado.

Ethanon Engine é um motor de jogos focado no 2D da nova geração de video games, que faz uso das capacidades do GPU mais recente para aceleração por hardware e efeitos com shaders. Tendo como grande diferencial seu pipeline de renderização que fora projetado para suportar iluminação dinâmica e com alta qualidade em detalhes.

O motor pode ser utilizado para desenvolver quaisquer estilos de jogos como puzzles, sidescrollers, tiro e jogos com visão topdown (como RPGs e estratégia). Atualmente o kit de desenvolvimento do Ethanon está disponível para Windows e OS X.

Gradius III - Exemplo de side scroller Groof Troop - exemplo de visão top-down

Games feitos com Ethanon podem ser publicados nas plataformas Windows, OS X, Android e iOS sem a necessidade de se reescrever uma única linha de código para compatibilidade. O desenvolvimento do motor começou em 2008, quando foi desenvolvido o primeiro protótipo do modelo de iluminação dinâmica baseado em shaders numa cena 2D, neste mesmo ano começou o desenvolvimento do motor em linguagem C++.

Para controlar o fluxo do jogo e manipular seus eventos, Ethanon Engine utiliza scripts em linguagem AngelScript, que traz a familiar sintaxe Clike (como em Java, C++, C#, etc.) para o código. A integração com a linguagem de scripting é simples e permite programação orientada a entidades para projetos mais simples e orientada a objetos para os mais complexos.


Comentários (6)
  • José F. Filho  - Muito Bom
    avatar

    Ótimo artigo.
    Cheguei a utilizar a Ethanon para desenvolver um jogo ao estilo Escapa, para um concurso de jogos por aqui. Porém por falta de conhecimento profundo do motor e o tempo curto para apresentação do jogo, desisti.

  • André Santee
    avatar

    Oi José, valeu pelo feedback! Provavelmente agora o engine possui bem mais material em português sobre ele do que quando você deve ter trabalhado nesse projeto. Espero que com essa série e mais o material que apareceu neste último ano você possa ir mais longe :)

  • Thiago  - Excelente material e iniciativa
    avatar

    Um pouco atrasado, mas passo para deixar meus parabéns pelo material, didática e iniciativa. Vou acompanhar a série de perto. Abraço.

  • Filipe  - Excelente post e dúvida
    avatar

    André, tava lendo seu post e parei um pouco pra pensar... Eu comecei na programação por meio do html>CSS>PHP>Java... Agora estou estudando programação pra android, javascript e JMonkeyEngine(e sendo obrigado a estudar o Blender 3d). eu sempre estudo por aulas a distância... e tem dado certo, mas será que eu tenho chances de termina os estudos da Engine e conseguir entrar no mercado de trabalho nesta area?

    -O meu consolo nesta incerteza toda, é saber que eu estudo as vezes mais por amor a programação do que pela ambição... mais essa dúvida me persegue.

  • Anônimo
    avatar

    Apenas estudar não vai lhe abrir portas. Tem portfólio? tem projetos para mostrar?

    Se você não tem experiência, em uma entrevista já vai sair na frente se tiver projetos (e código) a mostrar a seu entrevistador.

  • Ian
    avatar

    Do you have any plans for your holiday?

Escrever um comentário
Your Contact Details:
Gravatar enabled
Comentário:
[b] [i] [u] [url] [quote] [code] [img]   
:angry::0:confused::cheer:B):evil::silly::dry::lol::kiss::D:pinch::(:shock:
:X:side::):P:unsure::woohoo::huh::whistle:;):S:!::?::idea::arrow:
Security
Por favor coloque o código anti-spam que você lê na imagem.
LAST_UPDATED2  

Busca

Linguagens

Twitter