Я собираюсь остановить свой игровой проект в XNA, потому что, насколько я могу судить, его разработка подходит к концу (и она уже отстает от современных технологий). Поэтому мне нужно принять новый фреймворк или API.
Я просто потратил 2 дня на просмотр C ++ и решил, что это на самом деле не для меня - однако я нахожу простой доступ к DirectX привлекательным. SharpDX звучит как хорошее место для начала, но у него нет документации и комментариев к коду. Я чувствую, что он не совсем готов к использованию.
Меня интересуют мнения людей, которые использовали одну или обе из этих структур, чтобы помочь мне определиться с тем, какую из них мне следует изучить? Спасибо за любой совет.
Ответы:
Я являюсь автором SharpDX, поэтому мой совет будет предвзятым, но я хотел бы, по крайней мере, ответить на некоторые ваши вопросы.
Что касается документации SharpDX, текущее состояние очень ограничено, так как я до сих пор работал над тем, чтобы весь API DirectX был доступен из .NET и новой ОС Win8. Поскольку я еще не закончил на этой стороне, я работаю над предоставлением полного веб-сайта и нескольких статей, объясняющих ключевые концепции SharpDX и то, как вы можете извлечь из этого максимум. Кроме того, имейте в виду, что этот проект в основном предназначен для переноса DirectX в .NET, поэтому это все еще низкоуровневый API. Так что вам нужно немного покопаться в поведении API C ++, чтобы понять, как он работает. К счастью, почти каждый метод в SharpDX соответствует одному методу в DirectX API, поэтому легко проверить, как использовать метод, проверив DirectX API. Система документации, которая будет доступна с SharpDX 2.
Готов ли SharpDX для разработки игры? Короче да.
Прежде всего, меня наняла японская компания для участия в разработке нового 3D-движка на C #, и мы используем SharpDX для рендеринга в Windows.
Во-вторых, я получил много частных писем от разработчиков из компаний, которые используют SharpDX для разработки мультимедийных приложений (начиная от игр, редактора уровней, публикации фотографий в Интернете и т. Д.). Некоторые из этих клиентов довольно крупные (к сожалению, я не могу их процитировать).
Наконец, некоторые общедоступные проекты с открытым исходным кодом используют (или собираются использовать) SharpDX для своего основного рендеринга. Например, Delta Engine уже использует SharpDX для своего рендеринга Direct3D11 (который будет доступен также для Win8). Новый проект ANX (преемник XNA с открытым исходным кодом) также использует SharpDX для рендеринга, геймпадов и управления аудио.
Но SharpDX - это всего лишь шаг на пути к созданию игрового движка, а затем и игры. Поскольку API является низкоуровневым, вы не можете ожидать, что у вас будут такие же высокоуровневые функции, к которым вы привыкли в такой среде, как XNA. Но с минимальными рамками, вы могли бы сделать много вещей.
Кроме того, вы можете использовать хорошо зарекомендовавший себя продукт, такой как Unity, для разработки портативных игр на C #.
источник