Dev update: zaimplementowałem kupowanie przedmiotów, ale jeszcze nie działa - widzę pusty ekwipunek sklepu.
P.S. Przeszedłem to co jest gotowe ze stoperem w ręku i stąd wynika, że gejpleju jest na około 25 minut - wystarczy na demko? #konkursnanajbardziejgownianymemznosaczem #wirsprawiedliwosci #gamedev
Dev update: zacząłem dodawać nowe opcje dialogowe do pierwszego głównego questa, ale jeszcze okazało się, że wprowadzenie zapisu i odczytu posuło zaliczanie misji, więc musiałem to naprawiać (już działa). Bonus: pod poprzednim postem w komentarzu napisałem, że nie ma dużej różnicy pomiędzy ustawieniami grafiki, w budynkach jednak jest. Załączam screeny #konkursnanajbardziejgownianymemznosaczem #wirsprawiedliwosci #grysprawiedliwe #gamedev
Wyskoczył jeszcze błąd, który powoduje, że nie zalicza się cel zadania, który wymaga ukończenia innego zadania, ale jeszcze nie wiem co tam jest nie tak
@sierzant_armii_12_malp np. jak ktoś chce sobie jeszcze bardziej zbrzydzić gorszym antialiasingiem i teksturami (ugułem różnic dużych tu nie ma, przy niższych ustawieniach postacie bardziej się gibią przy chodzeniu)
Jak się zwiększy rozdzielke za wysoko to powinnien się pokazywać wir i crush gry, wiadomo ze jak ktoś gra na większej niż stare dobre hd to złodziej chciwy.
Dev update: zrobiłem jeszcze menu pauzy (i quicksave/quick load z klawiatury, ale nie pokazuję na filmiku) https://streamable.com/pie7hh #konkursnanajbardziejgownianymemznosaczem #wirsprawiedliwosci #grysprawiedliwe #gamedev
Pojawiło się pytanie o to jak działają hashe w linkach. A siedziałem cicho, bo kogo to interesuje. A ja szczerze bardzo zadowolony jestem jak to działa i tylko czekałem. dx
@Heheszki zwrócił uwagę, że te same hasła mają ten sam koniec. To prawda.
Jak ktoś da za krótki link to mu urwie hasło i wyświetli “Niestety ten link wygasł lub jest uszkodzony.” @Felonious_Gru czasami wstawia takie linki dając spacje. !( i )! są z tego samego powodu.
Co znaczą części
emeryt - hasło
186 - dzień roku
jeśli ktoś przestawi godzinę i wrzuci to jak zobaczy, że my mamy 185 dzień i to jutrzejsze hasło to zamiast spoilerów jest “Ten link powinien wkrótce działać".
11 - prawidłowych
1 - w złej pozycji
12 - nieprawidłowych
0 - wpisanych jako nieprawidłowe
Te liczby nie są wyświetlane w rezultacie, po nich są słowa i dla hasła emeryt i słów dalej jest liczony wynik tak jak w normalnej grze, te cyfry służą jako suma kontrolna, jak coś jest inaczej to link wygasł.
kas-884 - kasztan
ter-dd4 - terror
pie-e61 - pierw
eme-a5 - emeryt (hasło)
Z tego jestem dumny. Jak wpisujecie kasztan, to diffle pobiera chunk-kas.json z tablicą słów na kas, kąs etc. 884 to pozycja słowa kasztan w systemie szesnastkowym w pobranej tablicy.
Dlaczego? Bo krócej. 243 to w systemie szesnastkowym F3. A Bash64 to będzie MjQz i RjM, cel to mieć url sensownej długości. Z tego samego powodu nie ma tam całych słów.
Akurat w naszym przypadku to nie ma takiego znaczenia, bo link by był krótszy z całymi słowami.
Ale hasło było krótkie i nie miało polskich znaków (te w bashu są zwykle dłuższe) tu długość jest stała 6 znaków, a przy słowach startowych po 15 liter to się szybko zwraca.
But there is more…
Wychodzę z założenia, że jak ktoś strzela dużo słów to w pewnym momencie ma początek słowa.
I na przykład wpisane po kolei:
korzyść, korzeń, korytarz, kora, koran
W tym co wyżej skutkuje kor-123.kor-420.kor-312.kor-12.kor-1098
Ale ja wiedząc, że początek jest ten sam tnę te słowa do kor-123.420.312.12.1098
+ potem do szesnastkowego jeszcze (1098 -> 44a, 12 -> c).
Jak po kor jest kon to jest n-cyfra i odtwarza te litery patrząc na wcześniejsze słowo.
I teraz czasami aktualizuje słownik słów (nie wygrywających tylko tych do wpisania) i wtedy te cyfry się mogą przesunąć, jeśli suma kontrolna się rozejdzie, jest informacja, że link wygasł, ale teoretycznie jeśli po aktualizacji suma działa to link może działać i jest też jakieś ryzyko, że słowa się zmieniły, ale bez wpływu na wynik wtedy czyjś wynik ma oszukane słowo/a.
Nie ma co tej wiedzy używać do oszukiwania, bo wystarczy w trybie prywatnym zgadnąć hasło i potem w normalnym wpisać co się chce i się będzie miało super linka z wynikiem.
Z programistycznych rzeczy to testy jednostkowe nie są tak szanowane, ale właśnie ten ficzer jest nimi pokryty i każdy etap tego wygenerowania linku z słów i słów z linku jest pokryty testami i to po prostu ma działać i się nie psuć.
@Deykun Ha! DZIĘKUJĘ że zaspokoiłeś moją ciekawość 🥹 Dotarłem do odwrócenia, ale skorzystałem z kiepskiego dekodera który wyrzucił krzaki, wróciłem do punktu wyjścia. W końcu doszedłem do wniosku, że pewnie api podmienia niektóre znaki w sposób który mnie nie ciekawi, bo jednak szukałem czegoś co będzie widać też gołym okiem :) Bardzo fajne.
@Dzemik_Skrytozerca nie dałoby rady, bo postują też angielskie diffle, i nie dodałbym tam. Daj #diffle na czarno i będziesz miał gwarancje, że wytniesz też zapominalskich.
Dev update: naprawiłem wczytywanie drużyny z sejwa zrobionego po wyjściu z budynku (w zasadzie to nie wczytywanie tu było problemem, tylko ustawienia spawnowania - gra nie spawnuje domyślnie aktorów, gdy jest w tym miejscu jakiś obiekt z kolizją, ale da się to zmienić dla każdej klasy, np. spawnować obok, gdzie już kolizji nie ma), natomiast dalej nie wiem co się dzieje z questami - niby zapisują się poprawnie, ale przy wczytaniu w obiekcie sejwa w tablicy na questy jest pusto, mimo, że przy zapisie były dane, nie mam pojęcia o co tu chodzi i debugowanie przyniosło więcej pytań niż odpowiedzi #konkursnanajbardziejgownianymemznosaczem #wirsprawiedliwosci #grysprawiedliwe #gamedev
[UPDATE] Wczytywanie questów już działa (patrz komentarz)
Jedna rzecz, którą zauważyłem teraz to, że w klasie Sejwa nie dałem makra UPROPERTY() [które, powoduje, że Garbage Collector nie niszczy obiektu, wcześniej przez to wyskakiwały mi nulle podczas walki w miejsce skilli postaci) do tablicy Questów - chociaż wątpię, że tylko o to chodziło, bo raczej Unreal nie odpala "odśmiecania" po zaledwie paru sekundach, więcej się dowiem jak odpalę znowu, tylko naprawiam jeszcze jedną małą rzecz
Dev update: wczytywanie działa połowicznie np. wczytywanie sojuszników działa tylko przy zapisie przy wejściu do budynku a nie przy wyjściu z niego (nwm z jakiej racji), a wczytanie questów nie działa w ogóle #konkursnanajbardziejgownianymemznosaczem #wirsprawiedliwosci #grysprawiedliwe #gamedev
@MrGerwant a czemu kłesty się nie chcą zapisywać? Jakoś oddzielnie będziesz musiał je tam pooznaczać i w każdym sejwie będzie czeklista który jest zrobiony, rozpoczęty itp. a który nie czy da radę bsrdziej cywilizowanie to ogarnąć? xd
@DiscoKhan nie wiem jaka jest przyczyna, ogólnie to Unreal nie zapisuje w plain text, tylko sejw to głównie nieczytelne bazgroły z okazjonalnymi nazwami zmiennych i na początku robiłem 3 oddzielne sejwy na Drużynę, Mapę i Questy ale teraz zrefaktorowałem do jednego, nie wiem czy to coś pomoże
Dev update: wczytywanie obiektów na mapie działa (choć pewnie robie to w mało optymalny sposob, ale hooy z tym) - po ponownym uruchomieniu już nie mogę wejść w interakcję ze śmietnikami ograbionymi wcześniej #konkursnanajbardziejgownianymemznosaczem #wirsprawiedliwosci #grysprawiedliwe #gamedev
Dev update: wygląda na to, że poprawnie tworzy sejwa. Jeszcze nie robiłem wczytywania, także nie wiem, czy dobrze odtworzy sojuszników, ale w pliku pomiędzy nieczytelnym bełkotem znaków widać imiona towarzyszy i nazwy moich zmiennych, więc chyba jest ok. Jeszcze nie zapisuję ekwipunku, obiektów na mapie czy questów, ale to trza na spokojnie. No i nie widzę też mojej pięknej ikonki sejwa (możliwe, że zapis trwa zbyt szybko, żeby ją ujrzeć i trzeba zrobić timer np. 2-sekundowy, żeby się pokazała) #konkursnanajbardziejgownianymemznosaczem #wirsprawiedliwosci #grysprawiedliwe #gamedev
Z tajmerem ikonka się elegancko pokazuje (co prawda, nie będzie to z tego względu żaden wskaźnik, jak szybko się gra zapisuje, bo zawsze ikonka zniknie po 2 sekundach od zakończenia sejwa, ale to lepsze niż nie widzieć jej w ogóle i nie wiedzieć przez to, że gra się zapisuje)
Dev update: porobiłem struktury danych, z których będą tworzone i odczytywane zapisy, w pewnym momencie wgl mi nie kompilowało, nie mogłem znaleźć błędu, ale okazało się, że jeden specyfikator, którego użyłem nie może być używany tam, gdzie go chciałem użyć, jak to wywaliłem to poszło #konkursnanajbardziejgownianymemznosaczem #wirsprawiedliwosci #grysprawiedliwe #gamedev
Dev update: zacząłem pracować nad sejwami, poszperałem po necie jak się to robi i zacząłem pisać klasy. Tak się zastanawiałem i chyba to jak mam zrobione Questy wymusza bym Lokacje poza Sieradzem dodawał do głównej mapy w podobny sposób co wnętrza budynków (coś takiego co się nazywa LevelInstacne, czyli cały odrębny level wstawiać na mapę jako obiekt), żeby przy przejściu między poziomami nie znikały Questy #konkursnanajbardziejgownianymemznosaczem #wirsprawiedliwosci #grysprawiedliwe #gamedev
Dev update: naprawiłem buga z promptem do rozmowy (przyczyną była niewłaściwa kolejność działań - wyświetlałem prompta zanim sprawdziłem czy aktor, który wszedł w kolizję z triggerem enpca to nasza postać, więc pewnie wywoływało dla innych obiektów na mapie randomowo) i crashe przy zamykaniu gry (nie dałem sprawdzania nulli w klasie triggerów wyjścia z budynku). Jutro zacznę robić system sejwów #konkursnanajbardziejgownianymemznosaczem #wirsprawiedliwosci #grysprawiedliwe #gamedev
Dev update: Dodałem na mapę wnętrza domu Somsiada i komisariatu, zrobiłem stosowne cutscenki, dodalem je do gry razem z napisaniem celów questa, ale żeby to wszystko przetestować to muszę chyba zrobić w końcu system sejwów, bo nie chce mi się rozpoczynać od nowa za każdym razem. Opisy questów chyba wywalę bo za c⁎⁎ja nie wiem, jak zrobić, żeby sie poprawnie wyświetlały (nie mogę zrobić nowej linii) poza opcją "na chama", czyli przechowywanie opisu jako kilka zmiennych po jednej na każdą linijkę tekstu zamiast wszystko naraz, mam też crashe przy wychodzeniu z gry i prompt do interakcji się odpala przy pierwszej cutscence nie wiadomo z jakiej racji #konkursnanajbardziejgownianymemznosaczem #wirsprawiedliwosci #grysprawiedliwe #gamedev