Com que linguagem e ferramentas é bom começar no desenvolvimento de jogos para Linux? [fechadas]


7

Gostaria de começar a aprender sobre desenvolvimento de jogos e gostaria de fazê-lo usando Linux. Minha experiência principal foi com Java e um pouco de C ++, mas isso foi para aplicativos e não para jogos.

Agora que eu quero tentar com jogos, estou pensando qual IDE / idioma devo usar no Linux, se devo ir com C ++ e compilar arquivos manualmente no início, ou talvez continuar com Java / Eclipse, também acho que posso usar o Eclipse com C ++, também comecei a ler sobre Python ...

Eu estava pensando em começar com o típico "Tetris" apenas para entender como um jogo funciona internamente, e acho que posso conseguir isso com todas as opções anteriores, mas o que você me recomenda ou como começou o desenvolvimento de jogos no Linux?


11
Eu não começaria com Tetris, é um pouco mais complicado do que você pensa. Eu começaria com um simples jogo de pong. Adicione pontuação, IA e, lentamente, torne-o mais complicado. Então talvez comece um jogo como o Tetris.
AttackingHobo

Eu não acho que haja muita diferença no Linux e em qualquer outra plataforma de desenvolvimento. Você sente falta de C # e .NET se não usa o Mono, mas isso também acontece no Mac.
O pato comunista

Mono é basicamente o que permite que você use C # e outras linguagens .NET no Linux e Mac?
Kaitlyn Mcmordie

Respostas:


4

Se você nunca fez a programação de jogos antes, provavelmente deve começar com 2D. SDL é uma biblioteca bastante direta, com boas ligações para C ++. Você pode usar o editor / IDE que quiser, mas eu sou um grande fã de code :: blocks.

Finalmente, existem alguns bons mecanismos de jogo para Java (Java Monkey Engine), mas o Java fica no caminho algumas vezes. Eu gosto de Java (eu o ensino há anos), mas sempre parece meio desajeitado para mim como um ambiente de desenvolvimento de jogos.

Eu sou um grande fã de Python e pyGame. (PyGame é simplesmente SDL com ligações para Python.) Você pode criar um jogo 2D muito legal muito rapidamente. O Python é bastante fácil de aprender e tende a permitir que você se concentre mais na programação de jogos, em vez de problemas de memória e ponteiro. É verdade que o código Python não é tão rápido quanto o código C ++ compilado nativamente, mas é mais do que rápido o suficiente, e a codificação e depuração mais fáceis geralmente compensam a diferença. Se você encontrar uma seção crítica que o Python simplesmente não pode manipular, escreva essa seção no C / C ++ e use-a como um módulo.

Dou aulas de desenvolvimento de jogos e mudei de idioma várias vezes. Estou muito feliz com o Python como uma linguagem para ensinar desenvolvimento de jogos.

Boa sorte para você.


1

Em relação ao C ++, um IDE muito interessante é o QtCreator . No Linux, é provável que você já tenha o Qt em seu sistema, se você possui os aplicativos KDE instalados, mesmo executando o Gnome.

Se você quiser experimentar outras linguagens de script para jogos simples, tive uma experiência muito agradável com o Löve2D , um mecanismo de jogo para Lua . É muito fácil obter algo divertido feito em pouco tempo.


Além do Love2D, também há um derivado baseado em Javascript chamado LoV8 que vale a pena procurar. code.google.com/p/lov8
Stephen Belanger

1

Se você deseja criar jogos em tempo real de alto desempenho ou deseja entrar no desenvolvimento profissional de jogos, apenas C ou C ++ são opções práticas de linguagem atualmente.

Isso ocorre porque: a) Eles podem criar código rápido e eficiente usando pequenas quantidades de memória (muitas linguagens de alto nível não permitem controlar explicitamente a alocação de memória, o que dificulta a otimização do uso do cache ou o ajuste de dados na memória limitada usada. por muitos sistemas). b) São os padrões da indústria que são usados ​​pela grande maioria dos jogos AAA. Particularmente em C ++, embora as linguagens sejam razoavelmente semelhantes (quando se trata de como elas são usadas no desenvolvimento de jogos).

Para uma estrutura, eu recomendaria aprender o OpenGL. Pode ser um pouco mais complicado do que alguns sistemas, mas é muito poderoso e amplamente usado, e seu conhecimento pode variar de Pong até Unreal. Existem muitos bons tutoriais, basta procurar no Google por 'tutorial do OpenGL'.

Para facilitar um pouco as coisas, você pode usar uma estrutura de wrapper OpenGL (eu recomendo o GLFW - http://www.glfw.org/ - embora o GLUT também seja popular).

Tanto quanto possível, tente escrever o código você mesmo, em vez de confiar em estruturas pré-criadas. Isso ensinará as noções básicas de loops de atualização de jogos, processamento de entradas, renderização etc. Isso o ajudará bastante na criação de projetos mais detalhados posteriormente.


1

Considero o Linux em si um ambiente de desenvolvimento bastante elegante. A maioria das distribuições tem tudo o que você precisa para desenvolver aplicativos c / c ++, basta investir algum tempo aprendendo gcc, gdb, vim e um sistema de compilação decente como Make, CMake ou Scons.

Se você estiver usando c / c ++, o SDL seria um bom ponto de partida, em termos de biblioteca - porque você encontrará uma enorme quantidade de tutoriais para isso. Para python, achei o pyglet uma excelente biblioteca, embora eu não o use há 2 anos. Lembre-se de que a implantação de um aplicativo python não é "tão" fácil.


1

Você definitivamente deveria usar o C ++. Ao usá-lo, você terá acesso à maior parte das bibliotecas e, dependendo do seu projeto, oferecerá boa flexibilidade e desempenho.

Um bom lugar para começar é com os tutoriais SDL do LazyFoo . Eles podem ser usados ​​para uma variedade de projetos diferentes, mas são fáceis de entender em qualquer nível de habilidade.


1

Eu uso o vim e recomendo - é um editor de texto muito poderoso, projetado para ajudá-lo a escrever código rapidamente. Porém, ele possui uma curva de aprendizado bastante íngreme (depois de instalá-lo, execute 'vimtutor' para dar uma rápida olhada). Uso-o há 8 anos e não consigo imaginar usar mais nada.

Eu também sugeriria não pular para um IDE imediatamente. Na minha experiência, os IDEs são desajeitados e atrapalham (especialmente enquanto você está configurando um novo projeto). Eu mantive o Eclipse / CDT por perto, pois é indispensável como depurador.

Se você tem experiência em C ++, eu ficaria com isso. Como outros já mencionaram, o SDL é uma ótima maneira de começar - você não pode errar por lá.

Tetris foi o primeiro jogo que fiz e provavelmente não é um caminho ruim, mas você também pode considerar algo como um jogo de plataformas 2D ou 2D de aventura de cima para baixo.


Estou confuso ... você sabe por que as pessoas costumam usar o Linux frequentemente como sua escolha para o desenvolvimento de jogos?
Kaitlyn Mcmordie

11
Do meu ponto de vista, o Linux é projetado por programadores para programadores. O Windows foi desenvolvido por não programadores para iniciantes. O Linux está repleto de ferramentas para tornar os programadores mais produtivos. No entanto, na minha experiência, o Linux é usado apenas muito raramente pelos desenvolvedores de jogos.
notlesh

Hmmm, por que não é realmente usado pelos desenvolvedores de jogos?
Kaitlyn McMordie

0

Se você deseja usar C ++, eu recomendo o KDevelop4. Eles fizeram muitas melhorias que o tornam um IDE muito bom. Pegue SFML ou SDL e obtenha hackers.

Eu também recomendo o bom e velho Vim ou Emacs para qualquer idioma.

Mas se você quiser apenas chutar algum código, tente o Python + PyGame. Você pode instalar jogos simples e rodar muito rapidamente e não precisa de um IDE sofisticado.

Eu não olhei para eles, mas parece que Ruby também tem um monte de frameworks que você pode tentar, se quiser aprender Ruby.


0

Eu sugiro fortemente o jMonkeyEngine se você tiver habilidades em Java - é um ótimo mecanismo de jogo 3D de código aberto de propósito geral.

É totalmente multiplataforma (tudo o que realmente precisa é de suporte a OpenGL e JVM); portanto, será executado no Linux, mas também manterá a portabilidade para Windows ou Mac, etc.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.