Eu só estou querendo saber o que está faltando XNA, para ser considerado como um motor de jogo. Ele faz todas as coisas que um mecanismo de jogo deve fazer (exceto a parte da física); também suporta todos os aspectos definidos no artigo da Wikipedia sobre mecanismos de jogos .
Por que o XNA não é considerado um mecanismo de jogo?
Respostas:
Ele foi projetado como uma estrutura - de fato, o XNA é o Microsoft XNA Framework -, portanto, tecnicamente, não é um mecanismo por nome.
Não existe um 'mecanismo' - se você notar, você obtém sua classe principal do XNA.Framework.Game e precisa substituir as funções de desenhar e atualizar. Não existe um sistema central de renderização, sistema de entrada ou sistema de áudio pronto para uso. Há SpriteBatch e as classes de vértice, há KeyboardState e existem algumas classes de áudio ... mas elas são apenas abstrações no código de desenho de baixo nível.
EDIT: Por uma questão de utilidade, por que algo importa se está rotulado como um mecanismo, estrutura, biblioteca ou conjunto de ferramentas?
Para esclarecer um pouco: estou desenvolvendo um mecanismo no XNA. Obviamente, não posso fazer isso em algo como Unreal, como Jonathan mencionou. No entanto, há algumas coisas que considero importantes que o XNA simplesmente não possui:
Plug-n-play: Eu quero poder criar algum tipo de modelo - tenho esse HP, essa malha, essa animação e BOOM! Eu tenho um NPC no meu jogo.
Nível baixo oculto - o XNA já faz isso, mas não quero mexer com o GameServiceProviders. Eu só quero enfiar coisas juntos.
Jogo separado do mecanismo - Pode haver uma classe 'jogo', mas quero separar minha lógica e meu código do sistema básico. Não quero
if(player.hasitem(Item.SECRET_SWORD_OF_SECRETNESS)
misturar com a atualização dos buffers no meu renderizador gráfico.fonte
what makes an sdk to be called a GameEngine?
Uma estrutura fornece uma arquitetura mínima criada para um tipo específico de aplicativo. Minimiza as suposições sobre os detalhes da implementação além dos objetivos declarados da arquitetura. Embora uma estrutura de desenvolvimento de jogos de plataforma cruzada possa ter o objetivo de fornecer "o que é comum a (quase) todos os jogos de computador, independentemente da plataforma", e possa implementar apenas fatores abstratos como tempo e gerenciamento de entidades, o XNA Framework (implicitamente) tem o objetivo de fornecer "o que é comum a (quase) todos os jogos de computador escritos para execução no XNA CLR". Dado que esse foco é tão restrito, eles foram capazes de incluir os recursos do motor com impunidade. Eles agrupam tudo isso sob o título "Framework", pois isso indica uma certa liberdade de implementação que você, como desenvolvedor de jogos, desfrutará.
Grosso modo, uma estrutura deve ser o mais irrestrita possível, ao mesmo tempo em que fornece bases úteis. Um mecanismo, por outro lado, normalmente é mais focado em recursos específicos e, ao usá-lo, você aceita que existem certas limitações às quais estará vinculado.
fonte
Eu nunca usei um 'mecanismo de jogo', mas meu entendimento disso é mais como um conjunto predefinido de ferramentas agrupadas com uma estrutura de jogo esquelética predefinida para o desenvolvimento de um tipo específico de jogo. E certamente que a estrutura para o desenvolvimento de um tipo específico de jogo é o principal fator de definição em um mecanismo de jogos, certamente parece ser o que o artigo da Wikipedia mencionado acima é atraente. Para mim, a estrutura XNA é mais parecida com um conjunto de bibliotecas de terceiros, como o AJAX, na medida em que adiciona rotinas pré-criadas à linguagem de programação desossada existente. Ele não impõe restrições ou diretrizes sobre o que você, como programador, pode e não pode fazer com essas rotinas da biblioteca. Na minha opinião, isso não é de forma alguma um motor. Então, venho de um background de software comercial / centrado na Web,
Eu construí a estrutura para uma ideia de jogo usando XNA e definitivamente parece que estou usando apenas mais uma biblioteca em C #. Vou usar os processos que hackeei no programa de teste para produzir dois ou três jogos para Windows e possivelmente Xbox.
Então, como eu disse, na minha opinião, isso está muito longe do que eu entendia ser um 'Motor de Jogos', então, quando me deparei com este post, não tinha ideia de por que alguém faria essa comparação. Estou errado?
fonte