Tag: gamejam

Próby ze światłem

W wolnym czasie dalej eksperymentuję z tworzeniem gier. Najczęściej szukam jakiegoś gamejamu z ciekawym tematem i próbuję coś zbudować. Czasem się udaje, a innym razem nie. Jeśli nie interesują Cię kwestie związane z tworzeniem małych cyfrowych światów, to ten tekst może Cię znużyć. Ostrzeżenie zostało wydane, teraz, bez żadnych skrupułów, mogę przejść do charakterystyki mojego niewielkiego projektu. Główne założenia? Zbudowanie gry, w której odbiorca lawiruje między przeszkodami i musi dotrzeć do oznaczonego punktu.

Nie jest to duża rzecz, rzekłbym nawet, że wręcz podstawowa. Opracowałem prosty mechanizm tworzenia planszy, wybrałem elementy, z których ma się składać. Dodałem gracza, w międzyczasie zdecydowałem, że tym razem mój niewielki tytuł będzie w trzech wymiarach. Wszystko szło całkiem sprawnie, chociaż przy budowaniu planszy złapałem kilka potknięć. Wymyślałem koło na nowo, zamiast wybrać jakiś algorytm i na jego podstawie wygenerować labirynt. Nie twierdzę, że był to czas zmarnowany, ale sądzę, że mogłem sobie trochę przyspieszyć prace. Po przetestowaniu ukończonego prototypu zauważyłem, że czegoś mi brakuje. Chciałem dodać jakiś drobny element, który uatrakcyjni zabawę. Próbowałem różnych rzeczy. Teleportów, dodatkowych przeszkód, a nawet przeciwników goniących gracza. Okazało się, że najciekawszym rozwiązaniem jest modyfikacja światła znajdującego się na scenie.

Najpierw zaprezentuję efekt z pełnym oświetleniem. Tak wyglądała pierwsza wersja.

Niewielka plansza, trochę przeszkód. Żadnego wyzwania. Drogę do zielonego punkt można znaleźć z łatwością, nie trzeba się nawet specjalnie wysilać. Po dotarciu do celu losowany jest kolejny, ale poziom trudności pozostaje na tym samym poziomie. Tutaj zacząłem kombinować z różnymi elementami.

Tak prezentuje się scena ze znacznie mniejszą ilością światła.

Plansza zyskuje inny charakter, głównie ze względu na to, że gracz nie widzi całości. Opiera się tylko na tym, co dostrzega wokół prowadzonego pionka. Ciekawe jest także to, że, ze względu na brak charakterystycznych punktów, przemieszczanie się po planszy jest dość specyficzne. Można się jej nauczyć, ale za pierwszym razem sporym problemem jest orientacja w przestrzeni. Wszystkie przeszkody są do siebie podobne, na dodatek nie wiadomo, czy wybrane przejście będzie ślepą uliczką. Tę wiedzę dopiero się nabywa, trzeba tam po prostu wleźć. Tutaj doszedłem do wniosku, że warto dodać wagę do pionka, a także siłę, która będzie na niego działała i umożliwiała poruszanie. Jeszcze przydałaby się jakaś kara… Stwierdziłem, że każde zderzenie ze ścianą będzie prowadziło do utraty punktu życia. Co w połączeniu z dodawaną siłą oraz odbiciami, sprawiło, że rozgrywka stała się trochę ciekawsza.

Pojawiło się kilka elementów, które gracz musi rozważyć w trakcie zabawy. Przede wszystkim zarządza punktami życia, które otrzymuje za dotarcie do zielonego kafelka. Pojawia się pytanie, ile zdrowia straci, zanim tam dotrze? Na dodatek sterowanie postacią wcale nie jest łatwe, ze względu na ciągłe dodawanie siły, która coraz bardziej rozpędza pionek. Jak go wyhamować? Najlepiej zderzyć się z przeszkodą, ale to powoduje utratę punktów życia i zbliża do przegranej. Co ciekawe jestem zadowolony z tego prostego projektu. Zrozumiałem, że zabawa percepcją odbiorcy może mieć duży wypływ na pozostałe mechaniki. Przy pełnym oświetleniu, zaplanowanie ścieżki jest banalne, natomiast przy niedoborze światła już trzeba trochę kombinować. Ryzykować i zastanawiać się, jaką drogę wybrać.

Dżemowanie

Myślę, że przyszedł czas, abym podzielił się moimi gamejamowimi historiami. Ku mojemu zdumieniu, zebrało ich się całkiem sporo. Od dwóch lat aktywnie biorę udział w różnego rodzaju zabawach związanych z szybkim tworzeniem gier. Z perspektywy czasu widzę, że dużo mnie to nauczyło. Coraz rzadziej wymyślam skomplikowane projekty, których w ogóle nie jestem w stanie ukończyć. Nie to, że mam listę działających gier. W sumie mam jedną. Zrobiłem ją w ramach „PyWeek 29”.

Na czym polega ten game jam? W ciągu tygodnia trzeba stworzyć formę wirtualnej rozrywki w Pythonie. Temat jest narzucony. Tym razem był to „efekt motyla”. Zapoznałem się, podumałem i stwierdziłem, że zrobię niewielką grę polegająca na zarządzaniu zasobami. Zadaniem odbiorcy miało być zaspokojenie zapotrzebowania, którego przyrost zawsze wynikał od aktualnej wartości podaży. To był mój pomysł na interpretację tematu PyWeek 29. Wiecie, co jest najzabawniejsze? Ja tę grę skończyłem, ale nie zdążyłem jej wysłać. Tak, w trakcie ostatnich testów zauważyłem dwa potworne błędy. Potrzebowałem czasu na ich poprawienie i przegapiłem możliwość wysłania gry.

Za to wrzuciłem je do swojego repozytorium. Tym samym stworzyłem miejsce, w którym mają się pojawiać ukończone projekty. Mam nadzieję, że się uda, ponieważ po każdej nowej grze, pewnie będę pisał post na bloga. O tym, czego tym razem się nauczyłem. W przypadku PyWeek 29 będą to następujące rzeczy.

Przy rysowaniu GUI dla użytkownika, trzeba myśleć o tym, co i kiedy będzie się odświeżać. W przypadku mojego „dzieła” cały interfejs znajduje się na jednej warstwie. Jeśli chcę coś odświeżyć, to muszę nadpisać określony fragment ekranu. Niestety, okazało się to kiepski rozwiązaniem, mało wydajnym, ponieważ niektóre elementy powinny zostać narysowane raz, a inne odświeżane na życzenie. Gdybym stworzył odpowiednie panele i przestrzenie, ogarnięcie interfejsu byłoby łatwiejsze.

Dobrze jest zrobić, chociaż podstawowe menu i ekran kończący. Na początku uznałem, że do niczego mi się te elementy nie przydadzą. Myliłem się. W trakcie testowania zauważyłem, że znacznie bardziej czytelne dla użytkownika byłoby stworzenie, chociaż podstawowego ekranu kończącego grę. Żeby wiedział, co się stało. U mnie, w momencie przegranej, okno po prostu się zamyka. Co wygląda tak, jakby mój program zdechł, a on zadziałał zgodnie z założeniami.

Brak czytelnych komunikatów lub dźwięków psuje zabawę. Ja wiem, co dzieje się na ekranie i powinien dążyć do tego, abym użytkownik nie musiał czytać załączonego pliku README z instrukcją. Prosta gra powinna być jasna, z koherentnym sterowaniem. A nie, raz się klika, a innym razem trzeba naciskać przyciski na klawiaturze. Pomieszanie z poplątaniem.

Trzy dość istotne rzeczy, o których zawsze zapominam. Koncentruję się na stworzeniu prostej mechaniki pasującej do tematu oraz staram się ją jak najbardziej uprościć, aby ukończyć grę w terminie. A potem okazuje się, że przez niechlujny interfejs czego nie dopilnowałem, coś przeoczyłem. Liczę na to, że następnym razem będzie lepiej!

Powered by WordPress & Theme by Anders Norén