Переход с XNA / C # на C ++? [закрыто]

8

Некоторое время я работал с XNA над дизайном и разработкой игр (хотя и только для личного использования банкоматов). В целом, я большой поклонник самой XNA, и она в целом «чувствует». Однако из-за того, что:

  1. В XNA, похоже, отсутствует поддержка (нет поддержки Metro, нет обновлений с 2010 года и т. Д.)
  2. Я планирую попытаться найти работу в индустрии разработки игр, и из-за доминирования в C ++ было бы очень полезно познакомиться с ним.
  3. XNA поддерживает только Windows (не Metro) и Xbox 360, а меня интересует Mac и (в меньшей степени) поддержка Linux.

Я пытался перейти на C ++ в качестве основного языка. Тем не менее, я не хочу сейчас сосредотачиваться на изучении необработанного DirectX / C ++, поэтому я искал API C ++ более высокого уровня (примерно того же уровня, что и XNA, хотя что-то более низкоуровневое было бы хорошо ) с ощущением, похожим на XNA. Итак, для кого-то, кто переключается с C # / XNA на C ++, что бы я выбрал для API, аналогичного XNA, хотя неуправляемого и работающего на C ++?

Fat_Scout
источник
НИКОГДА не используйте DirectX с C ++ ... Используйте OpenGL;)
CoffeeandCode

Ответы:

14

Прежде всего, если вы хотите придерживаться C # / XNA и по-прежнему поддерживать Mac / Linux, вы можете рассмотреть MonoGame . Плюс у них есть порт метро в работе тоже. Так что я бы пока не назвал XNA API мертвым . (С другой стороны, качество кода MonoGame оставляет желать лучшего.)

Также я не стал бы сбрасывать со счетов возможность новой официальной версии XNA.

Если вы хотите получить удовольствие от хороших вспомогательных классов XNA (например: SpriteBatch, SpriteFont), при перемещении к DirectX / C ++, вы можете попробовать DirectX Tool Kit . И не забывайте, что большая часть привлекательности XNA заключается в конвейере контента - так что DirectXTex может помочь. Он сделан некоторыми из тех, кто сделал XNA, так что вы знаете, что это хорошо ( сообщение в блоге ).

Вы можете попробовать Unity - который использует C #, поддерживает Mac и Linux и кучу других платформ и используется в «Промышленности».

Если вам нужна поддержка Metro, вы хотите изучать DirectX, но не хотите оставить комфорт C #, вы можете попробовать SharpDX .

Наконец, вы можете взглянуть на Cocos2d-X , который, кажется, довольно популярен и, вероятно, является ближайшей к XNA кросс-платформенной библиотекой C ++, о которой я только могу подумать.

Эндрю Рассел
источник
1

Для полноты картины хочу упомянуть SFML. Каждый, кто использует C ++, должен хотя бы взглянуть на это, поскольку SFML полностью объектно-ориентирован, тогда как SDL в основном - C.

MKS
источник
0

ИМХО, эти библиотеки интересны для решения вашей миграции, особенно если вы хотите программировать на C ++:

  • SDL, простой DirectMedia Layer , очень легкий, с хорошим чувством и кроссплатформенностью;
  • Аллегро , как SDL и хорошо поддерживается и обновляется тоже.
xdevel2000
источник