Darkside  

Voltar   Darkside > Darkside > Comunidade

Responder
 
Thread Tools
David
Robson
 

Default Desenvolvimento de jogo em Python com Panda3D, e Blender

16-10-17, 20:46 #1
É isso ae, faz um tempo que eu venho estudando o Panda3D para fazer um jogo com a lógica programada em Python. Recentemente comecei a aprender a modelar com Blender.

Playlist oficial sobre Blender: https://www.youtube.com/playlist?lis...C5PeBjySbXWGK1

Manual do Panda3D:
https://www.panda3d.org/manual/index.php/Main_Page

Sobre o jogo, se for possível, farei um "Minecraft" no espaço. Misturando elementos de construção de naves com a dinâmica de batalhas estilo Star Trek e The Expanse.

Isto é um projeto para alguns anos, mas tenho bem claro onde quero chegar. Se puder ser MMO, melhor ainda. Mas sem compromisso com o futuro.





David is offline   Reply With Quote
Sussa
Pit
 

Steam ID: sussa
17-10-17, 01:07 #2
Pergunta: Pq python com Panda3d? Não acha mais facil usar a Unity3d por exemplo?

Se decidir usar Unity3d, eu fiz a uns anos atras um principio de minecraft e liberei o codigo no github para quem quiser:
https://github.com/charlesbarros/VoxelEngine

Aqui tem umas fotos:
http://gamecoderbr.blogspot.com.br/2...ne-part-1.html

pode servir de ajuda no seu projeto anyway.

Sussa is offline   Reply With Quote
David
Robson
 

17-10-17, 21:07 #3
Nada contra. Estou muito por fora de C#. Mesmo se for no Linux, fica meio fora da minha realidade.

Mas vou dar uma olhada no seu projeto, valeu.

Sobre Python. É a linguagem que eu mais tenho conhecimento e se a coisa pegar, vou para o Cython ou C++/C onde o profiler mostrar gargalo. Não reptedeno fazer nada comercial, senão até iria para o C# com Unity mesmo.

David is offline   Reply With Quote
Jeep
fagmin
 

XFIRE ID: ds-jeep Steam ID: jeep_ds
09-01-18, 07:09 #4
up!

Jeep is offline   Reply With Quote
vegetous
Trooper
 

XFIRE ID: carniceiru
09-01-18, 12:27 #5
Tem github do seu projeto?

vegetous is offline   Reply With Quote
David
Robson
 

09-01-18, 20:34 #6
Quote:
Postado por vegetous Mostrar Post
Tem github do seu projeto?
Quase. Só estou terminando de estudar o Panda3D melhor.

Criei um cubo no Blender e consegui usar no Panda3D. Fiz o básico de movimentação com o teclado e mouse.


David is offline   Reply With Quote
David
Robson
 

09-01-18, 23:11 #7
Segue o código atual, para quem ficar interessado:

https://gist.github.com/davidkwast/3...e127e522669321


A parte de movimentação precisa ser refeita completamente. Precisa envolver colisão e estou querendo movimentação com gravidade e também em ambiente com gravidade reduzida ou nenhuma. Inèrcia do veículo que o player estiver poderão afetar também.

David is offline   Reply With Quote
SuN WaR
Trooper
 

Gamertag: samuelpires Steam ID: sunwar
18-01-18, 15:44 #8
David, se vc não tiver afim de se afundar completamente na matemática lazarenta de física/colisões, eu recomendo vc integrar aí no seu engine algum framework de física já pronto.

Eu já montei um engine do zero, lancei os games pra Android, iOS, dava pra exportar pra desktop tb. Mas a parte de físicas e colisões eu larguei mão, ahahaha. Programava fisica bem simplinha só, pra fazer mais complexo eu criei uma interface pra usar o Box2D.

Se o seu maior objetivo for o JOGO, recomendo vc migrar pra Unity (Igual o Pit falou lá em cima) ou então Unreal Engine.

SuN WaR is offline   Reply With Quote
David
Robson
 

18-01-18, 15:48 #9
Valeu pelas dicas. Já fiz um testes com o sistema de colisões do Panda3D. Ele suporta um tal de Bullets Physics também.

Se a coisa tiver potencial, aprendo C# e vou pra Unity ou UE mesmo. Por enquanto vou brincar de estrutura de dados e representação. Para isto Python e Panda3D servem bem.

Ainda não cheguei nem no conceito sobre colisões deste projetos, mas será baseado em cubos de 1x1x1 metro. Alguns objetos poderão ter algo mais específico. De qualquer forma o maior desafio será arquitetura client/server. E farei isto antes de tudo, depois vejo o conceito e modelo de colisão que funcione melhor.

David is offline   Reply With Quote
David
Robson
 

16-03-18, 10:47 #10

David is offline   Reply With Quote
WaR WoLf
Trooper
 

16-03-18, 14:59 #11
Se eu fizesse um jogo tudo seria rocket: o personagem principal seria uma rocket que porta uma rocket para matar rockets inimigas. As paredes seriam feitas de rockets, as árvores seriam rockets. A atmosfera seria fumaça de rocket e o sol uma explosão de rocket no céu. Todo e qualquer item do jogo também seria uma rocket: ammo, helthpak, chaves. Não haveria distinção entre eles porque tudo seria rocket...você recarrega a arma, recupera life e abre portas usando qualquer rocket que pegar no jogo. No final o personagem principal (vamos chamá-lo de Rocket) teria um momento de epifania: se tudo é rocket no rocketverso e somos absolutamente iguais, toda rocket-vida que ele ceifou na realidade representa ele mesmo se destruindo. Então ele explode.

Ah, o nome do jogo seria Rocket.

WaR WoLf is offline   Reply With Quote
Never Ping
Trooper
 

Gamertag: Willian Braga XFIRE ID: neverping Steam ID: neverping
16-03-18, 15:01 #12
Quote:
Postado por WaR WoLf Mostrar Post
Se eu fizesse um jogo tudo seria rocket: o personagem principal seria uma rocket que porta uma rocket para matar rockets inimigas. As paredes seriam feitas de rockets, as árvores seriam rockets. A atmosfera seria fumaça de rocket e o sol uma explosão de rocket no céu. Todo e qualquer item do jogo também seria uma rocket: ammo, helthpak, chaves. Não haveria distinção entre eles porque tudo seria rocket...você recarrega a arma, recupera life e abre portas usando qualquer rocket que pegar no jogo. No final o personagem principal (vamos chamá-lo de Rocket) teria um momento de epifania: se tudo é rocket no rocketverso e somos absolutamente iguais, toda rocket-vida que ele ceifou na realidade representa ele mesmo se destruindo. Então ele explode.

Ah, o nome do jogo seria Rocket.
A trilha sonora já está composta.


Never Ping is offline   Reply With Quote
David
Robson
 

09-05-18, 23:12 #13

David is offline   Reply With Quote
David
Robson
 

10-05-18, 10:36 #14
 

David is offline   Reply With Quote
David
Robson
 

03-10-18, 21:48 #15

David is offline   Reply With Quote
David
Robson
 

20-11-18, 21:22 #16
Brython = Python no Browser em cima do Javascript


David is offline   Reply With Quote
David
Robson
 

20-11-18, 23:48 #17

David is offline   Reply With Quote
sibs
Trooper
 

21-11-18, 00:11 #18
Existe isso pra C# tbm já

Com full intellisense e etc, o framework chama blazor.

Nunca usei, mas o projeto é da propia M$.

Edit: Toda hora q eu leio codigo em python me da uma crise, nego me nomeia os negiocio T W X Y Z jesus cristo.

sibs is offline   Reply With Quote
Zedd
Trooper
 

21-11-18, 07:49 #19
Acho que é mais preferência pessoal do que por ser Python nesse caso. Python tem isso de encorajar nomes de certa forma mas o que eu to vendo ai no still do youtube, se for o exemplo que vc ta se referindo, é o cara fazer 'w = self.world' só pra ter um mnemonico mais curto no escopo restrito e reduzir p.ex. de 'for pos, obj in self.world.items():' pra 'for pos, obj in w.items():'

Parece pouca coisa mas pelo que entendi tem gente que se tiver que 'mover os olhos' pra ler, isso afeta negativamente a memória de curto prazo. N me importo mto mas ja encontrei gente que ama/odeia isso

Pra mim incomoda qdo o cara faz um 'obj.mtt' ao inves de 'obj.moving_to_tile'

BTW mto bom esse tópico, David

Zedd is offline   Reply With Quote
David
Robson
 

21-11-18, 10:36 #20
legal o debate pessoal.

este código está bem experimental, e eu estou quase fazendo um "emulador"do canvas em PyGame para conseguir evoluir as experimentações em vez de ficar batendo a cabeça com o Brython, pois não tem traceback.

Talvez seja porque eu estou usando eventos para disparar o loop e exceção de Brython dentro de um evento (base JS) não tenha traceback.

Mas acho que está indo bem. Eu só irei continuar "colocando atalho"em variáveis se for usar mais de 5 vezes no mesmo bloco.

E prefiro nomes de métodos e variáveis que ajudem a entender a ação ou objeto. Python já Não tem tipo na variável, então abusar para poucas letras ou siglas já complica.

Hoje devo abrir um repo no GitHub para linkar nos vídeos. E passarei sempre a narrar os vídeos "show me the code"

David is offline   Reply With Quote
sibs
Trooper
 

21-11-18, 18:52 #21
@Zedd; é comum em python por causa da linguagem tbm, em C#/F# nunca (ou quase nunca) se abrevia algo por causa do tooling que tem autocomplete, renomear uma variavel WORLD pra W é um crime kkkk.

Achei legal o Brython, qual o framework JS q ta rodando embaixo? vc fez algum wrapper no JS em py?

sibs is offline   Reply With Quote
David
Robson
 

21-11-18, 21:41 #22
Quote:
Postado por sibs Mostrar Post
@Zedd; é comum em python por causa da linguagem tbm, em C#/F# nunca (ou quase nunca) se abrevia algo por causa do tooling que tem autocomplete, renomear uma variavel WORLD pra W é um crime kkkk.

Achei legal o Brython, qual o framework JS q ta rodando embaixo? vc fez algum wrapper no JS em py?
O Brythonn tem acesso full ao DOM e tem tradução da API de canvas 2D e 3D, além de outras API do browser.

Ele converte source Python em Javascript. E não bytecode para JS, asm.js ou WASM (web assmebly). No futuro vai compensar compilcar o Python oficial para WASM e fazer a ponte de API. O Brython vem desde 2014, então foi antes da revolução que vem ocorrendo.

O lado ruim do Brython é que ele acaba sendo limitado pela conversão para o Javacript e também se apoia um pouco nos tipos do mesmo. Por isto Brython acabe sendo 95-99% compatível com o Python oficial.

http://www.brython.info/

David is offline   Reply With Quote
Responder

Thread Tools

Regras de postagem
Você não pode criar novos tópicos
Você não pode postar
Você não pode enviar anexos
Você não pode editar seus posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Atalho para Fóruns



O formato de hora é GMT -2. horário: 00:50.


Powered by vBulletin®
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2018 DragonByte Technologies Ltd.