2010-11-21 6 views
3

Je m'interrogeais sur les performances de l'utilisation de XNA en C# pour développer des jeux et ne pas les utiliser. Puis-je ne pas utiliser PictureBoxes au lieu de 2D Textures? Est-il viable d'aller avec la programmation Windows Form pour les jeux, ou est-ce que XNA est la meilleure solution? Des avantages/inconvénients?C#: XNA vs No XNA (Performance)

+0

pour des jeux simplement 2D XNA est un outil formidable et facile à apprendre. Mais quand vous voulez faire de très gros jeux 3D, alors j'ai recommandé d'autres frameworks comme [Unity] (http://unity3d.com/unity/) qui vous donnent de meilleures performances. – harry180

+1

Juste pour noter, l'unité n'est pas un framework comme XNA mais un " Outil " –

Répondre

10

Plus votre jeu est complexe, moins le développement de WinForms est durable. XNA est orienté vers ce genre de chose alors pourquoi ne pas l'utiliser?

La vraie question que vous devriez vous poser est "est-ce que je veux que mon jeu fonctionne sur Windows Phone 7, XBOX 360, et/ou sur le bureau Windows?" Si votre réponse est oui, alors apprenez XNA. La meilleure chose est qu'il fait la plupart du travail pour vous permettre de cibler ces différentes plates-formes.

Je vous recommande d'écouter un récent podcast de Scott Hanselman sur le sujet: Hanselminutes Podcast 240 - Developing Indie Games for Xbox 360 and XNA with George Clingerman.

8

Cela dépend de la complexité graphique de votre jeu.
Si vous voulez apprendre une bonne bibliothèque qui permet de faire des jeux haut de gamme avec de bons graphismes, utilisez XNA; ça va ouvrir plus de variété à votre goût.
Mais si vous voulez faire un simple jeu sans défilement, similaire à Tetris ou à un jeu de solitaire, les contrôles .NET à double tampon peuvent faire l'affaire.

3

Si vous recherchez la meilleure performance, vous ne devriez pas regarder C# ou XNA du tout, le plus bas niveau vous allez le mieux à cet égard. Cependant, un niveau inférieur signifie que vous passerez plus de temps sur la programmation avec moins de résultats. XNA a été développé pour faciliter la programmation de jeux. Il faut beaucoup de codage bas niveau fastidieux et l'enveloppe de méthodes simples pour nous appeler afin que nous n'ayons pas à réinventer la roue, tout en exploitant un cadre très puissant.

Je suggère fortement si vous êtes intéressé à faire un jeu, allez avec XNA. Je pense que vous apprécierez beaucoup plus que les alternatives.

+0

Je sais que c'est amusant de me rétrograder, mais est-ce que les gens qui continuent à le faire peuvent fournir des arguments s'il vous plaît? Je voudrais prendre vos votes comme une expérience d'apprentissage si l'apprentissage peut être fourni. Merci =) –

+0

Mike, je suppose que votre première phrase pourrait avoir été mal comprise. En fait, quand je l'ai lu, je m'attendais presque à voir le C++ mentionné à la fin :) Néanmoins, je ne vois pas de problème avec votre réponse globale, donc ayez un +1 pour compenser cette baisse! –

+0

Merci! Ouais désolé. Je viens de le relire et c'est trop dramatique.Mon but n'était pas de critiquer C# ou XNA, donc désolé d'avoir offensé quelqu'un s'il avait été pris de cette façon. Au niveau des performances, le code géré va avoir plus de frais généraux que natif était juste ce que je voulais dire. Je vais essayer d'être plus clair la prochaine fois merci pour les heads up Ahmad! –

6

Utiliser XNA. En plus d'avoir considérablement meilleures performances, les plates-formes mieux pris en charge (Xbox 360, Windows Phone), d'autres API Niceness comme la manipulation du son et l'entrée, il y a une raison très importante:

XNA est une API de style « immédiat » (par opposition à un retenu, voir this description).

Développer des jeux avec ce type d'API est sensiblement eaiser. La raison en est, sans entrer dans trop de détails, est que dans une API conservée, vous devez vous assurer que la scène externe reste synchronisée avec votre état de jeu. C'est fastidieux et sujettes aux insectes (croyez-moi, je l'ai fait).