Poznań Game Arena 2017

Na początku października odbędzie się jeden z większych eventów związanych z gamingiem. Rok temu miałem przyjemność tam zawitać i nie żałowałem. Multum atrakcji, multum ciekawych rzeczy. Sporo starych znajomych i zdobyci nowi. No i przebyte kilometry… dużo kilometrów 🙂

Jeśli jeszcze nie mieliście okazji się tam pojawić, to zapewniam was, że warto. Jeśli szukacie pracy w branży, to jest to dobre miejsce, aby zacząć się rozglądać.

W planie mam zrealizować kilka mini wywiadów dla przyszłych tekstów na bloga w formacie, który podpowiedział mi Frozen. Mam zamiar wypytać się o rzeczy takie, jak prototypowanie, level design, sound design, filtrowanie pomysłów, szukanie wydawcy, i tak dalej. Może macie jeszcze jakieś pomysły na to o co można wypytać devsów? 🙂

LINK PGA

Share Button

O Twea(r)kingu jeszcze więcej – by FrozenShade

Pod moim postem o tweakingu różnych rzeczy pojawił się świetny komentarz FrozenShare (współtwórcy SkullStone, którego trailer ostatnio zamieściłem).
Oto ten komentarz:

Parametry broni, lokalizacja… Myślę, że będę miał tu coś ciekawego do powiedzenia. Posłużę się przykładem z mojej gry Skullstone.
Broń w grze posiada kilka parametrów: jakiś bazowy damage, rodzaj, odległość (w polach gry) na jaką poleci, gdy zostanie rzucona oraz kilka innych parametrów związanych z mechaniką. Wszystko to trzymane jest w pliku XML.
Taka broń (jak i inne przedmioty) musi też posiadać garść innych informacji, np ikonkę – jej nazwę i ścieżkę (względną do zasobów gry) można z powodzeniem trzymać we wspomnianym pliku. No a co z nazwą? Nazwa oczywiście też…. I tu pojawia się problem multilanguage – jak to trzymać?

Można każdemu tekstowi w grze nadawać jakiś identyfikator i wszystkie teksty dla danego języka trzymać w osobnych plikach. Rozwiązanie to stosuję… w prostych programach okienkowych gdzie jedynymi tekstami są komunikaty oraz napisy na przyciskach i w okienkach – bo w grach tego tekstu przeważnie jest więcej. Musimy tłumaczyć nie tylko nazwy przedmiotów ale i napisy na GUI, dialogi, jakieś hinty….

A co jeśli by potraktować tekst jako obiekt?
Wracając do wspomnianego itemka w pliku XML, zamiast pisać <name>nazwa itemka</name> można przecież napisać <name><pl>nazwa itemka</pl><en>item name</en></name> a znacznik ‘name’ potraktować jako konstruktor obiektu klasy np. MultilangString. Teraz wystarczy ‘jakoś wykombinować’ (w różnych językach robi się to inaczej) żeby obiekty tej nowej klasy mogły się dodawać do obiektów String (zwykłe łączenie tekstu) i żeby podczas tej operacji był sprawdzany aktualny język (trzymany w jakimś globalnym statiku) i mamy multilang zrobiony praktycznie bezboleśnie z poziomu kodu oraz łatwy w edycji z poziomu plików.
Teksty we wszystkich plikach (dialogi, questy, opisy przedmiotów) zawierały by odpowiednie znaczniki <pl>, <en> i ewentualnie inne, przy dodawaniu obsługi nowego języka dodajemy po prostu nowy znacznik, np <fr> oraz zawartość, edytujemy na raz tylko jeden plik. Oczywiście nowy język musimy też dodać w kodzie… no chyba, że posunęliśmy się do stworzenia pliku z listą języków, gdzie dla każdego języka mamy jego nazwę oraz… znacznik 😉

Share Button

SkullStone trailer

Oto trailer gry zaprzyjaźnionego studia. Lajki i komentarze mile widziane, pozwoli im to dotrzeć ze swoją grą do większej ilości graczy.

Share Button

Tewa(r)king

Dobrą praktyką jest określenie zmiennych, które będziesz modyfikować jako designer do modyfikowania właściwości różnych elementów gry.

Powiedzmy, że posiadasz kilka broni w grze, które musisz zbalansować. Hardcodowanie wszystkiego jest złym pomysłem. W momencie projektowania mechaniki broni, postaraj się określić parametry, które będziesz chciał zmieniać. Niech to będzie szybkostrzelność, celność, odrzut itd… Niech kod odnosi się do pliku tekstowego, xmla, tabelek, które będzie Ci łatwo edytować.

Podobnie sprawa ma się z lokalizacjami językowymi. Nie umieszczaj w kosie gry tekstu, a jedynie odwołania do plików lokalizacyjnych, aby móc łatwo tworzyć dodatkowe wersje gry. Trzeba jedynie pamiętać o tym planując UI, gdyż może okazać się, że to, co w jednym języku zajmuje 10 znaków w innym może zajmować 30.

Share Button

Telemetria. Kilka dodatkowych słów.

Muszę dopowiedzieć coś o telemetrii. Coś ważnego, o czym zapomniałem. Chodzi dokładnie o to, jak zabrać się do tego zagadnienia.

Po pierwsze musisz zadać sobie pytanie: Na jakie pytanie chcę dostać odpowiedź. Następnie musisz określić jakie dane będą potrzebne ci do odpowiedzenia na to pytanie i przy jakich okazjach powinny być zbierane.

Przykład?

Chcę wiedzieć gdzie i z jakiego powodu gracze umierają. Aby to stwierdzić potrzebujesz zebrać dane położenia, oraz przyczynę śmierci w czasie, gdy wystąpi event ‘śmierć_gracza’.

Mając już dane trzeba je jakoś uporządkować. Excel 2016 posiada narzędzie do narzucania danych na mapy! Z jego pomocą można bardzo łatwo stworzyć heatmapę.

Share Button

Digital Dragons

Obiecałem wam relację z Digital Dragons…

Niestety wyszedłem nieco rozczarowany i nie mam za bardzo o czym opowiadać. Nie znalazłem w tym roku tam nic ciekawego poza wykładami, które były na świetnym poziomie. Kilka piwek, kilkoro nowych znajomych i nowa wiedza. Było kilku wystawców, którzy szukali pracowników. Niby OK… ale ubiegłoroczne PGA dało mi dużo więcej, niż tegoroczne DD.

Na YT znajdziecie już filmiki z prelekcji. Warto popatrzeć.

Share Button

Telemetria w level designie.

To coś, czego bardzo brakowało mi podczas pracy przy ostatnim projekcie. Brakowało mi faktycznych danych, które pokazałyby mi, w jaki sposób gracze poruszali się po poziomie, który stworzyłem, a swoje poprawki mogłem opierać jedynie na obserwacji gry innych ludzi w firmie oraz na ich feedbacku.

Mając odpowiednie dane, które spływałyby do mnie z każdej rozegranej gry mógłbym przeprowadzać proces iteracji dużo sprawniej. Dowiedziałbym się, w jaki sposób ludzie błądzą na moim poziomie, jakie ścieżki są najpopularniejsze. Chciałbym wiedzieć, gdzie przeciwnicy dostrzegali bohatera, gdzie ginęli, gdzie ginął gracz, jak gracz się poruszał. Dane te z pewnością pomogłyby też w optymalizacji poziomu trudności w stosunku do reszty gry. Optymalizacja wydajności też mogłaby nieco zyskać. Wiedziałbym, które pomieszczenia są ogólnie pomijane i mogłyby zostać zwyczajnie zamknięte.

Share Button

Slavic Game Jam po raz kolejny

Po raz kolejny zapraszam was do wzięcia udziału w tym wydarzeniu. Jak buk da, to i ja się tam pojawię, choć niestety jammował nie będę, ale mam nadzieję pogadać z innymi 🙂

Więcej informacji pod tym linkiem

Share Button

Kurs pisania scenariuszy gier komputerowych

Pierwszy w historii kurs pisania scenariuszy gier komputerowych rusza w lipcu Krakowie. Warsztaty poprowadzą eksperci z CD Projekt, Reality Pump Studios i GameDesire. Udział jest bezpłatny, a aplikacje można składać do 16 czerwca. Szkoła Letnia Scenariuszy Gier Komputerowych to pierwszy w historii projekt dla scenarzystów, twórców literackich, copywriterów, którzy chcą tworzyć scenariusze gier komputerowych. Continue reading

Share Button

Iteracja

Iteracja – Czynność powtarzania czegoś w ramach pętli. Ta definicja z pewnością znana jest programistom. W pracy designera ta pętla wygląda następująco:

Początek pętli > Zaplanowani zmian (ulepszeń) > Wprowadzanie zmian > Weryfikacja zmian > Koniec pętli.
Tylko po co to?
Iteracji w designie używa się, aby ulepszać to, co stworzyliśmy na początku. Krok po kroku zbliżając się do celu, którym jest oczywiście stworzenie dobrego produktu.

Continue reading

Share Button