Já faz um tempo que trabalho com o XNA no design e desenvolvimento de jogos (embora apenas para uso pessoal em caixas eletrônicos.) No geral, sou um grande fã do próprio XNA e sua sensação geral. No entanto, devido ao fato de que:
- O XNA parece não ter suporte (sem suporte ao Metro, sem atualizações desde 2010, etc.)
- Eu pretendo tentar conseguir um emprego na indústria de desenvolvimento de jogos e, devido ao domínio do C ++, estar mais familiarizado com isso seria muito útil
- O XNA suporta apenas Windows (não Metro) e Xbox 360, enquanto eu estou interessado no suporte para Mac e (em menor grau) para Linux.
Eu tenho tentado mudar para C ++ como minha linguagem principal. No entanto, não quero me concentrar no aprendizado direto de DirectX / C ++ no momento, portanto, estou procurando uma API C ++ de nível superior (algo mais ou menos no mesmo nível que o XNA, embora algo um pouco mais baixo seja bom) ) com uma sensação semelhante ao XNA. Portanto, para alguém que alterna de C # / XNA para C ++, quais seriam minhas melhores opções para APIs semelhantes ao XNA, embora não gerenciadas e executadas em C ++?
Respostas:
Primeiro de tudo, se você quiser usar o C # / XNA e ainda suportar o Mac / Linux, poderá considerar o MonoGame . Além disso, eles têm uma porta de metrô em obras também. Então, eu ainda não chamaria a API do XNA . (No lado negativo, a qualidade do código do MonoGame deixa muito a desejar.)
Também não descartaria a possibilidade de uma nova versão oficial do XNA eventualmente.Se você quiser desfrutar de algumas das classes auxiliares agradáveis do XNA (por exemplo:
SpriteBatch
,SpriteFont
), enquanto se move sobre a DirectX / C ++, você pode tentar o Kit de Ferramentas DirectX . E não esqueça que grande parte da gentileza do XNA está em seu pipeline de conteúdo - portanto, o DirectXTex pode ajudar. É feito por algumas das mesmas pessoas que criaram o XNA, então você sabe que é bom ( postagem no blog ).Você pode tentar experimentar o Unity - que usa C #, suporta Mac e Linux e várias outras plataformas, e é usado em "The Industry".
Se você deseja suporte ao Metro, quer aprender DirectX, mas não quer deixar o conforto do C #, pode conferir o SharpDX .
Finalmente, você pode olhar para o Cocos2d-X , que parece bastante popular e é provavelmente a biblioteca C ++ de plataforma cruzada mais próxima do XNA que eu consigo pensar.
fonte
Por uma questão de exaustividade, quero mencionar o SFML. Todo mundo que usa C ++ deve pelo menos dar uma olhada, pois o SFML é completamente orientado a objetos, enquanto o SDL é basicamente C.
fonte
IMHO, essas bibliotecas são interessantes para resolver sua migração, especialmente se você deseja programar em C ++:
fonte