Uwielbiam swój perfekcjonizm.
Od tygodnia zasuwam z paskiem życia, żeby był wręcz idealny.
Musi pasować historii, stylu, grafiki i atmosfery gry.
A zarazem musi być oryginalny, inny niż reszta, nie może być kolejną kopią z innymi ikonami.
A do tego musi być prosty do odczytania i to w chwilę, aby nie myśleć
- "Czy ja mam 2 czy 3 punkty życia?"
I tak se siedzę i tworzę pasek życia.
Ale zjechałem z kilkuset pomysłów do zaledwie 6 ¯\_( ͡° ͜ʖ ͡°)_/¯
Teraz tylko ogarnąć to i wybrać ten najlepszy, najładniejszy i najbardziej pasujący.
Ale wiem chyba jedno, łapacz snów zostaje, a do niego przytwierdzona będzie gałąź z ikonami życia, pasującymi historią do gry.
Jeszcze tylko zmienić mu kolor na drewniany
@Hoszin Raczej zostawię to tak.
Gałąź z ozdobami, tylko ściemnię kolory na gałęzi na ciemniejsze, bardziej dębowe
I zrobie złote nicie, na gałęzi będą świece.
Zapalona - 1pkt życia
Zgaszona - tutaj straciliśmy pkt życia
Brak świecy - ten punk nie jest odblokowany jeszcze
@Gagger mordzia a oglądasz te graficzki czasem tak +/- 100% widoku jak będą wrzucone w interfejs?
A do tego musi być prosty do odczytania i to w chwilę, aby nie myśleć
te pixelarty są ładne ale łape klimat ale jako user
jest różnica widocznych detali miedzy miniaturą a przybliżeniem, czy na pewno te detale są ci potrzebne? tnij zbędne rzeczy
czy większość tych ozdobników stanowi jakaś wartość, komunikat dla gracza?
idziesz w świeczki a pod nimi są kryształki , zbieram świeczki czy kryształki? potrzebujemy kryształków? te gałezie nie przysłonią mi pola gry? nie wystarczy jedna odnoga potrzbujesz 3/4?
lecisz od ogółu do szczegółu a trochę chyba fiksujesz się na szczególe :)
wrzuć to sobie na jakiś widok 1920x180 i zobacz co jest widoczne w tym interfejsie i co warto rozwijać
Robisz w pixelarcie wiec pewnie znasz techniki starych gier, jak mistrzowsko operowali każdym pixelem, powielali, minimalnie animowali tło dając pele złudzenie ruchu, wtedy wymagały tego obostrzenia systemowe teraz tego brak i łatwo się zapędzić :)
takie moje sugestie zrobisz z tym co uważasz
@SaucissonBorderline Nie dostosowałem odpowiedniego rozmiaru, w sensie skali XY żeby było perfekcyjnie okrągłe, ale jest widoczne to co ma być, dodatkowo na gałęzi będzie 7 elementów.
Domyślnie nie będą tak ciemne.
Ale w FHD widać 7 elementów osobnych, mimo nieprzygotowanego screena.
Nawet w 720p da się to spokojnie zauważyć.
A patrzę na to z monitora 3440x1440p
Oczywiście, szczegóły zanikają wraz z schodzeniem w dół z rozdzielczością, ale jak ktoś gra na monitorze 720p to będzie miał znów większy widok niż ja aktualnie.
Domyślnie będą tam raczej świece (wyżej pisałem nad czym myślę) więc będą smuklejsze niż róże.
Testowane bezpośrednio w grze, zmieniałem rozdzielczości z 3440x1440 na 1920x1080 oraz 1280x720
@Gagger spoko, tak tylko zauważam, że czasem nie ma co się na detalach skupiać tym bardziej , że zadaniem tego paska jest informować nie przeszkadzać ;)
druga spraw jak będzie zbyt dopracowany może odbiegać stylem od reszty gry, tam postać, świat, przeszkody widać są puszczone luxniejszą kreską wieksze pixele
góra jest ultra detal
Jak wam mija ten piękny środowy dzień? ( ͡° ͜ʖ ͡°)
U mnie w końcu przyszedł przełom, mam nadzieję, że nie będzie to zbyt trudny pomysł.
Ale spodobał mi się jeden pomysł z paskiem życia, a po prostu świecznik z świecami.
Animowane świece, a konkretnie tylko ich płomień, będą ciągle w ruchu, co doda elementowi trochę finezji i efektu.
Złoty świecznik, z czerwonymi świecami będzie informował o stanie życia.
A świece będą gasły po utracie punktów życia.
Dodatkowym pomysłem jest także podświetlenie całego świecznika na czerwono, jeżeli gracz będzie miał 1pkt życia, aby dodać dramaturgii do sceny, oraz poinformować go bez patrzenia, że jest źle.
Cały element w pięknym mrocznym stylu, gotyckim, z lekką domieszką nowożytnej Anglii, jeżeli chodzi o styl.
Wrzucam wam tylko i wyłącznie gotowy element, czyli ozdoby świecznika, reszta niech będzie niespodzianką.
Zazwyczaj mam osoby, które mogę pytać o to, co lepiej wygląda.
Co ładniejsze czy jak to działa.
Ale czuję, że mają mnie dość ( ͡° ʖ̯ ͡°) więc zapytam kogoś tutaj.
Która opcja z paskiem życia, wygląda o wiele ładniej?
Która według was lepiej wpisuje się, w samą historię?
Wyjaśnienie, które także będą w grze.
W przypadku:
Piór i łapacza snów
Pióra symbolizują 1pkt życia, po stracie pióro zanika, zostaje sam sznurek, który to trzyma.
Po zdobyciu punktu, pióro się pojawia na swoim miejscu, jest ich kilka typów kolorystycznych.
Kwiaty róży
Każdy kwiat symbolizuje 1pkt życia, kwiat znika usychając jak wyżej, pojawia się po zdobyciu punktu.
Dodatkowo.
Wersja duża łapacza snu, będzie miała możliwość sygnalizowania o ukrytych miejscach, za pomocą różowych kamieni w mniejszych pierścieniach.
Gałąź natomiast będzie miała to samo ale na latarni, będzie zaczynać świecić.
Mniejsza wersja łapacza będzie to miała na środku.
Wybaczcie, że wołam każdego, ale chcę wam pokazać jak to wygląda w grze.
W Łapaczach jest maksymalna ilość HP, więc są wszystkie pióra, na gałęzi jest 1hp więc jest 1 kwiatek
Kwiatki więdną przy utracie, a pióra po prostu spadają i zostaje sama nitka je trzymająca
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