Porównanie XNA i DirectX (C#)
W kategoriach rozwoju PC (z wyłączeniem Xbox i Zune),
Jaka jest różnica między XNA a c# DirectX? Czy c # DirectX ma znaczącą przewagę nad XNA (pod względem szybkości, opłat licencyjnych itp.)?
Jak te dwa w porównaniu z szybkością niezarządzanego c++ DirectX?
Dokąd zmierza branża w zakresie programowania gier?
4 answers
Jeśli jesteś naprawdę dobry w pisaniu kodu niezarządzanego, prawdopodobnie będziesz w stanie napisać szybszy silnik graficzny na DirectX. Jednak dla hobbystów XNA ma mnóstwo wydajności, zarówno dla rozwoju gier 2D, jak i 3D.
Oto dobry film Channel 9 , gdzie prowadzą grę wyścigową zbudowaną przez XNA na Xbox 360. Działa dobrze nawet w full HD. Niektóre z gier XBox Live Arcade zostały opracowane przez społeczność XNA.
Jeśli chodzi o c # DirectX, jak Przypominam sobie, zarządzany DirectX, jak to się nazywało, nie jest już oficjalnie wspierany, ponieważ XNA zasadniczo go zastępuje. Mogłem się mylić, dawno na to nie patrzyłem.
Różnice w wydajności są znikome między XNA a Managed DirectX, ponieważ w istocie są to to samo; XNA ma tylko kilka wygodnych bitów, aby zmniejszyć ilość kodu, który musisz napisać.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-12-21 17:57:18
Rzeczy XNA Game Studio koncentruje się na rozwiązywaniu problemów z gra centric, choć chciałbym zakwestionować każdy plakat, który mówi, że wydajność rzeczy XNA game studio jest gorsza niż zarządzane direct X bez widząc jakieś przyzwoite metryki.
Niezależna grupa spoza MS stworzyła projekt o nazwie SlimDx- http://slimdx.mdxinfo.com / Jeśli piszesz aplikację, a nie grę (czego oczekuję od innych pytań), to może warto biorąc pod uwagę.
Branża nadal mocno wykorzystuje C++ do tworzenia wnętrzności gier, ale udane wydania gier napisanych w całkowicie zarządzanym kodzie przy użyciu XNA Game Studio w sekcji gier społecznościowych XBox live i wydanych na XBox Arcade. Wkrótce powinny pojawić się ciekawe statystyki dotyczące tego, ile ludzie zarobili na grach społecznościowych.
Wiele pełnych gier używa C++ dla niektórych, ale coś w rodzaju Lua dla rzeczywistej logiki gry... a Lua nie jest znany z niesamowitej prędkości!
C # ma dobrą krzywą uczenia się i jest używany przez programistów narzędzi w branży - byłoby przydatnym językiem, aby mieć pod ręką. C++ byłby świetnym językiem, ale wymaga większej dyscypliny, aby tworzyć kod funkcjonalny - i daje komuś nowemu o wiele więcej liny, aby się powiesić. C# może dynamicznie się zmieniać i robić rzeczy takie jak rozwijanie pętli w czasie wykonywania, a nie kompilacji - dobry C# może być równie szybki lub szybszy niż dobry czytelny C++ - ale ty muszę wiedzieć, jak go używać. W naprawdę ciasnych pętlach C++ i Assembler mogą wygrać w pewnych okolicznościach. Często w grach wykorzystujących C++, niestandardowe alokatory są tworzone z własnymi strategiami pamięci, aby spróbować pomóc fragmentacji spowodowanej przez normalne alokatory... tego typu rzeczy zajmuje się CLR w. Net/C# i tak długo jak programujesz do garbage collectors (tak samo jak z własną implementacją C++) to nie musisz się martwić o tak niski poziom implementacji w .Net.
Jeśli szukasz, aby dostać się do rozwoju gry i decydując się na język (który, czytanie między wierszami wydaje się być, gdzie idziesz z tej linii pytań) to najlepszym językiem do użycia jest ten, w którym masz gotowy projekt, aby pokazać na końcu, czy to C++, objective C, C#, Flash, Silverlight, itp. Ponieważ języki zmieniają się i wychodzą z mody, rekruterzy często szukają sprawdzonego opanowania różnych języki-które mogłyby złagodzić nieznajomość tego, którego obecnie używają - i portfolio ukończonych prac zrobiłoby to.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-05 08:55:32
- XNA i DirectX to bardzo różne implementacje, które rozwiązują ten sam problem - wysokowydajne graficzne programowanie intensywne. Oba obsługują komponenty 2D, 3D, audio i sieciowe. DirectX jest niezarządzany tylko wtedy, gdy zarządzany jest kod XNA.
- istnieje zarządzana implementacja DirectX, która jest opakowaniem wokół wywołań DirectX, ale nie jest aktualizowana po bieżącym wydaniu, więc nie zawracałbym sobie tym głowy.
- XNA nie jest opakowaniem wokół niezarządzanego DirectX. Informatyka używa części DirectX, ale nie jest to opakowanie.
- branża nadal wydaje się bardzo nastawiona na niezarządzany DirectX-mówię to, ponieważ wszystkie główne firmy programistyczne nadal kodują w C++, ASM i wspierają DirectX (wyłącznie lub w połączeniu z OpenGL dla wersji Linux/Mac). Fakt, że Microsoft "upuszcza" wrapper zarządzany DirectX i mówi ludziom, aby raczej używali XNA, pokazuje, że właśnie tam naciskają zarządzanych deweloperów.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-05 08:29:40
W tej chwili wydaje się, że Microsoft nie planuje wspierać XNA w aplikacjach Metro style. Alternatywą dla XNA i obecnie przestarzałego "Managed DirectX" jest SharpDx . To może być wykorzystane do tworzenia aplikacji w stylu Metro i został korzystnie benchmarked przeciwko XNA, SlimDX i Windows API code pack.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-03-06 16:48:19