Freeglut vs SDL vs GLFW

26

preciso portar meu projeto de jogo do Android (escrito em C, OpenGL ES 2.0, graças ao NDK) para plataformas Windows e Linux. É claro que precisarei reescrever algum código dependente da plataforma, mas agora fiquei com a dúvida de qual biblioteca para criar OpenGL e uso do identificador de entrada.

Apenas uma pesquisa rápida me leva três candidatos:

1) Freeglut - reescrito e livre GLUT velho bom.
2) SDL - muito bem conhece uma lib, usada em muitos jogos.
3) GLFW - algum tipo de novo, mas simples e funcional.

Eu sou um novato no desenvolvimento de PCs e não vejo diferenças significativas entre eles. Você pode me ajudar qual escolher? Eu claramente preciso apenas da entrada principal do mouse / teclado e da criação do contexto do OpenGL, também vou usar o GLEW para chegar ao OpenGL moderno com facilidade.


fonte
2
A resposta será altamente opinativa e não é realmente uma boa pergunta para o formato SE. Dito isto, minha resposta altamente opinativa - tendo usado os três para projetos reais e alguns outros como SFML, GLUT, Qt e rolando manualmente uma solução - é que o SDL oferece uma boa mistura de recursos, estabilidade e facilidade de uso. Eu recomendo especialmente as versões pré-lançamento 2.0 (disponíveis apenas verificando o repositório Mercurial e construindo você mesmo, mas isso é bastante fácil). Segundo, SFML é muito bom. Eu encontrei muitos bugs no GLFW, GLUT é ruim para jogos e rodar com mão é um monte de trabalhos.
21812 Sean Middleditch
Pessoalmente, eu recomendaria o SDL porque ele lida com todas as partes de um jogo, da entrada aos gráficos, ao áudio e à entrada. No entanto, pode ser limitativo, mas como você é proveniente de um jogo já desenvolvido para uma plataforma mais limitada, acho que seria uma boa escolha.
CobaltHex
Sim, é uma enquete. Meu voto é GLFW, simples, fácil, nunca tive problemas que não foram resolvidos. É super leve e fácil de compilar também.
Deceleratedcaviar

Respostas:

29

O GLFW é moderno e tem um escopo muito bem definido . Também está em desenvolvimento muito ativo.

O SDL, por outro lado, é sólido e possui muitos recursos em escopos diferentes, mas falta um pouco em todos eles (por exemplo: SDL pode fazer áudio, mas você pode preferir usar o OpenAL porque é muito superior nesse assunto). Pode ser notável que o SDL foi portado para muitas plataformas diferentes, ao contrário do GLFW, que é apenas para plataformas de desktop (win / linux / mac).

GLUT , bem, deve ser evitado . Simplesmente não há realmente nada sobre o que o torna bom.


Na minha opinião como perfeccionista GLFW é a melhor escolha. Porque faz exatamente o que se quer, nada menos nada mais. O desenvolvimento muito ativo também é um bom sinal para projetos de longo prazo, porque geralmente significa que os bugs serão corrigidos, que novos recursos serão adicionados, acompanhará os padrões mais recentes e que não serão abandonados a qualquer momento. Isso não é importante para uma porta rápida ou para um jogo de 6 meses, mas para um mecanismo ou uma biblioteca que você deseja reutilizar, eu deveria ter isso em mente.

API-Beast
fonte
7
Mas o OP está perguntando sobre Freeglut e não GLUT !!!
@ user3473 "O FreeGLUT é uma alternativa de código aberto para a biblioteca OpenGL Utility Toolkit (GLUT)."
YoYoYonnY 21/03
@YoYoYonnY Assim como GLFW e SDL, portanto, esta pergunta.
Dan
@ Dan ... não. O GLFW e especialmente o SDL definitivamente não são alternativas para o GLUT, porque você pode fazer coisas com eles que não pode com o GLUT e vice-versa.
YoYoYonnY
@YoYoYonnY Você pode fazer coisas com o FreeGLUT que não pode fazer com o GLUT. Meu argumento ainda permanece.
Dan