XNA jest do bani.

Oto najpowszechniejsza opinia. Jest to środowisko podobne raczej do gamemakera, nieprawdziwe, dające małe możliwości, wolne i ograniczone bo zarządzane, prawda?

Nieprawda. Wszystko to co napisałem wyżej to jeden wielki stek bzdur. Oczywiście, żeby być szczerym, nie dalej jak dwa tygodnie temu sam podpisałbym się pod tymi postulatami. Co prawda próbowałem kiedyś XNA, kiedy wchodziło, jednak wydało wtedy mi się ono toporne i niespecjalnie porządne.

Tym niemniej, jakiś czas temu postanowiłem dać XNA drugą szansę, głównie przez chęć zrobienia gry na Xboxa 360. Podchodziłem do sprawy raczej sceptycznie, głównie przez trudności ze skonfigurowaniem połączenia Xbox – PC, które to spowodowane były, w kolejności od łatwiejszych do rozwiązania, przez zapomnienie hasła do XBLA, zasięg mojej sieci – router musiał stać przy konsolce, a WiFi nie sięgało do komputera, oraz – co zdenerwowało mnie dokumentnie – konieczności wpisania znalezionego w Internecie kodu pocztowego (pod hasłem British Postal Codes). Wszak jestem z krwii i kości brytyjczykiem (dla Microsoftu), gdyż Polski nie ma na mapach nowoczesnego świata. Cóż…

W każdym razie, po pokonaniu tych problemów, stworzyłem nowy projekt według template (z główną klasą, paroma callbackami typu OnUpdate i OnRender, głównie pustymi), który to następnie wypełniałem według dokumentacji i przygodnie znalezionych w Internecie kursów, kiedy było trzeba. Różne rzeczy testowałem, napisałem prosty klon Space Invaders. Co mnie szczególnie zaintrygowało w pisaniu w XNA jest to, iż jest to całkiem kompletny silnik – obsługa inputu zrobiona jest tak jak sobie to wyobrażałem(GamePad.GetState(Player.One).Get…), dźwiękiem, zarządzaniem zasobami które uwielbiam (jedna base class dla zasobów, ładowanie całości na zasadzie dowolnyZasob = Cont.Load<Typ>(„nazwa”);, do tego parsowane czymś takim jak content processor – który to jest programowalny). Niby nic nowego, ale jest out of the box. Poza tym, biblioteka matematyczna, różne utilities, wszystko nawet bez potrzeby sięgania do dokumentacji (bo VIsual sam dołącza odpowiednie usingi, a wszystko pokazuje Intellisense – wystarczy znać pojęcie lub strzępek nazwy).

W każdym razie, po jakimś czasie postawiłem sobie za zadanie napisanie prostej gry 2D – maks tydzień roboty do etapu Make It Work. Zasada prosta – przedostać się z jednej części planszy do drugiej, pokonując przy okazji różne zagadki fizyczne, oraz używając zdolności – cofania czasu (Braid!), dzielenia bohatera na paru (gdyż jest on po prostu kulką stworzoną z płatków róż), itp., z fizyką pod kontrolą silnika Farseer Physics, będącego portem na XNA skądinąd znanego silnika Box2D, a przedstawiającego sobą całkiem niezłe możliwości. Do tego gra utrzymana jest w klimatach raczej ciężkich – smutna, przytłaczająca fortepianowa muzyka wraz z czarno, szaro, bladoczerwonymi wstawkami nie sprawia wrażenia typowej gry dla pań w średnim wieku. Nie jest to gra ani specjalnie skomplikowana, ani tym bardziej ambitna, ani nie wykorzystuje możliwości sprzętu – po prostu yet another nieskomplikowana produkcja 2D. I do takich właśnie marzyłem o środowisku, jakie daje mi XNA. Oczywiście, gry 3D również można tworzyć – jednak na razie się za to nie zabrałem. Jak sprawdzę, to dam znać.

Na koniec, jako smaczek tzw. dodatkowy (znaczy kolejna nudna informacja po nudnej notce ;P): mega fajny jest mój sposób debuggowania. Konsola leży na parterze, przy telewizorze. Komputer zaś mam na piętrze, w pokoju. Po paru godzinach testowania (a szczególnie testowania różnych parametrów, czy (o zgrozo!) stawiania breakpointów) jestem nieźle spocony, przez ciągłe bieganie góra-dół. :)

Na kompletny koniec, żeby już na amen zepsuć wrażenie, ze dwa screeny. Jeden – a jak! – z menu, drugi z samego gameplayu (jedynego levelu który mam gotowy – pierwszego ;P): 

a1

b2

(oczywiście, już standardowo, przepraszam, za niepisanie przez tyle czasu – wakacje to ciężki czas ;P )

Advertisements

~ - autor: charibo w dniu Lipiec 12, 2009.

komentarzy 6 to “XNA jest do bani.”

  1. Noz taki fajnie zapowiadajacy sie tytul ;D
    Na serio – do pisania malych, grywalnych gierek XNA nadaje sie idealnie. Szybko, prosto, przyjemnie i ta radosc z ‚developerskiego’ wykorzystania x skrzynki.
    Ach i jeszcze mozliwosc zbicia fortuny na Live! ;D

  2. @up: Nieee… dlaczego ja wybrałem GrajStacje? : / x]

  3. Hehe, a już miałem rzucać naukę C# i XNA, aż tu trafiłem przez przypadek na tą notkę. Chyba też dam mu (i sobie) drugą szansę :)

  4. XNA jest faktycznie fajne. I jego możliwości wykraczają poza banalne gry. Jasne, że gry która z Crysisem będzie rywalizować się w tym nie zrobi, ale i tak coś fajnego można stworzyć ;)

  5. Jest możliwość udostępnienia wyscreenowanej gry?

  6. XNA i jego możliwości:

    w przyszłości wrzucę drugą część gry ;-)

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Log Out / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Log Out / Zmień )

Facebook photo

Komentujesz korzystając z konta Facebook. Log Out / Zmień )

Google+ photo

Komentujesz korzystając z konta Google+. Log Out / Zmień )

Connecting to %s

 
%d bloggers like this: