Por fim, comecei a brincar com o XNA e a brincar com um jogo em 2D (tenho vários recursos de arte de um amigo que o desenvolveu no iOS)
Muitas coisas parecem fáceis de fazer e saem da caixa, no entanto, fiquei perplexo por muitas coisas, já que a maioria da literatura (os livros que comprei por exemplo) não presta muita atenção ao 2D.
Eu realmente aprecio qualquer esclarecimento ou estou sendo direcionado para mais informações sobre as seguintes questões:
Qual é o objetivo de um serviço de jogos? Entendo todo o idioma de registrar um objeto como um serviço para que qualquer outro GameComponent possa obtê-lo, no entanto, como isso acontece simplesmente tornando-o público ou estático? Por exemplo, meu livro recomendou o registro do objeto SpriteBatch na classe Game.cs. Não sei como é preferível simplesmente torná-lo público / estático, pois deve haver apenas uma instância do jogo (singleton)?
Estou confuso sobre quando devo herdar de GameComponent ou RenderableGameComponent. Estou tentando seguir um design de gerente / controlador, de modo que todas as entidades sejam criadas / pertencentes a um único gerente e o mesmo para outras coisas. Atualmente, tenho cada gerente / controlador herdado do GameComponent, no entanto, como isso supera o fato de o objeto Game possuir todos os gerentes e chamar manualmente a atualização deles e desenhar?
Percebi que Initialize é chamado antes de ContentLoad (), achei isso irritante, pois no meu Initialize é onde eu gostaria de criar algumas das minhas entidades (por exemplo, Sprite, Player etc.), no entanto, não posso fornecer o carregamento delas. SpriteSheets ou Textures desde que a chamada para carregá-los ainda não ocorreu. Talvez eu esteja inicializando incorretamente ou as pessoas simplesmente atribuem a textura mais abaixo no ContentLoad?
Esses parecem ser o meu maior " WTF " de não entender realmente