×
Loading ...

Como fazer uma engine para um jogo do zero

Uma engine geral para um jogo, que pode ser usada para criar vários outros, pode ser extremamente útil, mas também muito difícil de projetar e implementar. O objetivo é criar jogos fazendo apenas seu conteúdo, e deixando a engine lidar com o trabalho pesado. Essa empreitada pode consumir muito trabalho. No entanto, uma engine pode ser tão simples ou tão complexa quanto desejar um programador. Quanto mais complicada ela for, menos o criador do jogo terá de trabalhar para criar um jogo. No entanto, as engines mais simples são muito mais fáceis de implementar e podem adiantar muito a criação de um jogo.

Instruções

O processo é trabalhoso e consome bastante tempo, mas se for bem feito, poderá integrar grandes jogos (Comstock/Stockbyte/Getty Images)
  1. Projete o básico da engine do jogo. Inclui-se aqui coisas como o gerenciador de memória, o kernel, e os loggers que serão usados por todos os componentes da engine. Um gerenciador de memória cria uma interface uniforme para a criação de objetos do jogo, permitindo-lhe monitorar o uso de memória pelo programa. O kernel é núcleo da engine, funcionando em todo frame para garantir que todo o resto também esteja funcionando. Os loggers são valiosíssimos, e devem ser parte de qualquer programa complexo.

    Loading...
  2. Crie um design geral para uma engine de jogo que se encaixe às suas necessidades. Os componentes principais da engine são o componente de entrada, o atualizador de estado do jogo, e o componente de renderização. A parte de entrada pega a entrada do usuário e a traduz para algo com o que o atualizador consiga lidar. O atualizador altera o estado do jogo de acordo com a entrada do usuário. A engine de renderização desenha o estado do jogo para a tela. Esses componentes podem ser tão complicados ou simples quanto você precisar.

  3. Projete e implemente o componente de entrada. Frequentemente ela depende do sistema no qual o jogo será usado, e um design mais complexo permitirá o uso em múltiplas configurações de hardware e sistemas operacionais. A engine de entrada deve aceitar entrada de teclas, mouse, joystick e possivelmente outros dispositivos de interface humano-computador e traduzi-la em valores que devem atualizar o estado do jogo. Pode ser útil criar uma ferramenta que mapeie certas entradas a diferentes ações do jogo.

  4. Crie um atualizador de estado. Esse é, com frequência, o componente mais complexo da engine do jogo. Ele deverá lidar com as regras, física e qualquer recurso de rede que o jogo poderá precisar. Um bom investimento de tempo nessa parte pode lhe poupar muita dor de cabeça mais tarde.

  5. Crie a engine de renderização. A complexidade desse componente depende muito do próprio jogo. Frequentemente, jogos 3D terão engines de renderização altamente sofisticadas para criar os gráficos mais belos possíveis, ao mesmo tempo tentando usar o mínimo possível dos recursos do sistema. No entanto, às vezes, as coisas só precisam ser desenhadas na tela, como em um jogo de poker, e o programador não precisa se preocupar com as exigências de recursos do sistema.

  6. Crie ferramentas para os vários componentes. As ferramentas, nesse contexto, são programas que permitem aos criadores do jogo adicionar conteúdo ou configurar componentes para um jogo específico. Por exemplo, uma ferramenta de entrada permitiria que um criador de conteúdo mapeasse entradas do teclado com várias ações no jogo, onde uma ferramenta para a engine de renderização poderia permitir que um designer projetasse uma interface gráfica do usuário para um jogo. As ferramentas também lhe permitem testar os componentes da sua engine sem precisar rodar o jogo inteiro, podendo ajudar a criar componentes melhor desenhados.

Loading...

Dicas

  • Quanto mais tempo você gastar criando um bom design, mais tempo será economizado mais tarde quando você precisar fazer um jogo funcionar usando sua engine.
  • Projete a engine de acordo com suas necessidades. Faça com que ela seja tão complexa ou tão simples quanto você precisar. Não é necessário ter um renderizador capaz de desenhar cenas incrivelmente complexas em tempo real se você só deseja criar um jogo de cartas.

Referências

Loading ...
Loading ...