Autor Wątek: Pytanie o XNA  (Przeczytany 4292 razy)

Offline jareckimtb

  • Użytkownik

# Styczeń 17, 2010, 15:55:31
Witam.Mam problem ponieważ chciałbym zacząć pisać gry w XNA (znam trochę c#) i stąd moje pytanie
1.Czy w XNA można tworzyć duże produkcje?? np. Coś podobnego do gothica ?? (oczywiśnie nie mówie że ja chce od razu coś takieg robić ;D)
2.Czy opłaca się uczyć Xna czy lepiej zaczynać od razu od Directx ??
3.Jak sprawa wygląda z wydajnościa (czytałem ze kod c# jest wolniejszy o ok. 10% od c++) więc np. tworząc jakiś duży świat byłby problem z wydajnością?

Pozdrawiam i czekam na odpowiedż.

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline ConayR

  • Użytkownik

# Styczeń 17, 2010, 16:50:29
1. Jedynki albo dwójki? Tak, ograniczeniem będą umiejętności autora.
2. Opłaca się uczyć. Kropka. Im więcej czasu marnujesz na zastanawianie się "czego się uczyć", tym mniej się uczysz.
3. Wydajność jest uzależniona w znacznej mierze od zrozumienia tego, co się robi. Jeśli nie potrafisz programować, nie liczyłbym na to, że kod w C++ będzie znacznie bardziej wydajny.

Offline Quavitor

  • Użytkownik

# Styczeń 17, 2010, 17:22:28
3.Jak sprawa wygląda z wydajnościa (czytałem ze kod c# jest wolniejszy o ok. 10% od c++) więc np. tworząc jakiś duży świat byłby problem z wydajnością?

Jeśli nie będziesz pisał kodu przy którym GC się potnie to będzie OK.

Offline jareckimtb

  • Użytkownik

# Styczeń 17, 2010, 19:04:26
Dzięki za odpowiedz ;D Więc zaczne uczyć się Xna ;D
Mam jeszcze jedno pytanie , gdzie można znależc jakies dobre tutoriale?? Szukałem w internecie i nie znalazłem nic co mogłoby naprowadzić na dobrą droge ;D
aaa jeszcze jedno , uczyć się od razu od 3d czy zacząc od 2d ?? Bardziej mi zależy na 3d

Offline nilphilus

  • Użytkownik
    • wordpress

# Styczeń 17, 2010, 19:06:34
http://creators.xna.com/en-US/education/gettingstarted/bg3d/chapter1 tu masz np. taki. To jest już do 3D, bo były jeszcze 2D, poza tym całe creators sobie przejrzyj, sporo przykładów :-)

Offline vashpan

  • Użytkownik
    • Strona

# Styczeń 17, 2010, 23:20:48
XNA to jest nakladka na DirectX, wiec jego nauka pewnie nie pojdzie w las jakbys chcial potem isc w bardziej "pro" kierunku. Ja tam zawsze twierdze ze znajomosc C++ jest obligatoryjna dla kazdego programisty, bo jak juz sie go w miare nauczysz to zaden jezyk potem nie bedzie ci trudny ;) Aha, ogolnie kod .NET'owy jest wolniejszy nie o 10%, ale bardziej o 30-40% ( Ale takie gadanie nie jest miarodajne i tak, w niektorych zastosowan roznicy nie bedzie, a gdzie indziej bedzie duza ) => te 10% to mowia rozni fanboye raczej ;) Musisz tez pamietac o znacznie wiekszej pamieciozernosci programow uruchamianych pod maszynami wirtualnymi. Ale narazie niech ciebie to nie interesuje ;) XNA to dobry wybor, zreszta pod .NET i Windowsa nie ma za wiele alternatyw, niby jest Unity, ale to nie do konca biblioteka tylko silnik a C# a raczej Mono jest uzywane jako skrypty, wiec to C# jest dodatkiem a nie odwrotnie...

Offline ConayR

  • Użytkownik

# Styczeń 18, 2010, 02:28:49
kod .NET'owy jest wolniejszy nie o 10%, ale bardziej o 30-40%
Nie o 30-40% a o 49-57%. True story!

Offline nilphilus

  • Użytkownik
    • wordpress

# Styczeń 18, 2010, 02:37:38
a jak się postarasz to nawet 200%!

Offline Avaj

  • Użytkownik

# Styczeń 18, 2010, 11:28:11
Niezależne badania przeprowadzone przez ekspertów z Wysp Wielkanocnych jednoznacznie wskazują na 19.9999% spadek wydajności C# w porównaniu z C++.

Offline vashpan

  • Użytkownik
    • Strona

# Styczeń 18, 2010, 12:32:52
Powtorze to co napisalem:
.NET'owy jest wolniejszy nie o 10%, ale bardziej o 30-40% ( Ale takie gadanie nie jest miarodajne i tak, w niektorych zastosowan roznicy nie bedzie, a gdzie indziej bedzie duza )

Jak juz cytujecie to chociaz w pelnym kontekscie ;) C# i .NET to swietne technologie ktorych uzywam na codzien. Te 30-40% roznicy w 90% zastosowan i tak nie ma wiekszego znaczenia, ale to ze .NET JEST wolniejszy niz natywny kod maszynowy raczej nie ulega watpliwosci ? Tyle ze zawsze w takich przypadkach mozna mowic o pewnych przyblizeniach a punkt widzenia zalezy zwykle od punktu siedzenia... Miarodajnego testu i tak sie nie zrobi, bo trudno o jakis wiekszy software ktory bylby napisany w kilku jezykach programowania ( mi znane sa np. rozne implementacje algorytmu LZMA i archiwum 7zip - w C,C++,Javie i C# - mniej wiecej rownoznaczne nawet pod wzgledem struktury kodu )

Zamiast sie burzyc i bronic "jedynego MOJEGO slusznego" jezyka, lepiej w koncu sobie uzmyslowic ze nie ma idealnych narzedzi dla programistow i znac wady i zalety kazdego z nich.  Dzis aplikacje pisze sie w wielu jezykach - C# do narzedzi, Python do skryptow okoloprojektowych, Lua jako wewnetrzny jezyk skryptowy gry, C++ jako rdzen, mechanike gry i silnik. To jest przyklad z zycia wziety akurat.

Tyle o moim pogladzie... Nie kontynuujmy offtopu
« Ostatnia zmiana: Styczeń 18, 2010, 12:34:39 wysłana przez vashpan »

Offline ConayR

  • Użytkownik

# Styczeń 18, 2010, 21:04:00
Te 30-40% roznicy w 90% zastosowan i tak nie ma wiekszego znaczenia
Kompletnie nie zaczaiłeś o co chodzi. Podpowiem: 89.6% statystyk podawanych w sieci zostało wyciągniętych z tyłka. Teraz jest już jaśniej? :) Nie ulega wątpliwości, że GC kosztuje, ale pisanie o spadku wydajności w absolutach - tak jak robisz to Ty - jest absurdalne.

Offline iniside

  • Użytkownik

# Styczeń 19, 2010, 11:51:01
XNA to dobry wybor, zreszta pod .NET i Windowsa nie ma za wiele alternatyw, niby jest Unity, ale to nie do konca biblioteka tylko silnik a C# a raczej Mono jest uzywane jako skrypty, wiec to C# jest dodatkiem a nie odwrotnie...
http://slimdx.org/ - ktos kiedys zapodawał na forum. Zeby nie było, ze nie ma alternatyw ;p. Wrapper na DX, z ta roznica, ze ciągle go rozwijają wiec jak komuś bardzo zależy do nie jest ograniczony do dx9.

Offline hollowone

  • Użytkownik

# Kwiecień 01, 2010, 10:23:53
Ze strony Microsoftu (mimo że Managed DirectX nie jest wspierany a Xna to rekomendowana technologia dla .NET) przy okazji Windows 7 pojawił się tzw Windows 7 API Pack dla .NET Framework.

On zawiera wrappery do DirectX 10 i DirectX 11. Nie wiem jak bardzo używalne, ale jak jesteście zainteresowani to paczka do pobrania jest tutaj: http://code.msdn.microsoft.com/WindowsAPICodePack

pozdrawiam,
.dB

Offline ShadowDancer

  • Redaktor

# Kwiecień 01, 2010, 12:28:34
a jak się postarasz to nawet 200%!
Win!

Offline hollowone

  • Użytkownik

# Kwiecień 01, 2010, 12:53:35
a jak się postarasz to nawet 200%!
Win!

A tu swoją drogą :) fajne mity o wydajności.
Polecam poczytać o tym jak C++ alokuje pamięć na wasze obiekty i jak .NET i który mechanizm jest szybszy.

IMHO Managed jest "wolniejszy" od "native" głównie przez brak tak szerokiego wsparcia do wydajnych API spełniających szerokie oczekiwania funkcjonalne w gamedev, z definicji nic z samym językiem, kompilatorem i runtime'em nie ma to nic wspólnego.

Widziałem o wiele więcje masakrycznie skrewionych wydajnościowo projektów w C++ niż w C# :>

pozdrawiam,
.dB