Чи достатньо зрілий SharpDX для прийняття ще чи я зараз повинен почати використовувати SlimDX?


10

Я збираюся зупинити свій ігровий проект у XNA, оскільки з того, що я можу зібрати, його розвиток закінчується (і це вже відстає від сучасних технологій). Тому мені потрібно прийняти новий фреймворк або API.

Я щойно провів 2 дні, переглядаючи C ++ і вирішив, що це насправді не для мене - однак я вважаю, що сирий доступ до DirectX привабливий. SharpDX здається гарним місцем для початку, але він не має жодної документації та коментарів до коду. Я відчуваю, що це не зовсім готово до вживання.

Мене цікавлять думки людей, які використовували одну чи обидві ці рамки, щоб допомогти мені точно визначитися, яку саме з них мені слід вивчити? Дякую за будь-яку пораду.


1
Дуже розмовне питання :). SharpDX, ймовірно, такий же зрілий, як і SlimDX, оскільки він генерується безпосередньо із заголовків - таким чином він отримав 100% DirectX, що завершився негайно. Обидві бібліотеки по суті однакові; тож ви можете просто використовувати зразки SlimDX для SharpDX.
Джонатан Дікінсон

1
Цілком можливо, що ваша стриманість підхопити C / C ++ - це справжня проблема в плані хвилювання. Поки ви будете залишатися на керованому рівні, ви ніколи не отримаєте справжнього м'яса, ІМО. Це від того, хто довгий час клявся керованими мовами, незважаючи на те, що він офіційно навчався на C ++. Просто спостереження. Не уникайте С ++ занадто важко. Це, безумовно, обмежить ваші можливості в цій галузі, якщо ви це зробите, тоді як зворотний процес, безумовно, не відповідає дійсності, оскільки він фактично дає вам надійну точку вступу в інші галузі (медичну, фінансову, оборону). Середня зарплата там набагато краща, FYI.
Інженер

Мені дуже цікавий DX, і, хоча я можу в кінцевому підсумку перенести свій проект на Slim або Sharp, я, безумовно, чую те, що ви говорите. І, напевно, мені добре послужити, щоб продовжувати вивчати C ++, щоб я міг подолати цей дискомфорт. Я хотів би подумати, що через 12 місяців, якби я був у положенні, коли мені потрібно було використовувати C ++ / Direct X, тоді я міг би зробити це, якщо це правильний інструмент для роботи.
Гевін Вільямс

Відповіді:


16

Я автор SharpDX, тому моя порада буде упереджена, але хотілося б хоча б відповісти на деякі ваші занепокоєння.

Щодо документації на SharpDX, поточний стан дуже обмежений, оскільки я до цього часу працюю над тим, щоб довести весь API DirectX, доступний з .NET та нової ОС Win8. Коли я закінчую цю справу, я працюю над створенням повного веб-сайту та деяких статей, щоб пояснити ключові поняття SharpDX, і як ви можете отримати найкраще від цього. Крім того, майте на увазі, що цей проект в основному полягає у залученні DirectX до .NET, тому це все ще API низького рівня. Тож вимагає, щоб ви трохи занурилися в поведінку API C ++, щоб зрозуміти, як він працює. На щастя, майже кожен метод у SharpDX відображає єдиний метод в API DirectX, тому легко перевірити, як використовувати метод, перевіривши DirectX API. Система документації, яка буде доступна для SharpDX 2.

Чи готовий SharpDX використовувати для розробки гри? Словом, так.

Перш за все, мене взяла на роботу японська компанія для участі у розробці нового 3D-двигуна в C #, і ми використовуємо SharpDX для бекенда візуалізації в Windows.

По-друге, я отримав багато приватних листів від розробників від компаній, які використовують SharpDX для розробки мультимедійних додатків (починаючи від ігор, редактора рівнів, онлайн-публікацій фотографій ... тощо). Деякі з цих клієнтів досить великі (на жаль, я не можу їх навести).

Нарешті, деякі публічні проекти з відкритим кодом використовують (або збираються використовувати) SharpDX для свого основного рендеринга. Наприклад, Delta Engine вже використовує SharpDX для візуалізації Direct3D11 (це буде доступно і для Win8). Майбутній проект ANX (з відкритим вихідним кодом XNA правонаступник) також використовує SharpDX для рендеринга, геймпадов і аудіо управління.

Але SharpDX - це лише крок на шляху побудови ігрового двигуна, а потім ігор. Оскільки API низького рівня, ви не можете сподіватися, що вони матимуть такі самі функції високого рівня, до яких ви звикли з такою рамкою, як XNA. Але з мінімальними рамками ви могли б зробити багато речей.

Крім того, ви можете розглянути можливість використання добре створеного продукту, як Unity, для розробки портативних ігор в C #.


1
+1 для ANX. Дійсно захоплююче, оскільки я дуже люблю простоту XNA (я швидко відмовився від #DX через необхідну кількість завантажувального коду).
Джонатан Дікінсон

О, дякую за те, що додав Олександра, я сьогодні читав деякі ваші публікації про відхід від команди slimDX і те, що ви маєте на увазі для SharpDX. Чудово бачити таку цілеспрямовану роботу, і чудово мати ще один керований фреймворк, керовані графічні двигуни лише збільшуються, і я не думаю, що ми ще не бачили повної можливості. Я просто сподіваюсь, що проблеми з керованим кодом, незалежно від того, чи були вони у часі дзвінків або поведінка сміттєзбірника, можуть бути вирішені або мінімізовані, щоб бути несуттєвими. Ви працюєте, безумовно, додаєте до цього рішення.
Гевін Вільямс

Вибору дійсно багато. Я завантажив Unity. Я ніколи не дивився на ігровий движок або щось подібне раніше, тому мені повинно бути цікаво подивитися, що він може робити, і як це робить. У мене основи мого проекту вже написані в xna, і він знаходиться десь близько 5000-10000 рядків коду, тому я хотів би використати цей код, якщо зможу. Але це ще дуже далеко від завершеного, тому я гадаю, що якщо я проведу тиждень-два, переглядаючи різні рамки та двигуни, це не погана інвестиція.
Гевін Вільямс

Ніколи не чув про ANX раніше цієї посади. Дуже цікаво, куди це йде. І до речі, ви, можливо, захочете оновити посилання на свій пост на: anxframework.codeplex.com
David Gouveia
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.