2010-11-21 2 views
3

Мне было интересно узнать о производительности использования XNA в C# для разработки игр и не использовать его. Могу ли я использовать PictureBox вместо двухмерных текстур? Можно ли использовать программное обеспечение Windows Form для игр или XNA - лучшее решение? Любые преимущества/недостатки?C#: XNA vs No XNA (Performance)

+0

для просто 2D игр XNA - отличный инструмент для изучения. Но когда вы хотите сделать действительно большие 3D-игры, я рекомендовал другие структуры, такие как [Unity] (http://unity3d.com/unity/), которые дают вам лучшую производительность. – harry180

+1

Просто отметим, что единство - это не Framework, как XNA, а " Инструмент " –

ответ

10

Чем сложнее ваша игра, тем меньше вероятность того, что вы найдете устойчивую разработку WinForms. XNA ориентирована на такие вещи, так почему бы не использовать его?

Реальный вопрос, который вы должны задать себе: «Я хочу, чтобы моя игра запускалась на Windows Phone 7, XBOX 360 и/или на рабочем столе Windows?» Если ваш ответ да, то изучите XNA. Лучше всего, чтобы большая часть работы позволяла вам настраивать таргетинг на эти разные платформы.

Рекомендую послушать недавний подкаст Скотта Гензельмана по теме: Hanselminutes Podcast 240 - Developing Indie Games for Xbox 360 and XNA with George Clingerman.

8

Это зависит от сложности вашей игры.
Если вы хотите изучить хорошую библиотеку, которая позволяет делать высококачественные игры с хорошей графикой, используйте XNA; это откроет больше разнообразия вашему вкусу.
Но если вы хотите создать простую прокрутку, похожие на тетрис игры или игры с пасьянсами, то можно использовать трюк с двойным буферизацией .NET.

3

Если вы ищете лучшую производительность, вы не должны смотреть на C# или XNA вообще, на более низком уровне вы пойдете лучше в этом отношении. Однако более низкий уровень означает, что вы потратите больше времени на программирование с меньшими результатами.

XNA был разработан, чтобы упростить игровое программирование. Это требует много утомительного низкоуровневого кодирования и обертывает его хорошими простыми методами, чтобы мы могли звонить, чтобы нам не приходилось разбираться в переоборудовании колеса, при этом используя очень мощную инфраструктуру.

Я бы очень хотел предложить, если вы заинтересованы в создании игры, пойдите с XNA. Думаю, вам понравится намного больше, чем альтернативы.

+0

Я знаю, что это интересно, но я могу, но люди, которые продолжают делать это, объясняют, пожалуйста? Я бы хотел взять ваши голоса в качестве учебного опыта, если обучение может быть обеспечено. Спасибо =) –

+0

Майк, думаю, ваше первое предложение, возможно, натолкнулось на неправильный путь. На самом деле, когда я его читал, я почти ожидал увидеть, что C++ упоминается в конце :) Тем не менее, я не вижу проблемы с вашим ответом в целом, поэтому у меня +1, чтобы компенсировать это downvote! –

+0

Спасибо! Да извини. Я просто перечитываю его, и это слишком драматично.Моя точка зрения заключалась не в том, чтобы bash C# или XNA, так что извините, что обидел кого-либо, если бы это было принято таким образом. Эффективный, управляемый код будет иметь больше накладных расходов, чем родной, - это именно то, что я имел в виду. В следующий раз я постараюсь быть более ясным, если хвалюся за Ахмада. –

6

Использование XNA. Помимо того значительно более высокую производительность, более поддерживаемых платформ (Xbox 360, Windows Phone), другой API любезность, как звук и входной обработки, есть одна очень важная причина:

XNA является «непосредственный» стиль API (в отличие от сохраненного, см. this description).

Разработка игр с этим типом API: Значительный eaiser. Причина в том, что, не вдаваясь в слишком много времени, заключается в том, что в сохраненном API вы должны убедиться, что внешняя сцена остается в синхронизации с вашим игровым состоянием. Это утомительно и подвержено ошибкам (поверьте, я это сделал).