Некоторое время я работал с XNA над дизайном и разработкой игр (хотя и только для личного использования банкоматов). В целом, я большой поклонник самой XNA, и она в целом «чувствует». Однако из-за того, что:
- В XNA, похоже, отсутствует поддержка (нет поддержки Metro, нет обновлений с 2010 года и т. Д.)
- Я планирую попытаться найти работу в индустрии разработки игр, и из-за доминирования в C ++ было бы очень полезно познакомиться с ним.
- XNA поддерживает только Windows (не Metro) и Xbox 360, а меня интересует Mac и (в меньшей степени) поддержка Linux.
Я пытался перейти на C ++ в качестве основного языка. Тем не менее, я не хочу сейчас сосредотачиваться на изучении необработанного DirectX / C ++, поэтому я искал API C ++ более высокого уровня (примерно того же уровня, что и XNA, хотя что-то более низкоуровневое было бы хорошо ) с ощущением, похожим на XNA. Итак, для кого-то, кто переключается с C # / XNA на C ++, что бы я выбрал для API, аналогичного XNA, хотя неуправляемого и работающего на C ++?
Ответы:
Прежде всего, если вы хотите придерживаться 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 ++, о которой я только могу подумать.
источник
Для полноты картины хочу упомянуть SFML. Каждый, кто использует C ++, должен хотя бы взглянуть на это, поскольку SFML полностью объектно-ориентирован, тогда как SDL в основном - C.
источник
ИМХО, эти библиотеки интересны для решения вашей миграции, особенно если вы хотите программировать на C ++:
источник