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

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

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

Game loops, gameplayowe, duże i małe

Gdzieś na forum zauważyłem pytanie: “Czy ktoś widział jakieś teksty o game loopach?”. Odpowiedź była dość, jakby to powiedzieć… zbywająca “Przecież to takie proste, że nie trzeba tłumaczyć”. No niby racja, jednak pytanie padło, a ja postaram się jako tako na nie odpowiedzieć.

Game loop to zwyczajna pętla w mechanikach gry.
Koniec.

Continue reading

Share Button

Koncept się zmienia…

Piszę to, gdyż jest to coś, co najbardziej mnie denerwuje oraz sprawia, że chciałbym rzucić tą pracę w kąt. Gdy poświęcę swój czas na implementację lub zaprojektowanie jakiejś funkcjonalności, a następnie okazuje się, że trzeba tą rzecz zrobić od nowa, gruntownie przebudować lub może nawet całkowicie usunąć moje morale leci w dół. Jest to jednak normalny proces tworzenia gry. Tak już bywa, że to, co wydawało się super na papierze, w grze całkowicie się nie sprawdza. Trzeba być gotowym na takie zmiany i nie poddawać się.

Może się też stać tak, że trzeba będzie poświęcić jakiś fajny feature na rzecz optymalizacji.

Trzeba mieć twardą dupę.

Share Button

Konkretnie proszę!

Jako designer musisz klarownie określać swoje wymagania dotyczące narzędzi Ci potrzebnych oraz gry. Współpracując z innymi staraj się unikać słów, które pozostawiają jakieś niedopowiedzenia, typu “powinno”, “chciałbym”, “mniej więcej”

Prosząc programistę o stworzenie jakiegoś narzędzia musisz jasno określić jak powinno działać, jakie będą dane wejściowe, a co ma być na wyjściu. Oczywiście nie zagłębiaj się w działanie programisty zbyt głęboko. Twoim zadaniem jest określenie wymaganego wyniku.

To samo tyczy się mechanik gry. Ty decydujesz o tym co ma się stać, gdy gracz wykona konkretną akcję. Jeśli wykonasz swą pracę niedokładnie lub pozostawisz innym pole manewru, możesz mieć pewność, że ktoś, kto będzie wykonywał dany element gry wykona go nie po Twojej myśli.

Share Button

IGK 2017

Niedługo rozpocznie się kolejne IGK w Siedlcach na którym się pojawię.

Może was też to zainteresuje? Poniżej link do rejestracji

IGK 2017

Share Button