12 lutego 2018

Wojownik Autostrady Piekło na Autostradzie

Dzisiaj mamy niezbyt okrągłą rocznicę urodzin Joe Devera (dokładnie  62 rocznicę). Pisarza znanego
w Polsce głównie z cyklu gier paragrafowych opisujących losy Cala Phoenixa czyli Wojownika Autostrady. Dever ma na koncie dużo więcej gier paragrafowych z czego kilka jest o wiele bardziej rozbudowanych fabularnie niż przygody Cala. Więcej informacji znajdziecie na angielskiej wersji wiki dotyczącej Joe Devera.

Ale nie o  tym miało być.

Z dniem dzisiejszym ogłaszam zakończenie prac nad większymi elementami silnika paragrafowego utrzymującego interaktywną wersję Wojownika Autostrady.  Przy okazji usunąłem ekran witający informacją o beta testach. W pełni uruchomiłem wszystkie przewidziane w projekcie funkcjonalności i oddaję teraz tę grę w wasze ręce. Mam nadzieję, że przechodzenie jej dostarczy wam tyle samo radości jak mi przerobienie jej w wersję on-line.
Droga do zakończenia projektu była dłuższa niż się spodziewałem, ale cieszę się, że podjąłem się tego zadania.
Wiec jeśli tu jesteś to zmierz się z przeciwnościami losu jakie czekają każdego kto chce przekroczyć spalone słońcem i zniszczone wojną bezdroża Teksasu jako:



interaktywna paragrafówka on-line


p.s.
Wszelkie uwagi nadal są miło widziane. Drobne poprawki będę wprowadzał na bieżąco.
Gra zostanie na podanym adresie do końca świata i jeden dzień dłużej , czyli do momentu w którym będę płacił za domenę :)  .



11 lutego 2018

Angular Freeway Warrior Highway Holocaust

Droga dobiega końca. Angularowy Wojownik Autostrady właśnie otrzymał ostatni dodatek, który wymieniłem we wpisie z września zeszłego roku. W tej chwili jestem w trakcie szlifowania rozwiązania związanego z przełączaniem języków.

Nie sądziłem, że napisanie tej paragrafówki, zajmie mi tyle czasu. Gdyby ktoś, we wrześniu, powiedział mi, że na efekt końcowy będę musiał czekać tak długo i że  będzie mnie to kosztowało tyle pracy to prawdopodobnie nie podjąłbym się tego zadania. Może to i lepiej. Udało się i jestem z siebie zadowolony. Sporo w tym czasie nauczyłem się - tak na temat angulara jak i samej pracy nad organizowaniem swojego wolnego czasu. Niemal przestałem grać na kompie  (sądzę że spokojnie 5x mnie gram w gry niż jeszcze pół roku temu), oglądać głupoty w necie czy cokolwiek robi się przy kompie, aby zmaksymalizować marnowanie wolnego czasu.

Ostatni miesiąc był mega trudny - widziałem już koniec prac, ale cel nie przybliżał się gdyż nie poświęciłem mu wystarczająco wiele uwagi. Po prostu przemęczyłem się pisaniem gry, nauką i pracą w efekcie szybkość pracy spadła dramatycznie.

Nie można jednak poddawać się u kresu drogi! Jeszcze kilka, kilkanaście linii kodu przede mną.

Poniżej zrzuty ekranowe z wersji polsko-angielskiej. Możliwe jest przełączanie się na bieżąco między językami. Nie wszystko jest przetłumaczone (np. nie tłumaczyłem opisów efektów ataków), ale to co jest spokojnie wystarcza, aby osoba anglojęzyczna mogła się spokojnie pobawić. Dorzucę jeszcze tłumaczenia nazw przedmiotów (tego brakuje), wyczyszczę angielską wersję i będzie koniec!



Dla próby już  wrzuciłem tę wersję na serwer, ale wymaga kilku poprawek. Może jakimś cudem zdążę (przed 12.02) wrzucić wszystko w ostatecznej wersji na serwer ale grać oczywiście można:

08 lutego 2018

Dead line się zbliża

Już niedługo (12.02) założony termin zakończenia prac i ostatecznej prezentacji gry, a ja siedzę i dorabiam polsko-angielskie etykiety.

I jeszcze sporo przede mną. Mam nadzieję, że wyrobię się do poniedziałku .





25 stycznia 2018

Wojownik Autostrady beta testy

Beta test Wojownika trwa od kilku dni i, co mnie niezmiernie cieszy, kilka osób poza zwyczajnym otworzeniem strony zgłosiło uwagi. Niewiele tych uwag (w sumie na dzisiaj 13), ale taki feedback także jest dla mnie ważny - ktoś poświęcił czas, aby przejrzeć to co napisałem. Kilka zgłoszeń zostało opatrzonych zrzutami ekranowymi, kilka propozycjami zmian.
Najciekawsze zgłoszenie dotyczyło ... utrudnionego korzystania z paragrafówki przez osobę niewidomą ponieważ większa część rysunków nie posiadała cechy alt lub tilte co powodowało, że gra stawała się niegrywalna dla osoby używającej ekranowego readera.

Większość uwaga poprawiłem i zostały wrzucone do gry. Jednakże nie tylko o tym chciałem pisać. Na szersze podsumowanie przyjdzie jeszcze czas.

W międzyczasie wykonałem pierwsze podejście do tłumaczenia paragrafów i samej gry na angielski. Tekst paragrafów będzie pochodził ze strony projektu aon, o czym wcześniej wspominałem. Muszę dopisać angielskie testy wyświetlanych graczowi powiadomień związanych bezpośrednio z działaniem gry. Na tę chwile mały zrzut poniżej, na razie zmiana obejmuje tylko dialog ustawień.



Druga - równie ważna rzecz. Już niemal działa podsumowanie postępów w grze. W momencie śmierci wyświetlany jest okno dialogowe opisujące dokonania gracza. Poniżej zrzut.


Dodatkowo postęp w czytaniu paragrafu można obejrzeć na grafie paragrafów. I tu też, poniżej zrzut.

Kropka zielona (z lewej na górze) to paragraf 1, kropki czerwone - paragrafy, które gracz minął w grze, zaś kropka czarna (na dole na środku) to miejsce śmierci gracza.

Rozwiązanie muszę doszlifować (np. postęp powinien być zapisywany w momencie zapisu postaci czy wyświetlany na koniec gry), ale już teraz posiada 90% założonej funkcjonalności.

p.s.
To są ostatnie rzeczy jakie chce dodać do gry! No chyba, że dorzucę jeszcze dźwięki :P

17 stycznia 2018

Wojownik Autostrady, beta on-line



To ten dzień!
Dzisiaj po raz pierwszy mój silnik napędzający paragrafówkę ujrzał światło dzienne, a tak po prawdzie został wystawiony w internecie.


Na podanym poniżej adresie możecie zanurzyć się w niebezpieczny świat postapokaliptycznej Ameryki. Paragrafowej Ameryki :D

Wojownik Autostrady (beta)


Przypominam, że jest to wersja beta i ew błędy oraz uwagi możecie zgłaszać pod podanym niżej adresem:
Zapraszam do zabawy!

p.s.
Bądźcie wyrozumiali :)

p.s.2
Część zabezpieczeń anty-oszukańczych została wyłączona (np. odświeżenie strony ładuje generowanego w tle bohatera). Docelowo silni nie będzie tak działać .

07 stycznia 2018

Wojownik Autostrady dead line

W jednym z komentarzy na moim blogu Borejko zasugerował, aby grę wypuścić na rocznicę urodzin Joe Devera, czyli 12 lutego. Taki typowy deadline wydania. I chyba tak też się stanie.

Ale zanim to nastąpi postaram się uruchomić beta-testy. Przygotowuję samą grę jak i ... uwaga, domenę w sieci, w której gra wyląduje! Domena nie będzie bezpośrednio nawiązywała do nazwy gry, ale będzie to moje małe miejsce w Internecie. Docelowo trafi tam także Sladum.

Walka z prostymi opisami efektów obrażeń.
Postaram się włączyć w stronę system zgłaszania błędów, ale jeśli mi się to nie uda to poproszę ew. klikających o wrzucanie błędów tu, na bloga. Tak czy inaczej następne tygodnie zapowiadają się na ciekawe.

A w samej grze, z dużych rzeczy, brakuje już tylko możliwości przełączenia się na wersję angielską. Dodałem wspominany we wcześniejszych wpisach opisowy tryb walki, w którym przy okazji obrażeń dodawane są proste, jednozdaniowe efekty ciosów. Gra dostaje lekko rpgowy szlif i gdyby mieć nielimitowaną ilość czasu (lub wsparcie) można by ten element dopieścić (np. uzależnić opisy obrażeń od typu używanej broni). Ale naprawdę nie mam już na to czasu. I siły i chęci. Tak czy inaczej działa i urozmaica walkę.

Ten element jak i wykonane ostatnio poprawki skłoniły mnie do pewnego przemyślenia. Dlaczego napisanie, wydawałoby się, prostej gry zajęło tyle czasu i powstało tak dużo kodu? Przecież to zwykła gra tekstowa z jednym bohaterem. Nawet nie ma sensownej grafiki. Skąd ten narzut czasowy?
Na spokojnie oceniając prace nad grą doszedłem do następujących wniosków:
  • pierwszy raz zrobiłem grę od 0 do (właściwie) końca, i to końcówka, która już zajęła ponad miesiąc czasu, zburzyła kilka wcześnie zaimplementowanych mechanizmów,  w efekcie trzeba było je przepisać lub poprawić
  • źle oceniłem poziom komplikacji części elementów np.  wykonanie mapy zajęło mi tak ze 3x więcej czasu niż przewidywałem  (i spokojnie jeszcze można nad nią posiedzieć), podobnie obsługa kostki czy menu postaci
  • obsługa zasad gry, nawet tak prostych jak w paragrafówce, może być niesamowicie skomplikowana (szczególnie jeśli ich twórca sam się do nich nie stosuje)
  •  przerobienie tak dużej ilości paragrafów do formy czytelnej dla silnika gry (350 sztuk!) to po prostu masakra i nie sądzę abym jeszcze raz miał na to ochotę
  • nocne pisanie skutkuje duplikowaniem kodu i przedłużeniem pracy nad, wydawałoby się, prostymi rzeczami
  • przydałaby się pomoc innej osoby w pisaniu gry, zawsze to ktoś z odmiennym podejściem do rzeczywistości i nowe pomysły. Część stworzonych rzeczy (np. zapis na local Storage) pojawiło się dzięki podszeptom osób, którym powiedziałem o projekcie lub pokazywałem działające elementy.

Oczywiście jest też jeden wielki plus, którym jest wyrobienie nawyku programowania w domu. Wieczorami nie marnowałem czasu na głupoty, a na naukę i pisanie gry. Pomoże to przy kolejnych projektach.

Jak tylko zakończę ten jeden :)

28 grudnia 2017

Angularowy Wojownik Autostrady: MAPA!

Wreszcie znalazłem czas, aby dokończyć mapę gry.
Teraz dokładnie wiadomo jak dużą odległość pokonaliśmy w drodze z McKinney do Big Spring wraz z postępem w grze i przeczytanymi paragrafami. Wykonanie tego elementu zajęło mi mniej czasu niż się spodziewałem! Pozostaje tylko się cieszyć.

Cóż, bez zbędnego pisania, poniżej zrzut ekranowy prezentujący efekt.



Jeszcze nie wiem czy w jakichś sposób wyróżniać punkty np. w zależności od typu. Tak czy inaczej  jest to jedno z ostatnich dużych ulepszeń gry jakie przewidziałem jeszcze przed napisaniem pierwszej linii kodu.
Zakończenie prac już blisko...

24 grudnia 2017

Angularowy Wojownik beta testy ?

Pojawił się propozycja od osób, które widziały grę w aktualnej wersji, aby wystawić ją  do testów.  Takie typowe beta-testy przed ostatecznym wdrożeniem i zanim program zdobędzie wszystkie założone możliwości.

Po rozważeniu pomysłu powoli skłaniam się ku tej propozycji.  Jedyna trudność to postawienie gry w miejscu, do którego miałbym łatwy dostęp czyli serwer z ftp i zarejestrowana domena. A takowego miejsca w tej chwili nie mam :D  (co, patrząc na to co robię na co dzień, jest dziwne :) ) .

W najbliższych dniach zamierzam więc wykupić domenę oraz jakąś lokalizację w sieci, w której będę mógł zająć trochę miejsca. Przy okazji wystawię jakiegoś redmina czy inną jire / bugzille (heheheh)  na potrzeby samego procesu zgłaszania błędów przez zainteresowanych użyszkodników :).

A paragrafówka spytacie...
Poprawiam różne drobne błędy. To tu to tam czasem coś się przewróci. Dorobiłem kilka prostych ekranów powitalno - wprowadzających, wyciąłem sporo zbędnego kodu (mój kod nie przeszedł mojego code-review :D) i jeszcze drugie tyle muszę wyciąć, zmieniłem trochę wygląd menu postaci (teraz prawie mi się podoba) i dodałem rysunki.
Przez chwilę korciło mnie, aby całe menu postaci zrobić na html-owych canvas, ale na szczęście powstrzymałem swoje absurdalne zapędy. Patrząc na moją prędkość nocnego pisania kodu wydłużyłoby to proces powstawania gry o kolejny miesiąc :D

Pisanie kodu w nocy idzie mi dużo, dużo wolniej niż w dzień. Nie przeskoczę jednak tego problemu pracując na pełny etat. Koniec marudzenia, niedokończone rozwiązania wołają!

I randomowy zrzut :), przecież notka bez tego to jak brak notki.
Menu postaci wygląda już trochę inaczej ale co tam:)



14 grudnia 2017

Angularowy Wojownik Autostrady - rzuty kością

Ten wpis wrzucam w nocy ponieważ jestem z siebie nadzwyczaj zadowolony. W końcu udało mi się połączyć mój kod z kodem generującym rzut kością. Oczywiście okazało się, że wystarczy dopisać dosłownie kilka linijek, żeby całość zaczęła prawidłowo współpracować.
 Zanim to jednak zrobiłem minęło dobre 2-3h siedzenia przy kodzie i szukania rozwiązania.
Poniżej efekt
Wejście do paragrafu z testem. Wiać możliwość rzutu kością.
Po kliknięciu ikonki kostki wykonywany jest rzut z pomocą użytej biblioteki. Oczywiście kość obraca się i obija o granicę tak, aby była widoczna na ekranie. Pod kością widać wynik testu na który składają się wartość umiejętności (tu strzelanie równe 5) + bonus (tu +0 i docelowo bonusy =0 nie będą pokazywane) + rzut kostką ( tu oczywiście równe 9)


Na koniec, jak klikniemy ponownie na ekranie, kostka znika i ładowane jest wyjście wynikające z sumy przeprowadzonego testu.

I jeszcze jedna rzecz. Mapa została zintegrowana z menu postaci. Nie działa jeszcze skalowanie, ale efektem mogę się już pochwalić:





08 grudnia 2017

Angularowy Wojownik Autostrady cd...

Liczyłem na to, że uda mi się ukończyć grę na święta, aby zrobić prezent tak sobie jak i ewentualnym graczom. Wszelkie znaki na niebie i ziemi wskazują jednak, iż jest to termin nierealny :D Gdy siadałem do projektu nie spodziewałem się, że zajmie tak dużo czasu.
Nie mam jednak powodów do załamywania rąk. Dzięki włożonej w kod pracy nauczyłem się kilku nowych rzeczy, które w przyszłości wielokrotnie wykorzystam.
Dość marudzenia! Trzeba napisać trochę kodu.

Rozbudowuje dwa spore urozmaicenia, bez których gra spokojnie by się obeszła, ale nie była by tak fajna jak mogła by być. Są to pomysły, które pojawiły się przed stworzeniem pierwszego pliku gry.

Pierwszy z nich to możliwość rzucenia kostką k10 na ekranie gry. Taką generowaną w pełnym 3d ze wsparciem fizyki, odbijania się i toczenia. Wykorzystałem rozwiązanie stworzone z pomocą biblioteki Three.js (https://threejs.org/) przez Antona Natarowa (http://www.teall.info/2014/01/online-3d-dice-roller.html)  Napisał i udostępnił spory kawałek kodu js, który umożliwia rzuty wirtualną kostką. Chłopie - wielkie dzięki!
Musiałem zmodyfikować kod na swoje potrzeby oraz pogodzić nie-angularowy sposób pisania z angularowym. W tej chwili połączyłem swoje skrypty silnika paragrafówki ze skryptem generującym kostki . Brakuje jeszcze kilka szlifów, żeby oba rozwiązania w pełni ze sobą współpracowały. Sam efekt jest naprawdę fajny.
Poniżej zrzut ekranu z efektem działania powiązanych skryptów.

Trochę z czapy rzut 3k10

A tutaj już sensowny rzut na wytrzymałość



Druga rzecz nad, którą siedzę na zmianę z rzucaniem kostkami w 3d to interaktywna mapa gry. Chciałem, aby była możliwość zobaczenia jak nasz bohater przemieszcza się nie tylko w wymiarze tekstowym, ale także graficznym. W efekcie w oparciu o html-owy element canvas zaprojektowałem i niemal ukończyłem okno dialogowe (docelowo będzie stanowił jedną z zakładek charakterystyk postaci), na którym nanoszona jest aktualna pozycja gracza zgodna z jego postępami w grze paragrafowej. Mapa jest skalowalna, zawiera dane bohatera, można ją przesuwać. Sam plik mapy pochodzi ze strony amerykańskiego projektu Aon, którego uczestnicy otrzymali zezwolenie od samego Joe Devera na umieszczenie jego paragrafowych książek w Internecie! Strona projektu znajduje się tutaj: https://www.projectaon.org/ i zawiera chyba wszystkie wydane gry Joe Devera. Dostępne są w formie elektronicznej i oczywiście po angielsku. 
Dla poprawienia odbioru mapa przykrywana animowanym szumem, który daje lekko falloutowy efekt.  Poniżej zrzut ekranowy.





W tej chwili jeszcze nie zdecydowałem czy ten szum zostanie.  Niby nie jest męczący ale ...


 p.s.
Śmiechem żartem - jako że  testuję paragrafówkę w Chromie dopiero ostatnio wpadłem na pomysł, aby sprawdzić czy silnik działa w InternetExplorerze. Okazało się, że kilka rozwiązań wymaga specjalnego potraktowania (np. brak w IE funkcji Object.assign()), poprawiłem kilka drobnych błędów i proszz. W IE też można grać