Wpisy autora

Almora – luty 2012

Minął już tydzień odkąd mieszkam w Szkocji, ułożyłem sobie tu już większość spraw więc mogę wrócić do Almory. Zacząłem od kolejnej zmiany w interfejsie – tym razem już prawdopodobnie ostatecznej (chociaż pewnie jakieś szlify dojdą). Na kolejnych screenach w tej notce możecie zauważyć, jak w ciągu dwóch wieczorów zmieniałem część odpowiedzialną za wyświetlanie sklepów. Teraz zabieram się za tę właściwą część, wyświetlającą ekwipunek postaci, questy czy opcje. Kolejnym etapem jest dokończenie edytora itemów, tak, żeby można było wygodnie je zmieniać i ładować nowe statystyki nawet w trakcie grania, oraz nowe dodatki do edytora map, pozwalające na ustawianie questów i niektórych interaktywnych elementów (jak NPC). Sporo roboty w której kodu przybywa, a na ekranie nic się nie zmienia, ale cóż – taka jest kolej rzeczy. Jak tylko uporam się z tymi zagadnieniami, przyjdzie czas na podrasowanie przeciwników i pod koniec marca chciałbym już zacząć testować questy i właściwą grę. Edytory map i itemów wybrałem z jeszcze jednego powodu – za 2-3 tygodnie pojawi się GameMaker Studio, który zaoferuje kilka nowych ficzerów niedostępnych obecnie w GM, a które w Almorze można by fajnie wykorzystać (część z nich i tak miała być, ale teraz zamiast pisać je od zera, użyję po prostu odpowiedniej funkcji, co skróci czas). Za dwa – trzy tygodnie spodziewajcie się kolejnych screenów i nowinek.


Almora – progres

Od czasu targów SGS nic nt. Almory nie pisałem… bo i niewiele się w tym czasie stało. Ostatnie 3 tygodnie po targach SGS minęły mi bardzo intensywnie – nasza działalność została zauważona przez YoYoGames, twórców GameMakera i zostałem tam zaproszony na rozmowę o pracę – w związku z czym spędziłem 4 dni w Szkocji. Jeśli dostanę pozytywną odpowiedź, to prawdopodobnie prace nad Almorą przyspieszą, bowiem dostanę w ręce GM Studio i będę mógł nad grą czasem siedzieć także w pracy, a sama gra doczeka się kolejnych optymalizacji, jak chociażby runner w C++ zamiast Delphi (dzięki czemu na słabszych sprzętach FPS będzie lepszy), oraz być może wpływ na zmiany w GM Studio które pozwolą na jeszcze lepsze zoptymalizowanie gry. Do końca miesiąca raczej niewiele nowego w tym temacie, ale od stycznia prace będą ostro kontynuowane – chciałbym w połowie roku mieć skończony projekt.
Przed sylwestrem powinna też ruszyć oficjalna strona gry (almora.pl), na której jednak informacji z procesu developingu publikować nie będę (od tego jest strona GS) – pojawią się tam screeny, opis gry – będzie to typowa strona informacyjna nt. gry skierowana pod nabywców (nie martwcie się, komercjalizację planujemy tylko dla anglojęzycznej wersji).


Szczecin Games Show – Zima 2011



Almora DevDiary #3 – dialogi

Dziś trochę o systemie dialogów. Przez kilka lat mojej pracy z Game Makerem poznawałem jego zalety – dialogi to chyba jeden z większych progresów jaki uczyniłem. Pierwsze z nich były wyświetlane w pętli while literka po literce w tej samej klatce obrazu, na której „dorysowywane” były kolejne znaki – tak jak np. w Pokemonach. Potem był obiekt któremu ustawiałem odpowiednie zmienne z tekstem i włączałem/wyłączałem animację. Jednak w momencie, gdy do dialogów musiałem dodać również możliwość odpowiadania, dochodziło całkiem sporo zmiennych które trzeba było dodać, oraz warunków (przed pytaniem, w trakcie, po, wybranie odpowiedniego) – krótki dialog potrafił zjadać kilkadziesiąt linijek kodu. W przypadku Almory Online w wersji 0.7.6, skorzystałem z jednej ze struktur danych jaką oferuje GM, zwanych kolejkami. Teksty danego dialogu były wrzucane na kolejkę (stos LILO), a potem skrypty same go ściągały, dzięki czemu mogłem sobie pozwolić na zmniejszenie liczby warunków – nie mniej w przypadku opcji wyboru kod niewiele się zmienił.
Tworząc jednak Almorę singlową nauczyłem się w GM jeszcze jednej rzeczy – każda struktura danych zwraca referencję na siebie w postaci jakiejś cyferki – a cyferkę można przechowywać w innej strukturze/tablicy, tworząc w ten sposób zagnieżdżone struktury. W ten sposób stworzyłem sobie listę tego jakie dialogi mogą być w grze. Do głowy przyszły mi dialogi normalne, ramki z tekstem tytułowym na środku ekranu (np. nazwa rozdziału, czy questu, czy info o nagrodach), tekst na środku ekranu bez ramki (nazwy miast), pytania i listy wyboru, oraz na wszelki wypadek gdyby mi wpadło kiedyś coś innego do głowy – skrypt – gdzie zamiast tekstu na ekranie wykonywany będzie skrypt. Drugą rzeczą, którą ma każdy z tych dialogów, to tekst. Jeśli jest to skrypt, będzie to jego nazwa, ale to nadal tekst. Trzecia rzecz która się tutaj rzuca, to możliwe odpowiedzi. Ostatnią, jest kolejny dialog. W ten sposób stworzyłem strukturę ds_map (klucz/wartość), w której zapisywane będą dialogi. Pierwsza mapa trzyma kolejne id dialogów, a wartościami są kolejne mapy zawierające jako klucze typ, tekst, odpowiedzi, kolejny dialog. Oczywiście gdy nie ma odpowiedzi, wartość jest pusta, a gdy dialog jest ostatnim, id jest zerowe. W ten sposób, zamiast dla każdej postaci pisać skomplikowane warunki na wypadek różnych wyborów odpowiedzi i różnych dialogów zależnie od sytuacji, podaję tylko id skryptu od którego zaczyna się dialog, a resztę obsługuje już gra. Skrypt który to wszystko obsługuje jest porównywalny z tym który w Almorze 0.7.6 obsługiwał jeden krótki quest – z tym wyjątkiem, że teraz mogę stworzyć nieskończoną listę questów, nie dodając już kodu. Co więcej, dialogi mogą być wczytywane z zewnętrznego pliku, więc mogą je przygotować nawet nie programiści. I chociaż spędziłem nad tym systemem 3 dni, to zamiast siedzieć nad każdym z kolejnych questów 3-7 dni, będę potrzebował 3-6 godzin. Możecie się więc spodziewać w Almorze 1.0 dużo ambitniejszych questów niż w wersji online, oraz rozbudowanych dialogów – bo jak już wspomniałem, aby je dodać, nie trzeba będzie nawet programować. Na obrazku z prawej macie rozrysowany przepływ skryptu który obsługuje dialogi.
Poniżej screen porównujący ten sam quest w Almorze Online 0.7.6 oraz Almorze 1.0 (single).


Almora – DevDiary #2

Zbliżają się targi SzczecinGamesShow na których Almora po raz pierwszy będzie dostępna jako grywalny kawałek kodu. To wciąż gra wymagająca dopracowania, ale widać już postępy. Dziś opowiem krótko o sztucznej inteligencji nad poprawą której pracuję od kilku dni. Aby AI wyglądało prawdziwie, trzeba było najpierw stworzyć drzewo zachowań przeciwników (widoczne na zdjęciu z lewej). Jak widzicie na drzewie, nie ma tutaj słowa „bohater”, a zostało użyte słowo „cel”. Nie jest to bynajmniej pomyłką czy uproszczeniem – w Almorze więksi przeciwnicy będą mogli również atakować tych mniejszych, co może czasem okazać się przydatne taktycznie – ot np. wyprowadzamy jakiegoś potworka w głąb lasu, gdzie inny zacznie go atakować. Oczywiście w tej sytuacji tracimy EXP – ale jest to coś czego w Almorze do tej pory nie było. Wprowadzenie samego drzewka do gry nie było aż tak trudne – dużo większym wyzwaniem okazuje się poszukiwanie drogi które wciąż spędza mi sen z powiek – mam nadzieję, że w Szczecinie nie będzie się czego wstydzić i usłyszę same pochwały. Do przeczytania w następnym pamiętniku dewelopera.


GearStudio zaprasza na Szczecin Games Show

W dniach 25 – 27 listopada znajdziecie nas na targach Szczecin Games Show w CH Turzyn w centrum Szczecina. To świetna okazja zagrać w grywalne wersje  Alient Territory, oraz Almory! Obecnie skupiamy nasze siły właśnie na przygotowaniu gier pod owe wydarzenia – warto nas odwiedzić, bowiem gry będą dopieszczane do ostatniej chwili i na pewno nie zabraknie niespodzianek. Ja już dziś mogę zdradzić, że Almora będzie grywalna, wraz z jakimiś prostymi questami, oraz na bezprzewodowym padzie od XBoxa (mimo to głównym kontrolerem nadal pozostaje klawiatura PC). Z kolei w Alieny będzie można jak zawsze pograć z Borkiem oraz innymi graczami – rozgrywka z obu gier będzie wyświetlana na ekranach przy naszym stoisku. Zapraszamy!


Almora – wieści #2

W kolejnym odcinku naszej niekończącej się opowieści zwanej Almorą wciąż nie ujawniam daty premiery, ale mam kilka informacji które na pewno są bardziej na plus niż na minus.

10/11 Września odwiedziłem Zjazd Twórców Gier, gdzie m.in. można było obecną wersję Almory zobaczyć na żywo, tam też prezentowałem różne ciekawostki dotyczące optymalizacji gier które w Almorze wykorzustujemy. Miesiąc był dość ciężki (ZTG, wydanie bety GM HTML5 którą testowałem, start projektu w pracy przez który wszedłem na kilka dni w tryb praca-sen bez innych przyjemności), ale prace wciąż posuwają się do przodu (obecnie rozszerzam edytor map o możliwość dodawania NPCów i konfigurowanie ich scieżek, oraz ustawianie elementów generujących zdarzenia w grze – np. to czy przez daną bramę da się przejść, albo wyzwalanie questów).

W trakcie ZTG była też okazja porozmawiać z kilkoma osobami które w Almorę Online grywały swego czasu całymi godzinami i przeanalizowanie niektórych pomysłów – i tak, zgodnie z tym co już wcześniej planowałem, na miesiąc przed premierą odbędą się zamknięte beta testy. Kilka wybranych (przez nas) osób dostanie od nas Almorę, oraz edytor itemów, a ich zadaniem będzie przejście gry co najmniej 1 raz od początku do końca, przejście gry z opcją nieśmiertelności dla poszukiwania błędów, oraz w miarę potrzeb wyważanie itemów. Na koniec testów zbierzemy wszystkie dane i z tych wyważonych itemów stworzymy najbardziej uśrednioną wersję, tak, aby rozgrywka była w miarę równo rozłożona. W czasie testów ja będę zajmował się dopieszczaniem gry (np. lepsze animacje menu, interfejsów itp.), które na obecnym etapie mogę sobie pominąć, oraz przygotowaniem intra.

Po zakończeniu prac nad Almorą wrócimy z Borkiem do tematu wersji Online – przyszły rok to premiera GameMakerStudio, które dzięki zapisowi skryptów i zasobów w normalnych plikach txt/xml pozwoli nam pracować z systemem kontroli wersji (SVN, GIT), dzięki czemu skończy się sytuacja w której tylko jedna osoba pracuje nad jedną grą i będziemy mogli ją tworzyć równocześnie w kilka osób łącząc swój kod w prosty i szybki sposób (bez wysyłania całego projektu). Do tego GM9 przyniesie obsługę DX9 oraz trochę nowych funkcji, więc na pewno gra przyspieszy, a może uzyska też jakieś nowe efekty które do tej pory nie były możliwe :) O samym tworzeniu w teamie z pomocą SVN/GIT i GameMakerStudio na pewno pojawi się artykuł na GMCLAN.org, gdzie dowiecie się jak z tej funkcjonalności korzystać samemu :)


Dev Diary #1 – dodatkowe narzędzia

Jak pewnie niektórzy z was wiedzą, nasze gry tworzymy za pomocą Game Makera – nie jest to jednak jedyny zestaw narzędzi wykorzystywany do pracy. Pomijając już programy graficzne wykorzystywane do tworzenia całego świata, np. przy tworzeniu Almory wykorzystywane są jeszcze inne aplikacje. Świat Almory znacznie się rozrósł od wydanego dawno temu Hidden Swords – zarządzanie niektórymi zasobami stało się przez to dość kłopotliwe – ot dla przyspieszenia ładowania mapy postanowiliśmy ją podzielić na strefy – niestety przez to Room Editor zawarty w Game Makerze stał się nieprzydatny, ponieważ mapa jest wczytywana fragmentami z pliku. Trzeba było więc stworzyć własny room editor, ale dzięki temu można go też było wyposażyć w kilka bajerów, jak rozkładanie trasy dla NPC, ustawianie spawn pointów, czy obracanie otoczenia  – wszystko to potem można zapisać w plik i gotowa gra odczytuje w locie potrzebne fragmenty mapy.
Podobnie sprawa ma się z przedmiotami dostępnymi w grze. Zarządzanie (czytaj dalej…)


Wieści z Alebry

Spora część z was na pewno oczekuje nowych wieści i screenów na temat Almory. Jeśli chodzi o te drugie, to znacie moją opinię – graficznie gra nie przeszła jakichś kolosalnych zmian w stosunku do tego co widzieliście w Almorze Online 0.7.6, więc bez sensu pokazywać wciąż to samo… co nie znaczy, że w samej mechanice gry nic się nie zmienia.
Mimo pewnych problemów które mnie ostatnio nękają jak rozbity samochód, czy zepsuty laptop (na szczęście częściej służył za backup, więc straciłem raptem jakieś 3-4 godziny prac nad grą), prace nad grą postępują w dobrym kierunku. Ostatnio skupiam się na sztucznej inteligencji przeciwników – okazuje się, że wersja online miała swoje zalety – pewne opóźnienia w dostarczaniu danych między klientem a serwerem powodowały, że chociaż ruch przeciwników był mniej dokładny, to bardziej wygładzony – teraz, gdy AI reaguje na wszelkie zmiany 60 razy na sekundę zdarzają się sytuacje, że omijając przeszkody przeciwnicy reagują trochę zbyt energicznie… :) Działają już systemy dialogowe, sklepy i pojawiają się pierwsi NPC w miastach. Po wrześniowym Zjeździe Twórców Gier pomyślę nad jakimś trailerem Almory, także stay tuned!


© 2011 GEAR-STUDIO. Wszystkie prawa zastrzeżone.
Szablon: Jarrah autorstwa Templates Next, poprawki oraz modyfikacja Gear-Studio, tłumaczenie: Wordpress PL | Działa na WP