2010-11-09 5 views
3

Finalement, quand j'ai fini le jeu que j'écris, je voudrais le porter sur XNA. J'utilise C++ et OpenGL pour le moment. Ma question est simple: est-ce que XNA supporte OpenGL (je peux passer du langage C++ au langage XNA si besoin est)?Est-ce que XNA supporte OpenGL

+4

Votre attitude anti-Microsoft est ridicule. Surtout quand vous parlez de XNA et .NET/C# qui sont largement considérés comme l'une des meilleures technologies dans leurs domaines respectifs. Vous devez vraiment trouver de meilleurs critères pour choisir votre plate-forme en plus de "Je déteste Microsoft". –

+0

Mes excuses. J'ai tendance à exprimer un peu trop mes opinions (euphémisme?). Je vais éditer mon OP et garder mes opinions personnelles. Pardon. – Bojangles

Répondre

3

L'implémentation XnaTouch fonctionne sur iPhone et utilise OpenGL ES sous le capot. Il utilise C# via le projet Mono (en particulier MonoTouch pour l'iPhone). Cela pourrait être utilisé comme base pour le port XNA vers d'autres plates-formes qui ne supportent pas DirectX (par exemple: Mac, Linux). (. Note: dans mon expérience, la mise en œuvre XnaTouch est pas très bon)

Il est évident que la Xbox 360 n'utilise pas du tout OpenGL - il utilise DirectX - vous ne recevez pas une option à ce sujet.

Et je ne comprends même pas pourquoi vous voudriez utiliser XNA, mais avec OpenGL sous les couvertures, sous Windows quand l'implémentation XNA existante fonctionne très bien.

+0

Je suis juste un peu inquiet d'avoir à apprendre une nouvelle bibliothèque graphique complète, mais je suppose que j'ai pas d'option. C'est une honte que XNA ou XBox ne supporte pas OpenGL - cela rendrait beaucoup plus attractif pour les petits développeurs que j'estime. Merci pour le conseil :) – Bojangles

+0

@JamWaffles Heureusement, changer les bibliothèques graphiques est comme changer les langages de programmation. Les concepts de base sont tous les mêmes - il ne s'agit que de tampons de vertex et de tampons d'index et de shaders et d'états de rendu, etc. (OpenGL vous permet d'utiliser des choses comme le mode immédiat, que XNA ne supporte pas, mais ces choses sont tellement obsolètes et lentes que vous ne devriez pas les utiliser de toute façon.) –

+0

Voilà comment je faisais tous mes trucs OpenGL jusqu'à environ 20 il y a quelques secondes quand j'ai lu votre message! J'utiliserai plus de tampons de vertex et certainement de shaders - ils ont l'air tellement cool mais je n'ai pas encore réussi à envelopper GLSL.D'après ce que j'ai lu dans ce fil, il me semble que j'ai un peu de temps avant de le transférer sur XNA. Devrait y arriver finalement! – Bojangles

5

Non, pas directement. XNA est construit sur DirectX.

Vous pouvez faire tourner une fenêtre séparée, en utilisant un wrapper autour d'OpenGL si vous voulez cependant. Vous devrez cependant utiliser une liaison non officielle pour cela. Ensuite, utilisez des constructions XNA dans ce cas. J'ai travaillé sur un projet comme celui-ci et je ne le recommanderais pas. Il y a deux façons d'utiliser XNA. L'approche par le livre, qui est trop limitée pour la plupart, ou l'inverse. L'autre façon de ne pas utiliser les classes de jeu de base et de gérer votre propre logique de jeu. Avec la deuxième approche, l'utilisation d'une autre méthode de rendu est trop de travail pour aucun gain réel.

Je recommande que pour votre jeu actuel, la logique et les graphiques sont séparés. Si vous décidez de transférer à une date ultérieure, le transfert devrait être plus facile à convertir de C++ en C#.

En outre, XNA n'est pas une langue. C'est un framework construit en C#.

+0

Bah! Merde. Tant pis. On dirait que XBox ne recevra aucun code, ce qui est bon je suppose. En outre, merci pour les informations supplémentaires - l'implémentation OpenGL semble effrayante! Quant à XNA n'étant pas une langue, je savais qu'il utilisait .NET mais en quelque sorte oublié de le mentionner dans mon OP. Merci beaucoup :) – Bojangles

+3

De rien. Je vous encourage à vérifier XNA si. J'avais l'habitude d'être un écrou hardcore C++, mais quelques semaines avec XNA et vous allez adorer. Plus C# est une joie de travailler en comparaison avec C++. Ça ne vous aide pas pour le moment, mais ça vaut le coup de jouer avec. – Finglas

+0

Bons points. Je vais certainement avoir un jeu quand j'ai une implémentation C++/OpenGL de mon jeu. (Think years :-P) – Bojangles