Introdução

Antes da criação das Game Engines (motores de jogos), os jogos virtuais eram feitos do zero e com códigos específicos para aquela plataforma (vídeo-game), e apenas para aquela, pois era necessário otimizar o uso do hardware daquele eletrônico específico, como display, memória e capacidade de armazenamento de dados. Na época (anos 70), os vídeo-games e computadores em geral tinham uma grande restrição, o baixo poder de processamento. Ainda assim, o rápido desenvolvimento da tecnologia em informática forçava os desenvolvedores de games a praticamente jogar fora seus códigos depois de pouco tempo, já que as novas gerações de hardware permitiriam um Game Design diferente, que seria capaz de aproveitar melhor os recursos extras dessas novas máquinas. Assim, a maioria dos jogos feitos durante a década de 1980 tinham apenas seu código fonte com um número reduzido de fases e gráficos. Com a popularização do Arcade, companias de jogos desenvolveram suas próprias Game Engines, exclusivas para seus vídeo-games, numa tentativa de facilitar o desenvolvimento de jogos para estes.

[ARCADE]

No entanto, já em 1980 foram criados sistemas de desenvolvimento de jogos 2D independentes, que consistiam em kits de desenvolvimento que facilitariam a criação de jogos na época.

[

Kit de desenvolvimento de jogos 'Shoot 'em Up'

O termo “Game Engine” como conhecemos hoje surgiu na década de 1990 com o advento dos gráficos em três dimensões, o 3D. Essa nova ferramenta permitiu que fossem criados vários jogos diferentes utilizando o mesmo “motor”, o que barateou muito o desenvolvimento de jogos, e o tornou muito mais rápido e fácil. Ao invés de criar um novo conjunto de regras e códigos que cuidariam do funcionamento de recursos-chave do jogo, os desenvolvedores poderiam aproveitar o que já era fornecido pela Engine e apenas criar seu conteúdo específico (como itens, gráficos, personagens e fases), e assim ter um jogo completo e funcional.

[

Quake e Doom compartilharam a mesma Engine.

Conceito

Uma Game Engine é um framework de software feito para a criação e desenvolvimento de jogos virtuais, e geralmente possui um conjunto de ferramentas de desenvolvimento e uma série de componentes que podem ser reutilizados de diversas maneiras. Em geral, essa ferramenta possui uma IDE (integrated development environment – ambiente de desenvolvimento integrado) própria, permitindo um desenvolvimento simplificado e ágil de qualquer coisa relacionada ao jogo. Uma boa Game Engine deve ter tudo que um desenvolvedor de jogos precisa para publicar um jogo completo facilmente, como ferramentas de edição gráfica, sonora, física e de inteligência artificial. Essas ferramentas são conhecidas como “middleware”, e muitas vezes são o diferencial entre uma Engine e outra, porém existem middlewares agnósticas, que são compatíveis com várias Engines diferentes.


Hoje existem várias Engines disponíveis no mercado, cada uma com suas vantagens e público-alvo, e por isso, nesse tópico focaremos apenas na maior delas, a Unity.

Software

Unity

A Unity foi lançada em 2005 na Conferência Mundial de Desenvolvedores da Apple, e inicialmente trabalhava apenas com o OS X. Hoje, a Unity é compatível com 29 plataformas diferentes, o que a torna a Game Engine mais abrangente do mercado.

[PLATAFORMAS]

A Unity é uma Game Engine multiplataforma que suporta gráficos em 2D e 3D, possui funcionalidades de arraste (drag n’ drop) e permite programar scripts principalmente em C#, porém outras linguagens, como o JavaScript e C++ também podem ser utilizadas sem muitos problemas.

[GAME 2D E 3D COM UNITY]

Unity pode ser usada gratuitamente por empresas com receita anual menor que U$100.000,00, mas também possui planos pagos que variam de acordo com o tamanho da empresa cliente e com as funcionalidades necessárias para o desenvolvimento do jogo.

[PREÇOS UNITY]

Além da quantidade de plataformas suportadas, alguns dos maiores diferenciais da Unity são a maior Asset Store do mercado, a maior quantidade de documentação disponível para uma Engine e também a maior quantidade de cursos e certificados em uma Game Engine.

[ASSET STORE, DOCUMENTAÇÃO, CURSOS]


A Unity é uma Game Engine extremamente amigável para novos desenvolvedores, sem deixar a desejar aos mais experientes, o que contribui para que 45% de todos os jogos desenvolvidos hoje tenham sido feitos em Unity.

[MADE WITH UNITY]

Código

<syntaxhighlight lang="c#" line="1"> using UnityEngine; using System.Collections;

public class DualAxisExample : MonoBehaviour {

   public float range;
   public GUIText textOutput;
   
   
   void Update () 
   {
       float h = Input.GetAxis("Horizontal");
       float v = Input.GetAxis("Vertical");
       float xPos = h * range;
       float yPos = v * range;
       
       transform.position = new Vector3(xPos, yPos, 0);
       textOutput.text = "Horizontal Value Returned: "+h.ToString("F2")+"\nVertical Value Returned: "+v.ToString("F2");    
   }

} </syntaxhighlight> Código que controla a posição de um objeto em duas dimensões a partir do Input do usuário.

Diagrama de Casos de Uso

Desenhar ou plotar  os requisitos funcionais de uma aplicação.


Interações com as tecnologias

Incluir links (internos ou externos) temas que tem relação com este, explicando detalhes sobre. Limite de 3 internos e 2 externos.


Informações adicionais

Descrever detalhes a mais sobre esse tema.


Referências bibliográficas

Relacionar aqui as referências bibliográficas no padrão ABNT. 
Bases de procura: Artigos, publicações acadêmicas, revistas e sites de fornecedores