Мне было интересно узнать о производительности использования XNA в C# для разработки игр и не использовать его. Могу ли я использовать PictureBox вместо двухмерных текстур? Можно ли использовать программное обеспечение Windows Form для игр или XNA - лучшее решение? Любые преимущества/недостатки?C#: XNA vs No XNA (Performance)
ответ
Чем сложнее ваша игра, тем меньше вероятность того, что вы найдете устойчивую разработку WinForms. XNA ориентирована на такие вещи, так почему бы не использовать его?
Реальный вопрос, который вы должны задать себе: «Я хочу, чтобы моя игра запускалась на Windows Phone 7, XBOX 360 и/или на рабочем столе Windows?» Если ваш ответ да, то изучите XNA. Лучше всего, чтобы большая часть работы позволяла вам настраивать таргетинг на эти разные платформы.
Рекомендую послушать недавний подкаст Скотта Гензельмана по теме: Hanselminutes Podcast 240 - Developing Indie Games for Xbox 360 and XNA with George Clingerman.
Это зависит от сложности вашей игры.
Если вы хотите изучить хорошую библиотеку, которая позволяет делать высококачественные игры с хорошей графикой, используйте XNA; это откроет больше разнообразия вашему вкусу.
Но если вы хотите создать простую прокрутку, похожие на тетрис игры или игры с пасьянсами, то можно использовать трюк с двойным буферизацией .NET.
Если вы ищете лучшую производительность, вы не должны смотреть на C# или XNA вообще, на более низком уровне вы пойдете лучше в этом отношении. Однако более низкий уровень означает, что вы потратите больше времени на программирование с меньшими результатами.
XNA был разработан, чтобы упростить игровое программирование. Это требует много утомительного низкоуровневого кодирования и обертывает его хорошими простыми методами, чтобы мы могли звонить, чтобы нам не приходилось разбираться в переоборудовании колеса, при этом используя очень мощную инфраструктуру.
Я бы очень хотел предложить, если вы заинтересованы в создании игры, пойдите с XNA. Думаю, вам понравится намного больше, чем альтернативы.
Я знаю, что это интересно, но я могу, но люди, которые продолжают делать это, объясняют, пожалуйста? Я бы хотел взять ваши голоса в качестве учебного опыта, если обучение может быть обеспечено. Спасибо =) –
Майк, думаю, ваше первое предложение, возможно, натолкнулось на неправильный путь. На самом деле, когда я его читал, я почти ожидал увидеть, что C++ упоминается в конце :) Тем не менее, я не вижу проблемы с вашим ответом в целом, поэтому у меня +1, чтобы компенсировать это downvote! –
Спасибо! Да извини. Я просто перечитываю его, и это слишком драматично.Моя точка зрения заключалась не в том, чтобы bash C# или XNA, так что извините, что обидел кого-либо, если бы это было принято таким образом. Эффективный, управляемый код будет иметь больше накладных расходов, чем родной, - это именно то, что я имел в виду. В следующий раз я постараюсь быть более ясным, если хвалюся за Ахмада. –
Использование XNA. Помимо того значительно более высокую производительность, более поддерживаемых платформ (Xbox 360, Windows Phone), другой API любезность, как звук и входной обработки, есть одна очень важная причина:
XNA является «непосредственный» стиль API (в отличие от сохраненного, см. this description).
Разработка игр с этим типом API: Значительный eaiser. Причина в том, что, не вдаваясь в слишком много времени, заключается в том, что в сохраненном API вы должны убедиться, что внешняя сцена остается в синхронизации с вашим игровым состоянием. Это утомительно и подвержено ошибкам (поверьте, я это сделал).
- 1. XNA performance
- 2. XNA Window Scaling Performance
- 3. XNA - Culling Performance Issue
- 4. XNA performance на WP7
- 5. XNA: WP7 vs PC
- 6. HLSL Pixel shader lighting performance (XNA)
- 7. XNA Platformer Backgrounds No Longer Change
- 8. C# XNA: AI Engine?
- 9. C# XNA Ball Moving
- 10. C# XNA шкала BoundingBox?
- 11. Jint + XNA (C#)
- 12. C# XNA всегда IsRunningSlowly
- 13. C# XNA generate MIDI
- 14. C# XNA SoundEffect.FromStream
- 15. C# XNA Simulate Gravity
- 16. XNA C# время нарисовать?
- 17. XNA ошибка C# класс
- 18. C# XNA - Способности/Заклинания
- 19. Управление экранами XNA C#
- 20. C# XNA Rectangle
- 21. XNA - Получение ошибки C#
- 22. C# Winform/XNA QUESTION
- 23. Health Bar XNA C#
- 24. C# Winform XNA Collision
- 25. C# XNA Array Removal
- 26. C# XNA chatbox system
- 27. Мышиные клики C# XNA
- 28. C# XNA Обнаружение столкновений
- 29. XNA C# Dispose() Содержимое
- 30. Замените XNA
для просто 2D игр XNA - отличный инструмент для изучения. Но когда вы хотите сделать действительно большие 3D-игры, я рекомендовал другие структуры, такие как [Unity] (http://unity3d.com/unity/), которые дают вам лучшую производительность. – harry180
Просто отметим, что единство - это не Framework, как XNA, а " Инструмент " –