mój pierwszy game jam miniaturka {""}

Mój pierwszy Game Jam

data dodania: 18 lipca 2022 | z serii: Devlog

Jestem Innarq, początkujący programista, który ostatnio zaczął uczyć się game development'u. Jakiś czas temu zdecydowałem się uczestniczyć w moim pierwszym game jamie, czyli konkurencji, w której twórcy gier w danym przedziale czasu, w tym przypadku 3 dni, tworzą gry na określony temat, i dzisiaj przedstawię wam, jak przebiegał proces tworzenia gry na ten jam.

spis treści:

Dzień 1

Dzień 2

Dzień 3

Po Jamie

Dzień 1

dzien pierwszy game jamu Początek dnia pierwszego przebiegał spokojnie, czekając na temat jamu, pisałem sobie prosty prototyp gry typu top down shooter, aż nadeszła godzina jedenasta i temat jamu został opublikowany. Light attracts bugs (Światło zwabia robaki) tak on brzmiał.
Miałem dwa skojarzenia pierwsze, czyli interpretacja tematu, jaką poszło w sumie większość osób, czyli światło i robaki, a drugim trochę mniej szablonowym to, że oświetlenie ściąga błędy w grze. Gdybym teraz miał interpretować ten temat, wybrałbym pewnie pierwszy bardziej szablonowy ze względu na to, że jest prostszy, lecz postanowiłem wtedy wymieszać oba. Wymyśliłem sobie, że stworzę grę, w której światłem wywabiasz robaki, które są błędami. Nie miałem absolutnie pomysłu jak, chcę to zrobić, lecz tego dnia musiałem załatwić parę spraw, więc udałem się to zrobić i w międzyczasie starałem się coś wymyślić.
Wpadłem wtedy na pomysł bardzo dużego projektu. Chciałem stworzyć grę, w której w określonym czasie wywabiasz latarką w westernowym mieście błędy z obiektów w widoku top down a następnie walczysz z nimi w widoku od boku. Nie pytajcie jak chciałem to zrobić w 3 dni po około miesiącu nauki game dev'u. Sam teraz w sumie nie wiem. Zacząłem jednak tworzyć demo i okazało się, że nie dość, że projekt jest za duży to jeszcze gameplay jest nudny. pierwsze demo gry Dochodziły wieczorne godziny, a ja nie mam nawet pomysłu sytuacja tak jakby bardzo zła. W końcu na szczęście coś wymyśliłem. Przypomniałem sobie, że moja mama grała kiedyś w grę o strzelaniu do kur. Skojarzyłem również, że kameleony jedzą robaki, łapiąc je językiem, połączyłem to z pomysłem błędów w grze i bum, miałem pomysł, którego głównym zamysłem było to, by kameleon łapał robaki/błędy na monitorze językiem i byś musiał unikać czegoś na ekranie. Zacząłem więc tworzyć podstawowe mechaniki. Na podstawie mojego prototypu top down shootera, który stworzyłem przed jamem, dodałem poruszanie, możliwość wysuwanie języka i na tym skończył się dzień pierwszy... Nie wyglądało to za ciekawie, nie miałem praktycznie nic, a w dodatku ostatni dzień (w moim przypadku niedzielę, bo w poniedziałek już nie mogłem pracować) planowałem tylko doszlifowywać grę, a przecież pozostawał jeszcze problem tego, że nie wiedziałem jak wrzucić grę na itch.io. No cóż, mówi się trudno i trzeba iść dalej, nie mogę się przecież poddać na pierwszym jamie.

Dzień 2

dzien drugi game jamu

Od początku tego dnia wiedziałem, że będzie ciężko, potrzebowałem stworzyć wszystkie mechaniki, które są wymagane do działania gry, czyli... losowanie pozycji na ekranie, pojawianie się światła, pojawianie się robaków przy świetle, pojawianie błędów ekranowych, mechanikę błędów ekranowych, zliczania wyniku i utrudnienia w postaci lecącego czasu, a w dodatku zorientowałem się, że poruszanie się za pomocą strzałek jest bardzo nudne i irytujące, więc w musiałem je przerobić, co okazało się strasznie trudne przez mieszanie 3d z 2d, czyli w sumie cały pierwszy dzień był w plecy. Oczywiście nie pomyślałem o tym, by zrobić checklistę, więc przy tworzeniu panował straszny chaos. Po kilku godzinach poprawiania sterowania przeszedłem do pisania podstawowych mechanik. Zacząłem od światła. Stworzyłem prosty prefab i dodałem skrypt, który co jakiś czas losuje pozycje na ekranie i zmienia pozycję światła. Najprostsze i najważniejsze za mną. Następnie robaki. Aby łatwo zademonstrować wam poziom trudności wdrażania kolejnych mechanik, powiem wam, ile skryptów potrzebowałem, bo jak do wdrożenia światła miałem 1 prosty skrypt odpowiadający za losowanie i zmianę pozycji to tutaj miałem 3, odpowiadające poszczególnie za pojawianie, poruszanie i łapanie robaków, a 2 z tych skryptów były prawie dwa razy dłuższe od skryptu światła. Ok udało się to jakoś zrobić, teraz błędy na ekranie. Były one cięższe do stworzenia nawet od robaków.

Wymyśliłem to sobie tak, że na ekranie będzie pojawiało się ostrzeżenie a po jakimś czasie błąd, na który jeśli najedziesz 3 razy lub w niego uderzysz, to przegrasz

. Znowuż jak przy świetle zacząłem od stworzenia prefabów iii... Absolutnie nie wiedziałem co dalej. W końcu rozbiłem to na dwa skrypty i po wielu godzinach pracy skończyłem tworzyć najważniejsze mechaniki. Gra nie była zachwycająca, lecz była już grywalnym demem, więc zniknął trochę strach, że nie zdążę nic zrobić.
Pod koniec dodałem jeszcze scoring system polegający na zdobywaniu punktów za każdego złapanego robaka. Nadeszła już późna godzina i byłem już tak wykończony, że zaprzestałem pracy na sobotę i poszedłem spać. (Bardzo chciałbym pokazać wam, jak wyglądał progres po dniu drugim, lecz nie zrobiłem żadnych backupów ani screenów więc jedne co mogę pokazać to parę prefabów, które były gotowe po dniu drugim.) progres po dniu drugim

Dzień 3

dzien trzeci game jamu

Dalej nie działo się za ciekawie. Nie zrobiłem wszystkiego, co miałem zrobić, a musiałem poświęcić jeszcze dużo czasu na dodanie grafiki, dźwięku, zrobienie webGL builda i wrzuceniu gry na itch.io więc od razu po przebudzeniu wziąłem się do pracy. Jedyny rodzaj grafiki do gier, jaki umiem tworzyć to pixel art, lecz nie przeszkadza mi to za bardzo, gdyż uwielbiam pixel art'owe gry. By oderwać się trochę od kodowania, zacząłem od stworzenia sprite'u robaka i po skończeniu go dodałem ostatnią brakującą mechanikę, czyli utrudnienie w postaci lecącego czasu. Wyglądało to już lepiej, musiałem jeszcze dodać title oraz game over screen i coś, co miałem nadzieje, że uratuje dość słaby gameplay, czyli początkową zabawną cutscenkę, żeby gra była gotowa do upiększania i dodawania dźwięków. Zacząłem od stworzenia artu przycisku "play" oraz "play agin" i następnie przeszedłem do najważniejszej z rzeczy, które jeszcze zostały do zrobienia, czyli game over screen'u wyśrodkowałem więc ramkę, dodałem napis game over i napis do restartu i bum gotowe. Szczerze mówiąc, myślałem, że będzie to cięższe. Ok nieważne czas na title screen. Dodałem guzik z napisem play i bum gotowe... wow robienie menu jest łatwe. Ok, chciałem, by na title screenie i game over screenie był kameleon, by było wiadomo, o co chodzi w grze, oczywiście nie miałem pojęcia jak narysować kameleona, więc na oko stworzyłem kilka plam w na piskelapp.com, aż w końcu stworzyłem kształt, który mnie zadowalał, dodałem kolory i udało się, wyszedł z tego nawet słodki kameleon. Do zrobienia sprite'u na game over screen zmniejszyłem go trochę i zmieniłem ułożenie łap i miałem już dwa solidne piksel arty, ułożyłem je na ich miejsca i okazało się, że mam niesamowity problem z responsywnością, lecz nie miałem czasu go naprawić, gdyż już spora część dnia zleciała, a ja musiałem dodać jeszcze scenkę. Zamysł był taki, że pracownicy studia gier narzekają na to, że ich gra ma za dużo bugów, a ich szef mówi, że nie ma problemu i pokazuje im kameleona. Nie było nawet cienia szans, że zdarzę zrobić sprite'y pracowników, ale musiałem na pewno narysować co najmniej 3 rzeczy, chmurki jak z komiksów pokazujące co postacie mówią, napis "Game Studio" by było wiadomo gdzie dzieje się akcja i kolejny sprite kameleona tym razem wyglądającego głupiej i trzymanego przez kogoś. Narysowanie dwóch pierwszych nie było dużym problemem, a w ostatnim jedyne co było trudnością to narysowanie kameleona od przodu i sprawienie by wyglądał jeszcze głupiej, ale na szczęście się udało. Z początku planowałem zrobić tę scenkę w skryptach c# lecz zrobienie animacji w unity okazało się dużo prostsze. Zaanimowałem cutscenkę do końca i była już godzina, o której miałem zamiar wrzucać grę na itch.io, lecz stwierdziłem, że gra potrzebuje jeszcze dźwięków i particli i, że najwyżej będę siedział do późna w nocy jak się nie wyrobie. screen ze scenki Odpaliłem program lmms i jakoś stworzyłem dźwięki łapania robaków i klikania guzików, lecz tego drugiego już nie zaimplementowałem do ostatecznej gry. Przyszedł czas na muzykę. Jak słabym jestem artystom, tak jestem jeszcze gorszym kompozytorem, a miałem już bardzo mało czasu więc skleiłem parę ciekawych dźwięków i wyszedł nawet fajny rytm, lecz na tym poprzestałem, gdyż nie ma opcji, że zdążyłbym dokończyć całą muzykę, biorąc pod uwagę to, że mój czas już się kończył, a musiałem jeszcze dodać to do gry i zaimplementować particle, by uczynić grę choć trochę ciekawszą. Dodałem muzykę i dźwięki do gry stworzyłem na szybko particle łapania robaków, popatrzyłem na godzinę i... jestem mocno w plecy, a nawet nie wiem jak zrobić webGl build, no cóż, nie było najlepiej. Na szczęście zainstalowałem webgl przed jamem, a sam build nie okazał się trudny i dzięki temu tutorialowi zrobiłem to w miarę szybko i poszedłem spać spokojnie...

Po Jamie

Jestem naprawdę zadowolony, że chociaż ukończyłem tę grę. Ponieważ jest to mój pierwszy Jam, nie mam zamiaru robić wielkich zmian w grze, by mieć fajną pamiątkę. Gdy jam się skończył, udzielałem się w community i oceniłem każdą grę, jaką tylko mogłem, niektóre były naprawdę fajne. Mój wynik wyglądał tak: mój wynik i uważam, że jak na pierwszy jam gdzie było 76 gier, poszło mi w miarę ok. Nauczyłem się naprawdę dużo. Jeśli z jakiegoś powodu chcecie zagrać w tę grę, możecie to zrobić tutaj. Dziękuję Zeno za zhostowanie świetnego Game Jamu (link do wyników jamu), jak tylko będę miał czas, na pewno będę uczestniczył w jego kolejnej części w grudniu, piszcie w komentarzach, jak wyglądał wasz pierwszy Game Jam, z chęcią o tym przeczytam i życzę miłego dnia.

Może też cię zaciekawi:

Tworzenie gry z rankingiem na ScoreSpace Game Jam - devlog

SpaceScore game jam za mną niezwykle się bawiłem. Zobacz, jak przebiegał proces tworzenia mojej gry. Miłego czytania!

Powrót do szkoły - informacje - 2022

1 września dla uczniów podstawówek i szkół średnich zaczął się rok szkolny (wiem, że dziś jest końcówka 5 września sorry za spóźnienie). Oznacza to, że czas na parę zmian na blogu!

Jak obliczyć czy punkt leży w trójkącie?

Dziś obiecane na Instagramie wyjaśnienie tego, jak obliczyć czy punkt znajduje się w trójkącie. Metoda nie jest moja, znalazłem ją na forum unity w filmiku z wyjaśnieniem (linki pod koniec wpisu), jest to tylko moje wytłumaczenie tych obliczeń po polsku.

Napisz komentarz!

Czytaj opinie innych lub napisz swoją (oczywiście pamiętaj o kulturze wypowiedzi).