Strona główna

środa, 31 sierpnia 2011

Felix, qui potuit rerum cognoscere causas, czyli o Szczęsnym i ośmiu wpuszczonych bramkach

Wojciech Szczęsny to najbardziej obiecujący młody polski piłkarz i jeden z najbardziej obiecujących bramkarskich talentów na świecie. Ma wszystko to, co znamionuje najwybitniejszych przedstawicieli fachu piłkołapów: znakomity refleks, inteligencję, technikę, charyzmę, ambicję i graniczącą z butą (acz tej granicy nie przekraczającą) pewność siebie. Co nie oznacza, że 28 sierpnia 2011 roku na Old Trafford nie dał ciała. Dał. Kilkukrotnie. Ale nie on jeden - stukać bez wazeliny na własne życzenie dawała się cała drużyna Arsenalu (popatrzcie na Rosickiego, co robi podczas pierwszej bramki Rooneya z rzutu wolnego, popatrzcie na reakcję Jenkinsona na zasłużoną burę od Walcotta). Tak się jednak składa, że reszta tych szczeniaków mi powiewa, natomaiast Szczęsnemu życzę jak najlepiej. Dlatego wypunktuję niedostatki w jego grze przy straconych bramkach, a Ty, drogi czytelniku, pokaż mi, gdzie się mylę. Z przyjemnością przyznam się do niewłaściwej interpretacji.

22', Wellbeck

Oglądałem powtórkę wielokrotnie, przekonując sam siebie, że piłka była obrońcy, który dał się przepchnąć. Nie udało się. W tej sytuacji, tak blisko bramki, miękko wrzucona (a więc poruszająca się ze stosunkowo niewielką prędkością) piłka należy do bramkarza. Trzeba było z dzikim wrzaskiem "mojaaa!!!" (czy jak to się tam krzyczy w Premier League) wybiec pędem z bramki i, uprzedzając napastnika, przynajmniej strącić futbolówkę gdzieś w bok. A najlepiej złapać, ale przypuszczalnie przy interwencji nastąpiło by zderzenie z innym zawodnikiem (a sędziowie na wyspach rzadko sięgają wówczas po gwizdek) i piłka mogłaby wypaść z rąk w niefortunną stronę, więc z dwojga złego lepsze zbicie w kontrolowany sposób. Szukając wytłumaczenia dla dość nietypowego dla naszego bramkarza zachowania (Szczęsny zwykle nie boi się szybkich wyjść) domniemywam, że dzień wcześniej widział popis Hilario, który w nieco innej sytuacji zupełnie bez sensu wybiegł z bramki niemal na granicę pola karnego, żeby przechwycić dośrodkowanie i... fatalnie skrewił.

65', Rooney

Co tu dużo mówić. Bramkarz ma ustawić mur tak, aby zasłaniał krótki słupek, sam zaś broni przede wszystkim długiego. Nie wiem natomiast, co robił Szczęsny, bo nie tylko że nie obronił niezbyt mocnego strzału, oddanego na długi słupek na wysokości najdogodniejszej dla bramkarza do obrony, ale nawet nie próbował tego zrobić. Stanął, jak zamurowany. Może myślał, że Rooney uderzy drugi raz w ten sam sposób, czyli nad murem po krótkim? Nie jest to jednak wystarczające usprawiedliwienie: jeśli mur został dobrze ustawiony, to bramkarza nie wini się za wpuszczenie bramki na krótki słupek, ze względu na ograniczoną widoczność w tamtej strefie.

67', Nani

Nie mam pretensji o samą bramkę, bo w takiej sytuacji wobec kunsztu napastnika bramkarz nie ma szans. Ale dlaczego Szczęsny stanął, pozwalając Naniemu spokojnie wybrać róg i sposób uderzenia? Pownien wylecieć, jakby go sam diabeł gonił, żeby wywrzeć presję na atakującym i maksymalnie, jak tylko się da, zmniejszyć kąt strzału. Przypuszczalnie nic by to nie dało, ale przynajmniej taki troll internetowy, jak ja, nie miałby się do czego przyczepić.

70', Park

To po prostu szmata była, do której zrezygnowany Szczęsny leciał, jak mucha w smole. No dobrze, może i to nie była taka całkiem szmaciarska szmata, ale nie takie strzały Szczęsny już w swojej karierze wyjmował w meczach o stawkę. Po prostu, jak na jego możliwości i formę, do której zdążył przyzwyczaić, ten gol paść nie powinien bez walki. Niby Wojtek mógł być trochę zasłonięty, ale opieszałość jaka go ogarnęła, była widoczna już kilka chwil wcześniej przy strzale Rooneya, który z około 20 metrów trafił w słupek. I znów (czy raczej już wtedy) nie była to mocna piłka, mimo to Szczęsny jej nie sięgnął.

82', Rooney

O karnego też nie mam pretensji, bo był dobrze wykonany. Gdyby jednak dobrze wykonany nie był, gdyby strzelec zostawił bramkarzowi czas na reakcję, to i tak pewnie nic by to nie dało, bo Szczęsny zajęty był w tym czasie jakimiś wygibasami, z których ciężko byłoby się odwinąć, gdyby akurat piłka poleciała w stronę przeciwną niż wygięte ciało.

No i o tak o. Łatwo się komentuje z perspektywy telewizorni. Mam świadomość, że na boisku te sytuacje mogły wyglądać nieco inaczej, ale z drugiej strony też trochę grałem, też broniłem i meczów się w życiu naoglądałem. Oby ten blamaż (nie bójmy się tego słowa) nie zaważył na dalszej karierze Wojtka, który jest sportowcem pełną gębą (jak Małysz, czy Kubica).

wtorek, 23 sierpnia 2011

Gramy, czyli reaktywacja "Earthdawna"

Udało się! Znowu gramy! Ekipa starych kumpli zebrała się w sobie, by reaktywować cykliczne spotkania o charakterze sesji gier fabularnych. Na pierwszy ogień poszedł "Earthdawn". Założenie jest takie, że bohaterowie graczy są czymś w rodzaju szpiegów (oficjalnie posłańcami) w służbie rodu Gerthor - jednej z najpotężniejszych frakcji rządzących Miastem.

Nazywam się Grun

Urodziłem się w małej wiosce, położonej wysoko w górach, leżących na wschodnim krańcu krainy Kersh. Bieda i nuda dawały mi się mocno we znaki. Doskonałym pretekstem do ruszenia w świat był fakt, że po ostatniej zarazie a potem wyjątkowo srogiej zimie w mojej wiosce, ani w okolicznych nie pozostała żadna niezamężna (lub nieprzyobiecana) dziewczyna w moim wieku (nie licząc Wiecznie Śliniącej, ale ona nie wchodziła w grę).

Warunki, w których się wychowałem, w połączeniu z niezwykłą gibkością i wrodzoną giętkością (przykładowo bez trudu wyginam palce tak, by dotknęły wierzchu przedramienia) sprawiły, że jestem znakomitym wspinaczem. Dodatkowe atuty przy wspinaniu stanowią akuratny wzrost przy jednocześnie niskiej wadze - jestem bardzo szczupły, wręcz wyglądam na wygłodzonego (w odróżnieniu od pobratymców, którzy są raczej krępi). Jednak winnym jest metabolizm, bo odkąd wstąpiłem na służbę rodu Gerthor, nie chodzę o pustym żołądku.

Wrodzone predyspozycje sprawiły, że wyspecjalizowałem się w umiejętnościach inflitracyjnych: wspinanie, skradanie, ukrywanie, otwieranie zamków, etc. Moją ulubioną bronią jest góralski, niezbyt duży, kościany topór z umocowanym hakiem powyżej ostrza. Ponadto posługuję się także sztyletem oraz potrafię rzucać włócznią, ale tej ostatniej broni nie noszę na co dzień przy sobie.

Podczas pobytu na nizinach przyswoiłem sobie język wspólny, nie zapominając jednak mowy ojczystej. Na służbę rodu dostałem się w taki sposób, że mojemu przyszłemu dowódcy zaproponowałem wyzwanie: "Wybierz ścianę. Jeśli na nią wejdę przy pierwszej próbie, przyjmiesz mnie na służbę. Jeśli nie, przez rok będę twoim niewolnikiem." Nie udało się. W trakcie wspinania ktoś nieprzychylny rzucił we mnie kamieniem ku uciesze wszystkich świadków zakładu. Odsłużyłem jako niewolnik okrągły rok w domu dowódcy. Po tym czasie mój pan wezwał mnie i na powrót uczynił wolnym człowiekiem, honorowo przyjmując w szeregi swoich ludzi.

Proza życia

Pierwsza sesja już za nami. Wrażenia przednie. Mieliśmy grać najpóźniej do północy, ale przeciągnęło się prawie do drugiej. I tak naprawdę tylko głos rozsądku i świadomość obowiązków czekających na drugi dzień sprawiły, że przerwaliśmy grę... Jeśli mi czas pozwoli, to spiszę raport z sesji i tutaj wrzucę.

poniedziałek, 22 sierpnia 2011

Robimy "OdionoidO" - devlog #1

Tak, jak się odgrażałem tutaj, zabieram się za "OdionoidO".
Technologia: Python + Pyglet.

Podjąłem kilka decyzji odnośnie plansz. Będą one miały powierzchnię "budowlaną" w rozmiarze 13x13 cegiełek (do jednego z tych wymiarów dojdzie jeszcze trochę marginesu, ale będzie to przestrzeń pusta, w której nie będą już znajdować się żadne przeszkody).

Każda z plansz będzie zapisana w oddzielnym pliku csv, znajdującym się w katalogu "plansze". Nazwą pliku będzie dwucyfrowy numer planszy. W środku każdego pliku będzie trzynaście wierszy, z których każdy będzie reprezentował jedną linię cegiełek w postaci: 0,0,0,1,1,1,0,0,0,1,1,1,2, gdzie zero oznacza pustą przestrzeń a większa liczba cegłę i jej rodzaj (o ile będą rodzaje).

Takie rozwiązanie pozwala bardzo wygodnie tworzyć i edytować plansze za pomocą szablonu stworzonego w arkuszu kalkulacyjnym, z użyciem formatowania warunkowego, uzależniając kolor tła komórki od wpisanej cyfry.

Napisałem funkcję, która wczytuje plik podany w argumencie a zwraca - używając pythonowej nomenklatury - listę list reprezentujących kolejne wiersze:

import csv
def wczytajjednaplansze(adrespliku):
    plikcsv = csv.reader(open(adrespliku), delimiter=",")
    lista = [line for line in plikcsv]
    return lista


Nie wiem, jak wam, ale mnie się podoba. :)

EDIT: Zmodyfikowałem nieco powyższą funkcję tak, aby parametrem był po prostu numer żądanej planszy. Oto efekt:

import csv
def wczytajplansze(numerplanszy):
    plikcsv = csv.reader(open("./plansze/" + "%02d" % numerplanszy + ".csv"), delimiter=",")
    lista = [line for line in plikcsv]
    return lista

piątek, 19 sierpnia 2011

Jeszcze jeden klon "Arukanoido", czyli robimy grę komputerową

Na forach poświęconych programowaniu i/lub grom komputerowym często-gęsto pojawiają się wątki typu "chcę zrobić grę w stylu GTA, tylko lepszą", albo "szukam teamu do zrobienia gry MMORPG". Zwykle autorami takich wpisów są ludzie, którzy nie mają zielonego pojęcia, jak niezwykle złożonym przedsięwzięciem jest produkcja dużej gry komputerowej - zarówno od strony czysto developerskiej (dziesiątki, setki tysięcy linii kodu), poprzez zorganizowanie niezbędnych zasobów (np. modeli, tekstur, dźwięków), na zbalansowaniu mechaniki (testy, testy, testy) kończąc (albo i nawet nie kończąc, bo tak naprawdę zasygnalizowałem tylko najbardziej podstawowe sprawy). W sumie ja też nie mam tego pojęcia nazbyt dużego, ale jednak.

Tymczasem tak się składa, że w ramach poznawania Pythona mam zamiar napisać... klon Arkanoida. Stopniem złożoności ten projekt ustępuje o kilka rzędów wielkości wspomnianym produkcjom typu AAA, a mimo to nadal trzeba wiele rzeczy przemyśleć, podjąć niejedną decyzję, zadbać o odpowiednie zasoby, etc. Nawiasem mówiąc podejrzewam, że większość entuzjastów gier-w-stylu-X-tylko-lepszych odbiłoby się nawet od tak małego projektu, jak od ściany. A żeby pomóc sobie samemu ogarnąć temat, postanowiłem przed rozpoczęciem właściwej pracy "głośno pomyśleć" i wespół w zespół razem z Wami zastanowić się nad kształtem gry.

Grafika

Nie ma co się oszukiwać, jesteśmy wzrokowcami. Słowo "widzisz" bywa często używane jako synonim "rozumiesz", nawet jeśli akurat nie ma czego oglądać. Z tego powodu kwestie związane z grafiką budzą zwykle duże emocje. Niestety tak się składa, że absolutnie nie mam zmysłu artystycznego, więc podchodzę do tematu od strony czysto utylitarnej. Zatem jedno jest pewne: podobnie, jak  oryginał, gra nie będzie emulowała środowiska trójwymiarowego (skąd wziąć modele? jak je obsługiwać?), pozostaniemy przy 2D.
I dalej, chciałbym, żeby działała w trybie pełnego ekranu, co wiąże się z problemem podejścia do skalowania. W przypadku gry w oknie możemy ustalić stałą rozdzielczość, np. 600x400 i wszystko do tego dostosować - obszar gry, rozmiar menu, wielkość klocków, etc. Przy pełnym ekranie sprawa jest znacznie bardziej skomplikowana. Wszak rozdzielczości monitorów bywają bardzo różne. Pół biedy, jakby proporcja krawędzi dłuższej do krótszej była stała - wówczas obraz wystarczyłoby odpowiednio rozciągać lub zwężać. Ale tak nie jest i automatyczne skalowanie często-gęsto prowadzi do deformacji obrazu. Rozwiązaniem może być np. stosowanie czarnych pasów przy krawędziach ekranu, tworzących taki margines, jaki akurat jest potrzebny do utrzymania stałych proporcji ekranu gry. Albo pogodzenie się z ewentualną deformacją. W tym przypadku wymyślna szata graficzna odpada, bo zmiana proporcji na inną od projektowanej, będzie od razu rzucać się w oczy.
Niemniej jednak, jak już wspomniałem, artysta ze mnie żaden, więc możliwe że gra będzie zbudowana wyłącznie z podstawowych figur geometrycznych i to renderowanych przez bibliotekę graficzną, nie zaś reprezentowanych przez sprite'y. W takim przypadku deformacja mogłaby być akceptowalna. Zobaczymy.

Udźwiękowienie

Jakieś plumkanie by się przydało. Dźwięki odbicia piłeczki wydają się absolutnym minimum. Dodatkowo fajnie, jakby były różne w zależności od powierzchni, od której się odbije piłeczka (o ile będą różne powierzchnie). Ponadto dobrze dobrana muzyczka przygrywająca w tle znacząco umila rozgrywkę. Trudno jednak, żeby była wciąż taka sama: wypada zróżnicować przynajmniej na poziomie menu-rozgrywka-highscore. Ideałem byłaby muzyka dobrana do konkretnej planszy, lub jej klimatu, ale to nie wchodzi w grę. Dźwięki spróbuję znaleźć na jednym z kilku portali oferujących darmowe SFXy. Muzykę pewnie na Jamendo. Mam nadzieję, że konwersja z MP3 na jakiś niekomercyjny format nie przysporzy trudności.

Menu, stany gry

Czy chcemy mieć rozbudowane menu? Chodzi mi teraz głównie o opcje konfiguracji: dźwięku czy grafiki. Raczej bym sobie odpuścił takie szczegóły, bo dopisywanie obsługi każdej pierdoły tego typu zajmie trochę czasu, a korzyść z tego dla grywalności żadna. A jak powinna wyglądać pętla główna gry? Czy wystarczy możliwość pauzowania, czy też chcemy móc modyfikować również inne ustawienia w trakcie toczonej rozgrywki (np. zmieniamy rozdzielczość i kontynuujemy grę, jak gdyby nigdy nic)? Konsekwentnie tutaj chyba również nie ma sensu się rozdrabniać. Zdaje się, że pozostaniemy przy minimalnej ilości opcji i brakiem możliwości zmiany ustawień podczas gry (tylko pauza).

Gameplay

Standardem arukanoidów są plansze o ustalonym porządku cegiełek. Może od tego odejść? Może wymyślić algorytm losujący sensowną, grywalną planszę? Z jednej strony odpadłby problem projektowania poziomów, z drugiej wymyślenie wspomnianego algorytmu nie jest trywialnym zadaniem. Ponadto przy losowych planszach lista najlepszych wyników byłaby trochę bez sensu. Może zastosować oba rozwiązania i zrobić dwa tryby rozgrywki: fixed i random?
Jakie powinno być ustawienie planszy względem paletki? Naturalne, ze względu na skojarzenia z grawitacją i opadaniem piłki, któremu zapobiegamy, wydaje się ustawienie paletki wzdłuż dolnej krawędzi ekranu. Jednak w Krakout 2 na C64, moim ulubionym klonie, paletka chodziła po prawej krawędzi.
Czy trzymać się schematu, że trzy strony są zamknięte, a paletka chodzi po czwartej? A gdyby tak paletki były dwie - na górze i dole lub z prawej i lewej strony? Innymi słowy plansza byłaby "na przestrzał". Czy w takim przypadku lepiej będzie, żeby poruszały się równocześnie w tym samym kierunku, czy zrobić oddzielne sterowanie dla każdej?
Przeszkadzajki. Zwykle po pewnym czasie na planszy zaczynają pojawiać się przeszkadzajki - stworki poruszające się w mniej lub bardziej losowych kierunkach i utrudniające de facto zbijanie cegiełek. Raczej na pewno z tego zrezygnuję - stworki musiałyby mieć swoją grafikę, logikę pojawiania się i poruszania, przy trafieniu kulką przeszkadzajki powinien dobywać się inny dźwięk niż przy trafieniu cegiełki. Jednym słowem kupa dodatkowej roboty.
Podobne ze spadającymi witaminami (chociaż mogłyby być też ukryte pod cegiełkami, co by niwelowało problem poruszania). Znowu problemy grafiki, dźwięków. Również trzeba by przemyśleć częstotliwość pojawiania się: losowa, stała? Oprogramować efekty: powiększanie statku, multiplikacja piłek, działko, etc. Raczej się w to nie będę pakował.
Czy piłka powinna mieć stałą prędkość, czy też w miarę upływu czasu powinna przyspieszać? Czy cegiełki powinny być zawsze zrobione z takiego samego materiału, czy różnych (np. wymagających dwukrotnego trafienia do zniszczenia, znowu problem dźwięku)? Czy powinny być tradycyjnie prostokątne, czy może zastosować jakieś inne struktury, np. koła, trójkąty? Wówczas niestety fizyka odbić by się mocno skomplikowała. Czy cegły powinny być zawsze jednej i tej samej wielkości? Można by tu odejść od schematu, ale czy to byłoby grywalne?

Konfiguracja

Co powinno być konfigurowalne? Życia (początkowe, częstotliwość zdobywania życia podczas gry?), prędkość piłki (startowa, przyrost), trudność (w jaki sposób to oddać? przez dwa poprzednie parametry?), sterowanie, grafika (np. rozdzielczość, schemat kolorów), dźwięk (np. głośność)? Jak modyfikacje parametrów wpływających na trudność rozgrywki przełożyć na highscore?

Zapamiętywanie stanu

Niby zawsze fajnie jest móc zapisać stan gry i nawet nie byłoby to jakoś ekstremalnie trudne do zaimplementowania. Pytanie tylko, czy warto. W końcu ile może trwać jedna gra? Dziesięć minut? W takiej sytuacji można się chyba obejść bez mechanizmów odczytu i zapisu. Poza tym, jeśli wprowadzimy jakieś "highscore", to taka opcja fałszowałaby wyniki (chyba że jej użycie automatycznie wykluczałoby możliwość wpisu na tablicę wyników po zakończeniu danej rozgrywki). Z drugiej strony zrzucanie stanu programu do plików i odtwarzanie go jest samo w sobie mechanizmem, który często przydaje się podczas programowania i w związku z tym warto go opanować. Nie podjąłem jeszcze ostatecznej decyzji.

Multiplayer

Raczej będziemy rozważać wyłącznie rozwiązania na jednym komputerze. Jaki model - rywalizacja, kooperacja? Gra jednoczesna, na zmianę? Jeśli jednoczesna, to na podzielonym ekranie, czy jednocześnie na tej samej planszy? A jeśli tak, to jakie umiejscowienie paletek: w jednej linii przenikalne lub nie, jak w deblu tenisowym czy naprzeciwlegle?

Na tym kończę zarys problemów i dylematów. Zapraszam do wyrażania własnych preferencji, co do poszczególnych wyborów oraz zgłaszania nowych pomysłów (najlepiej niezbyt kosztownych w implementacji). Cenne będą też fachowe sugestie osób bardziej doświadczonych w produkcji gier - może czegoś ważnego nie wziąłem pod uwagę, albo upatruję jakiś problem tam, gdzie go nie ma (bo np. biblioteka graficzna zrobi to za mnie).

poniedziałek, 8 sierpnia 2011

Składowe sukcesu gry futurystycznej - elementy drugorzędne

Poniżej opisuję krótko te aspekty futurystycznych strzelanek, które - jak się zdaje – nie mają istotnego wpływu na komercyjny sukces. Przyznam szczerze, że obecność wielu z nich w tym zestawieniu jest dla mnie samego zaskoczeniem. Gdybym miał powiedzieć, czego oczekuję od gier komputerowych, to wiele z poniższych elementów stałoby się kluczowymi.

Fabuła

Koncept fabularny największych hitów bywa czasem oryginalny (mniej lub bardziej), a czasem zgoła sztampowy. Niezmiennie jednak sama fabuła zazwyczaj kuleje, a w najlepszym razie jest tylko dobra. Nawet stosunkowo pozytywnie wyróżniający się pod tym względem BioShock, po tym jak opadł już pierwszy zachwyt, był punktowany za niewykorzystany potencjał.

Świat przedstawiony

Konwencja może być zupełnie dowolna – od niedalekiej przyszłości, poprzez loty międzygwiezdne, aż po wariacje w zaawansowanej technologicznie przeszłości. Nie ma to większego wpływu.

Sztuczna inteligencja

Lepiej, żeby nie była żenująco słaba, jednak nie stanowi kluczowego czynnika. Kilka niewyszukanych, lecz dobrze przemyślanych skryptów powinno wystarczyć.

Oprawa dźwiękowa

Fajnie jak jest genialnym dopełnieniem, ale nie szkodzi, gdy jest przeciętna. Nikt nie wybiera gry ze względu na udźwiękowienie. Zresztą ten element chyba trudno całkiem zepsuć.

Multiplayer

Jest jasne, że dobry tryb multiplayer może bardzo podnieść sprzedaż i przedłużyć żywotność gry. Niemniej jednak można się bez niego obejść, tyle że wtedy gra musi nadrobić dobrze zrealizowanymi elementami z grupy kluczowych.

Przeciwnicy

Fajnie jak są różnorodni i mają jakieś ciekawe cechy, ale najważniejsze jest, żeby ich nie brakowało (dynamika).

Interaktywne otoczenie

Im bardziej interaktywne otoczenie (tzn. chodzi zasadniczo o to, że można je niszczyć, przesuwać, itp. - coś, co nieco na wyrost nazywane jest fizyką), tym krytycy będą się bardziej nad tym rozpływali w pochwałach. Jednak to nie to decyduje o sprzedaży.

Podsumowanie

I to tyle, jeśli chodzi o cykl "Składowych sukcesu gry futurystycznej". Jeśli komuś by na tym bardzo zależało, to mogę podesłać oryginalny, pełny materiał, jaki wysłałem w ramach aplikacji na stanowisko analityka rynku gier (bogatszy o źródła, listę gier objętych badaniem wraz z informacjami dotyczącymi sprzedaży oraz wyróżnikami futurystycznymi, wnioski i kwestię przygodówek TPP). Tymczasem jeszcze raz zachęcam do dyskusji.

Zastrzeżenie: przypominam, że analiza odnosi się to roku 2007. Wprowadzenie do tematu znajdziesz tutaj, zaś opis kluczowych czynników sukcesu tutaj.

czwartek, 4 sierpnia 2011

Skąd się biorą zwierzoludzie?

Zawsze miałem ciągoty, żeby wszędzie dopatrywać się logiki - również tam, gdzie najpewniej jej nie ma. Przykładowo jednym z nurtujących mnie zjawisk w Starym Świecie było istnienie zwierzoludzi. Skąd się biorą, czy i jak się rozmnażają? Jakie tworzą społeczności? Poniższa scenka pokazuje moje wyobrażenie na temat pochodzenia tych istot.
Wiocha zabita dechami. Krowa żująca trawę na łące, z przejmującym rykiem pada na trawę i zaczyna się cielić. Niektórzy spośród świadków zdarzenia biegną po właściciela krowy, głośno wołając. Inni biegną pomóc zwierzęciu (tudzież pogapić się), w tym wioskowy głupek. Krowa rodzi w wielkich bólach i przypłaca to życiem. Na świat przychodzi istota przypominająca człowieka z głową zbliżoną do byka (posiadającą jednak wiele ludzkich cech). Niczym cielak chybotliwie wstaje i rusza w kierunku wioskowego głupka niemowy, potykając się przy tym o własne nogi. Wieśniacy oniemali rostępują się odruchowo aż stanie się jasne do kogo chce podejść potwór, który skrzeczącym głosem wychrypie coś, jak "tata". W tym momencie jeden z wieśniaków się otrząśnie i da sygnał do zaciukania potwora widłami. Jeśli do tego dojdzie (możliwe, że bohaterowie coś przedsięwezmą) wieśniacy będą chcieli spalić truchło. Nie przywiązują żadnej uwagi do zasygnalizowanego wątku ojcowstwa - po prostu uważają, że to demon jest winien czy inna siła nieczysta.
Otóż w moim Starym Świecie zwierzoludzie rodzą się ze związków mutantów ze zwierzętami, co można zasugerować graczom, jeśli ich postacie będą świadkami podobnej sceny. Do ustalenia, czy w tym przypadku głupek faktycznie jest ojcem potwora i czy ma jakieś dostrzegalne stygmaty chaosu.

Jeśli macie inną wizję, to chętnie poznam Wasze zdanie na ten temat. A może są jakieś oficjalne informacje odkrywające sekrety zwierzoludzi, do których nie dotarłem?

wtorek, 2 sierpnia 2011

Składowe sukcesu gry futurystycznej - warunki "sine qua non"

Przyglądając się tym spośród gier, które odniosły największy sukces rynkowy w 2007 roku i które jednocześnie zawierają elementy futurystyczne, daje się zauważyć pewne istotne cechy wspólne. Są wśród nich zarówno elementy dopracowane, chwalone przez recenzentów, po prostu zalety, jak i elementy, których przygotowaniu nie poświęcono dostatecznie dużo uwagi, czyli wady. Na podstawie tego można domniemywać, jakich aspektów absolutnie nie należy zaniedbywać podczas produkcji gry tego typu, a które można sobie nieco „odpuścić” (zakładam, że zgodnie z zasadą Pareto 20% aspektów zapewnia 80% sukcesu - kwestia doboru tych właściwych). W tej notce omówię pierwsze z nich, czyli elementy składowe sukcesu produkcji z gatunku strzelanin TPP i FPP.

Doskonale (wiarygodnie) zaprojektowane poziomy

To stwierdzenie powtarza się niczym mantra. Szczególnie podkreślana jest autentyczność, wiarygodność poziomów. Nie tyle chodzi tutaj o jakąś szczególną fantazję projektantów, co o logikę. Zdaje się, że bardzo ważne jest, by układ poziomu nie sprawiał wrażenia podporządkowania grze, tylko tworzył spójną, (a w przypadku budowli, czy statków również funkcjonalną) całość.

Zróżnicowany arsenał broni

Broni musi być dużo i musi być różnorodna – nie ma zmiłuj. Wszak broń, jak żaden inny element, może czerpać garściami z konwencji futurystycznej – jedynym ograniczeniem jest tutaj wyobraźnia i fizyka świata przedstawionego. Opcjonalnie rodzajów broni może być mniej, ale za to z alternatywnymi trybami użycia, albo np. więcej niż jednym rodzajem amunicji. Konwencja realistyczna, znana z gier osadzonych w realiach II wojny światowej (i pochodnych) w przypadku gier futurystycznych nie wchodzi w rachubę.

Supergadżet

Z powyższym akapitem wiąże się poniekąd jeszcze jeden element, który z braku innego pomysłu nazwałem supergadżetem. Chodzi mianowicie o jakiś wytwór nowoczesnej technologii dający nieoczekiwane pole manewru i powodujący, że rozgrywka przestaje być zwyczajna, sztampowa, lecz stawia nowe wyzwania, jednocześnie poszerzając wachlarz możliwości działania. Przykładem tego są takie rzeczy, jak np.:
  • ADAM w BioShock,
  • automatyczny osprzęt typu działko gatlina w Halo3 i innych,
  • pistolet grawitacyjny w Half-Life2,
  • Grappling Beam - promień działający bardzo podobnie do linki - w Metroid Prime 3,
  • Nectar w Haze,
  • nanokostium w Crysis,
  • zdalnie sterowany robot zwiadowczy w Frontlines: Fuel of War, czy w Tom Clancy's Ghost Recon: Advanced Warfighter 2,
  • i wiele innych.
Każdy hit miał przynajmniej jeden taki futurystyczny supergadżet.

Dynamika

Rozgrywkę prawdziwych hitów tego gatunku cechuje przede wszystkim dynamika. Nie ma tu miejsca na powolne rozkręcanie się akcji. Jeden częściowy wyjątek pod tym względem to Half-Life 2: Episode Two, który został ostro skrytykowany za to, że pierwsza godzina gry jest ślamazarna. Przezwyciężyła to jednak magia (i specyfika) tytułu z było nie było znakomitą tradycją. W każdym razie akcja to jest to, czego oczekują fani tego gatunku. Musi się dziać.

Logiczne zagwozdki i środowiskowe łamigłówki

Bardzo mile widziane (jak najbardziej w zgodzie z powyższym akapitem) są logiczne zagwozdki i środowiskowe łamigłówki. Okazuje się, że gracze lubią czasem dla odprężenia pomyśleć. Bywa, że tego rodzaju smaczki są nieobowiązkowe do pchnięcia fabuły do przodu – jak komuś się chce, to się głowi, a jak nie, to dalej hajda na wroga.

Kierowanie pojazdami (lub warianty)

Standardem już jest możliwość sterowania pojazdami, czasem nawet jednostkami latającymi, albo mechami. Praktycznie w każdej grze (no chyba że specyfika całkiem to wyklucza) pojawia się ten element – mniej lub bardziej eksponowany.

Last but not least: grafika

Niestety poniżej pewnego poziomu nie wypada schodzić (inaczej w przygodówkach, gdzie to jeszcze czasem ujdzie). Nie koniecznie musi to wiązać się z użyciem super zaawansowanego silnika graficznego. Czasem wystarczy podrasować wygląd poprzez dobrze zrobione rozbryzgi krwi, chmury dymu, czy odłamków ścian, ruchy roślinności na wietrze, ładne wybuchy czy efekty świetlne. Innym razem wystarczy, że grafika będzie dopieszczona i klimatyczna.

Kontekst niniejszej notki znajdziesz w pierwszym wpisie cyklu. A tutaj ciąg dalszy, czyli elementy drugorzędne.