C++ ou Java para Jogos, por que?

[quote=Thiagosc]Novamente a sua capacidade de leitura falha. Eu jamais disse que aquilo poderia ser feito com generics, mas sim que templates são parecidos com generics, porque pode-se parametrizar classes e funções, com a diferença de que isso é feito em tempo de compilação.

Mas isso é muito limitado. Em Ruby ou Python existe uma espécie de “metaprogramação”, muito mais flexível.

Em Lisp usa-se a própria linguagem para criar macros e pode-se assim criar qualquer coisa. Seja estruturas ou classes completamente diferentes, funções ou implementações de métodos, valores em ambiente léxico ou dinâmico, etc. Trabalha-se diretamente com a árvore do código e por isso é possível fazer coisas que seriam impossíveis ou muito difíceis de serem feitas em outras linguagens.

A metaprogramação em C++ é uma piada em comparação. É uma definição de metaprogramação bem técnica, pois gera código em tempo de compilação. Não deixa de estar correto, mas Ruby já dá um pau nisso. É muito ruim e limitado.[/quote]

E o que diabos isso tem a ver com a discussão?

O recurso em C++ existe, é poderosíssimo. E se o LISP implementou melhor, ótimo. Mas o assunto do tópico compara C++ com Java, para os jogos. No C++, templates serão um recurso importante, e que precisa ser estudado.

Novamente, não é porque o lisp implementa melhor, que no C++ deixou de ser metaprogramação. Além disso, usar templates como os generics é apenas um dos usos de templates. E um dos menores deles. Por isso, volto a dizer, estude templates primeiro, venha falar aqui depois.

Veja técnicas como functors, lambda functions, static assertions, e só depois conversamos.

Aliás, você se engana quanto aos generics também. Generics são feitos para limitar tipos, e templates são feitos para você não depender do sistema de tipos. O que só mostra sua ignorância a respeito do assunto.

Lisp é usado em engenharia, seja em CADs ou sistemas embarcados. [/quote] No seu mundo então. Trabalho com egenharia aqui, em softwares embarcados, e nem c++ usamos. Somente c e assembly. Aliás todo desenvolvimento de hardware funciona assim.

Lisp é usado em engenharia, seja em CADs ou sistemas embarcados. [/quote] No seu mundo então. Trabalho com egenharia aqui, em softwares embarcados, e nem c++ usamos. Somente c e assembly. Aliás todo desenvolvimento de hardware funciona assim.[/quote]

Curioso… também trabalhei por anos na Siemens, e a única vez que vimos LISP foi quando um colega estava fazendo mestrado de IA e nos mostrou a linguagem.
No resto, era C++, C e Java.

Vamos fazer o seguinte? O tópico compara Java com C++. Vamos nos manter nessas duas linguagens, ok? O LISP pode ser até fantasticamente melhor do que o C++ nesse aspecto (eu não sei, não uso LISP), mas até ele permitir integração com OpenGL ou DirectX e ser sequer citado na indústria de jogos, vamos voltar ao assunto do tópico.

Lisp é usado em engenharia, seja em CADs ou sistemas embarcados. [/quote] No seu mundo então. Trabalho com egenharia aqui, em softwares embarcados, e nem c++ usamos. Somente c e assembly. Aliás todo desenvolvimento de hardware funciona assim.[/quote]

Curioso… também trabalhei por anos na Siemens, e a única vez que vimos LISP foi quando um colega estava fazendo mestrado de IA e nos mostrou a linguagem.
No resto, era C++, C e Java.

Vamos fazer o seguinte? O tópico compara Java com C++. Vamos nos manter nessas duas linguagens, ok? O LISP pode ser até fantasticamente melhor do que o C++ nesse aspecto (eu não sei, não uso LISP), mas até ele permitir integração com OpenGL ou DirectX e ser sequer citado na indústria de jogos, vamos voltar ao assunto do tópico.[/quote]

de certo inventaram interpretadores lisp para pics 16fxx e não estamos sabendo. E olha que esses pics variam entre 1k e 8k de memória. Esse interpretador deve ser único mesmo.

então… voltando ao tópico :slight_smile:

o pessoal de java que programa pra web procura mais linguagens como ruby por causa das coisas legais escritas nela e acho que o de jogos acaba tendo a mesma necessidade, porém com c++.
nada impede de tentar usar outras linguagens como python pra computação gráfica, mas nesse quesito c++ é base de muita coisa que funciona bem.
programar a maior parte do tempo com wrapper é só pra gente orgulhosa que gosta de falar que faz aplicação pesada com java… mesmo sabendo que 90% são chamadas pra código nativo :wink:

Sim, no meu mundo, o planeta Terra, Lisp é usado para isso aqui entre muitas outras coisas:

http://www.lispworks.com/success-stories/index.html

Como que é no seu mundo?

[quote=juliocbq]
de certo inventaram interpretadores lisp para pics 16fxx e não estamos sabendo. E olha que esses pics variam entre 1k e 8k de memória. Esse interpretador deve ser único mesmo.[/quote]

Lisp compila para código nativo. Você sabe como funciona um compilador? Sobre esse pics eu não sei, mas a sua resposta é tosca demais. O que um interpretador tem a ver com isso?

Se quer discutir se atenha aos fatos.

Sim, no meu mundo, o planeta Terra, Lisp é usado para isso aqui entre muitas outras coisas:

http://www.lispworks.com/success-stories/index.html

Como que é no seu mundo?[/quote]

Acho que você pegou o link e não leu.

Onde está a engenharia elétrica e hardware aqui?
http://www.lispworks.com/success-stories/index.html

Esse tipo de software qualquer linguagem pode implementar.

Veja bem, não estou denegrindo o lisp. Tenho um amigo que é formado em engenharia mecatrônica, e usa lisp. Mas lisp é para trabalhos específicos que envolvem IA. Se você prestar atenção nos projetos do link que postou poderá perceber uma grande afinidade entre eles e IA.

[quote=ViniGodoy]E o que diabos isso tem a ver com a discussão?

O recurso em C++ existe, é poderosíssimo. E se o LISP implementou melhor, ótimo. Mas o assunto do tópico compara C++ com Java, para os jogos. No C++, templates serão um recurso importante, e que precisa ser estudado.

Novamente, não é porque o lisp implementa melhor, que no C++ deixou de ser metaprogramação. Além disso, usar templates como os generics é apenas um dos usos de templates. E um dos menores deles. Por isso, volto a dizer, estude templates primeiro, venha falar aqui depois.

Veja técnicas como functors, lambda functions, static assertions, e só depois conversamos.

Aliás, você se engana quanto aos generics também. Generics são feitos para limitar tipos, e templates são feitos para você não depender do sistema de tipos. O que só mostra sua ignorância a respeito do assunto.[/quote]

Eu que te pergunto, o que essa sua seqüência de respostas tem a ver com qualquer coisa? Primeiramente sequer se dar ao trabalho de ler a minha mensagem você se deu, colocou respostas tortas tentando me ironizar. Depois que viu que eu sei sobre o que falo, mudou de tom, agora apelando para o off-topic. Percebeu que toda essa polêmica foi criada por você mesmo?

Lisp é relevante sim para o tópico, pois “poderosíssimo” do C++ é limitadíssimo para o Lisp. Isso é fato e é necessário que saibam para dar uma idéia do que essas linguagens são capazes. Conhecimento é sempre melhor do que ignorância, não concorda? Por que deixar as pessoas no escuro a respeito de suas escolhas e possibilidades?

Tudo o que escrevi aqui sobre templates é 100% correto. Generics não é a mesma coisa, e apenas usei-o como exemplo para programadores Java que podem ler isso aqui. Da próxima vez leia mais atentamente as mensagens antes de postar bobagens.

[quote=juliocbq]Acho que você pegou o link e não leu.

Onde está a engenharia elétrica e hardware aqui?
http://www.lispworks.com/success-stories/index.html

Esse tipo de software qualquer linguagem pode implementar.

Veja bem, não estou denegrindo o lisp. Tenho um amigo que é formado em engenharia mecatrônica, e usa lisp. Mas lisp é para trabalhos específicos que envolvem IA. Se você prestar atenção nos projetos do link que postou poderá perceber uma grande afinidade entre eles e IA.[/quote]

Isso são apenas exemplos para quebrar as suas pernas. Você disse que é apenas para IA, aí está uma lista que mostra que não é. Lisp é uma linguagem de uso comum que serve para inúmeras coisas e inclusive, ao contrário de Java, compila para código nativo.

Quer um exemplo de Lisp em ambiente embarcado com limitações de memória:

http://ynniv.com/blog/2005/12/lisp-in-games-naughty-dogs-jax-and.html

Nada mais, nada menos que a Naughty Dog usou Lisp para desenvolver o jogo Jak and Daxter para o PS2. O artigo acima é um post-mortem do projeto, dos prós e contras que eles encontraram pelo caminho. Não apenas mostra o Lisp rodando em sistemas com memória limitada, mas também para jogos.

BTW, a Naughty Dog é a mesma empresa que criou a série Uncharted para o PS3.

Esse pessoal deveria ter mais respeito com os usuários do forum. É realmente necessário rodar a baiana toda vez que alguém diz algo que você não gosta? Uma certa maturidade ajuda. Respostinhas engraçadinhas tipo “no seu mundo” ou “primeiro aprende isso e depois fala comigo” são o quê?

Pelo visto eu tenho mais conhecimento do que vocês dois juntos. Com simples questões eu poderia ter dado esses links para o jogo do PS2 e a utilização de Lisp no mundo real sem problema algum.

Sinceramente, esse forum está um lixo porque os moderadores não sabem se comportar feito gente grande. O pessoal aqui é mais sensível do que menininha de 8 anos de idade.

Você também poderia ser mais educado e gentil com o pessoal que fala coisas pra você…

É possível desenvolver jogo em Java ou C++ para depois rodar no Browser?

parece q todo mundo aki e bem formado em java…
c nao e ainda ta pra ser ehehe

a maioria dos jogos online como moorpg sao em java…
admiro q ninguem aki conhece ?

[quote=Guma]parece q todo mundo aki e bem formado em java…
c nao e ainda ta pra ser ehehe

a maioria dos jogos online como moorpg sao em java…
admiro q ninguem aki conhece ?
[/quote]

Quais voce conhece?? Eu só conheco o Taikodom, que o client é em java, ja o servidor parece que tem C++ tambem.

Ou vc esta falando daqueles joguinhos que rodam dentro do browser em applets?? Neste caso sim, tem bastante.

affs nem …
falo moorpg oO

lineage1 e 2, varia cronicas lancadas na plataforma java…
aion online tbm tem em java…
e outro q tbm tem q eu nao jogo:
moo online , warcraft, entre outros …
falo o sevirdor em si…

o cliente nao sei bem mas com .dat .utx entre outros

animacoes… enigme 3d etc…

[quote=Guma]affs nem …
falo moorpg oO

lineage1 e 2, varia cronicas lancadas na plataforma java…
aion online tbm tem em java…
e outro q tbm tem q eu nao jogo:
moo online , warcraft, entre outros …
falo o sevirdor em si…

o cliente nao sei bem mas com .dat .utx entre outros

animacoes… enigme 3d etc…[/quote]

O que seria moorpg??
Seria o mesmo que MMORPG?? se sim, saiba que o taikodom é um Massive Multiplayer Online Role-Playing Game. Ao estilo lineage, World of warcraft e afins.

nao conhecia esse jogo podes me manda um link do site ou video desse jogo ?

http://www.taikodom.com.br/

E outra 100% brasileiro.

Eu vi la o L2J, mas parece ser somente o server side.

Agora abrindo outro ponto nesta discussao, até aqui se falou mais no java como cliente, ou seja DirectX, OpenGL, 3D e ect, mas e o server side? Neste caso teria alguma vantagem/desvantagem em se usar java? Como o Guma citou e dei uma pesquisadinha e achei esse L2j, um servidor alternativo para o Lineage. Neste caso, toda a discussao de acesso nativo e etc, ja nao faz muito sentido.

eu fis questao de apresenta l2java (lineage com base em java ) pq to abrindo um projeto (um rev l2jBrasil) http://www.l2jbrasil.com/ (<<-- somente arquivos para lineage e servidores , nao to divulgando!)
e eu tava procurando um forum como esse pois a maiorias das coisas em si (como bugs no server) teria q mexer no java(core) entao estou aki pra aprender mas e mas … to dano uma olhada no forum mas nao tem nada parecido com isso … seria mas uns novos codigos a ser estudado …
quem sabe eu consiga aprender algo com voces.