UPBGE

Nada mais, nada menos, do que como criar seu primeiro game 3D utilizando apenas um sistema Linux, o Blender e o UPBGE!


| Se você apoia nosso site, desative o AdBlock quando visitá-lo, inclusive em Mobile!
Os anúncios são poucos e não invasivos. Se quiser contribuir com nosso trabalho, clique em qualquer banner de sua preferência, exceto dos Parceiros. 
Mais detalhes clicando aqui.


1. Introdução

A algum tempo fiz uma publicação trazendo o poder do Blender e o quanto ele é interessante quando o assunto é modelagem e renderização em 3D. Além disso ele é utilidade, em menor escala, também pra edição de vídeos.

Não detalhamos como utilizar o Blender, pra isso há ótimos tutoriais que foram referenciados naquela publicação! Então, se deseja de fato tentar criar um game no Blender, sugiro que esteja familiarizado com a maioria das ferramentas e conceitos.

Antes de continuar, preciso colocar alguns pingos no i’s.

2. Motores / Engines

Quando se trata de criar um game, normalmente não estamos falando de 1 motor/engine, mas várias que compõe aquela obra. Uma engine, ou motor, no bom português, é o que executa a maior parte do jogo! Por exemplo, a engine RenderWare® é conhecida por ser a base gráfica e também de física da franquia GTA da época do PlayStation 2.

Porém as vezes você pode usar uma engine gráfica e outra engine de física pra deixar um jogo mais polido. Exemplo é o GTA V da Rockstar Games, que utiliza a R.A.G.E. pra gráficos – desenvolvida internamente pela própria Rockstar – mas por trás das animações e captura de movimentos está a engine Euphoria. Entre outros exemplos temos a CryEngine do Crysis, além da Unreal Engine que são conhecidas na mídia por terem gráficos e físicas de saltar aos olhos!

E com isso bem definido, o Blender tinha sua própria Engine, a BGE!

3. Blender Game Engine

Blender Game Engine, também conhecida como BGE, foi a engine de jogo nativa do Blender. Em julho de 2019, com o lançamento da versão 2.80 do Blender, a engine foi descontinuada e portanto não acompanha mais a aplicação.

  • Então não tem como criar um jogo com o Blender poxa…

Tem, aonde há um software open source e amor da comunidade, há um jeito!

3.1 Ideia

Eu gostaria de abrir um parágrafo pra criar uma contextualização aqui: Por hobby mexi mais no Blender e fiz algumas renderizações, como esta:

E me veio a ideia: É possível criar um game em cima desse cenário?

Eu experimentei as engines Unreal Engine 4 e também a Unity, as mais populares e gratuitas, além de terem versões nativas para Linux. Ambas até permitem importar modelos do Blender mas não importam texturas. Então simplesmente ficava assim:

Toda a iluminação, texturas e efeitos eu teria que reconstruir do zero… Então arquivei a ideia.

Pesquisando sobre alguma engine nativa de Blender, me caiu como uma luva o UPBGE: se você programar a movimentação do personagem e utilizar a engine eevee, também nativa, para gráficos, terá algo interessante em mãos!

4. UPBGE

A Blender Engine renasceu nas mãos de outros desenvolvedores e um fork foi criado chamado UPBGE, aproveitando o mesmo código original do Blender Engine mas aprimorado.

A atual versão estável está disponível para o Blender 3.0.0+ e, apesar da baixa frequência de atualizações, não se engane: A engine recebe atualizações quase mensais porém em estágios alpha e beta.

A essa altura você me pergunta: Ta, e como eu crio um jogo com isso?
Tentarei ser sucinto, em vista que novamente não cabe os detalhes absolutamente técnicos mas é relativamente simples!

4.1 Especificações

Infelizmente eu preciso apontar algumas questões antes de mais nada. A primeira é a exigência de hardware, que deve ser, no mínimo:

  • Processador de 64-bit Quad-Core com suporte a SSE2.
    Isso pode ser verificado com o comando:
    $ cat /proc/cpuinfo | grep sse2
    Se surgirem vários resultados grifando o parâmetro sse2, seu processador suporta!
  • Placa de vídeo com pelo menos 2Gb de memória.
    Suporte a OpenGL: 4.3+
    As placas da família AMD VEGA são igualmente suportadas.
  • RAM: 8 Gb

Os games tanto pra serem desenvolvidos quanto executados não rodam em notebooks com Intel HD Graphics ou placas AMD mais antigas e similares.

EDIT: Os games podem sim rodar em Notebooks com placa Intel HD Graphics conforme testei no meu Thinkpad i5 com IHG 4400. Porém baixe os requisitos na hora de criar a Runtime, resolução de tela e efeitos, senão seu jogo rodará a 10 FPS (Frames por Semana)!

O comando $ inxi -b # mostra qual a versão do OpenGL sua placa suporta. Se atender o requisito mínimo acima, então o jogo deve abrir sem maiores problemas. Mas lembrando que o jogo pode ficar mais pesado a medida que mais elementos forem adicionados. Meu game por exemplo consome 3 Gb de RAM ao iniciar, então se a máquina tiver apenas 4Gb, é provável que não execute.

Possui os requisitos? Vamos continuar!

4.2 Conhecimento

Conforme mencionado aqui, há tutoriais de Blender no YouTube como o BlenderGuru. Tenha familiaridade com o software para não se frustar com o básico e sofrer pra criar um simples cubo – tal qual eu sofri quando não sabia nada e já queria sair modelando de tudo!

Portanto dê uma olhada pelo menos no tutorial da Donut que mencionei naquela publicação!

Está mais confiante?

4.3 Modelando

Modele alguma coisa!

Eu modelei uma cidade. Modele uma rua, uma casa, algo que você queira interagir como em um game!

Texturize, aplique efeitos, faça como achar melhor.

Mas no fim, configure e ajuste os efeitos, partículas, luzes e sombras pra rodarem com o motor eevee, ele será a base do jogo.

4.4 Download do Blender

A versão mais nova do UPBGE, até a data desta publicação, é a 0.30 que se encontra aqui.

Caso deseje uma build mais nova, pode pegar as Alphas/Betas deste mês UPBGE! Mas elas são instáveis e podem ter pior desempenho.

Extraia e deixe em algum local de seu interesse. Entenda que o UPGBE é basicamente outro Blender mas modificado. Você pode e até deve fazer seus projetos num Blender comum e depois utilizar o UPBGE pra desenvolver a parte de gameplay.

4.5 Download do Template

O grande segredo aqui é utilizar um template: Uma base de código genérica que te permita ter o mínimo pra trabalhar. As engines mais populares vem com diversos templates mas a UPGBE infelizmente não tem nenhum.

Aqui eu sugiro baixar estes templates, mas especificamente o FPS que é basico pra andar pelo cenário, com suporte a deslocamento com as teclas WASD, pular com Espaço e correr com Shift. Obrigado IzaZed por sua contribuição à comunidade ao disponibilizar tais templates!

4.6 Mesclando

De forma simples, abra o UPBGE, vá em “File > Open” e abra o Template. – Assim você não desconfigura seu sistema que deve ter associado o arquivo .blend ao Blender comum sem engine!

Uma vez aberto, você poderá abrir ao mesmo tempo seu projeto no Blender comum. Uma vez lá dentro, selecione o que deseja exportar para o UPBGE, clique direito Copiar; E no UPBGE cole! Simples assim, diretamente.

Você terá uma mescla dos objetos padrão do template FPS e seu projeto por cima. Dê uma organizada, delete o que for inútil ou atrapalhar.

5. Jogando seu Jogo

Uma vez que estiver tudo em ordem, clique na Câmera, deixe-a ativa e aperte P.
Isso ativará o modo de jogo! Se tudo correu bem, você ja estará jogando no seu cenário customizado.

Caso seu cenário esteja muito grande ou muito pequeno, você pode mudar a proporção do personagem do template FPS: Basta clicar no grid box mais externo do “personagem” e usar S para escalar ele para mais ou menos.

No meu exemplo ficou assim:

Ou seja: Agora consigo andar pelo cenário e jogar no que eu construí, dentro do Blender!

  • Quer jogar meu jogo para ter uma ideia de como ficou? Pode baixa-lo aqui!
    Para se movimentar é WASD, para correr Shift Esquerdo, para pular use Espaço e sair é ESC.

O UPBGE também permite exportar em um formato binário pra que o jogo fique executável mais fácil, como um produto final. Para isso, vá em Edit, Preferences, Add-Ons e procure pelo “Save As Game Engine Runtime”.

Após isso, basta entrar no modo de visão com o eevee ativo, renderizando em tempo real, entrar na câmera ativa, não precisa iniciar o jogo com P; vá em File, Export e exporte como Save as Game Runtime!

  • Se foi aberto e editado no Linux, a exportação será em formato .bin, o que permite executar em qualquer distribuição. Mantenha as opções de exportação padrão, assim ele gera as dependências necessárias.
    Para executar o game, abra no terminal como: $ ./game
    Ou se sua distribuição permitir, clique direito, propriedades, marcar como Executável e depois clique 2x.
  • Se foi aberto e editado no Windows, a exportação será em formato .exe, o que permite executar em qualquer versão do Windows de preferência as mais novas 10 e 11. Mantenha as opções de exportação padrão, assim ele gera as dependências necessárias.

Não há suporte para cross-build, ou seja, Linux construir .exe e Windows construir .bin.

6. Dicas & Truques

Algumas informações MUITO úteis que descobri vou adicionar aqui a quem interessar!

  • É possível executar partículas (fogo, fumaça, líquidos, etc) da timeline na execução do game.
    Somente disponível no UPGBE 0.30+

Baseado nesta publicação , você precisa adicionar ao Logic Brick Editor o seguinte código (após selecionar o objeto desejado, uma bandeira, um fluído, fumaça, etc):

import bpy
FRAME_START = 100
FRAME_END = 200
currentFrame = bpy.data.scenes["Scene"].frame_current
setFrame = bpy.data.scenes["Scene"].frame_set
if currentFrame < FRAME_START or currentFrame > FRAME_END:
  bpy.data.scenes["Scene"].frame_set(FRAME_START)
elif currentFrame >= FRAME_START and currentFrame < FRAME_END:
  setFrame((currentFrame + 1) % FRAME_END)

Se utilizar um SENSOR como AWAYS (marque a seta pra cima Pulse True Level) + Controller Python inserindo esse script, ele sempre vai executar. Lembrando que esse código é POR OBJETO, portanto cada objeto pode executar um trecho da timeline de acordo com a necessidade. Acima o trecho é do frame 100 ao 200 apenas, mas poderia ser do 1 ao 1000. Dessa forma vai executar em Loop. Se quiser líquidos na versão exportada do jogo, deve carregar junto o cache do líquido. – Alguns caches podem passar dos 700 Mb em disco facilmente!

Lembre-se que tudo deve ser BAKED antes! A game engine não executa nada em tempo real, até porque isso pesaria horrores a engine desnecessariamente.

7. Conclusão

De forma simples pegamos algo criado no Blender, exportamos para o UPGBE usando um template de jogo pronto e executamos. É a forma mais rápida e simples de ter algo funcional com poucos minutos/horas de trabalho!

Claro que isso não basta e a essa altura você deve estar cheio de dúvidas. Se quiser ir além e experimentar coisas diferentes, possibilidades, controles, recursos, animações em tempo real, recomendo a leitura da documentaçãoque inclusive é muito bem documentada! E recomendo alguns tutoriais como a playlist UPBGE Tutorial #01.

Você poderá criar jogos em vários estilos, programar sensores, atuadores, como um controle funciona/responde, quando e onde reproduzir a timeline de uma animação de fluid, cloth ou mesmo fire ou smoke, entre outros efeitos diversos! E não esquecendo que abordei o foco no template FPS mas há possibilidade de criar games em TPS, TopDown, etc.

Apesar de termos tantas engines boas como a Unity e a UE4, o Blender, pra quem já lida com ele a algum tempo, se mostra mais versátil com essa engine, que por mais básica que seja em recursos, ainda é bastante rica pra criar seu primeiro game!

#UrbanCompassPony

Deixe um comentário