Sou desenvolvedor de web C # e quero expandir meu conjunto de habilidades e me divertir enquanto faço isso. Conheço algumas noções básicas de C ++ e gostaria de escrever um mecanismo de jogo / jogo em 2D simples para mim, usando C ++. De que outras bibliotecas ou SDKs eu preciso e onde encontraria alguns tutoriais e recursos informativos para avançar?
Eu já procurei no XNA com C #. Existem muitos recursos para isso, mas eu prefiro usar produtos que não sejam da Microsoft. O objetivo disso é se divertir um pouco enquanto se torna um programador melhor arredondado.
Observe que não estou pedindo o melhor lugar para começar. Só estou pedindo um lugar para começar.
Obrigado por qualquer ajuda!
Eu sugeriria usar SDL . Já faz muito tempo que a documentação e o suporte são muito bons, e é uma das maneiras mais fáceis de obter uma superfície de desenho na tela. Isso lhe dará a prática de escrever aulas em C ++ (já que você provavelmente desejará agrupar muito as chamadas de função SDL C) e também fornecerá alguma experiência usando ponteiros e referências e fazendo um gerenciamento básico de memória. Gerenciar sua própria memória é uma das principais diferenças entre C ++ e C #.
fonte
Pessoalmente, eu escolheria o Allegro 5 pelos seguintes motivos:
Possui um sistema de compilação baseado no CMake. Isso torna muito mais fácil do que a maioria dos sistemas de construção para trabalhar em várias plataformas. Parece uma coisa menor, mas é muito importante no geral. Isso torna a construção da biblioteca muito mais simples.
SFML ainda está em fluxo significativo. 2.0 é uma mudança bastante substancial. Considerando que Allegro já passou por uma mudança significativa com a versão 5, e agora é tudo sobre estabilidade.
Abrange a modularidade de uma maneira diferente da SFML. Com o SFML, você solicita componentes específicos, mas obtém todos eles. Se você solicitar o componente gráfico, obterá todo o componente gráfico. Com o Allegro 5, você sempre obtém o componente gráfico. Mas se você não quiser usar os carregadores de bitmap do Allegro, não precisará; você pode usar o seu próprio.
Tem uma documentação muito boa. SFML usa documentação no estilo Doxygen, mas mesmo isso é bastante espartano. Enquanto o Allegro 5 é mais abrangente, com funções agrupadas com base em sistemas específicos que eles cobrem. Não é perfeito, mas é melhor no geral.
Eles são inteligentes o suficiente para não tentar fazer rosqueamento. Com o C ++ 11 / Boost.Threads amplamente disponível ou ao virar da esquina, o uso de outro wrapper de encadeamento pode ser mais do que problemático: pode ser perigoso fazer o código funcionar corretamente.
fonte
Eu acho que um lugar fantástico para começar é o LazyFoo . Isso o colocará em funcionamento com SDL mais rapidamente do que em qualquer outro lugar que eu já vi. Eu recomendo entrar rapidamente no OpenGL (assim que você aguentar), porque você terá muito mais retorno do seu investimento em programação - com a aceleração de hardware. Se você seguir esse caminho, recomendo este guia .
fonte
Eu recomendaria SFML se você estiver usando c ++. Você obterá algo na tela rapidamente e usá-lo com o código do jogo em c ++ é simples.
fonte
Considerando que o OpenGL acelera o lado 2D das coisas hoje em dia, não é tão importante ter acesso aos renderizadores de software rápidos que o Allegro e o SDL possuem (ou tinham em versões anteriores). No entanto, quando escolho uma biblioteca, concentro-me na maturidade do projeto, na base de usuários e nos documentos mais do que na velocidade (desde que a velocidade seja razoável), e eu diria que SDL e Allegro vencem nessas frentes. A SDL também lançou títulos AAA triplos, como Civ: Call to Power.
fonte