Pitão

Bons motores de jogo 3D Python

Bons motores de jogo 3D Python

Introdução

Encontrar uma estrutura para motores de jogos 3D feitos para e com Python pode ser muito difícil. A razão para isso é que o Python rapidamente se depara com problemas de desempenho quando a complexidade aumenta. A renderização gráfica rápida não é o que o Python faz melhor. No entanto, como Python é muito bom para criar a lógica e bastante popular, você tem muitas opções para executar frameworks escritos em C++.

Para fazer isso funcionar para motores de jogo 3D, você não pode fazer tudo como faria normalmente em Python. A maioria dos frameworks cria um wrapper para suas bibliotecas C ++. Você precisará descobrir como compilar para que o Python possa chamar este invólucro. Eles cobrem na documentação como compilar com o wrapper Python.

Estilo de jogo e escolha de idioma

Considere, antes de começar, se o seu jogo é um jogo de plataforma, jogo de tiro em primeira pessoa ou baseado em diálogo. Talvez você crie um jogo que desafie as habilidades intelectuais. Isso não requer gráficos de alto desempenho. A questão é que você precisa saber o que está tentando alcançar antes de começar. Você pode estar acostumado com Python para programação. Mas se você está procurando criar jogos com muitos efeitos, você deve considerar outras linguagens de programação. É um grande esforço aprender um novo idioma, mas também é extremamente gratificante depois de ultrapassar o obstáculo inicial do básico. O momento em que a documentação regular faz sentido, mesmo com uma rápida olhada.

Ligações, bibliotecas a serem consideradas

Para fazer jogos, você precisará criar gráficos, menus e áudio. Existem várias bibliotecas e ligações Python para lidar com esses casos. Uma das mais comuns dessas bibliotecas é SDL2, que dá aos programadores acesso direto ao framebuffer de vídeo, saída de áudio, mouse e teclado. Sem eles, seu jogo terá que usar rotinas regulares, que às vezes podem ser lentas. A primeira versão ainda está disponível, mas SDL2 tem todos os gadgets necessários.

SFML2 desempenha uma função semelhante à maioria das funções de multimídia e reúne todas as funções. Em contraste, SDL2 contém muitas partes menores que você precisa inserir em seu código, uma de cada vez.

Para Python, você precisará dos pacotes PySDL2 e PySFML2, respectivamente.

PyOgre

Os designers do PyOgre escreveram o framework Ogre em C ++ com um wrapper para Python. O invólucro é um invólucro embutido. O projeto antigo ainda está disponível na web. Seguir os tutoriais pode ser útil, mas tenha cuidado, pois nem tudo disponível online estará correto. Ogre tem classes para muitos objetos do mundo, dando a você uma camada sobre OpenGL e Direct3D.

Ogre trabalha com cenas e pode criar todos os gráficos de que você precisa para o seu jogo. Os módulos PyOgre funcionam para versões anteriores à versão v1 do Ogre.05. Depois disso, existem outros módulos disponíveis. O software Ogre inclui scripts Python para importar dados do Blender para o Ogre. Isso torna possível criar seus recursos no Blender para o seu jogo. Outros exportadores também estão disponíveis.

http: // wiki.ogre3d.org /

Allegro

Allegro lida com todo o trabalho pesado de criação de janelas, aceitando a entrada do usuário, desenhando imagens e reproduzindo sons - todos os recursos que são úteis para videogame e programação de multimídia. Os designers do Allegro não afirmam que este programa seja um motor de jogo, mas é útil para fazer jogos.

Uma vez que Allegro foi construído em C ++, você precisará criar o wrapper para usar este programa em Python. Você pode executar esta etapa compilando a partir do código-fonte. O processo cria as classes em um arquivo chamado allegro.py. Depois de concluir esta etapa, você pode escolher as classes desse arquivo, mas é recomendado que você também leia a documentação regular sobre como este programa funciona. Isso pode complicar o processo, mas aprender C ++ também é uma tarefa árdua.

https: // github.com / liballeg / allegro5

Armory 3D - Extensão do Blender

Este pacote usa Blender como plataforma de desenvolvimento e HAXE como linguagem de programação. Sim, você precisará mudar para Haxe, mas você pode converter alguma lógica de jogo existente do Python. Armory3D opera dentro do Blender como uma extensão, onde você pode criar todos os seus recursos para o jogo.

Mesmo que o Armory 3D não rode em Python, considere este programa com cuidado, pois você pode começar muito rapidamente com esta ferramenta. https: // armory3d.org /

Urho3D

Este pacote usa Blender como plataforma de desenvolvimento e HAXE como linguagem de programação. Novamente, você precisará mudar para Haxe, mas pode converter alguma lógica de jogo existente do Python. Armory3D opera dentro do Blender como uma extensão, onde você pode criar todos os seus recursos para o jogo.

Mesmo que o Urho3D não rode em Python, considere este programa com cuidado também, já que você pode começar muito rapidamente com esta ferramenta. https: // armory3d.org /

Ursina

Ursina é escrito em Python e construído em Panda3D. Esta ferramenta é projetada para fornecer muitos primitivos, como um cubo, esfera, etc., para que você possa seguir para o jogo o mais rápido possível. Panda3D faz o trabalho profundo e Ursina oferece funções de programa prontas. Uma classe de jogador oferece opções para registrar as teclas pressionadas e os movimentos do mouse.

A maioria das funções são intuitivas de usar com nomes claros e funções de fácil compreensão. Você será capaz de começar a jogar rapidamente se usar esta ferramenta de criação de jogos. O Ursina também tem ferramentas para converter arquivos blend e psd.

https: // github.com / pokepetter / ursina

Blender Game Engine (?)

Antes da versão 2.79, o Blender tinha um motor de jogo embutido. Em versões posteriores, no entanto, os designers optaram por remover o mecanismo de jogo da construção padrão e se concentrar nas animações. Então, o pessoal da UPBGE decidiu criar sua própria extensão que funcionasse dentro do Blender. Você pode, portanto, usar o Blender para criar o jogo inteiro. Como isso se relaciona com o desenvolvimento de jogos Python?

BPGE tem uma API que permite a você acessar todos os dados que você cria enquanto trabalha dentro do Blender. Você pode usar o console dentro do Blender para acessar e testar a API. Na verdade, você poderia escrever todo o programa dessa maneira, mas essa pode não ser a melhor escolha para suas necessidades. No mínimo, você terá todos os recursos prontos e da maneira que você deseja a partir do momento em que os cria.

GODOT - GDscript, NÃO Python

Se você quiser escrever um jogo e se sentir confortável com Python, também pode usar o GODOT. Esta linguagem é muito semelhante ao Python, mas é especialmente para escrever jogos.

Conclusão

Existem muitos frameworks para escrever jogos em Python. Se você está procurando criar jogos 3D de alto desempenho, deve considerar seriamente aprender outros idiomas para esses jogos. Certifique-se de que a escolha do programa permite que você siga a ideia original do jogo. Se necessário, adapte sua linguagem de programação à sua visão pessoal.

Instale o emulador Dolphin mais recente para Gamecube e Wii no Linux
O Dolphin Emulator permite que você jogue seus jogos de Gamecube e Wii escolhidos em computadores pessoais Linux (PC). Sendo um emulador de jogo disp...
Como usar o GameConqueror Cheat Engine no Linux
O artigo cobre um guia sobre como usar o mecanismo de cheat GameConqueror no Linux. Muitos usuários que jogam no Windows costumam usar o aplicativo “C...
Melhores emuladores de console de jogo para Linux
Este artigo irá listar software de emulação de console de jogo popular disponível para Linux. A emulação é uma camada de compatibilidade de software q...