DevLog: Bounce! v.0.3

Słuchałem sobie niedawno podcastu z Sos’em i wpadł mi do głowy pomysł na zarys rozgrywki. Szukałem go przez cały zeszły rok i nic nie wymyśliłem, a teraz wystarczyło mi 5 sekund. Weźmy Flappy Bird’a i obróćmy telefon pionowo. Skok nie odbywa się na kliknięcie, a na gest swipe (machnięcie palcem). Postać leci w kierunku narysowanej przez gracza linii, z siłą zależną od długości/czasu trwania gestu. Mając miejsce z którego mogę zacząć, postanowiłem wziąć w lutym urlop we wszystkie piątki i zobaczyć co z tego wyjdzie.

Wymyśliłem sobie dwa podstawowe założenia dobrej gry mobilnej:

  • krótka rozgrywka – około 2-minutowa sesja
  • sterowanie gestami – w tym przypadku 1 palcem

Wersja 0.1

Miałem gotowy skrypt na obsługę swipe w prawo, lewo i w dół. Wziąłem go i dostosowałem do obecnych potrzeb. Generalnie bardzo prosta sprawa – weź pierwszy punkt w momencie przyłożenia palca do ekranu, a drugi kiedy gracz oderwie palec. Musiałem jeszcze odwrócić wektor mnożąc go przez -1 oraz wprowadzić lekki opór, żeby postać nie leciała za szybko do góry (w tym przypadku 0.8f).

Wersja 0.2

Jeśli postać może się poruszać, to przydałoby się popracować nad kamerą. Tu był trochę większy problem, bo nie miałem nic gotowego. Wziąłem sobie kartkę i narysowałem to:

Wyszły mi trzy podstawowe założenia:

  • po osiągnięciu odpowiedniej wysokości kamera przesuwa się razem z graczem
  • jeśli gracz spadnie w dół to ginie
  • ściany po bokach przesuwają się razem z kamerą, dzięki temu postać nie wypadnie poza ekran

Wiedząc co chcę zrobić – powstał kolejny krótki skrypt:

Wersja 0.3

Doszlifowanie ruchu zostawiłem na następny tydzień i postanowiłem zająć się czymś ciekawszym. Znajdźki! Używam tego słowa w złym kontekście, ale brakuje mi określenia na power-up’y, które mogą być i pozytywne i negatywne. Aktualnie mam z 6-7 pomysłów, ale zacząłem od najważniejszego – podarowania graczowi drugiej szansy. Przy okazji powstał mechanizm wypisywania tekstu na ekran, który może być mocno przydatny. To zwykła kontrolka tekstu, którego kolor na kanale alfa ma wartość 0. Przy kolizji ze znajdźką podmieniam tekst i odgrywam animację, która zmienia wartość kanału alfa do 255 i potem znowu do 0.

Jestem w lekkim szoku, że napisałem w parę godzin 15 skryptów po kilkanaście linijek. Wygląda to dużo lepiej niż gra, którą robiłem na zlecenie 1.5 roku temu, bo tam były ze 2-3 pliki po kilkaset linii. Chyba najwięcej na warsztatach z Unity, które ostatnio prowadzę, nauczyłem się ja 🙂