Não tenho preferência pelo Ruby (ou Python), sou uma pessoa Java. Mas a resposta do UnknownDevice sobre como o Ruby de alguma forma "não é realmente para jogos" e o Python é, me frustrou. Espero que ele esclareça.
Eu sei que o Pygame existe e já existe, e reconheço que o Python tem uma base de usuários maior que o Ruby. Mas, para ser sincero, nenhum deles parece ser um idioma "para jogos". Nem o Java, e essa é a minha linguagem de programação de jogos preferida. (e quando digo "de escolha", quero dizer por escolha , não porque é o que é ensinado na escola ou porque é algo que eu "conheço"). E realmente, o que é uma linguagem "para jogos"? Bem, a velocidade é um fator e, obviamente, deve ter bibliotecas para gráficos e outros sistemas de jogos (áudio, entrada, etc.).
No que diz respeito à velocidade, parece haver uma discussão entre Ruby e Python. Faça algumas pesquisas e você encontrará rapidamente referências e argumentos para os dois lados do espectro e várias configurações que colocam um ou outro à frente. O Python com algo chamado "Psycho" parece um demônio da velocidade popular comparado ao Ruby, mas o Python comum parece ser um pouco mais lento que o Ruby. No final, se você escolher um idioma de alto nível, obviamente não se preocupará com as velocidades nativas; vá com o idioma que você conhece melhor. E, obviamente, você conhece Ruby melhor, então eu encorajo!
O outro fator é se a tecnologia existe para criar jogos; se pode suportar desenhar na tela e coletar entrada e reproduzir áudio. Ruby pode fazer tudo isso. De fato, há um bom número de opções a esse respeito. Há um pacote ruby-opengl no RubyForge que dará suporte ao OpenGL para Ruby (ou pode ser incluído por padrão?). Como alternativa, o Chingu fornece "gráficos 2D acelerados e extremamente rápidos em OpenGL!" de acordo com a sua página inicial; ele cria recursos extras em cima do Gosu , que você pode optar por usar se o Chingu for demais para você. Ou para gráficos 3D, se você não quiser usar o ruby-opengl, tente o G3DRuby , "um conjunto muito limpo de classes de wrapper para muitos dos recursos mais avançados do OpenGL". Lá'O Rubygame , que não consigo encontrar muita informação, mas afirma ser "uma biblioteca multimídia de plataforma cruzada" e recebeu esse nome, deve enfatizar o desenvolvimento de jogos. Se você estiver familiarizado com a popular biblioteca SDL para C ++, há Ruby / SDL ou RUDL , os quais são wrappers Ruby do SDL. Ou, se você preferir o SFML mais novo e mais orientado a objetos , ele também está disponível para Ruby!
Não há razão para que Ruby seja menos uma linguagem de programação de jogos que Python; se houver, eu realmente gostaria de ouvi-lo para poder argumentar contra. Se você se sente à vontade para programar em Ruby e conhece os prós e os contras em comparação com outras linguagens populares, certamente poderá desenvolver jogos em Ruby!
http://gafferongames.com/2009/01/11/ruby-is-not-at-all-suitable-for-game-development/
O URL provavelmente é um spoiler.
tl; dr: o coletor de lixo ingênuo é um problema real.
fonte
Não há razão para que você não possa. Enquanto houver suporte multimídia para um idioma, será um material para o jogo. Heck, uma grande proporção de um dos jogos Rollercoaster Tycoon foi feita à mão no ASM.
fonte
Embora eu não esteja familiarizado com muito do profundo trabalho em torno de Ruby, a Enterbrain criou os programas de criação de jogos RPG Maker VX e RPG Maker XP que usam scripts de jogos baseados em Ruby: http://www.rpgmakerweb.com/
Este foi realmente o meu primeiro mergulho no idioma. Como a maioria das pessoas disse, você provavelmente não terá o alto desempenho de outros idiomas, mas se você deseja iniciar um RPG 2D (ou outro jogo 2D, na verdade), é provavelmente um dos editores de jogos mais sofisticados do mercado. Socorro.
fonte
Ruby é uma linguagem legal, mas não é verdade que os jogos sejam honestos. Se você não deseja usar C ++, mas deseja algo como Ruby, confira Python. Para uma boa estrutura Python, você deve consultar algo como www.cocos2d.org/.
fonte
Depende do tipo de jogo que você está interessado em escrever. Eu usei o ruby para escrever clientes de IA para vários jogos, incluindo Diplomacia , pôquer e Lost Cities . Acho que é uma linguagem muito amigável para experimentar rapidamente conceitos diferentes. Por outro lado, eu não gostaria de usá-lo para escrever meu jogo de tiro em tempo real - ele simplesmente não terá o desempenho que eu preciso.
fonte
Sua pergunta é muito geral. Você quer apenas escrever algum jogo de computador como um projeto de hobby ou deseja entrar no desenvolvimento de jogos indie / profissionais? Terá gráficos? Em quais plataformas ele deve rodar?
Em geral, o Ruby é adequado para projetos de hobby (BTW, meu jogo favorito do Ruby é o Ruby Warrior ) e para o desenvolvimento de jogos baseados na Web como o Farmville. Existe até certa demanda por esses programadores, tente pesquisar no Google algo como: "jogo social do programador ruby".
Por outro lado, se você deseja desenvolver jogos baseados em computador ou em dispositivos móveis com gráficos, Ruby não é a melhor opção. Considerar:
fonte
Não espere escrever jogos 3D de alto desempenho, profissionais, comerciais, com Ruby, mas Ruby é uma ótima linguagem para usar ao aprender conceitos de desenvolvimento de jogos.
Gosu é a biblioteca mais popular (e mantida ativamente) para escrever jogos 2D em Ruby. Possui uma biblioteca C ++ subjacente usada para melhorar o desempenho e interagir com as bibliotecas de renderização de exibição subjacentes, como o OpenGL.
Quanto ao desempenho, a implementação "padrão" do Ruby (MRI) funcionará bem (sugiro o Ruby 2.0 mais recente para obter melhor desempenho), mas existem implementações alternativas que possuem threads nativas e algoritmos alternativos de coleta de lixo, como Rubinius, JRuby, etc. Se você estiver usando threads, poderá experimentar o Rubinius, caso contrário, a MRI Ruby funcionará bem.
fonte
Eu disse Python porque tem uma maior base de usuários e mais opções quando se trata de frameworks / bibliotecas para o desenvolvimento de jogos. É bastante óbvio que essa pessoa não tem experiência no desenvolvimento de jogos, então não faz sentido para mim recomendar que eles usem algo como Ruby apenas porque é possível.
Quando trabalho em jogos, uso C ++ com Lua, não saio e escrevo meu jogo no Visual Basic apenas porque ele possui suporte de mídia. Tenho certeza de que todos aqui ouviram alguém dizer certas ferramentas para determinados trabalhos. Tenho certeza que você pode martelar um prego com um sapato, mas por que você faria isso quando pode usar um martelo?
fonte