Zaraz zatrzymam mój projekt gry w XNA, ponieważ z tego, co mogę zebrać, jego rozwój dobiega końca (i jest już za obecną technologią). Dlatego muszę przyjąć nową platformę lub interfejs API.
Właśnie spędziłem 2 dni patrząc na C ++ i zdecydowałem, że to naprawdę nie jest dla mnie - jednak uważam, że surowy dostęp do DirectX jest atrakcyjny. SharpDX brzmi jak dobre miejsce do rozpoczęcia, ale nie ma dokumentacji ani komentarzy do kodu. Wydaje mi się, że nie jest jeszcze gotowy do użycia.
Interesują mnie opinie osób, które korzystały z jednego lub obu tych frameworków, aby pomóc mi zdecydować, którego z nich powinienem się nauczyć? Dziękuję za wszelkie porady.
Odpowiedzi:
Jestem autorem SharpDX, więc moja rada będzie stronnicza, ale chciałbym przynajmniej odpowiedzieć na niektóre z twoich obaw.
Jeśli chodzi o dokumentację SharpDX, obecny stan jest bardzo ograniczony, ponieważ do tej pory pracowałem nad udostępnieniem całego interfejsu API DirectX z .NET i nowego systemu operacyjnego Win8. Ponieważ jestem zamknięty, aby dokończyć tę stronę, pracuję nad udostępnieniem pełnej strony internetowej i kilku artykułów wyjaśniających kluczowe koncepcje SharpDX i sposoby, w jakie możesz z nich skorzystać. Należy również pamiętać, że ten projekt ma głównie na celu przeniesienie DirectX do .NET, więc wciąż jest to interfejs API niskiego poziomu. Wymaga to więc trochę pogłębiania zachowania interfejsu API C ++, aby zrozumieć, jak działa. Na szczęście prawie każda metoda w SharpDX odwzorowuje jedną metodę w interfejsie API DirectX, więc łatwo jest sprawdzić, jak użyć metody, sprawdzając interfejs API DirectX. System dokumentacji, który będzie dostępny z SharpDX 2.
Czy SharpDX jest gotowy do użycia przy tworzeniu gry? Krótko mówiąc: tak.
Po pierwsze, zostałem zatrudniony przez japońską firmę do udziału w rozwoju nowego silnika 3D w C #, a my używamy SharpDX do backendu renderowania w systemie Windows.
Po drugie, otrzymałem wiele prywatnych maili od programistów z firm, które używają SharpDX do tworzenia aplikacji multimedialnych (od gier, edytora poziomów, publikowania zdjęć online ... itp.). Niektórzy z tych klientów są dość duzi (niestety nie mogę ich zacytować).
Wreszcie, niektóre publiczne projekty open source używają (lub zamierzają użyć) SharpDX do swojego głównego renderowania backendu. Na przykład Delta Engine używa już SharpDX do renderowania Direct3D11 (które będzie dostępne również dla Win8). Nadchodzący projekt ANX (następca XNA typu open source) wykorzystuje również SharpDX do renderowania, kontrolerów i zarządzania dźwiękiem.
Ale SharpDX to tylko krok na drodze do zbudowania silnika gry, a następnie gry. Ponieważ API jest niskopoziomowe, nie można oczekiwać, że będą mieć takie same funkcje wysokiego poziomu, jak przyzwyczajenie się do frameworka takiego jak XNA. Ale przy minimalnym frameworku możesz robić wiele rzeczy.
Można również rozważyć użycie dobrze znanego produktu, takiego jak Unity, do tworzenia przenośnych gier w języku C #.
źródło