Introdução
Encontrar uma estrutura para os motores de jogo 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 de gráficos rápidos não é o que o Python faz de melhor. No entanto, como o Python é muito bom para criar a lógica e é bastante popular, você tem muitas opções para executar estruturas escritas em C++.
Para fazer isso funcionar para os mecanismos de jogo 3D, você não pode fazer tudo, como normalmente pode fazer em Python. A maioria das estruturas cria um invólucro para suas bibliotecas C ++. Você precisará descobrir como compilar para que o Python possa se lembrar deste invólucro. Eles cobrem a documentação de como compilar com o invólucro python.
Estilo de jogo e escolha de idioma
Considere, antes de começar, se o seu jogo é um jogo de plataforma, atirador de primeira pessoa ou baseado em diálogo. Talvez você crie um jogo que desafie as habilidades intelectuais. Isso não precisa de gráficos de alto desempenho. O ponto é que você precisará saber o que está tentando alcançar antes de começar. Você pode estar acostumado a Python para programar. Mas se você deseja criar jogos com muitos efeitos, considere outras linguagens de programação. É um grande esforço para aprender um novo idioma, mas também é extremamente gratificante depois que você aprovou esse obstáculo inicial do básico. O tempo em que a documentação regular faz sentido, mesmo à vista rápida.
Ligações, bibliotecas a serem consideradas
Para fazer jogos, você precisará criar gráficos, menus e áudio. Existem várias bibliotecas e ligações de Python para lidar com esses casos. Uma das mais comuns dessas bibliotecas é o SDL2, que oferece aos programadores acesso direto ao vídeo de vídeo, saída de áudio, mouse e teclado. Sem isso, seu jogo terá que usar rotinas regulares, o que às vezes pode ser lento. A primeira versão ainda está por aí, mas o SDL2 tem todos os gadgets necessários.
O SFML2 desempenha um papel semelhante à maioria das funções multimídia e coloca todas as funções. Por outro lado, o SDL2 contém muitas peças menores que você precisa para atrair seu código um de cada vez.
Para Python, você precisará dos pacotes PYSDL2 e PYSFML2, respectivamente.
Pyogre
Os designers de Pyogre escreveram a estrutura Ogre em C ++ com um invólucro 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 aulas para muitos objetos mundiais, dando a você uma camada em cima do OpenGL e Direct3D.
Ogre trabalha com cenas e pode criar todos os gráficos que você pode precisar para o seu jogo. Os módulos pyogre funcionam para versões antes da versão OGRE V1.05. Depois disso, existem outros módulos disponíveis. O software OGRE inclui scripts Python para importar dados do Blender para Ogro. Isso torna possível criar seus recursos no liquidificador para o seu jogo. Outros exportadores também estão disponíveis.
http: // wiki.OGRE3D.org/
Allegro
Allegro lida com todo o levantamento pesado da criação de janelas, aceitando a entrada do usuário, desenhando imagens e sons de reprodução - todos os recursos úteis para programação de videogame e multimídia. Os designers de Allegro não afirmam que este programa é um mecanismo de jogo, mas é útil para fazer jogos.
Como Allegro foi construído em C ++, você precisará criar o invólucro para usar este programa no Python. Você pode executar esta etapa compilando a partir da fonte. O processo cria as classes em um arquivo chamado Allegro.py. Depois de concluir esta etapa, você pode escolher as aulas desse arquivo, mas é recomendável que você também leia a documentação regular de como esse programa funciona. Isso pode complicar o processo, mas aprender C ++ também é uma tarefa.
https: // github.com/liBalleg/allegro5
Armory 3D - Extensão do liquidificador
Este pacote usa o 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 liquidificador como uma extensão, onde você pode criar todos os seus recursos para o jogo.
Embora o Armory 3D não seja executado no Python, considere este programa cuidadosamente, pois você pode começar muito rapidamente com esta ferramenta. https: // armory3d.org/
Urho3d
Este pacote usa o Blender como plataforma de desenvolvimento e usa o Haxe como a linguagem de programação. Novamente, você precisará mudar para Haxe, mas você pode converter alguma lógica de jogo existente do Python. Armory3D opera dentro do liquidificador como uma extensão, onde você pode criar todos os seus recursos para o jogo.
Embora o URHO3D não seja executado no Python, considere esse programa com cuidado também, pois você pode começar muito rapidamente com esta ferramenta. https: // armory3d.org/
Ursina
Ursina está escrita em python e construída em panda3d. Esta ferramenta foi projetada para fornecer muitas primitivas, como um cubo, esfera etc., para que você possa passar para o próprio jogo o mais rápido possível. O Panda3D faz o trabalho profundo e a Ursina oferece funções de programa prontas para você. Uma aula de jogador oferece as opções para registrar chaves pressionadas e movimentos de mouse.
A maioria das funções é intuitiva de usar com nomes claros e funções facilmente compreensíveis. Você poderá começar rapidamente com seu jogo se usar esta ferramenta de criação de jogos. A Ursina também possui ferramentas para converter arquivos de mistura e PSD.
https: // github.com/pokepetter/ursina
Motor de jogo do liquidificador (?)
Antes da versão 2.79, o Blender tinha um motor de jogo incorporado. Nas versões posteriores, no entanto, os designers optaram por remover o mecanismo de jogo da construção padrão e foco em animações. Então, as pessoas da UPBGE decidiram criar sua própria extensão que funciona dentro do Blender. Você pode, portanto, usar o Blender para criar o jogo inteiro. Como isso se liga ao desenvolvimento do jogo Python?
O BPGE possui uma API que permite acessar todos os dados que você cria enquanto trabalha dentro do Blender. Você pode usar o console dentro do liquidificador para acessar e testar a API. Na verdade, você pode escrever o programa inteiro dessa maneira, mas essa pode não ser a melhor escolha para suas necessidades. No mínimo, você terá todos os recursos prontos e a maneira como os deseja a partir do momento em que os criar.
Godot - GDScript, não Python
Se você quiser escrever um jogo e se sentir confortável com o Python, você também pode usar Godot. Este idioma é muito semelhante ao Python, apenas é especialmente para escrever jogos.
Conclusão
Existem muitas estruturas para escrever jogos em Python. Se você deseja criar jogos 3D de alto desempenho, considere seriamente aprender outros idiomas para esses jogos. Certifique -se de que a escolha do seu programa permita que você siga sua ideia de jogo original. Se necessário, adapte sua linguagem de programação à sua visão pessoal.