005. Ku chwale Ojczyzny!
Siemanko. Witam w moim warsztacie. Dzisiaj przedstawię Wam to, co ostatnio dodałem i nad czym pracowałem, jeśli chodzi o dalsze tworzenie mojej gry (takiej pierwszej z prawdziwego zdarzenia). Szybkie info, ma to być gra na PC, inspirowana czasami Ms-Dos i tym stylem, możliwość grania na padzie, rozwinięcie idei Węża o nowoczesne rozwiązania i budowę samej treści gry oraz gameplay.
- - - - -
- 1. GAMEPLAY jakiś! w końcu -
Dobra, bierzemy się do roboty. Od ostatniego czasu postanowiłem, że muszę w końcu popracować trochę nad jakimś gameplayem, żeby faktycznie już zacząć budować grę, a nie grafiki koncepcyjne, mockupy czy masę przemyśleń na temat gry (o których nie wspominam nawet, bo tego cała masa). Także zabrałem się za rzecz podstawową (po tym, jak zdecydowałem jak gra ma wyglądać, jak tworzyć grafikę - w moim wymyślonym stylu mikroTekstur), a mianowicie Ruch naszego Statku Kosmicznego, czyli Wężobota.
Trzeba było potworzyć jakieś prowizoryczne tunele i posprawdzać, jak się Statek zachowuje, jaką dobrać Prędkość (samoczynnego!) poruszania się do przodu - my mamy jedynie możliwość manewrowania na boki, skręcania + z czasem różne Ulepszenia, typu Dopalacz, Strzelanie. Także zrobiłem parę różnych takich Arenek i testowałem. Wiem już dzięki temu, jakie najwęższe przejścia mogę zrobić, ale takie, w których Snejk jest się w stanie obrócić, zawrócić [jest to wszystko robione jeszcze na starym Systemie Kolizji Ścian; teraz jest już nowy, lepszy, prostszy, ale o tym później].
![]() |
Gif.1 - Testowanie Korytarzy (1) [prędkość_filmiku: 200%] |
Także tak to wyglądało (są też błędy, jak zwykle jak się robi grę, to takich się pojawiają z nikąd dziesiątki, no i wtedy trzeba dłubać i obmyślać jak to wszystko zrobić, żeby było dobrze). Np. takie przenikanie przez Ściany (przechodzenie na drugą stronę), co oczywiście ABSOLUTNIE nia ma prawa się wydarzyć w pełnej grze, więc trzeba się zastanowić, rozebrać na czynniki pierwsze to, co powoduje taką możliwość i ją wyeliminować (a jeśli się nie da, to jakoś obejść, załatać, dając np. niewidoczne ściany, chociaż to nie najlepsze rozwiązanie, ale tylko tak o tym wspominam).
![]() |
Gif.3 - Testowanie Korytarzy (3) [200%] - jak widać, da się jeszcze "przebić" przez ścianę! |
- - - - -
- 2. Pasek Energii + Autoregeneracja -
Po tym, jak sobie potestowałem i dopracowałem zmienne odnośnie Sterowania Wężobota, zabrałem się za wprowadzenie Życia/Energii Snejka. Dla uproszczenia zrobiłem tak, że stworzyłem zmienną "wonsz_energia" i dałem początkową wartość: 100.
I wiadomo, jak to w grach, strzały przeciwników i różne inne przeszkadzajki będą nam energię odbierać (w zależności o tego, co i jak, to dla przykładu: standardowy przeciwnik: jego strzały kiedy w nas trafią, odbierają nam po 5 pkt. energii., a np. kiedy sami wjedziemy na czerwone kolce, to 20 pkt. - no i wtedy odejmujemy te 5 czy 20 od tych 100. Jak mamy 0 (lub poniżej 0!) to Game Over i kompiuter wybucha... a tak na serio, to kończymy Misję niepowodzeniem i tracimy wszystko co uzyskaliśmy w trakcie trwania tej jednej Misji (nie chcę za bardzo karać gracza np. Śmiercią Całkowitą i zaczynaniem wszystkiego od początku, bo sam tego nie lubię. Dlatego po prostu tracimy jedynie postęp z TEJ JEDNEJ MISJI. Natomiast będziemy oczywiście mieli możliwość Leczenia(?) chociaż bardziej wypadało by to nazwać Naprawy (Naszego Statku) i będą naprawy Lekkie (dodaje 20 pkt) i Mocne (dodaje 50 pkt), jednak taka naprawa będzie nas kosztować Kasę (czyli Złote) [jeszcze nie zdecydowałem, czy najpierw taką możliwość (powiedzmy że nazwijmy to Apteczkami na teraz) musimy zakupić w Sklepie przed Misją, czy możemy zakupić/naprawić się w każdym momencie w trakcie Misji, o ile mamy wystarczającą ilość Kasy(???). Jeszcze nie wiem, pewnie zdecyduję dopiero w praniu, w trakcie przechodzenia jakiejś Misji, co się lepiej sprawdza i bardziej pasuje do gry. [Jak widzicie, ja mógłbym wchodzić w tysiące szczegółów i o nich pisać w zasadzie bez końca, dlatego tutaj zastopuję temat i przejdę dalej].
Wprowadziłem też Autoregenerację (naszego Statku) - nie będzie na wyposażeniu Podstawowym. Dopiero kiedy zdobędziemy odpowiednią Kartę z Ulepszeniem (a te dostajemy, czasem!, za ukończenie pomyślne danej Misji), będziemy mogli w Sklepie ją Zainstalować (za Kasę oczywiście). Będą pewnie ze 2-3 Moce tego Ulepszenia.
Wiadomo, polega na tym, że Samoczynnie Naprawia nam Statek (odnawia Energię), powiedzmy że na Mocy 1 będzie to: 2 pkt / 5 sek. ( i jak łatwo obliczyć, uzupełnienie całej energii zajmie tej mocy: 250 sekund, czyli około 4 minuty [od ZERA! liczone], czyli generalnie bardzo wolno, ale musi tak być, dlatego że: po pierwsze, musi być konieczność Zakupywania Napraw (tych Lekkich i Mocnych), a po drugie, mamy jeszcze do uzyskania i zainstalowania w czasy gry większe moce tej Umiejętności). Generalnie, trzeba będzie tak samo, w praniu, dobrać odpowiednie wartości i je powprowadzać. Póki co, najprostszy system Autoregenującego się "Zdrowia" Statku jest. Git.
![]() |
Gif.4 - Autoregeneracja działa (można by powiedzieć, że nawet bardziej niż powinna :P) [200%] |
- - - - -
- 3. MikroTekstury dla kolejnych Przestrzeni w grze -
Na samym początku, gra składała się z 3 kolorów, biały wąż, niebieskie ściany i czerwone kolce. Tyle. Dlatego trzeba było wymyślić jakąś grafikę i jak ją robić (w miarę sensownie i szybko, bo będę musiał własnoręcznie "oteksturować" pewnie paręset takich Arenek (320x240), także samo to może zająć baaaardzo dużo czasu. Więc zdecydowałem się na takie przeze mnie wymyślone mikroTekstury, czyli kafelki 8x8. Zrobione z prawdziwych grafik, zdjęć tekstur, obiektów, ale przerobione na niską rozdzielczość, parę różnych wersji tego samego kafla + ułożone w linii w sposób randomowy, żeby nie wyglądało jak coś, stworzonego przez robota/komputer, ale bardziej chaotycznie/realnie - tak jak jest to w życiu. No i myślę że mi się udało, oczywiście nie za pierwszym razem super, ale szybko to poszło i fajny efekt (dodaję jeszcze, też wprowadzane ręcznie, Cienie przy ścianach idące w stronę środka mapki, dużo lepiej to wygląda z tymi cieniami, niż bez nich).
Zaś się rozpisałem... Chodzi o to, że porobiłem parę godzin, popróbowałem co i jak, i zrobiłem kolejny zestaw mikroTekstur, których będę mógł używać na planszach/misjach dziejących się:
![]() |
Png.1 - Wewnątrz Budynków/Placówek |
![]() |
Png.2 - Dziejących się gdzieś pod ziemią (dosłownie to w ziemi) |
![]() |
Png.3 - I ewentualnie gdzieś na Powierzchni Obcej Planety |
[A tak wygląda póki co Obszar Świata/Mapka jedyna która jest, na której wszystko testuję i sprawdzam]
![]() |
Png.4 - Mapa Świata (Gry) :) |
- - - - -
- 4. Podstawowe Strzelanie -
Zająłem się w końcu czymś realnie dostępnym w grze, a mianowicie wprowadziłem podstawowe strzelanie. Jest to tak naprawdę druga wersja (pierwsza była taka, że na Gałce Prawej obracamy sobie Działkiem na Głowie Wężobota [niezależnie od kierunku ruchu węża] i strzelamy wtedy w 360 stopniach). Ale po jakimś czasie uznałem, że jednak wprowadzę jeszcze prostsze Strzelanie i po prostu trzymając klawisz CTRL lub A na padzie, strzelamy z przodu naszego Statku, w kierunku, w jakim się poruszamy - najbardziej prosto jak się da. Dałem też tymczasowe dźwięki (przerobiony trochę dźwięk strzelania z karabinu kałach + cichy dźwięk przeładowania, kiedy przestajemy strzelać). Bardzo mi zależy, żeby było naprawdę fajne udźwiękowienie w grze, żeby wszystko fajnie pasowało do siebie i było soczyste i mięsne (przynajmniej jak na moje możliwości samodzielnego tworzenia). Póki co jest git, zostaje tak jak jest.
![]() |
Gif.5 - Piu, piu, piu...Podstawowe Strzelanie działa (pa jacy jesteśmy teraz groźni :P) |
- - - - -
- 5. Przerobienie Systemu Ścian -
Zabrałem się tutaj za Przerobienie tego, jak działa kolizja Snejka ze Ścianą (i z kolcami też). Generalnie do tego momentu było tak, że Snejk kiedy uderzył "Głową" w Ścianę Niebieską, samoczynnie skręcał w jedną stronę (w tym czasie zostawała nad odbierana kontrola nad Wężem oraz wyłączone zostawały wszelkie Kolizje) i po 1 sekundzie, odzyskiwaliśmy kontrolę oraz system kolizji zostawał włączony. To w pewnych sytuacjach doprowadzało do tego, że kiedy były dwie ściany, jedna przy drugiej, Snejk, w czasie kiedy kolizje były wyłączone, przenikał/przechodził przez Ścianę (no bo go nic nie powstrzymywało) i wychodził np. poza obszar Arenki, albo wchodził gdzieś, gdzie nie powinno się dać, itd. etc.
Także wywaliłem to co było i wprowadziłem, od zera, NAJBARDZIEJ podstawowe kolizje jak się da. Nigdy nie tracimy kontroli, system kolizji nigdy nie zostaje wyłączony, a przy samym zderzeniu ze Ścianą, głowa Snejka zostaje po prostu momentalnie odwrócona (o bodajże 120 stopni w którąś ze stron) i idzie on dalej. To jest spoko, bo najważniejsze!, nigdy nie wyjdzie już poza obszar Arenki ani nie wejdzie na Ścianę Niebieską (czy cokolwiek innego posiadającego takie same atrybuty jak Ściana), a po drugie tworzy to sytuację (bo nie chciałem karać tutaj gracza za to, że Snejk wejdzie na Ścianę, dlatego nie zabiera nam to Energii), że Snejk zaczyna iść w trochę Przypadkowym Kierunku i to jest taka jakby drobna kara (sprawia, że nie chcemy tego, będziemy woleli tego unikać). I tak jest git już.
![]() |
Gif.6 - Przerobienie systemu ścian (bezbłędnie działa teraz) |
- - - - -
- 6. Wprowadzenie deltaTime -
W tym miejscu jedynie wspomnę o pewnym temacie, a mianowicie o tzw. performance, czyli to, jak gra nam chodzi na naszym sprzęcie. Wyobraźmy sobie teoretyczną sytuację, że mamy dwa komputery, jeden stary, drugi super nówka. No i nasza gra, kiedy jest baaardzo wymagająca scena akcji czy coś (np. 10.000 sprajtów na ekranie i mnóstwo obliczeń...) to wiadomo, słabszy komputer potrzebuje więcej czasu, żeby to wszystko obliczyć.przetworzyć i dlatego gra jest wyświetlana w 30 klatkach na sekundę. Natomiast dla naszego super kompiutera z NASA to pikuś i oblicza wszystko w 60 kl/sek. a dodatkowo jeszcze na boku wykopuje bitcoiny :P.
Realnie patrząc, kiedy wszystkie obliczenia w grze, zmienne, nie mają czegoś takiego jak deltaTime, mogą sprawić, że gra będzie niegrywalna! Wszystko się zacznie pieprzyć itd. etc. (lepiej to można zrozumieć, kiedy się włączy jakąś starą grę i ona chodzi tak szybko, że nie da się grać - to jest właśnie brak deltaTime w kodzie całej gry - gra wtedy chodzi najszybciej jak realnie może, bo w pewnym sensie nic jej nie ogranicza).
I teraz najprościej jak potrafię, ta zmienna deltaTime (którą się dodaje do, z tego co wiem, najlepiej każdej zmiennej, która jest liczona w czasie rzeczywistym), sprawia, że np.:
Obiekt X, który porusza się w prawo z prędkością 10 pikseli na sekundę,
zarówno na Słabym jak i na Mocnym komputerze, ten Obiekt z DOKŁADNIE taką prędkością będzie się przesuwał (bo będzie to NIEZALEŻNE od tego, ile klatek na sekundę nasz komp wyciągnie).
Mam nadzieję że rozumiecie, nie potrafię tego jaśniej wytłumaczyć. Sam dopiero wprowadzam pierwszy raz tą zmienną do swojej gry, dlatego zobaczymy. Korzyści wydają się być nieocenione, bo gra będzie chodzić "dobrze" na każdym kompie (a jedynie bardziej lub mniej płynnie, w zależności od klatkarzu). Dobra, wystarczy tego tematu. Idziemy dalej.
![]() |
Png.5 - A tak to wygląda w Konstrukcie na przykładzie jednej ze zmiennych |
- - - - -
- 7. "Wężogród", czyli nasza Baza Główna -
To miejsce, w którym będziemy Wybierać jedną z dostępnych Misji, przeglądać i kupować dostępne Ulepszenia, handlować, sprzedawać i kupować Surowce, Przedmioty, ale też Wybierać i wykonywać Misje Dodatkowe (poboczne), żeby po prostu dorobić sobie na boku (i podołać trudniejszym wyzwaniom, dla hardkorów(!), zobaczymy).
Posiedziałem trochę w fotoszopie (a tak naprawdę, to zacząłem korzystać parę miesięcy temu z darmowego programu Photopea, który jest bardzo podobny do PS i dodatkowo pracuje się w nim w przeglądarce, także spoczko) i zrobiłem parę takich przykładowych grafik/mockupów, tego jak chcę żeby to Menu Wyglądało. Coś takiego (są 4 wersje, możecie pisać, która się Wam najbardziej podoba, w sensie Tło, bo jeszcze nic nie jest zdecydowane):
![]() |
Png.6.1 - Jedna z wersji (tła) dla Menu Bazy Głównej (Wężogrodu) - Wersja testowa 1 |
![]() |
Png.6.2 - Jedna z wersji (tła) dla Menu Bazy Głównej (Wężogrodu) - Wersja testowa 2 |
![]() |
Png.6.3 - Jedna z wersji (tła) dla Menu Bazy Głównej (Wężogrodu) - Wersja testowa 3 |
![]() |
Png.6.4 - Jedna z wersji (tła) dla Menu Bazy Głównej (Wężogrodu) - Wersja testowa 4 - Tutaj z miejscem na dodatkową grafikę dla Postaci z danej Kategorii. |
- - - - -
- 8. Ekran: Wyboru Misji -
Kolejną sprawą, którą chciałem mieć zrobioną, którą chciałem "zobaczyć", to Menu Wyboru Misji. Zrobiłem sobie taką graficzkę dyskietki 3.5, bo pomyślałem że to zajefajny pomysł, żeby Misje (w sensie treść tego, co mamy tam zrobić i wszelkie info o niej) były na takich właśnie dyskietkach (w końcu gra ma nawiązywać do ery ms-dos, no to jest!). Zrobiłem parę wersji tej dyskietki i będę chciał wprowadzić na dole takie przesuwalne w dwie strony Menu, gdzie wybieramy jedną z Dostępnych Misji, którą chcemy wykonać. Po wybraniu, na górnym ekranie-holograficznym (haha, a co!), będą się wyświetlać informacje na temat danej Misji, jej Cele oraz Nagrody jakie uzyskamy, po jej ukończeniu. Następnie trzeba będzie jeszcze Kliknąć żeby daną Misję Zacząć i tyle, przenosi nas do konkretnej Misji/Mapki i zaczynamy grę. Tutaj też będą widoczne, poprzez kolory Dyskietek, 3 dostępne trudności danej misji - żółta (łatwa), niebieska (średnia) i czerwona (trudna). Oczywiście będzie to relatywne do postępów jakie poczynimy w grze: początkowe czerwone będą dużo łatwiejsze, niż czerwone z końcówki gry - bo chcę zrobić tak, żeby gra stawiała przed nami coraz większe wyzwanie (a żeby uzyskać dostęp do danych Misji, będziemy musieli spełniać pewne wymagania, np. mieć Zainstalowane Określone Ulepszenie czy kupioną Odpowiednią ilość "brzuchów" Snejka, bo to w nich przewożeni do bezpieczeństwa będą wyzwoleni Więźniowie [czyli. 2 brzuchy to max. 2 więźniów ratowanych.przewożonych na raz, itd.]).
![]() |
Png.7 - Przykładowa grafika dla Menu Wyboru Misji (hasło tymczasowo zaczerpnięte z filmu"Seksmisja" :P) |
- - - - -
- 9. Początkowe działanie panelu: Szybkie Info -
Poza głównym Panelem Informacyjnym, gdzie będą wyświetlane Wszystkie Najważniejsze Ogólnie informacje, chciałem wprowadzić taki pasek Szybkiego Info. No i jest (póki co wizualnie jedynie). Działa on tak, że w każdym momencie, kiedy jesteśmy w grze/na misji (i nie mamy włączonego innego Panelu...), kiedy przytrzymamy klawisz Q lub B na padzie, wyświetli się nam u góry taki właśnie pasek, gdzie na szybko możemy sobie zobaczyć ile mamy energii, surowców, uwolnionych więźniów (w tej konkretnej misji), czas grania (tej konkretnej misji), a może jeszcze jakieś inne, to się zobaczy w takcie tworzenia gry.
Wyświetla się on tak długo, jak długo trzymamy wciśnięty ten klawisz. Początkowo wprowadziłem go tak, że po naciśnięciu danego klawisza, on się po prostu wyświetlał przez 5 sek. a potem sam znikał, ale myślę, że w dłuższej perspektywie to by było denerwujące, bo jednak przez cały czas, te 5 sek. on tam musiałby być, zasłaniając pole gry (która się nie pauzuje w tym przypadku - zupełnie inaczej niż w trakcie wyświetlania Panelu Informacyjnego). Poza tym, czasem nie uda się przeczytać wszystkich informacji, które chcemy, więc musimy wciskać drugi raz, trzeci... Także teraz wyświetlamy tyle ile sami chcemy, po prostu trzymając wciśnięty dany klawisz. Jest git. A wygląda to tak:
![]() |
Gif.7 - A tutaj już normalnie działające w grze (póki co wyświetla sam sprajt, nie nalicza niczego) |
- - - - -
- 10. Początkowe działanie: Panelu Informacyjnego -
Panel Informacyjny (tzn. jak tworzyłem samą grafikę) pokazywałem już wcześniej, ale teraz postanowiłem wprowadzić takie początkowe jego wyświetlanie i działanie do gry - tutaj też już trzeba będzie zdecydować się na odpowiednią czcionkę, ale o tym kiedy indziej. Więc powprowadzałem wszystko co trzeba do Konstrukta i zacząłem wprowadzać funkcjonalność. I póki co, działa. Wziąłem ten pasek energii z wcześniejszych testów, dodałem odpowiednią grafikę i generalnie wyświetla ładnie teksty i nawet pasek energii działa, jak się skujemy, to energia spada, a kiedy autoregeneracja jest włączona, to widać, że pasek sam się zapełnia. Także sukces. Resztę będę wprowadzał w przyszłym tygodniu, bo to tyle ile zdążyłem zrobić do tego piątku (a dziś, w sobotę, tworzę ten tekst na bloga).
![]() |
Gif.8 - No i Panel Informacyjny działa i wyświetla tekst oraz poziom energii (realnie) [150%] |
- - - - -
No i to tyle na te dwa ostatnie tygodnie (chociaż tak naprawdę bardziej tydzień, bo było tak gorąco, że mi się mózg roztapiał. W połączeniu z moją chorobą wieloletnią nie było szans siedzieć godzinami przy kompie i pracować. Ale zrobiłem ile mogłem, od poniedziałku jedziemy dalej z tematem. Są zapisane setki rzeczy, które jedna po drugiej będę tworzył i wprowadzał (już nie mogę się doczekać np. tworzenia muzyki, w formie trackerów z lat 90, żeby naprawdę fajnie i klimatycznie to wszystko brzmiało).
Powoli będę też wprowadzał Kamerę (będą dwa rodzaje, statyczna, czyli nieruchoma, która przenosi się jedynie między Arenkami i ruchoma, która podąża za Snejkiem i pokazuje nam teren [w Arenkach łączonych, gdzie np. nie będzie żadnych Ścian, takich naokoło, ograniczających]).
Jakiegoś pierwszego Przeciwnika, do którego można Strzelać i go rozwalić... lub on nas haha :D
Te Drzwi Automatyczne, które jeśli możemy przejść, to się same otworzą - Snejk się sam wycentruje na Środku i przejdzie ładnie do kolejnej Arenki, po czym się drzwi same zamkną. Tutaj też trzeba będzie wprowadzić parę działających Systemów, np. Kart do Drzwi czy Pola Energii Odbijających Snejka, kiedy się nie otwierają lub Całkowite Zamykanie Wszystkich Drzwi na Arence (i otwarcie dopiero, kiedy rozwalimy wszystkich Przeciwników, w danej lokacji).
Jak widzicie, jest co robić i o czym myśleć, także ja na ten tydzień kończę, zbieram siły i widzimy się pewnie na blogu za jakiś czas, tydzień lub dwa, gdy znów przyjdę zdać relację co i jak (i czemu tak dobrze :) ), także trzymajcie się, nie dajcie się i wierzcie w swoje marzenia, przekuwajcie je na cele i realizujcie (kiedy tylko się wam chce i kiedy się da). Pozdrawiam, Łukasz.
- - - - -
Mój profil na itch.io: https://mikrostudiopolska.itch.io/
Komentarze
Prześlij komentarz