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