Projekt nie wykorzystuje żadnych bibliotek czy frameworków do grafiki 3D. Całość działa na zwykłym Canvasie (context 2d). Implementując algorytm pathtracingu sugerowałem się tym tutorialem dla języka C++.
Najprostszy sposób to wykorzystanie webpack dev server:
Zainstalowanie zależności:
npm install
Uruchomienie serwera:
npm run serveprod
Następnie należy przejść pod adres:
Gracz porusza się strzałkami
CTRL - użycie broni
Spacja - interakcja (drzwi, sekrety)
1 2 3 4 - wybór broni
Na początku gracz ma jedynie pistolet (2) oraz nóż (1).
Każda broń oprócz noża potrzebuje amunicji (jest ona wspólna dla wszystkich).
* Strona ta jest bardziej przydatna do testowania, ponieważ sama gra nie wspiera wybierania poziomów. Aby zagrać w swój poziom należy zamienić ten domyślny i przebudować projekt.
Pod adresem http://localhost:8080/leveleditor znajduje się edytor poziomów. Na kratkowanym polu można umieszczać dowolne elementy wybrane z dostępnych powyżej (przytrzymując mysz można również rysować).
Przytrzymując Shift możemy wymazywać narysowane rzeczy.
Można również zmienić szerokość planszy i wysokość planszy wpisując rozmiar w polu tekstowym.
Scroll pozwala przybliżać i oddalać. ŚPM pozwala chwycić i przesunąć planszę.
Na każdym poziomie należy umieścić gracza (element oznaczony YOU)
Dostępni przeciwnicy to żołnież i pies (znajdują się obok elementu YOU)
Formalnie poziom kończy się, kiedy gracz dotknie ściany z przełącznikiem (ostatni dostępny element)
Pierwsze trzy elementy to różne rodzaje ścian. Dodatkowo po wybraniu ściany pojawia się podgląd każdej "ściany" tej ściany. Każdą z nich możemy do woli zmienić, klikając w nią.
Ściana może prowadzić do sekretu. Aby tak było, należy kliknąć pośrodku podglądu ścian, aby wybrać kierunek, w którym ściana ma się przesunąć po kliknięciu spacji na niej.
Aby zagrać w swój poziom należy zamienić ten domyślny levels/1.json i uruchomić ponownie (przebudować) projekt


