Estou de olho nas linguagens de programação funcionais há algum tempo, mas estou hesitando em realmente entrar nelas. Mas acho que está na hora de pelo menos começar a olhar nessa direção para me certificar de que estou pronta para qualquer coisa.
Já vi falar de Haskell, F #, Scala e assim por diante. Mas não tenho idéia das diferenças entre os idiomas e suas comunidades, nem me importo particularmente; exceto no contexto de desenvolvimento de jogos.
Então, do ponto de vista do desenvolvimento de jogos, qual linguagem de programação funcional possui os recursos mais adequados para a programação de jogos? Por exemplo, existem bibliotecas / mecanismos / estruturas / estruturas de desenvolvimento de jogos funcionais ou mecanismos gráficos para linguagens funcionais? Existe uma linguagem que lida com certas estruturas de dados que são comumente usadas no desenvolvimento de jogos?
Conclusão: qual linguagem de programação funcional é melhor para a programação funcional de jogos e por quê?
Acredito / espero que esta pergunta declare uma melhor linguagem clara, portanto, não a marquei CW, apesar de sua tendência subjetiva.
fonte
Respostas:
F # fazer parte da família Microsofts .net tem acesso ao XNA, que é uma base fantástica para criar jogos. Um pouco de pesquisa mostra alguns tutoriais, vídeos e artigos. Os excelentes documentos XNA devem ajudar também.
Houve algum movimento nos jogos para Haskell também, veja aqui . Você provavelmente estará usando ligações openGL.
Como o Scala é reproduzido em Java, ele se integra a todos os mecanismos / ligações Java disponíveis, consulte esta publicação do SO .
Eu acho que se resume a preferência, enquanto eu só brinquei com Haskell, eu imaginaria que cada linguagem funcional tem suas próprias idiossincrasias. Pode valer a pena preparar um pequeno jogo de teste em cada um e ver qual deles se sente melhor para você.
Como eu disse, tenho apenas uma experiência mínima com Haskell, então não posso comentar sobre o melhor, mas esses recursos devem ajudar você a começar.
fonte
Eu diria Lisp.
Ele foi usado em jogos como uma linguagem de script, pelo menos na Naughty Dog (ou era eu acho), e é uma linguagem muito madura.
A vantagem do Lisp está na desserialização, que é uma parte importante do que chamamos de gerenciamento de ativos. Desserializar o lisp é trivial, o código e os dados são um. Isso facilita a criação de um formato de arquivo para ativos e comportamentos. Não é como você em json / xml / yaml / bin e um arquivo F # para AI. Você pode salvar tudo como expressões s, o que simplificará muito o pipeline de ativos.
fonte
Depois de ganhar alguma experiência prática, eu votaria no Clojure - já escrevi um joguinho nele e planejava fazer mais.
Razões:
A única vez que eu não faria consideraria o Clojure seria se estivesse escrevendo um jogo graficamente intensivo de ponta em que você precisa de desempenho de ponta (onde ainda acho que você precisa de C / C ++).
fonte