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

Full game, open source project in Unity 3D engine(100 scripts, about 6000 sloc, rich documentation available in polish and english)

License

Notifications You must be signed in to change notification settings

trolit/projectZero

Repository files navigation

 





Ikona stworzona przez bqlqn dostępna na www.flaticon.com


Bezpieczeństwo instalatora zweryfikujesz w serwisie

Menu





Tagi



O projekcie

Wstęp

Projekt aplikacji zrealizowany został w ramach pracy inżynierskiej pod kryptonimem "Project Zero". Inicjatorem pomysłu na pracę inżynierską jest Paweł Idzikowski. Został on zaakceptowany przez współautora - Adama Grabowskiego a w dalszym etapie zlecony do realizacji przez promotora - dr. Piotra Jastrzębskiego.

Project Zero jest grą wykonaną w Unity 3D w perspektywie "top-down view", co w języku polskim moglibyśmy przetłumaczyć jako "widok z lotu ptaka". Oprócz rozrywki, celem gry jest poznanie języków programowania. Odbiorcami są przede wszystkim osoby rozpoczynające swoją przygodę z programowaniem, ale także i te, które chciałyby sobie coś przypomnieć albo utrwalić. Według ogólnoeuropejskiego systemu klasyfikacji gier (PEGI) Project Zero zaliczamy do kategorii wiekowej "Od lat 7". Języki, które obejmuje gra to: Java, JavaScript, C#, HTML i PHP. Gracz tworzy postać, której przypisuje z podstawowej puli punkty do atrybutów. Atrybutami są języki programowania.

Po rozpoczęciu gry, gracz porusza się przygotowaną postacią po świecie, który podzielony jest na krainy. W każdej krainie dominuje odrębny język. Kraina identyfikowana jest rodzajem terenu. W trakcie podziwiania krain gracz napotka istoty, z którymi będzie mógł porozmawiać. W trakcie konwersacji dowie się, że mają do rozwiązania problemy. Gracz może udzielić pomocy pod warunkiem, że poziom umiejętności postaci z danego języka przewyższa wymagany próg, bądź jest na równi. Udzielenie pomocy wiąże się z rozegraniem minigry. W Project Zero zaimplementowane są 4 rodzaje minigier, które można rozegrać. Są to: wieżowiec(quiz), pinpin(podpięcie), puzzle, labirynt. Każdy poziom to unikalny design sceny i oprawa muzyczna. Za pomyślne przejście minigry, gracz nagradzany jest pieniędzmi i dodatkowymi informacjami w podsumowaniach na temat języka, który był tematem minigry. Zebrane pieniądze wydac można w sklepach na np. książki. Przeczytanie książki spowoduje podniesienie umiejętności z tego języka programowania, który książka opisuje.

Gra została przygotowana w taki sposób, aby przy jednym podejściu nie dało się wykupić wszystkich książek - a więc, aby zdobyć maksymalne umiejętności we wszystkich językach. Ma to na celu nie tylko zachęcić do ponownego przejścia gry z innym rozdysponowaniem umiejętności, ale też po to, aby dać do zrozumienia graczowi, że nie jesteśmy w stanie być specjalistami we wszystkich językach. Możemy znać każdy język - oczywiście - ale i tak prędzej czy później będziemy musieli skorzystać z pomocy np. przeglądarki Google, aby przypomnieć sobie, jak daną rzecz się robiło w danym języku programowania. Dodatkowym motywatorem do ponownego przejścia gry jest unikalny design poziomów i oprawa muzyczna.

Pewnie interesuje Was informacja, dlaczego nazwa projektu brzmi Project Zero? Można to interpretować na wiele sposobów. Dla przykładu: zero, bo gra oferuje treści dla osób, które zaczynają programowanie i chciałyby zdobyć jakiś pogląd na temat uwzględnionych języków. Inna interpretacja: jest to większe przedsiewzięcie autorów w środowisku Unity3D. Można też tytułowe "zero" potraktować jako projekt wyjściowy w ramach pierwszego stopnia naukowego. Jest sporo pomysłów na interpretację tego tytułu :)

Charakterystyka

⚙️ Otwarty świat podzielony na krainy: Zwiedź każdą z pięciu krain i poznaj mieszkańców.

⚙️ Tworzenie postaci: Przygotuj postać zgodnie ze swoimi upodobaniami.

⚙️ Języki: Dowiedz się więcej w trakcie gry o C#, PHP, HTML, Java, JavaScript poprzez podsumowania, książki i ekrany wczytywania.

⚙️ Muzyka: Wsłuchaj się w zróżnicowaną oprawę dźwiękową, która umili wykonywanie poszczególnych zadań.

⚙️ Zawartość: Odkryj i przejdź wszystkie przygotowane zadania.

⚙️ Ekonomia: Zdobyte pieniądze wydawaj w sklepach.

⚙️ Medale i nagrody: Pomagaj mieszkańcom krain, zdobywaj medale i w zamian za nie cenne nagrody.

⚙️ Rozwój postaci: Czytaj książki i zwiększaj swoje umiejętności. Poznaj więcej informacji na temat danego języka.

Walory edukacyjne

Gra oferuje poznanie języków C#, HTML, Java, JavaScript, PHP w sposób nierygorystyczny. Oznacza to, że graczowi nie jest narzucany obowiązek analizowania oferowanej wiedzy. Przekazywana jest ona poprzez

  • treści zawarte w książkach
  • treści zawarte w ekranach wczytywania
  • podsumowania minigier
    • w rozgrywkach w stylu puzzle poruszane są elementy, które wystąpiły w układankach
    • poziomy typu labirynt to porcje dodatkowych informacji
    • typu pinpin zawierają poprawne fragmenty kodów z rozgrywki
    • typu wieżowiec zawierają podsumowania wybranych odpowiedzi

Przedstawione informacje są skondensowane w taki sposób aby

  • nie odrzucały/zamęczały odbiorcy nadmiarem tekstu,
  • były na zasadzie "haseł-kluczy" aby gracz mógł w łatwy sposób wyszukać te treści w Internecie

Zrzuty ekranu

Wczytywanie menu Panel z medalami Tworzenie postaci
Widok z menu Ustawienia grafiki Panel z nagrodami
Wygląd z konsoli Wczytywanie poziomu PHP Wczytywanie poziomu JavaScript
Widok ze świata Project Zero Menu pod przyciskiem Escape w trakcie gry Rozmowa z NPC
Informacja dla użytkownika W obszarze sklepu Panel sklepu C#
Panel z książkami Okładka książki Podstawy C# Zmienianie strony książki
Kolejna strona książki Panel bohatera Widok mapy
Widok z gry typu puzzle Widok z gry typu skyscraper Widok z gry typu maze
Widok z gry typu pinpin Widok z gry typu skyscraper Widok z gry typu maze
Widok z kreacji postaci rycerza 1 Widok z kreacji postaci rycerza 2 Widok fragmentu ze sceny z uznaniami