No i się udało, po prawie 10 godzinach męczenia się z problemem i bugami.
Master reaguje poprawnie, atakuje, przechodzi sprawnie od kroku do kroku.
Prosta rzecz a zajęła mi cały dzień do zaprogramowania.
Teraz ostatni krok, dodanie ostatniego typu przeciwnika dla wersji DEMO
A potem tylko aranżacja poziomów, rozstawienie przeciwników i elementów na mapach i gotowe.
Można wydawać zamknięte DEMO techniczne dla sprawdzenia błędów a potem już ogólnodostępne. https://youtu.be/KiCEjrYNj5E
Jak praca pójdzie tak sprawnie jak wcześniej, to mam nadzieję na wydanie zamkniętego DEMO nawet w tym miesiącu ( ͡° ͜ʖ ͡°)
#rhr #programowanie #chwalesie #pcmasterrace #steam
@Gagger bardzo ładne animacje. Polecam przed wypuszczeniem znalezienie kogoś kto się zajmuje copyrightingiem, bo poza instrukcjami pisanymi dość topornie to wszystko wygląda obiecująco
Tym razem od innej strony, aby nie było, że cały czas idzie świetnie.
Programowanie ma to do siebie, że można napisać pięknie działający kod, wizualnie perfekcyjny a i tak nie działa.
Tak jest i tym razem, jak poprzednio kilkaset razy, stworzyłem coś co w zamyśle miało działać poprawnie, bo tak wygląda z kodu, kolejne kroki są poprawne ale tylko dla mnie, bo system widzi to inaczej, jeden błąd, jedno przeoczenie, jedna zmienna, którą ustawiłem w innym pliku, która jest jak widać znacząca.
A co się dzieje w tym przypadku?
A to jest bardzo proste, kończę pisać przedostatni typ przeciwnika, a ten ma bardzo proste zadania.
Iść aż nie uderzy w ścianę
Iść aż nie dojdzie na skraj podłoża
Podbiec do gracza, gdy ten jets w zasięgu, jeb... uderzyć go kosą, odskoczyć do tyłu, żeby nie dostać strzała od gracza.
I sprawdzić czy gracz wciąż jest w zasięgu, jeżeli jest ma do niego znów biec i uderzyć i powtórzyć całą akcję aż gracz
Nie umrze albo nie będzie go już w zasięgu bo uciekł.
Zadanie proste jak się wydaje, ale tylko wydaje.
W praktyce trzeba obliczyć pozycję gracza, przenieść tam przeciwnika, zatrzymać go w odpowiednim miejscu, wywołać 3 animacje, potem uderzyć, sprawdzić czy uderzyło się gracza, potem odskoczyć, ustawić przeciwnika twarzą do gracza i nakazać mu iść w odpowiednim kierunku aby nie szedł do tyłu (co się już zdarzyło).
No i w tym natłoku prostego zadania pojawia się błąd.
Przeciwnik skacze wokół gracza jak królik, raz atakuje go od przodu, raz skacze za niego by mu w plecy wbić kosę.
Raz biegnie a raz idzie, mimo tego samego kodu.
Dlatego też, czasem najprostsze zadania zajmują długie dni.
Naprawa bugów, tak aby działały to najgorsza raca, bo w naszym mniemaniu kod jest poprawny, więc nie ma co poprawiać, a według systemu jesteśmy głupi i nie potrafimy poprawnie napisać tego co chcemy.
Naprawienie tego jednego prostego blędu potrafi zając.
A mi zajęło to już 7 godzinę.
Po 2 w nocy, a człowiek siedzi i znów tworzy
Na szczęście to już przedostatnia postać do gry.
Do edytowania jeszcze 90 takich grafik, a potem można robić dalej.
Po nim została jedna postać jako przeciwnik.
O S T A T N I A
Po jakiś 2 miesiącach programowania tych piernioństw w końcu to kończę.
Ostatni postęp jest jednym z tych największych.
A dlaczego? Ponieważ najmocniej zbliżył do stworzenia wersji DEMO
Właśnie skończyłem tworzyć zachowania przeciwników w grze.
Od teraz każdy z typów ma swoje własne zachowania, czekanie na atak, bieg w stronę gracza, znikanie, pojawianie się, atak z daleka, spawnowanie minionów i troszkę więcej.
No i w końcu ruszyły prace nad ostatnimi rzeczami w grze.
Jak już mówiłem, chcę aby gracz mógł rozbudować swoją postać.
W wersji DEMO będzie ograniczone to głównie do zwiększenia ilości życia oraz ataku, specjalne stoły.
Stoły te będą posiadały swoją moc maksymlaną, co oznacza, że dany stół będzie mógł podnieść życie gracza z 1 na 3 tylko i wyłącznie, w przypadku gdy ten podejdzie do stołu mając już 4HP, stół nie ulepszy ani o 1pkt.
Dzięki czemu na samym początku nie będzie maksymalnej ilości.
Identycznie działać będzie stanowisko kowala do ulepszania obrażeń.
Poza stołami w finalnej wersji znajdzie się też kartograf, który wskaże miejsca ukrytych poziomów na danym biome, za opłatą.
Ale już teraz wprowadziłem to co w DEMO chciałem mieć.
Po śmierci gracz ma do wyboru listę punktów odblokowanych do odradzania, w przyszłości chcę aby służyły one za szybką podróż, oczywiście za odpowiedni item.
Aby nie ułatwiać za badzo gry.
Portale teleportują do odpowiedniego miesjca, więc wejście w lewy portal teleportuje do prawego, a prawy do lewego.
Nie będziemy respić się na środku mapy albo we wskazanym jednym punkcie zawsze.
Do zrobienia zostało mi już niewiele, dodanie audio do przeciwników, oświetlenia dynamicznego dla poszczególnych elementów, takich jak przeciwnik czy właśnie stoły, stworzenie wszystkich poziomów dla trybu DEMO, dokończyć menu, oraz dodać kilka pułapek na gracza, w postaci ukrtych wnyk, mieczy wypadających z sufitu, bomb, zapadających się platform.
W grze działa już potężna lista rzeczy, które dodają miłej amosfery i wymagania do gry.
Wersja demonstracyujna jest już w końcu bliżej niż dalej.
Ale nie zapominam o ludziach tutaj, wpada coraz mniej aktualizacji, ponieważ wiele z nich nie jest ciekawych do opisywania.
Ale uzbierało się w końcu coś co można opisać.
Udało mi się dokończyć jeden duży plik na kilkunastu typów przeciwników w grze.
Aktualnie kilkoma kliknięciami mogę ustawić różne zachowania wrogów, mogę także je zmieniać w czasie gry.
Pojawili się między innymi
Latający przeciwnicy, chodzący i stacjonarni.
Każdy z wyżej wymienionych ma kilka stanów ruchu.
Latający przeciwnik może czekać na gracza żeby latać nad nim, może też poruszać się ciągle.
Może atakować dystansowo oraz bezpośrednio, a jeżeli robi to bezpośrednio to może atakować ciągle bądź być przeciwnikiem kamikaze.
Do tego dystansowych ataków jest kilka, może to być śledząca i upierdliwa kula energii, laser, pocisk, atak ogniem na dużym obszarze.
Albo i nawet summoner, który respi przeciwników wokół gracza.
Takie zachowania mają wszyscy przeciwnicy, więc z 3 typów można zrobić kilkunastu różnych przeciwników.
Pojawiły się także ukończone ukryte miejsca, wraz z aktywatorami i nagrodami w sekretnych segmentach.
Kryją się za nimi także tajne przejścia na dodatkowe poziomy, które nie zostały uwzględnione na mapach gry.
Co do mapy, w końcu udało mi się sensownie ogarnąć przechodzenie pomiędzy poziomami, teraz jest to naturalne, czyli gracz wchodzący w lewy portal na poziomie nr1, pojawia się przy prawym portalu na poziomie nr2
Tak samo wracając z poziomu nr2 na poziom nr1, wchodzimy w prawy teleport i pojawiamy się przy lewym.
Nie ma już jednego spawnu tylko zależny od tego, którym wejściem się tam dostaliśmy
Pojawił się także w końcu wall grab, nie jest stały, ponieważ gracz skaczący i przyczepiający się do ściany ciągle spada, ale ułatwi to wspinaczkę, oraz pokonywanie przeszkód.
Wraz z aktualizacjami uszczupliła się gra o wiele assetów, które przestały być potrzebne.
Dograne także zostały światła, czy to oświetlenie mapy, czy właśnie pułapki, wiele z nich dostało lekką czerwoną lampę, jak widać na screenie, kolce na ścianie delikatnie świecą na czerwono, sygnalizując, że to nie jest coś co powinno się dotykać.
Zagrałem sobie nawet w nową wersję, bez przeciwników, aby sprawdzić dodane mechaniki, ponieważ przeciwników testowałem na bieżąco podczas programowania ich zachowania, jestem zadowolony ile opcji już w grze działa poprawnie.
Ładowanie poziomów, opisy i nazwy poziomu, głupia rzecz jak ruchome platformy uruchamiane poprzez uderzenie w kamień, czy ukryte miejsca na mapach. Tak samo zapisywanie checkpointów, za pomocą aniołów, animacje temu towarzyszące, czy głupie zbieranie waluty / żyć na mapie, wszystko działa jak powinno i nie psuje się.
Latanie od kuźni do kuźni, żeby raz ulepszyć postać z jednego skoku na dwa, czy w innej kuźni (każda jest tematyczna) ulepszyć maksymalną ilość żyć.
Chodząc po świecie widziałem jaki krok zrobiłem do przodu, ile już jest tam dodane, ile można robić i co robić aby się nie nudzić.
Poza biciem mobków jest tam co robić.
@Gagger za długie posty, polecam rozbić na piec i dodawać przez piec dni po jednym - zapadniesz ludziom bardziej w pamięć i Twoja praca nie pójdzie na marne, bo będę mógł przeczytać co tam w gierce do porannego srania
Ale w końcu przechodzi mi niechęć i w jakimś stopniu wypalenie grą.
Udało mi się od poprzedniego razu podciągnąć projekt do przodu.
Udało mi się zrobić jeden plik, który będzie zarządzał każdym jednym przeciwnikiem w grze.
Nie będę musiał już pisać kodu dla każdego przeciwnika osobno, nie będę tracił czasu na pisanie tego samego 10 raz.
Prosty system wyboru i AI... a raczej IF pomoże przeciwnikowi określić jego typ.
Wcześniej musiałem pisać dla 3 chodzących przeciwników 40% tego samego kodu.
Teraz po prostu wrzucam przeciwnik na mapę, wybieram, że jego sposób poruszania się to chodzenie, latanie, pływanie czy stacjonarny sposób.
Mogę także wybrać czy przeciwnik atakuje nas osobiście jak na przykład mieczem, czy jest to atak dystansowy kulą energii czy strzała z łuku.
Tak samo jak ma się zachowywać po wykryciu gracza, a jak po tym gdy gracz ucieknie.
A wszystko za sprawą zaznaczenia kilku opcji, bez pisania bez zbędnego marnowania czasu.
Wystarczy wybrać kilka opcji i przeciwnik ma już logikę gotową.
Udało mi się też ogarnąć masę dźwięków do gry.
Wcześniej było tam pusto, ataki przeciwników były głuche, tak samo ich chodzenie czy inne akcje, teraz mają już swoje głosy.
To jest coś co pominąłem całkowicie w poprzedniej grze, gdzie dźwięk wydawał tylko gracz i nikt inny.
Świat staje się pomału "żywy" bardziej immersyjny.
Udało mi się także dograć światła pocisków, jak na screenie, przeciwnik rzucający kulą energii.
Światło także nie wybiela gracza, czyli jak jest blisko nie robi z jego sprite białego bez kolorów.
Postać reaguje na mocne światło i zmniejsza swoją wartość do 0.3 mocy.
Świat jest oświetlony a postać nie oślepiana.
Droga do wydania gry jest jeszcze przeogromna.
Ale DEMO jest coraz bliżej, może pojawię się na następny Steam NEXT ( ͡ಥ ͜ʖ ͡ಥ)
Muszę dopieścić grę najmocniej jak się da, żeby jak najwięcej osób grę dodało do wishlisty.
A w międzyczasie wpadło jeszcze kilka pomysłów na kolejne gry, które nie wymagają takiego nakładu pracy.
Niemniej jednak muszą poczekać z zaczęciem do co najmniej grywalnego i odpowiednio dobrego Demo aktualnej gry.
W końcu udało mi się ogarnąć kod na tyle, że optymalizacja jest widoczna w zasobach.
Gra wstąpiła w etap, gdzie można ją spokojnie już odpalać na starszym sprzęcie.
Zmniejszyłem ilość podwójnego kodu, który przeoczyłem i wykonywałem dwa razy taką samą akcję bezsensownie.
Dodatkowo udało się usunąć wiele plików, które nie są już używane, reszta wciąż czeka na werdykt.
Ale najważniejsze, przeciwnicy zyskali całkiem nowe AI do zachować w przypadku spotkania gracza
Oraz takich, które jeszcze go nie spotkały.
Dodałem dwie opcje poruszania się takiego przeciwnika
Spline - porusza się po określonej ścieżce i nigdy z niej nie zejdzie (do czasu spotkania gracza)
Collision - tutaj bywa różnie, przeciwnik może się odbić od sufitu a innym razem pod nim przejść, co dodaje element rożnorodności i niespodziewanego powrotu, więc ciężej jest zaplanować drogę.
Kolejnym krokiem było dopisanie typów przeciwników, aby każdy z typów miał swoje zachowania.
I tutaj wpada aż 6 typów.
Od latającego samobójcy, przez chodzących i ukrywających się, jak i ich przeciwieństwa, które nie umierają przy graczu.
Każdy z tych typów będzie miał swoje zachowania i inaczej będzie finalnie reagował na gracza.
Samobójczy kruk będzie leciał prosto na gracza a w jego pobliżu po prostu eksploduje.
Natomiast zwykły kruk będzie go dziobał, wracał na starą pozycję i znów dziobał.
Aż gracz go nie zabije albo nie wyjdzie poza jego strefę.
W przypadku gdy gracz ucieknie, przeciwnik wraca do swojego zachowania.
Czyli patrolowania terenu, albo ukrycia się ponownie ( ✧≖ ͜ʖ≖)
No i w tajemnicy powiem wam, że wracają sekretne pokoje znane z poprzedniej odsłony, Walter's Adventure.
Tak więc kończąc, osoby z słabym sprzętem będą mogły spokojnie pograć, bez żadnych dodatków FSR czy DLSS
A nie odbije się to na wyglądzie gry czy mechanikach.
Idź się ucz, będzie fajnie mówili.
Dowiesz się czegoś nowego mówili.
A teraz chłop siedzi po nocach bo trzeba zmienić sporo kodu w grze, bo się nauczył czegoś nowego ( ͠° ͟ʖ ͡°)
Właśnie nauczyłem się generować powiadomienia z animacji, bez odczytywania klatki, dodatkowo dowiedziałem się także, że mogę do poszczególnych klatek dodać eventy dźwięku, więc muszę zmienić kod gracza i przeciwników.
A RAMy drożeją, to trzeba go oszczędzać ( ಠ ͜ʖಠ)
Tak więc od kilku dni grzebię w kodzie i szukam każdego miejsca, gdzie jest odtwarzanie dźwięków i zamieniam to na bardziej precyzyjne i lżejsze anim notify sound.
No i trzeba także znów iść na zakupy, ponieważ widzę, że brakuje mi ogromnej biblioteki dźwięków.
Tak więc będzie co robić przez następne tygodnie.
Poza samymi zakupami czeka mnie też przeogromna zmiana kodu, którą muszę dość gruntownie zmienić, bo usunięcie jednego elementu rozwala kolejne ¯\_( ͡° ͜ʖ ͡°)_/¯
Więc trzeba to logicznie przerobić tak aby logika się zachowała a zmiana nie rozwaliła przeciwnikom systemu.
No i trzeba przenieść kolejne tabuny rzeczy z kodu przeciwników do ich rodziców, żeby zaoszczędzić zasobów.
Bo nie ma sensu dublować kodu, skoro można to napisać raz a potem tworzyć child.
Ogromny plus jest taki, że wracają mi pomalutku znów chęci do tworzenia, ponieważ ostatnie tygodnie czy nawet miesiąc były ciężkie i nie robiłem w grze praktycznie nic, poza minimalnymi zmianami.
Myślałem, że w końcu odwiedziło mnie wypalenie i niechęć do pracy nad grą.
Ale kolejnym razem chęć ukończenia takiego zadania wygrała (ง ͠° ͟ل͜ ͡°)
Masochizm i dyscyplina pokazały na co je stać ( ͡ಥ ͜ʖ ͡ಥ)
Uwielbiam zadania, które wymagają ogromnej wiedzy i nakładu pracy.
Ogromny plus tego że ram podrożał jest to że część twórców zaczęła w końcu myśleć nad optymalizacją kody gry xd U ciebie też to już widać. Oby ten trend się utrzymał.
@Gagger No nie wiem. Jest wiele producentów gier którzy do gier AAA lub AA po wydaniu porzucają optymalizację lub zlecają jej optymalizację jednej lub dwóm osobom.
Dopiero jak się robi afera jak była z cyberpunkiem to wtedy przydzielają duży zespół.
@lakas14 W dół ( ͡° ͜ʖ ͡°)
Bo cały czas musisz sprawdzać odległość, więc albo event tick, albo line
Bo jak sprawdzisz raz jak gracz jest 500km od niego, to nie ma czym wywołać ponownego sprawdzania jak jest 5cm od niego.
Więc musisz robić to albo
Event tick - który sprawdza co tick jaka odleglość jest od gracza do potworka
Event any move - sprawdza za każdym razem jak gracz się poruszu
Linetrace - działa jak event tick bo cały czas sprawdza odległość
Najwydajniejszy jest pkt2
Pozostałe 2 żrą tyle pamięci, że nie jest to opłacalne
@Gagger No to masz 1 if na 1 tick na potwora na klatkę(to jest serio słabo?). Jak na potwory normalnie działa grawitacja+strach przed wysokością+kolizje z otoczeniem+reakcja na gracza to i tak taniej wychodzi. Ogólnie przy tej metodzie powinieneś na spokojnie móc mieć z 1k potworków na mapie...W sumie to nie wiem jak Unreal marnuje zasoby i mogę się mylić... Z resztą unreal jest znany z tego że potrafi na mini grze wyglądającej jak sprzed 10 lat dać jakieś kosmiczne obciążenie dla karty i procesora.
I zdecydowałem, już wiem co będę robił w sylwestra.
Mam kupione soczki, lemoniadę, jakieś niezdrowe żarło.
No i przy tym asortymencie będę sobie programował do rana swoją gierkę
Z nadzieją, że gra wypali.
Okres zmęczenia grą przeszedł, prawie miesiąc bez większego progressu, tylko jakieś małe kroczki.
Ale dziś chłop ma wenę i chęci, to się pobawi grą.
@Fen Zależy jak na to patrzeć, bo jest to trochę "pokręcone"
Ogólnie zacząłem się uczyć programować jakoś 2 lata temu.
W tym czasie robiłem grę na VR, potem 3D, 2.5D, z rzutu izometrycznego, klikacza a potem właśnie prawdziwe 2D
To co wyżej było w okresie jakiegoś roku
Samą grę RHR robię kilka miesięcy dopiero.
ALE wcześniej robiłem Walter's Adventure aż do momentu jak mi padł dysk z kopią zapasową i gra przepadła
Czyli jakoś pół roku temu (?) no i od tego czasu robię właśnie RHR
Tak więc, od początku przygody z programowaniem jakoś 2 lata, może więcej o kilka miesięcy.
Sam tytuł RHR o wiele krócej, ale miałem już doświadczenie porządne i wiedziałem co robić, żeby szybko zrobić postępy i wrócić do pewnego poziomu z poprzedniej gry
Czas do końca jest zależny od mojego stanu, bo nie raz już wpadałem w tygodniowe przerwy, żeby odpocząć.
Bo za dużo, za mocno, za często projektowałem i byłem wymęczony.
Ale jak dobrze pójdzie to jakoś 2026 Q4 powinno się udać
Chyba, że wpadnę w wir jak na początku i będę maszynowo robił wszystko a programowanie będzie szło po mojej myśli bez błędów to nawet Q3 będzie możliwy.
Bo aktualnie siedzę nad jednym wrogiem i nie mogę go naprawić bo ma błędy
Niech ten grudzień się już kończy.
Człowiek spędza w pracy 66h tygodniowo i zmęczony przychodzi do domu.
Aż się nie chce po takim maratonie klepać kodu w grze.
Kolejny dzień zajmuje mi dodanie tylko jednego przeciwnika do gry.
Tym razem nie mucha kamikaze, czy czarny kruk, ukrywający się w ciemnych miejscach.
A kolejny pająk, tym razem nie wyskakuje z ziemi, a spaceruje sobie po staremu.
Ma tylko jeden atak, za to dość porządny.
Uderza w ziemię i tworzy chmurę trującej mazi, która oczywiście zadaje obrażenia.
Proste zadanie jak dodanie grafik, stworzenie kilku kolizji i logiki w ich obszarze, a mija tydzień i wciąż nie skończyłem tak prostej rzeczy przez natłok godzin w robocie ( ͡° ʖ̯ ͡°)
Mam nadzieję, że jutro się uda, bo kolejny przeciwnik wymagać będzie o wiele więcej pracy i przemyślenia.
Ale podoba mi się jego wygląd, a w szczególności to jak udało mi się dostosować światło do jego budowy i struktury postaci.
Pora iść spać, bo rano trzeba wstać znów do pracy, na kolejny maraton ( ͡° ʖ̯ ͡°)
@Gagger jakim cudem jesteś w stanie stworzyć grę, ale pracujesz w Media Expert? Chyba ze pracujesz w dziale IT, ale nie widzę jaki powód nadgodzin dla programistów, skoro kupowanie prezentów właśnie sie kończy?
Wciąż się nie poddajemy, nie wypalamy i działamy dalej.
Prace trwają w najlepsze.
Dzisiaj przychodzę wam z kolejną aktualizacją i małą opowieścią.
Gdyby ktoś z was się zastanawiał, jak wygląda proces tworzenia mapy do gier 2D
Przedstawiam poniżej swoją kolejność.
Zaczynamy od oczywiście samego pomysłu, czyli rozmiaru mapy, ścieżki, którą gracz może obrać i ewentualnie drugą, którą obrać musi aby poziom ukończyć, ponieważ moje mapy to świat otwarty, gracz może wracać na zwiedzone już poziomy, aby dotrzeć w miejsca, które były wcześniej niedostępne z powodu braku odpowiednich umiejętności.
Następnie tworzę tło samej mapy, aby gracz nie widział elementów których nie powinien.
Takich jak zakończenia tła, elementów kolizyjnych, czy po prostu końca mapy.
Następnie jest najlepsza część, dodawanie ozdób na mapę, czyli dodanie elementów, które nie reagują z graczem, nie wpływają na niego, ale dodają "duszę" poziomom.
Takie jak czaszki w rogach, elementach, które emitować będą nastrojowe światła, oraz oznaczam sobie miejsca bez nich, są to miejsca w których umieszczone będą przeszkody, takie jak lawa, kwas czy pułapki.
Kolejny etap dzieje się poza edytorem map, dzieje się na samym poziomie, jest to właśnie etap dodawania oświetlenia, przeszkód i pułapek.
Tutaj wchodzi najwięcej pracy, ponieważ światła nie mogą być zbyt mocne bądź zbyt słabe, aby były dobrze widoczne a zarazem nie oślepiały czy zniekształcały świat.
Proces czasochłonny, ponieważ nie można pominąć żadnego elementu ozdobnego, ponieważ źle to wygląda w czasie rozgrywki.
Warto tutaj wspomnieć, że w przypadku gdy pułapka czy przeszkoda nie pasuje w tym miejscu, następuje edycja mapy, tak aby wszystko do siebie pasowało.
Po tym sprawdzam czy światła, elementy mapy czy aktorzy nie wyrzucają błędów oświetlenia czy nie nachodzą na siebie w jakiejś nadmiernej ilości. Czas prób i błędów
Na koniec dochodzi testowanie przeszkód, czy są zauważalne i czy w ogóle gracz jest w stanie je zauważyć.
Działanie przeciwników, czy się nie gubią na mapie, nie wlatują w ściany, czy każdy z systemów działa jak powinien.
Sprawdzam dokładnie całą mapę, rozgrywając ją nawet kilkadziesiąt razy jeżeli wymagane są poprawki.
Te najbardziej zaawansowane z ważnymi przeciwnikami czy elementami fabularnymi, ukrytymi pokojami i masą elementów interaktywnych zabierają nawet kilka godzin testowania jeżeli wymagane są poprawki, a te czasem potrafią iść w ułamki sekund i zmienia się wartości po przecinku kilkukrotnie aż do otrzymania upragnionego efektu.
Jeżeli wszystko się zgadza pozostaje ostateczny test, czyli wejście na poprzedni poziom i przejście na ten do testowania.
Aby w pełni zasymulować mapę, tak jak ją będzie widział gracz.
Ostateczny test zawsze jest dwukrotny, z tego powodu, że gra zapamiętuje odblokowane platformy, zebrane elementy czy odkryte sekretne poziomy i musi wczytać je przy ponownym odwiedzaniu, aby gracz nie odblokowywał jednej i tej samej platformy czy sekretnego pokoju w nieskończoność.
Po tym wszystkim etap zaczyna się od nowa z kolejnym poziomem.
Budowa jednego poziomu może trwać nawet cały dzień, te mniejsze pokoje, które mają być łącznikami z innymi, zajmują o wiele mniej bo może to być nawet tylko 2h.
W przypadku, gdyby obrazek był zbyt mały, link do większej wersji: LINK
Pora zacząć nocną zmianę po dziennej zmianie ( ͡~ ͜ʖ ͡°)
Dzisiaj na warsztat wsiadają nareszcie umiejętności w postaci kart.
Czyli na starcie będzie tylko jeden skok, ale po zdobyciu umiejętności, będzie można w końcu wykonać double jump i dostać się do innych lokacji.
#rhr #programowanie #chwalesie #gry #hobby
@Greyman Jak chcesz się nauczyć, a nie tylko "a chcę napisać" to w rok ogarniesz, mi zajęło właśnie coś około 12-15 miesięcy na naukę, potem jakieś głupie pisanie gry na VR, potem 3D, 2D izometryk, klikacz
I teraz właśnie 2D sidescroller
Rok i tak minie.
Ale trzeba pamiętać, że taka nauka to pożegnanie się z życiem poza komputerem, bo siedzisz i ogarniasz pętle warunkowe czy zależność warunków ᕦ( ͡° ͜ʖ ͡°)ᕤ
@Gagger z żoną, dziećmi i pracą na pełen etat to raczej niewykonalne. Ale pomarzyć można. Pętle i warunki mi niestraszne, raczej jak już to strona kreatywna leży.
@wec-wec Font jest specjalnie dobrany do tematyki gry.
Gra jest Dark Fantasy, z elementami dark souls i głównym nurcie Metroidvanii
Font jest stylizowany na XVI wieczne pisma, stosowane w pismach świętych, przekazach czy właśnie stylu czarnej magii.
Dlatego ten font wręcz idealnie pasuje do gry, bo zgadza się z jej tematyką.
Ponadto gry, które korzystają z zwykłych fontów idą na łatwiznę, były też tematy o tym, że twórczość w grach zanika, bo nawet fonty są brane typu Arial ¯\_( ͡° ͜ʖ ͡°)_/¯
@Gagger dobra, stylizacja jest ważna ale bez przesady. Czcionka jest po to by była czytelna. Ta tutaj jest bardzo ładna, ale faktycznie wymaga skupienia. Ty robiles tego fonta albo masz opcję jego edycji? Może warto pojedyncze litery skompromisować, albo pobawić się trochę kerningiem.
Turborealizm też jest jest opcją, lepiej widzieć że aktora przebranego za Godzillę, niż montować sceny że smokami z komodo
W końcu udało mi się dokończyć tekst wstępu do gry.
Udało mi się wymyślić fajny i ciekawy wstęp tekstowy dla intra.
Poza tym dodałem kilku nowych przeciwników.
Jednym z nich jest pająk, który pojawia się tylko w pobliżu gracza, nie porusza się i nie idzie w jego stronę, czeka na ofiarę w jednym miejscu.
Posiada 2 ataki, zwykłe uderzenie przednimi nogami oraz wyplucie jadu na duży obszar.
Kolejnym jest owad kamikaze, który po zauważeniu gracza leci w jego stronę, żądli go a następnie wybucha.
Zadając łącznie 2pkt obrażeń.
Dodatkowo udało mi się w fajny sposób zaznaczyć pułapki, aby nikt nie pomylił ich z wyposażeniem świata, przykładowe kolce widoczne na filmie mają efekt krwi na kolcach oraz lekkie czerwone podświetlenie.
Co najważniejsze, zmieniłem także element przechodzenia między poziomami, teraz jest to słup światła z wizualnym efektem, a nie dym jak poprzednio, nie wzbudza już to obaw o jakąś pułapkę.
Jak na Metroidvanię przystało, zabity potwór już się nie odrodzi.
Możemy wejść ponownie na ten sam poziom a on zostanie na miejscu gdzie umarł (a raczej jego spawnu)
Tak samo zbierany Ember zapisuje swoją wartość i gracz może wyczerpać je tylko raz jak i kwiaty życia.
Jeżeli ktoś zbierze 3 z 5 odłamków emberu, to po ponownym wejściu na poziom, te same złoże będzie miało tylko 2 odłamki w sobie.
Na koniec poprawiłem warstwę wizualną, teraz wszystko zgadza się z sobą, nie ma różnych styli graficznych.
Menu jest proste i przyjemne dla oka.
2dni myślenia i wymyśliłem (mam nadzieję) efekt jaki ma oznaczać "tu przechodzisz do następnego poziomu"
Na początku miała to być mgła, ale ciężko w pixel arcie uzyskać ladnie wyglądającą
Potem macki, ale nie pasowało mi stylem, następnie wyrzut promieni światła, coś na styl magicznych igieł, które zazwyczaj są animacją "level up"
Aż skończyło się na czymś co przypomina płomień.
I oby to do mnie przemówiło, bo znów spędzę kilka dni na myśleniu czym to zastąpić ( ͡° ʖ̯ ͡°)
To otwarty świat, więc portale muszą być w jakimś sensie aktywne i umieszczone przy łączeniu z innym poziomem, bo na jednym poziomie może być i 4 przejścia więc i 4 portale
@Gagger zgadzam się z uwagą ze płomienie sygnalizują niebezpieczeństwo. A co myślisz o „klasycznym owalnym portalu”? Ewentualnie portal jako dziura w ziemi?
Eh, po dłuższym czasie myślenia nad tym jak ma wygląd GUI w końcu udało mi się dojść do tego co mi się podoba.
A wystarczyło przejrzeć setki assetów, dziesiątki artystów i powymieniać kilkadziesiąt wiadomości, żebym stwierdził, że nie podoba mi się żaden z ich pomysłów.
Ale mam w końcu swój styl, minimalistyczny, elegancki, ciekawy.
Podoba mi się.
No i w końcu mogę klepać menu i ustawienia gry.
Na szczęście programowanie idzie mi lepiej niż projektowanie wizualnego stylu gry i całość jest już na wykończeniu.
Udało mi się nawet zaprojektować statystyki dla wczytywania gry, widoczne po najechaniu na przycisk.
Widać procent ukończenia gry i kilka innych statystyk ( ͡° ͜ʖ ͡°)
Aktualnie jestem w etapie tworzenia menu, aby całość ładnie zgrać i nie musieć nic przebudowywać później bo nie było menu ( ͡° ͜ʖ ͡°)
Mapa już zrobiona, gotowa do działania, będzie na prostej zasadzie, po wejściu na poziom gracz odblokuje widok poziomu na mapie, tak jak jest to pokazane aktualnie z jednym poziomem, po przejściu na następny na mapie widoczne będą 2 poziomy.
Widok poziomów na mapie ma dekoracyjne szczegóły, dodatkowo będą na wybranych poziomach anioły, które także widoczne będą na mapie.
Tak samo jak wskaźniki dla MiniBossów i Bossów.
Z tego samego menu, gracz widzieć będzie statystyki postaci oraz
Emblematy, które odblokują umiejętności, czyli podwójny skok, dash, teleportacja czy inne.
Wybrać można będzie tylko 3 emblematy, więc trzeba będzie dobrać je z głową, ponieważ ich zarządzanie jest dostępne tylko pod aniołami, w innym miejscu mamy tylko podgląd
Na ten moment warstwa wizualna menu mi się podoba, kilka dni męczyłem się z tym jak to zrobić i co zrobić, żeby wyglądało dobrze i schludnie.
W końcu można iść dalej.
Bo w planach jest tworzenie kolejnych poziomów i zaprogramowanie przeciwników. https://youtu.be/keKvbJ54OAQ
Kiedy masz ADHD i perfekcjonizm we krwi i po zobaczeniu jednej rzeczy musisz mienić całość.
Nie spodobała mi się z efektem "WOW!" mapa, tak więc zrobiłem coś więcej ¯\_( ͡° ͜ʖ ͡°)_/¯
Ozdobiłem ją w elementy odpowiadające każdemu z aktów.
Kolejne 10h pracy nad grafiką, ale warto było, teraz mi się podoba o wiele bardziej
@Gagger ciekaw jestem czy uda Ci się to wypuścić zanim się wypalisz i pierdolniesz w kąt, a widzę już pierwsze oznaki scope creepu i podążania za myślami przerużnymi natrętnymi (takie jak ten wpis)
@wombatDaiquiri Nie obawiam się o wypalenie.
Wszystko co ma być dodane jest w jakimś stopniu ulepszane, żeby wprowadzić to od razu działające a nie bawić się tym w dłuższym okresie czasu
Siedzę w projektowaniu gier jakoś 2 lata już, cały czas mam ten sam poziom zabawy z tego.
Po prostu lubię coś tworzyć, tak samo jak lubię gry z budowaniem tak samo lubię budować.
To jest kwestia hobby, robię to co uwielbiam robić w grach od kilkunastu lat
Teraz można zacząć znów programować ( ͡° ͜ʖ ͡°)
Elegancko mapka wygląda, możliwość powiększania i przesuwania działa bez zarzutu, znaczniki w postaci aniołów już są, póki co widoczne, ale później będą widoczne tylko po wejściu na poziom i odblokowaniu ich.
Służyć będą jako punk odrodzenia i szybkiej teleportacji, oczywiście za srogą opłatą ༼ ͡° ͜ʖ ͡° ༽
Dzisiaj tylko jak się obudzę, to dodam nazwy biomów, ozdobię mapę porządnie i można lecieć dalej.
No i oczywiście pozycję gracza, bo sie zgubi na mapie jak nie będzie oznaczony, gdzie jest
Nie widziałem, że zaprojektowanie mapy w UE5 jest tak głupie, bo trzeba wpisywać koordynaty znaczników, nie można ich po prostu położyć na mapie (╯°□°)╯︵ ┻━┻
A to jest zabawa w kotka i myszkę, bo poprawianie czegoś o te 10px w bok czy górę to udręka.
No i znowu nie nagrał się dźwięk z gry ( ͡° ʖ̯ ͡°)