Skip to content
This repository has been archived by the owner on Jun 13, 2024. It is now read-only.

Latest commit

 

History

History
167 lines (144 loc) · 14.7 KB

README_dev.md

File metadata and controls

167 lines (144 loc) · 14.7 KB

Menu





Dokumentacja

Ciekawostki

  • czas rozwijania Project Zero wyniósł 162 dni tj. 5 miesięcy i 9 dni - 44,38% roku 2019 (z uwzględnieniem dni wolnych od rozwijania aplikacji),
  • liczba linii kodu (tzw. sloc) katalogu Scripts wynosi +/- 6 000 (wartość bez uwzględnienia pustych linii),
  • liczba skryptów katalogu Scripts - 101 ,
  • w projekcie użyto 42 utworów muzycznych. Daje to łącznie 2 godziny 23 minut czasu potrzebnego do ich wysłuchania,
  • najdłużej trwającą czynnością było projektowanie (design) otoczenia każdej z minigier,
  • najbardziej 'męczącą' czynnością było projektowanie minigier z otoczeniem drzew (szczególnie dla języka PHP),
  • najlepszym pomysłem było wdrożenie konsoli deweloperskiej z racji skali projektu (okazała się dużą pomocą w testowaniu),
  • nagrody za medale, medale, mapa świata Project Zero, minimapa oraz dodatkowa postać nie były planowane w momencie ustalenia zakresu prac,
  • na terenie krainy C# mieli być ludzie, nie było jednak dostępnego ciekawego assetu,
  • jako najbardziej złożony skrypt, zakwalifikować można NPCHandler,
  • najwięcej problemów było z przygotowaniem skryptu Pickup w minigrze typu Puzzle (efekt nie był taki jaki oczekiwano) ale został przerobiony i wygląda solidnie,
  • gdyby nie (powolne) rozpoczęcie projektu już w czerwcu to na 100% nie zostałby ukończony,
  • projekt osiągnął 45 dyskusji na github, z czego 3 opatrzono znaczkiem 'bug',
  • czas okrążenia sceny Map najkrótszą ścieżką, postacią Slime Rabbit, wyniósł ok. 1min 47s,
  • przejście bez zatrzymania całej sceny Map, postacią Slime Rabbit, wyniósł ok. 4min 30s,
  • projekt zawiera m.in. 92 grafiki, 30 assetów (paczek Unity),
  • inspiracją HUD gracza na scenie Map był ten zaproponowany w Tom Clancy's Rainbow Six Siege,
  • wersja grywalna posiada 52 sceny, a projekt posiada dodatkowo scene zaprojektowanej przedniej i tylnej okładki gry,
  • plecak miał być początkowo faktycznym plecakiem w którym są puste miejsca i jak się zakupi książki to do tych pustych miejsc zostają wrzucone. Z racji ograniczenia czasu, wybrano wariant lżejszy czyli "panel z wszystkimi książkami" jednak, aby je przeczytać, należy je wykupić.

Mechanika

🔸Gracz tworzy swoją postać nadając jej pseudonim, wybierając model spośród dostępnych oraz przyznając punkty umiejętności z podstawowej puli. Nie jest obowiązkowym nadanie pseudonimu, wybranie modelu i rozdanie wszystkich dostępnych punktów. Gracz ma pełną dowolność.
🔸 Rozgrywka toczy się na mapie, w której rozlokowane są krainy, które gracz ma możliwość zwiedzać. Każda kraina jest reprezentowana przez specyficzny język i teren. W jej obszarach znajdują się postaci, z którymi gracz może wejść w interakcje (NPC).
🔸NPC posiadają zadania, które gracz może wykonać. Podejście do zadania, to rozegranie minigry pod warunkiem, że poziom umiejętności gracza jest przynajmniej równy wymaganemu poziomowi. Szczegółowe informacje dotyczące mechaniki poszczególnych minigier zostały przedstawione w dziale odnośnie minigier.
🔸Ukończenie minigry wiąże się z otrzymaniem wynagrodzenia i informacji. O ile, w grze typu puzzle uzyskuje się stałą wartość pieniędzy, to w pozostałych trzech wpływ na wysokość kwoty ma liczba popełnionych pomyłek. Przekazywana treść także zależy od typu minigry o czym wspomniane jest w sekcji - walory edukacyjne.
🔸 Pieniądze mogą być wydane w sklepach.
🔸 Podstawowym asortymentem sklepów są książki.
🔸 Na każdą krainę przypada jeden sklep.
🔸 Książka zawiera informacje na temat wybranego języka. Odczytanie jej rozwija umiejętności gracza w języku, którego dotyczy, pozwalając uzyskać dostęp do kolejnych minigier.
🔸 Celem gry jest poznanie/przypomnienie elementów, które gra porusza.
🔸 Grę można uznać za "ukończoną" w 100%, jeżeli gracz przejdzie wszystkie dostępne minigry (nie jednym podejściem!).
🔸 Nie jest możliwe przegranie rozgrywki z koniecznością rozpoczęcia nowej.
🔸 Jedyną grą jaką można powtórzyć ponownie jest gra typu labirynt.

Rodzaje krain, teren i istoty

Język Rodzaj terenu Rodzaj istoty
C# teren zalesiony (styl wiosenny) pies
Java teren pustynny kot
HTML teren górzysty królik
JavaScript teren zimowy pingwin
PHP teren zalesiony (styl jesienny) mysz

Minigry

W tej sekcji poznasz szczegóły zaimplementowanych minigier.

Minigra wieżowiec (quiz)

W tej minigrze postać pojawia się na szczycie "metaforycznego wieżowca", który zbudowany jest z kilku poziomów. Każdy poziom to pytanie i cztery odpowiedzi do wyboru. Wybranie błędnej odpowiedzi nie wpływa na konstrukcje wieżowca. Gracz znajduje się na danym poziomie do momentu, aż nie wybierze prawidłowej odpowiedzi. Po wybraniu poprawnej, trafia na niższy poziom, w którym jest kolejne pytanie i kolejne odpowiedzi. Minigra trwa dopóki gracz nie dojdzie do podstawy wieżowca. Zazwyczaj jest to po 4-5 odbytych poziomach.

Minigra pinpin (podpięcie)

Minigra pinpin(nazwa projektowa) jest podobna do wieżowca, jednak tutaj do wyboru dostajemy fragmenty kodu i musimy wybrać te, które odpowiadają terenowi, na którym się znajdujemy i w dodatku są poprawne (przykładowo: jeżeli uruchomiliśmy mini-grę na terenie C#, to musimy wybrać poprawny kod, który jest zapisany we wspomnianym języku). Do wyboru kodu służy nam "pinezka" ukazana w postaci "pucharu", który przesuwamy na wybrany kod. Jeżeli jesteśmy pewni to stajemy na przycisku służącym do weryfikacji naszej decyzji. Prawidłowe umieszczenie pinezki oznacza przejście do kolejnego etapu, natomiast błędnej, konieczność wybrania innej opcji z pozostałych i ponownej weryfikacji swojego wyboru. Błędne decyzje są podliczane i wpływają na wysokość wynagrodzenia za przejście poziomu.

Minigra puzzle

Minigra, w której układamy puzzle z podanego kodu. Celem jest poprawne rozmieszczenie kodu. Aby ułatwić rozgrywkę dla osób początkujących, umieszczenie puzzla w odpowiednim miejscu powoduje jego oznaczenie i zablokowanie przed dalszym przesunięciem. W nagrodę uzyskujemy pieniądze i informacje na temat kodu, który był układany.

Minigra labirynt

Minigra labirynt to gra, w której zadaniem gracza jest unikanie bloków będących "bugami" programu i zbieranie fragmentów kodu. Osiągnięcie pewnej ilości bugów powoduje obniżenie jakości informacji, które otrzymamy po ukończeniu gry i pomniejsza ostateczną kwotę uzyskaną za przejście minigry. Jeżeli chcemy poznać te informację i uzyskać większą wygraną to możemy poprawić wynik powtarzając poziom. W przypadku zakończenia rozgrywki zadanie zostaje oznaczene jako wykonane, gracz otrzymuje kwotę, która została mu pokazana na ekranie i nie będzie mógł już powtórzyć tego poziomu. Labirynt jest jedynym typem minigry, który można powtórzyć.

Grafiki koncepcyjne

Zarys krain Przykład mapy Zarys z przejściami
Koncepcja mapy Koncepcja mapy Koncepcja mapy
Wieżowiec (z boku) Wieżowiec (z góry) Menu
Koncepcja mapy Koncepcja mapy Koncepcja menu
Tworzenie postaci NPC (1) NPC (2)
Koncepcja tworzenia postaci Koncepcja tworzenia postaci Koncepcja tworzenia postaci

Aplikacja zawiera

0️⃣0️⃣ perspektywę rozgrywki z lotu ptaka (top down view)
0️⃣1️⃣ główny świat podzielony na 5 krain
0️⃣2️⃣ zróżnicowany styl każdej z przygotowanych krain
0️⃣3️⃣ poruszające się istoty dzięki technologii Unity
0️⃣4️⃣ możliwość interakcji z wybranymi istotami (NPC)
0️⃣5️⃣ panel w którym znajdują się książki, które można odczytać
0️⃣6️⃣ kreator postaci
0️⃣7️⃣ walutę do wydania w księgarniach
0️⃣8️⃣ rozwój postaci poprzez czytanie książek
0️⃣9️⃣ minigrę typu wieżowiec (quiz)
1️⃣0️⃣ minigrę typu labirynt
1️⃣1️⃣ minigrę typu pinpin (podpięcie)
1️⃣2️⃣ minigrę typu puzzle
1️⃣3️⃣ łączną liczbę 40 minigier do rozegrania
1️⃣4️⃣ łączną liczbę 20 książek do sprawdzenia
1️⃣5️⃣ ponad 40 utworów muzycznych do zbadania
1️⃣6️⃣ podsumowania minigier oraz ekrany wczytywania z dawką programistycznej wiedzy
1️⃣7️⃣ zróżnicowany design poziomów minigier
1️⃣8️⃣ zróżnicowaną oprawę muzyczną w każdej minigrze
1️⃣9️⃣ ustawienia najważniejszych aspektów gry
2️⃣0️⃣ repetytywność (nie uda się rozegrać wszystkich minigier za jednym podejściem)
2️⃣1️⃣ medale
2️⃣2️⃣ nagrody za medale (w tym dodatkowa postać do odblokowania)
2️⃣3️⃣ własną ikonę zapisu stanu gry
2️⃣4️⃣ funkcję podglądu mapy świata Project Zero
2️⃣5️⃣ minimapę w interfejsie gracza, która jest widoczna podczas podróżowania po świecie Project Zero
2️⃣6️⃣ konsolę deweloperską do testowania aplikacji

Kolory reprezentacyjne krain

Język Kolor Kodowa nazwa w Unity Próbka
C# limonkowy lime #00FF00
JavaScript jasnoniebieski cyan #00ffff
Java żółty yellow #FFFF00
HTML magenta magenta #ff00ff
PHP pomarańczowy orange #FFA500

Klawiszologia

Uwaga! Klawiszologia może się różnić w zależności od tego w jaką minigierkę gramy bądź też czy znajdujemy się na mapie głównej
W - ruch w przód
A - ruch w lewo
S - ruch w dół
D - ruch w prawo
B - otwarcie panelu w którym mamy książki
F - interakcja z NPC (wejście w rozmowe)
Spacja [przytrzymanie] - złapanie i przesuwanie puzzla/pinezki
LPM (lewy przycisk myszy) - klikanie w sklepie -> kupowanie książek, otwieranie książek z inventory(plecaka) etc

Wykorzystane materiały

W pliku CREDITS.md umieszczone są odnośniki do rzeczy, które zostały wykorzystane w projekcie - głównie są to assety, muzyka i grafiki. Będą one uwiecznione w sekcji "Uznania" w grze. Dokument można znaleźć pod tym adresem.

Konfiguracja Edytora

Uwaga! Aby uzyskać poprawny odczyt okna 'Game' w środowisku Unity, należy utworzyć sobie profil rozdziałki 1920x1080, ustawić go i zmniejszyć parametr Scale do minimum (t.j. 0,372)

Wersja narzędzia Unity

2018.3.12f1

Wersja .NET Framework

v 4.7.1

Zdjęcia z etapu projektowania

Zdjęcia z etapu projektowania gry znaleźć można w tym wątku. A pod tym adresem dostępne są 'urywkowe' zdjęcia ze scen mini-gier typu labirynt, puzzle i pinpin(przypinka).

Wideo z etapu projektowania

Adresy do klipów wideo, umieszczonych w serwisie youtube z etapu projektowania gry dostępne są tutaj.

Analiza strategii

Analizę odblokowań poziomów, wynagrodzeń, kar można znaleźć w tym poście natomiast wycenę książek tutaj.

Zbiór kluczy

Wszystkie użyte klucze w projekcie wraz z opisem dostępne są w tym wątku.

Zawartość podsumowań

Zawartość podsumowań dla mini-gier typu labirynt/pinpin/puzzle znajdziesz tu.

Zrealizowane zadania

Zadania jakie zostały zrealizowane w ramach projektu dostępne są w tym wątku.