Hejto.pl
Dodaj post

Wpisz coś do wyszukania (minimum 2 znaki)

#gamedev

Gruba ryba

w Sztuka Sprawiedliwa

34piorunów

Dev update: zrobiłem jeszcze menu pauzy (i quicksave/quick load z klawiatury, ale nie pokazuję na filmiku) https://streamable.com/pie7hh

Pokaż więcej komentarzy (6)

Gruba ryba

w Sztuka Sprawiedliwa

26piorunów

Dev update: zrobiłem dojebany ekran tytułowy https://streamable.com/lk4ai9

Fanatyk6piorunów

@MrGerwant - musi być mini-gra o trzymaniu latarki Januszowi przez Pjotera przy naprawianiu Passata.

Pokaż więcej komentarzy (12)

Lider

w Diffle

10piorunów

hehe

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.

Wczorajszy (niedzisiejszy) wynik:
https://deykun.github.io/diffle-lang/pl?r=QIpUTYtUWbl5SM2UWLllGcuQDZk1iclRnL0gDOtMXYr5CMuITMuEjLxEjL2gTMtQXeyVWblhSI

Jego hash:
QIpUTYtUWbl5SM2UWLllGcuQDZk1iclRnL0gDOtMXYr5CMuITMuEjLxEjL2gTMtQXeyVWblhSI

Wchodzimy np. **https://onlinestringtools.com/reverse-string**i odwracamy kod:
IShlbWVyeXQtMTg2LjExLjEuMTIuMC5rYXMtODg0LnRlci1kZDQucGllLWU2MS5lbWUtYTUpIQ

Dekodujemy bash64 np. **https://www.base64decode.org/** i dostajemy:
!(emeryt-186.11.1.12.0.kas-884.ter-dd4.pie-e61.eme-a5)!

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.
!(emeryt-186.11.1.12.0.kasztan.terror.pierw.emeryt)!

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… :brain:
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ć.

Gruba ryba2piorunów

@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.

Lider1piorunów

@Deykun

>Nie ma co tej wiedzy używać do oszukiwania
Teraz to mi nadepnąłes na odcisk

Pokaż więcej komentarzy (9)

Gruba ryba

w Sztuka Sprawiedliwa

22piorunów

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

[UPDATE] Wczytywanie questów już działa (patrz komentarz)

[UPDATE 2] nagrałem na dowód, że działa (mam nadzieje, że wszystko widać) https://streamable.com/lgmzua

Gruba ryba4piorunów

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

Pokaż więcej komentarzy (2)

Gruba ryba

w Sztuka Sprawiedliwa

19piorunów

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

Gruba ryba0piorunów

@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

Gruba ryba1piorunów

@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

Pokaż więcej komentarzy (5)

Gruba ryba

w Sztuka Sprawiedliwa

17piorunów

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)

Fanatyk2piorunów

Nie no nie rób takich timerów.

Fanatyk0piorunów

@MrGerwant ale po co takie rzeczy robić. Teraz zawsze będzie działało to 2s za wolno.

Ok chyba skumalem. Że pokazujesz ja na 2 s ok.

Gruba ryba0piorunów

@kodyak tzn. podpinam funkcję, która chowa widgeta z ikonką pod timer, który odpalam, w funkcji, która się odpala gdy sejwowanie się skończy

Osobistość0piorunów

Coś pan strzasznie powoli to robisz, trza chyba bedzie po j.e. Króla Szczurów zadzwonić.

Pokaż więcej komentarzy (8)

Gruba ryba

w Sztuka Sprawiedliwa

15piorunów

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

Gruba ryba

w Sztuka Sprawiedliwa

26piorunów

Zrobiłem animowaną ikonkę zapisu, uważam, że jest idealna https://streamable.com/lidi6e

Gruba ryba0piorunów

a c⁎⁎j, flipbooków chyba nie da sie w taki sposób dodawać do widgetów, więc muszę trochę inaczej

Pokaż więcej komentarzy (8)

Gruba ryba

w Sztuka Sprawiedliwa

10piorunów

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

Gruba ryba

w Sztuka Sprawiedliwa

23piorunów

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

Gruba ryba8piorunów

@MrGerwant ło panie, nawet sejwy majo być? Za moich czasów to nie było i człowiek nie narzekał.

Fanatyk2piorunów
Za moich czasów to nie było

@DiscoKhan mmmm karteczki z kodami do kolejnych poziomów, to byli czasy, teraz młodzież nie umi nawet pisać ręcznie tylko wszystko w tych kąkuterach

Pokaż więcej komentarzy (4)

Gruba ryba

w Sztuka Sprawiedliwa

12piorunów

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

Kompan

w Dyskusje

24piorunów

Hej!

Trochę choróbsko a trochę nadmiar pracy zmusił mnie do zrobienia przerwy we wspomnieniach z pracy w .
Ale wracam z ciekawą historyjką, jak przepchnąłem swój pomysł na animację do gry i prawie się "wywaliłem" i 20 tys poszło by w piach :grinning: Więc kolejna sesja z .

To już było jak przy projekcie jakiś czas pracowałem, miałem za sobą skończoną dużą cześć jednego levelu gry, gdzie mieliśmy walkę z Boss'em. Ogólnie w skrócie, projekt już miał wydawcę, budżetowanie rozpisane, wszystko pozatwierdzane, wtedy ja wpadam na pomysł - zróbmy scenę walki z bosem na kozaku! Niech będzie to uwieńczenie całego tego levelu i historii na grubo. Problem oczywiście leżał w aktorach, ponieważ o ile studenci ze szkoły teatralnej świetnie sprawdzali się w dialogach to o tyle z walką mieli tyle wspólnego, że czasem chwycili kij od miotły i bili się po tyłkach, a jakość którą chcieliśmy dowieźć przekraczała tą granicę. Dodatkowo, nasz boss walczył obiema rękami bronią krótką, co całkowicie wykluczało wykorzystania osoby, którą "zabralibyśmy z przystanku autobusowego, żeby mógł rozpocząć swoją karierę jako aktor Motion Capture. Padła propozycja do producenta - czy mamy budżet na sesję MoCap z kaskaderami. Miałem przepracowany wtedy niecały rok i może to zbyt małe doświadczenie i oczekiwania, żeby usłyszeć jasne, robimy. Na start dostałem odpowiedź - nie, nie mamy na to budżetu. Róbmy na tym co mamy. Smutny więc wróciłem do robienia prototypu i przeglądania paczek animacji combatowych, które kupiliśmy i szukania w nich animacji, z których mógłbym skleić coś w miarę fajnego. Aż do momentu, gdy nasz zespół zaskoczyło "małe trzęsienie ziemi" od strony GameDesignera.

GameDesigner to w skrócie osoba, która odpowiada za całokształt wyglądu gry na każdej płaszczyźnie. Od typu gry, sposobu poruszania się postaci, poruszania się kamery, trybów i mechanik, sposobu walki czy w ogóle będzie walka. Wygląd wizualny oczywiście GameDesigner nakreśla swoje koncepcje we współpracy z innymi artystami, ale w skrócie - GameDesigner to osoba która określa jak ta gra ma wyglądać pod kątem grywalności.

No i nasz GameDesigner zwrócił się do mnie z taskiem przygotowania w między czasie animacji Combatowych. Mieli kupione paczki, wymyślili sobie archetypy wrogów (czy to silni, powolni przeciwnicy, czy szybcy i zwinni). I tak podczas tych rozmów pytam go to jakim archetypem będzie nasz Boss z Levelu X ?
GD: Noo unikalnym, nie można go sklasyfikować pod żaden z tych, ona ma swoją unikalną broń i nią będzie walczyć.
Ja: Ok, to skąd weźmiemy do niego animacje?
GD: A to nie da rady z tych paczek wziąć?
Ja: Noo nie, bo tak jak mówisz - jest unikalny i nie ma takich animacji dostępnych :D. Zresztą przeczytajmy scenariusz

A w scenariuszu nasz Narrative Design (czyli osoba od strony Fabularnej) we współpracy właśnie z tym GameDesignerem zaakceptowali pomysł, by nasz Boss walczył dwoma broniami, poruszał się w nieprzewidywalny sposób, robił salta, gwiazdy, obroty - cuda wianki. Po lekkiej konsternacji gdy powiedziałem że mamy jeszcze finalne Cutsceny z tym bossem do zrobienia a "góra" powiedziała, że nie ma na to budżetu, GD się wkur* i powiedział że jutro wróci do mnie z tym tematem - nawet nie doczekałem jutra, już po południu dostałem dyspozycję do znalezienia grupy kaskaderów, która specjalizuje się w tego typie broni i żeby prosić o wycenę i umawiać sesję - pieniądz się znalazł :D.

Uruchomiłem moje stare kontakty, dostałem namiary na chłopaków - mega osoby. Z mojego doświadczenia z nimi powiem Wam, że nie spodziewałem się że środowisko kaskaderskie jest takie, hmm - hermetyczne? W Polsce nie ma zbyt dużo grup kaskaderskich, raczej dzielą się oni w Polsce na rejony, nie wchodzą sobie w paradę a często ze sobą współpracują. Też ciężko się do takiej grupy dostać, jeżeli chciałbyś zostać kaskaderem i bardzo fajnie mi to chłopaki wyjaśnili. Na planie często Twoje życie i zdrowie zależy od Twojego kolegi kaskadera i musisz mu niesamowicie ufać. Nie mówimy tutaj tylko o scenach walki ale także upadkach z wysokości, olinowaniu jak i różnych kraksach. Anyway, przedstawiłem pomysł, wysłałem referencje jakich efektów oczekujemy, scenariusz z nakreśleniem tej postaci a samemu zacząłem przygotowywać tzw. CombatDesign z moim GD - czyli jak ta postać ma walczyć.

Chłopaki z kaskaderki przygotowali pierwsze ujęcia referencyjne z treningów, ponieważ musieli się do sesji odpowiednio przygotować a my mieliśmy przyklepać scenariusz. Wynajęliśmy salę do Kickboxingu (stwierdziliśmy, że dość miękkie podłoże będzie idealne do wszelkich upadków), jadę tam z samego rana z całym sprzętem.

Mieliśmy na to 8 godzin, same nagrywki miały być w 7, ponieważ dochodzi tzw. "zmęczenie aktora" i wiąże się to już ze słabszymi efektami finalnymi jak i robi się też już niebezpieczne. Rozkładam cały sprzęt, przyjeżdżają chłopaki i dopiero teraz widzę dokładnie, że jeden z nich z aparycji przypomina trochę "takiego wesołego wujka z wesela". Lekko brzuszek wystaje, pocieszna mordka. W głowie od razu, jak oni będą robić te wszystkie wyskoki z mieczami, salta itp. No nic, zapłacone, muszę to maksymalnie wykorzystać, zwłaszcza że to moja inicjatywa. Przebierają się, kalibruje ich, wybieramy scenariusz i nagle - wywala system. Błąd czujnika. Sprawdzam co jest nie tak, ponowna kalibracja, przechodzimy do sesji - błąd czujnika. FAK! Nigdy wcześniej oczywiście się to nie działo. Co robić. Już 1,5 godziny za nami, bo oczywiście rozgrzewka, rozłożenie sprzętu, scenariusz, pierwsze próby. Próbuje poprzepinać je - dalej po krotkim czasie wywala błąd. 1 czujnik z nogi dzisiaj postanowił się zepsuć. Sesji nie mamy na kiedy przełożyć, bo chłopaki mają terminy po 3-4 tygodnie zajęte, do kolejnego milestone'a (kamień milowy, kolejny termin oddania kolejnego etapu prac projektu) trzeba już te animacje dowieźć. Ostatnia deska ratunku - kolega który przejął moją "schedę" w poprzedniej firmie w której pracowałem jako dystrybutor tegoż oto cudownego sprzętu do MoCapu. Szybki telefon, że czujnik padł, grube tysiące leżą na stole, nie mam jak sesji poprowadzić. Mówi, dobra wpadaj byle szybko, bo szefostwo wyjechało do klienta i jutro wraca (czemu taka konspira zastanawiacie się? A ponieważ gdy odchodziłem to okazałem się "tą złą osobą" która zostawiła biedną firmę na lodzie i nie bardzo byli skorzy do pomocy mi, a do swoich klientów byli - ale w płatnej formie :smiley: ). Wsiadam do auta, przejeżdżam pół miasta, chłopakom z kaskaderki zamówiłem pizzę co by nie nudzili się, biorę czujnik, wracam, podpinam i pyk - działa! Możemy lecieć z tematem. Ale ta godzina drogi którą przebyłem tak mnie "zmoczyła" że musiałem przebrać koszulkę :D.

Bierzemy się za nagrywki. Przechodzimy grubo w temat Finishera, scenka gdzie bohater wykańcza naszego Boss'a i wtedy mój wujaszek z wesela wprawia mnie w opad szczęki. Na prawdę, finalnie chciałbym się tak ruszać w jego wieku, a podejrzenia grały mi w głowie że ma ok 43+. Salto w tył z podparciem ręki, fikołki, machanie mieczem. Podczas sesji wielokrotnie micha mi się cieszyła, jak widziałem te ewolucje i szeroko otwierałem oczy gdy miecz przelatywał te 5 cm od twarzy. Znają się na robocie i były to bardzo dobrze wydane pieniądze. Cała sesja zleciała w świetnej atmosferze, ja mocno odetchnąłem z ulga, bo niby nie z mojej winy ale jednak pod moją "operatorką" sprzęt nawalił i była tam kupa kasy do przewalenia.

Jeżeli jesteście zainteresowani bardziej szczegółowymi opisami np prac jak one wyglądają, to dajcie znać to będę mógł zrobić coś w stylu artykułu jak wyglądał np mój dzień z pracy jako animator z robieniem mini sesji MoCap w pokoju i obróbką tego :).

Kosmonauta2piorunów

A wg mnie dobrze się czytało :)
Czekam na jakieś dodatkowe informacje o pracy. Jak dużo trwa obróbka tego co jest z MoCap?

Kompan1piorunów

@dotevo Wszystko jest zależne od danego materiału. Ogólnie nad 1 Cutsceną trwającą np 15 sekund z interakcją z przedmiotami, to schodziło z 2-3 dni. Animacje pod gameplay, czyli te które są przy sterowaniu postacią - to kwestia jak dużo trzeba przerabiać, jak dużo poprawek, jak wygląda nasza postać końcowa, czy nie trzeba robić jakiś dodatkowych "haków" na animki, żeby wyglądało ładniej bo technicznie gdzieś były niedociągnięcia. Rekordowo 1 dnia nagrałem 350 różnych ujęć z MoCapu, wykorzystałem z tego może z 20% :).

Pokaż więcej komentarzy (5)

Gruba ryba

w Sztuka Sprawiedliwa

9piorunów

Dodać opisy questów?

  • Tak!79% (30 głosów)
  • Nie rób, za dużo roboty21% (8 głosów)

38 głosów

Mocarz0piorunów

Nie tylko opisy, ale też wygeneruj różnorodne głosy z pomocą AI, czytające te opisy.

Pokaż więcej komentarzy (5)

Gruba ryba

w Sztuka Sprawiedliwa

31piorunów

Dev update: osadzeni w areszcie

Pokaż więcej komentarzy (7)

Gruba ryba

w Sztuka Sprawiedliwa

40piorunów

Dev update: kolejne detale na komisariacie

Pokaż więcej komentarzy (11)

Gruba ryba

w Sztuka Sprawiedliwa

16piorunów

Dev update: dolny poziom komisariatu razem z aresztem (nie miałem możliwości zrobić pożądnej klatki schodowej, więc są schody z dziury w podłodze, ale przynajmniej funkcjonalne)

Pokaż więcej komentarzy (7)

Gruba ryba

w Sztuka Sprawiedliwa

9piorunów

Ma ktoś poratować dobre zdjęcie pustego okienka takiego jak w urzędzie/na poczcie od frontu? Potrzebuję do lokacji (komisariat)

Pokaż więcej komentarzy (11)