Shock;Gate
Status projektu

Wstrzymany

Typ projektu

Studia / zespołowy (3 osoby)

Czas trwania

~październik 2019 - luty 2020

~maj 2023 - wrzesień 2023

Użyte oprogramowanie

Unity Engine, Audacity

Główne role

Lead programmer / Level designe / Game design

O Shock;Gate

Shock;Gate jest projektem inżynierskim rozpoczętym pod koniec trzeciego roku w Collegium Da Vinci. Zespół składał się z dwóch programistów oraz grafika 3D. Byłem odpowiedzialny za implementacje wszystkich funkcjonalności gry oraz za tworzenie poziomów w Unity Engine. Jest to mój pierwszy "profesjonalny" projekt w Unity, który pomógł mi rozwinąć umiejętności w Unity oraz C#.

W grę można zagrać samodzielnie lub z drugim gracza, można rozegrać 3 różne misje, a ukończenie ostatniej odblokowuje dwie nowe bronie. Dodatkowo jest strzelnia, gdzie można przetestować wszystkie dostępne w grze bronie. W grze można napotkać 6 rodzajów przeciwników.

W maju 2023 postanowiłem poprawić projekt, pracę rozpocząłem poprzez przepisanie całego kodu, co pomogło w optymalizacji doświadczenia oraz naprawiłem wiele błędów. Wszystkie sceny mają teraz wypalone oświetlenie oraz poprawione kolizje dla checkpointów misji oraz otoczenia. Dodałem także po śmierci gracza ekran śmierci, wcześniej był uruchamiany ekran pauzy,a po pomyślnym zakończeniu misji zobaczymy podsumowanie, które pokazuje nasze statystyki(ilość zabójstw, strzałów, użyć umiejętności oraz uników). Przerobiłem także cały panel wyboru broni, na bardziej czytelniejszy oraz pokazujący co aktualnie posiada gracz.

Rzeczy, które zrobiłem:
AI przeciwnika

Jak widać na załączonym obrazku przeciwnicy posiadąją dwie sfery, pierwsza zielona pokazuje zasięg widzenia przeciwnika, a druga żółta przedstawia zasięg broni przeciwnika. Dodatkowo przeciwnik ma kąt widzenia, pokazany przez dwie czerwone linie. Gdy gracz wejdzie w zasięg widzenia ten sprawdza najpierw czy jest on w kącie widzenia przeciwnika, a następnie używa raycasta, by sprawdzić czy pomiędzy nim, a graczem nie znajduje się żaden element otoczenia. Następnie jeśli nic nie zasłania gracza przechodzi on w stan "Follow". Przeciwnicy mają cztery stany:

  • Patrol - stoją w miejscu lub patrolują okolice, kolor Boxa na ich plecach jest wtedy zielony.

  • Follow - w momencie zauważenia gracza, zbliżaja się do niego aż nie będzie w zasiegu broni. Kolor wskaznika zmienia się wtedy na żółty.

  • Fight - gdy gracz znajduje się w zasiegu broni, przeciwnik się zatrzymuje i zaczyna strzelać, ewentualnie może rzucić też granatem. Gdy wracz wyjdzie poza zasięg, przechodzi on wtedy w Follow. Kolor wskaznika zmienia się na czerwony.

  • Alarmed - przeciwnik dostał sygnał od swojego kolegi z drużyna i zmierza w miejsce w którym zauważono gracza. Kolor wskaznika pomarańczowy.

Alarm

Na gifie widać jak przeciwnik w momencie dostania obrażeń od gracza, pobiera z pocisku informacje od kogo dostał i bierze go sobie za cel daje, a następnie wchodzi w stan "Follow", a następnie przekazuje jego pozycję reszcie z grupy, dodatkowo wyda on dzwięk, który da graczowi znać, że go zauważyli. Przeciwnicy także nie mogą strzelić do gracza, gdy nie jest w odpowiednim koncie do nich.

Kontroler animacji dla pistoletu

Na obrazku widać połaczenia między animacjami dla pistoletu. Kontroler gracza posiada dwa Animation Controllery jeden dla pistoletów (broni bocznej), a drugi dla karabinów i reszty (broń główna). Przy zmianie broni przełącza się między tymi dwoma drzewkami. Po lewej widać wszystkie parametry od których uzależnione są przejścia pomiędzy animacjami, takie jak np. jak bardzo mają być połączone ze sobą animacje przeładowania i rzucania granatów w Blend Tree.

Blend Tree dla biegu

Łączę ze sobą pięć animacji dla biegu postaci z pistoletem w Blend Tree. Używam parametru VelX, który odpowiada za oś X na analogu kotrolera lub A/D na klawiaturze, a VelY dla osi Y. Po prawej w motion widać wartości, które podałem by została włączona odpowiednia animacja.

Dash

Jest z jedną z mechanik, która pozwala ci uniknąć pocisków, granatów oraz przeciwników.

Zdalne wysadzenie granatu

Możesz także zdetonować granat szybciej, zamiast czekać aż minie czas do wybuchu.

Wskrzeszanie drugiego gracza

Gdy gracz polegnie podczas gry, można do niego podejść i wskrzecić go, ale trzeba uważać bo zajmuje to trochę czasu.

Leczenie drugiego gracza

Możesz także przekazać drugiemu graczowi, część swojego zdrowia, aby go wyleczyć. Nie możesz przekazać swoje zdrowie, gdy masz mniej niż 50% punktów życia.

Skrzynka z amunicją

Gdy zabraknie ci amunicji możesz podejść do skrzynki, by uzupełnić swoją amunicję.

Dopalacze

Podczas rozgrywki z przeciwników mogą wybaść dopalacze, które np. zwiększą twoją szybkość poruszania się, obrażenia, odnowią granaty lub tarczę. W przypadku gifa gracz uzyskał zwiększone obrażenia.

Poruszanie się motocyklem

W drugiej misji znajdują się dwa motory dla graczy. Motor posiada dwa tryby, pierwszy pozwala motorowi celować i strzelać, ale kosztem prędkości. Drugi tryb zwiększa prędkość, ale jest mniej zwrotny i nie można celować.

Galeria
Główne menu - 2019
Główne menu - 2023
Wybór misji - 2019
Wybór misji - 2023
Wybór broni - 2019
Wybór broni - 2023
Ładowanie gry - 2019
Ładowanie gry - 2023
Misja 1 - 2023
Misja 2 - 2023
Strzelnica - 2019
Fragment cutscenki z pojawienia się bossa - 2023
Walka z bossem 1 - 2023
Walka z bossem 2 - 2023
Obronna punktu - 2019
Obronna punktu 1 - 2023
Obronna punktu 2 - 2023
Niedokończona misja
Ekran po śmierci - 2023
Po zakończeniu misji - 2023