Какая графическая платформа для Windows 8? MonoGame? OpenGL и Xaml/DirectX Mixing?

Я хотел бы разработать игру для Windows 8, но поскольку Xna не поддерживается, я действительно не знаю, если хорошо использовать что-то вроде MonoGame - потому что я думаю, что это не имеет никакого смысла использовать MonoDevelop с OpenGL, а интерфейс интерфейса - DirectX. Но мои поиски и "apptivate.ms", они все еще заставляют разработчиков использовать MonoDevelop, но почему корпорация, такая как Microsoft, даже сделает это?

И я не люблю строить свою игру на С++ с DirectX, потому что в моем случае это не большая игра, а мой любимый язык (также мой язык на работе) - это С#..

Btw., мне было бы нелегко написать эту игру с OpenGL или С++, потому что у меня много опыта в этих двух последних четырех лет, но в этом случае мне нравится имеют "быстрое" и "экономичное" решение, такое как С# и Graphics Framework.

Итак... может, у кого-то есть ответ на эти вопросы:

  • Должен ли я использовать MonoGame с Xaml/С# и не беспокоиться о соединении DirectX и OpenGL?
  • Или есть еще одна DirectX/Game Framework, которую я могу использовать?
  • Или, может быть, я совершенно неправ, и Xaml не нуждается в DirectX? Или я могу заставить MonoGame использовать DirectX?
  • Или, еще один момент - что-то вроде "System.Drawing" достаточно быстро для космического хутора с некоторыми хорошими эффектами затенения (я думаю, для моего случая мне нужно затенение и что-то вроде цветения, размытия и т.д.)? Может быть, Microsoft добавила новую 2D-графическую библиотеку? (Но я думаю, что его еще gdi +)

Ответ 1

Ваш вопрос неоднозначен, если вы имеете в виду Windows 8 Metro (aka Modern) или Windows 8 Desktop, но я предполагаю, что это версия Metro.

Если вы хотите разработать игру на С# для Win8 Metro без использования коммерческого решения, вы можете использовать:

  • SharpDX, который является низкоуровневым DirectX API для .NET или продвигающимся SharpDX.Toolkit(проверьте последние новости на веб-сайте), который является высоким уровня вокруг Direct3D11 (с XNA, как API, но с полной поддержкой Direct3D11). SharpDX - единственная оболочка С#, охватывающая весь DirectX API, сертифицированный для работы под Windows 8.
  • MonoGame, который использует SharpDX для своего базового сервера Metro. Я не слышал, что вам нужно использовать MonoDevelop для него, поскольку он работает с существующим проектом XNA, а VS 2012 должен работать нормально.
  • ANX, который также использует SharpDX для своей базовой станции Metro.

Относительно предыдущего ответа, если предполагается, что Win8 Modern, вы не можете использовать OpenTK, поскольку OpenGL не является сертифицированным API для Microsoft App Store, а SlimDX несовместим с Windows 8 Metro.

Ответ 2

В работах, которые позволяют использовать OpenGL в Windows 8 Modern Applications, есть оболочка OpenGL для DirectX. Он еще не завершен, но может быть достаточно, если вы хотите использовать кросс-платформенную совместимость и готовы настроить таргетинг только на подмножество OpenGL, которое реализовано (или готовы самостоятельно реализовать остальное и, надеюсь, внести свой вклад.)

https://gl2dx.codeplex.com

Обновление: gl2dx, похоже, мертв с ноября 2013 года, но есть аналогичный проект ANGLE, который реализует большинство (если не все) спецификации OpenGL ES 2.0 и спецификации EGL поверх DirectX 9 или 11. Это метод, с помощью которого Firefox и Google Chrome делают WebGL в Windows.

http://code.google.com/p/angleproject/

Ответ 4

GDI + выходит за пределы приложений Metro/Modern UI, если вас интересуют некоторые компании, которые хотят сделать замену apis следующим образом: http://www.moderncomponents.com/products/DrawingLibrary/, он все еще находится на ранних стадиях, но выглядит хорошо и может помочь вам создать несколько простых игр.