Así que finalmente pude jugar con XNA y he estado jugando para hacer un juego en 2D (tengo un montón de recursos artísticos de un amigo que lo desarrolló en iOS)
Parece que muchas cosas son fáciles de hacer y salen de la caja, sin embargo, me quedo perplejo por un montón de cosas, ya que la mayoría de la literatura (los libros que compré, por ejemplo) no prestan demasiada atención al 2D.
Realmente agradecería cualquier aclaración o que me indiquen más información sobre las siguientes búsquedas:
¿Cuál es el punto de un servicio de juego? Entiendo todo el lenguaje de registrar un objeto como un servicio para que cualquier otro GameComponent pueda agarrarlo, sin embargo, ¿cómo funciona esto simplemente haciéndolo público o estático? Por ejemplo, mi libro recomendó registrar el objeto SpriteBatch en la clase Game.cs. No estoy seguro de cómo es preferible hacerlo simplemente público / estático, ya que de todos modos solo debería haber una instancia de Juego (singleton).
Estoy confundido sobre cuándo debería heredar de GameComponent o RenderableGameComponent. Estoy tratando de seguir un diseño de Administrador / Controlador, de modo que todas las entidades sean creadas / poseídas por un solo administrador y lo mismo para otras cosas. Actualmente tengo cada Administrador / Controlador heredado de GameComponent, sin embargo, ¿cómo supera esto que el objeto Juego posea a todos los Administradores y llame manualmente a la actualización sobre ellos y dibuje?
Noté que Initialize se llama antes de ContentLoad (), encontré esto molesto ya que en mi Initialize es donde me gustaría crear algunas de mis entidades (es decir, Sprite, Player, etc.), sin embargo, no puedo darles su carga SpriteSheets o Textures ya que la llamada para cargarlos aún no se ha producido. ¿Tal vez estoy inicializando incorrectamente o la gente simplemente asigna la textura más abajo en ContentLoad?
Esos parecen ser mi mayor " WTF " de no entender realmente