Bem-vindo: Sáb, 30 de Novembro 2024, 10:19 Pesquisa avançada

Godot Engine: Desenvolvimento de jogos no Linux

Escreveu alguma aplicação ou script que quer partilhar? Ou conhece algo que quer partilhar? Sabe alguma linguagem de programação e quer partilhar esse conhecimento com um tutorial? Tem alguma dúvida em alguma linguagem? Então este é o sítio certo.

Re: Godot Engine: Desenvolvimento de jogos no Linux

Mensagempor JOPAGO » Qua, 4 de Junho 2014, 16:26

Acho q Fail Cry tbm da pra fazer
Avatar do usuário
JOPAGO
 
Mensagens: 25
Registrado em: 22 Novembro, 2013

Re: Godot Engine: Desenvolvimento de jogos no Linux

Mensagempor Bitetti » Dom, 8 de Junho 2014, 0:45

Código: Selecionar todos
func _on_body_enter( body ):
   # pega o valor apartir do objeto basico
   var isGhost = body.get("ghost_mode")
   if isGhost != null:
      if not isGhost: # get_node("/root/stage/Player").ghost_mode:
         porrada()
         timer.start()


Uma pequena distração minha me fez esquecer do poder dos tipos primitivos.
O problema era que body era um RigidBody e não o meu objeto inimigo (Inimigo->RigidBody) e eu não estava conseguindo fazer o upcast.
Sem o upcast RigidBody não tinha a variavel ghost_mode, mas o downcast dele, o Object podia voltar essa variavel com o método get.
Isso resolveu meu estranho problema de, que por alguma incoerência do destino ou dos servidores, nem sempre o get_node me retornava o objeto que eu procurava.
Claro que como é uma comparação de string num dicionário a coisa é meio lenta pra sistemas de auto-desempenho, como controlar exércitos. Mas já resolve.

São pequenos problemas e manhas que vai se descobrindo na engine durante a fase dos testes.
Infelizmente tem alguns pequenos problemas com a física e uns mais graves com o monitor de teclas, n sei pq "cargas d'agua" eles não implementaram o OIS, usado na OGRE, que é muito efiiente.
Avatar do usuário
Bitetti
 
Mensagens: 875
Registrado em: 03 Janeiro, 2012
Localização: São Paulo

Re: Godot Engine: Desenvolvimento de jogos no Linux

Mensagempor Bitetti » Qua, 18 de Junho 2014, 2:34



Além dos acertos no texto (é meio chato vc digitar na engine se preocupando se o texto vai caber no balão) ainda tem q melhorar o sincronismo.

Fora esses detalhes agora ainda estou tendo prolemas com o UOL Host, que vai cortar o meu domínio semana que vem... só que algum "estagiário" ou coisa parecida perdeu meu cadastro lá dentro daquela budega. Tipo, sem o domínio não tem onde apontar o sistema de update do game.
Mas devo resolver isso essa semana.

e pular pro próximo.
Avatar do usuário
Bitetti
 
Mensagens: 875
Registrado em: 03 Janeiro, 2012
Localização: São Paulo

Re: Godot Engine: Desenvolvimento de jogos no Linux

Mensagempor Bitetti » Sáb, 21 de Junho 2014, 13:53



Este talvez seja o último video tutorial deste mini game que faço.

:yeah: sim, isso mesmo, finalmente está pronto esse bagulho!
Falta só eu colocar no ar o sistema de comentários e o de updates e downloads.

Uma coisa chata foi a viadagem do Youtube, uma das musicas em background eu baixei do Jamendo como Creative Commons e simplesmente quando subo este vídeo o Youtube me põe a maldita musica em disputa. Tive q usar uma ferramenta deles p tirar a musica no final do vídeo.

Eu não sei da história, se o autor vendeu o direito da musica p alguma gravadora/exploradora e não atualizou no Jamendo ou se ele foi simplesmente roubado por uma dessas.
Só sei que isso estragou minha manhã e mostra coisas ainda piores para o futuro. Imaginem um filme hoje com uma musica, amanhã a musica cai nos direitos de outra produtora e os maniacos irão querem tirar a musica em questão de todas as outras obras!?
Avatar do usuário
Bitetti
 
Mensagens: 875
Registrado em: 03 Janeiro, 2012
Localização: São Paulo

Re: Godot Engine: Desenvolvimento de jogos no Linux

Mensagempor Bitetti » Qua, 25 de Junho 2014, 10:53

quase quase... só tenho q fazer este mecanismo funcionar. Mas acho que "eval" esta salvando os dados em algum lugar diferente da pasta do executável.

Código: Selecionar todos
func on_atualizar_pressed():
   botao_update.hide()
   var update = "wget https://dl.dropboxusercontent.com/u/270587/wwp/wwpeasteregg1/wwpeasteregg1.zip -O wwpeasteregg1.zip | unzip wwpeasteregg1.zip"
   print("download: " + update_link)
   if OS.has_environment("%windir%"):
      OS.execute("wget.exe",["start","http://www.wildwitchproject.com/"],false)
   else:
      OS.execute("eval",[update],false)
Avatar do usuário
Bitetti
 
Mensagens: 875
Registrado em: 03 Janeiro, 2012
Localização: São Paulo

Re: Godot Engine: Desenvolvimento de jogos no Linux

Mensagempor Luis Cardoso » Sáb, 28 de Junho 2014, 18:45

Bitetti (25-06-2014, 10:53) escreveu:quase quase... só tenho q fazer este mecanismo funcionar. Mas acho que "eval" esta salvando os dados em algum lugar diferente da pasta do executável.

Código: Selecionar todos
func on_atualizar_pressed():
   botao_update.hide()
   var update = "wget https://dl.dropboxusercontent.com/u/270587/wwp/wwpeasteregg1/wwpeasteregg1.zip -O wwpeasteregg1.zip | unzip wwpeasteregg1.zip"
   print("download: " + update_link)
   if OS.has_environment("%windir%"):
      OS.execute("wget.exe",["start","http://www.wildwitchproject.com/"],false)
   else:
      OS.execute("eval",[update],false)

Não tem como ver o caminho actual antes de executar OS.execute("eval",[update],false) :?:
ImagemImagem
«Escolhe um trabalho de que gostes, e não terás que trabalhar um só dia na tua vida» - Confúcio
Avatar do usuário
Luis Cardoso
Redator
 
Mensagens: 10455
Registrado em: 26 Maio, 2011
Localização: Portugal

Re: Godot Engine: Desenvolvimento de jogos no Linux

Mensagempor Bitetti » Dom, 29 de Junho 2014, 22:29

Boas Luis, refletindo sobre sua dica
globalize_path( "res://" )
faria o serviço, ou parte dele. Não testei pq já solucionei por outra maneira.
OS.execute("/bin/bash",["update.sh"],false)
pois de qualquer forma o update estaria fora do pacote comprimido de dados e junto com o exeutável. O mesmo vale pro rWindows, q tive q monta um .exe para fazer download e colocar juno u unzip.exe do pacote UnixTools.

De qualquer forma se pensar que isso não vale pro caso do Android, que guarda os dados bem longe do executável a coia muda de figura. Na verdade como Android não preciso dessa ladainha.

Por fim, um último bug q isolei no tempo de testes onde se eu saio da cena do menu sem os dados de update serem carregados o sistema dá "crash"!
Não é erro da API mas sim a falta de um mecanismo separado de consulta, seria responsabilidade do programador separar o código em módulos independentes e seguros ( mais detalhes vao estar disponíveis no próximo nível de testes onde mostro o esquema).

Mas sanei ele na pseudo-gambi (ele trava um pouco o sistema mas ao menos não dá crash)
Código: Selecionar todos
         if barra_espaco or magic_act:
            last = 0
            lastTela.hide()
            if   item==0:
               playerDT.resetStats()
               loadHTML.wait_to_finish()
               playerDT.swap_scene("res://main.scn")
            elif item==1:
               tela = 1
               lastTela = get_node("estatisticas")
               calculeEstatisticas()
               lastTela.show()
            elif item==2:
               loadHTML.wait_to_finish()
               playerDT.swap_scene("res://Artwork.scn")
            elif item==3:
               loadHTML.wait_to_finish()
               playerDT.swap_scene("res://Creditos.scn")
            elif item==4:
               tela = 4
               lastTela = get_node("atualizacoes")
               lastTela.show()
            elif item==5:
               tela = 5
               lastTela = get_node("wwp")
               lastTela.show()
            elif item==6:
               tela = 6
               lastTela = get_node("configuracoes")
               lastTela.show()


loadHTML.wait_to_finish() espera a thread terminar caso ela esteja em execução.
Avatar do usuário
Bitetti
 
Mensagens: 875
Registrado em: 03 Janeiro, 2012
Localização: São Paulo

Re: Godot Engine: Desenvolvimento de jogos no Linux

Mensagempor Luis Cardoso » Seg, 30 de Junho 2014, 22:32

Não tem a possibilidade de usar um switch-case-default em vez de esses if-elif todos?
ImagemImagem
«Escolhe um trabalho de que gostes, e não terás que trabalhar um só dia na tua vida» - Confúcio
Avatar do usuário
Luis Cardoso
Redator
 
Mensagens: 10455
Registrado em: 26 Maio, 2011
Localização: Portugal

Re: Godot Engine: Desenvolvimento de jogos no Linux

Mensagempor Bitetti » Ter, 1 de Julho 2014, 17:11

Luis Cardoso (30-06-2014, 22:32) escreveu:Não tem a possibilidade de usar um switch-case-default em vez de esses if-elif todos?


Isso é uma coisa que me irritava também na Python e na Lua, pois coisas q se resolveriam com mais de um case agente as vezes tem q repetir o mesmo código em uma segunda cadeia de IFs. Mas acho q a ideia por traz delas era um ambiente diferente, principalmente na forma de pensar em como as soluções deveriam ser implementadas. Não acho uma filosofia ruim, a lógica clássica é boa mas nem sempre é a melhor.

Logicamente os caras da Okam Studio seguiram o padrão das linguagens para não correr risco de um "tiro no pé".
Avatar do usuário
Bitetti
 
Mensagens: 875
Registrado em: 03 Janeiro, 2012
Localização: São Paulo

Re: Godot Engine: Desenvolvimento de jogos no Linux

Mensagempor Luis Cardoso » Ter, 1 de Julho 2014, 20:00

Bitetti (01-07-2014, 17:11) escreveu:
Luis Cardoso (30-06-2014, 22:32) escreveu:Não tem a possibilidade de usar um switch-case-default em vez de esses if-elif todos?


Isso é uma coisa que me irritava também na Python e na Lua, pois coisas q se resolveriam com mais de um case agente as vezes tem q repetir o mesmo código em uma segunda cadeia de IFs. Mas acho q a ideia por traz delas era um ambiente diferente, principalmente na forma de pensar em como as soluções deveriam ser implementadas. Não acho uma filosofia ruim, a lógica clássica é boa mas nem sempre é a melhor.

Logicamente os caras da Okam Studio seguiram o padrão das linguagens para não correr risco de um "tiro no pé".

Pois, é que é daquelas coisas que o C tem que mais uso, porque permite partilhar porções de configurações através da posição do break... Aliás, em ASM fazia algo semelhante com recurso às Labels, até porque a tradução do código C para ASM, vai dar quase ao mesmo!
ImagemImagem
«Escolhe um trabalho de que gostes, e não terás que trabalhar um só dia na tua vida» - Confúcio
Avatar do usuário
Luis Cardoso
Redator
 
Mensagens: 10455
Registrado em: 26 Maio, 2011
Localização: Portugal

AnteriorPróximo

Voltar para Scripts, programação e aplicações em desenvolvimento

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 3 visitantes