Capybara Escape to interaktywna gra wieloosobowa, której celem jest uwolnienie kapibary Caprisuna z czeluści serwerowni. Pomagają w tym odwieczni wyjadacze koła Sol oraz Vron, o których możesz się dowiedzieć więcej śledząc na bieżąco nasze postępy
Uosobienie słonecznego dnia, jak nie samego słońca. |
Wiecznie zmęczona, chaotyczna, mimo ciemnej otoczki bardzo troskliwa. |
git clone https://github.com/Solvro/web-capybara-escape.git
cd web-capybara-escape
npm install
npm run dev
Pierwsze npm install instaluje zależności client i server. Narzędzia w root husky, prettier itd. również są instalowane oraz uruchamia się prepare - hooki Gita wymagają instalacji w tym właśnie katalogu. Front i backend startują razem dzięki concurrently.
I to tyle, możesz testować lokalnie nasz domyślny poziom 🥱
| Skrypt | Opis |
|---|---|
npm run dev |
Uruchamia serwer i klienta równolegle. |
npm run format |
Uruchamia Prettier na folderach client i server oraz nadpisuje pliki. |
npm run format:check |
To samo co wyżej, ale tylko sprawdza formatowanie (bez zapisu) |
npm run test |
Odpala testy. |
npm run prepare |
Uruchamiane automatycznie po npm install - Husky podpina hooki Gita. |
Wiadomości commitów muszą przechodzić commitlint. Stosujemy Conventional Commits - krótki wzorzec:
<typ>(opcjonalny-zakres): krótki opis w trybie rozkazującym
Typy używane: feat, fix, chore, docs, refactor, test
Hook commit-msg odrzuci commit, jeśli opis nie spełni reguł
Sprawdzaj lokalnie czy działa 😉
npm run format:check
npm run test:server
npm run build --prefix client
npm run build --prefix serverHusky: przed commitem odpalane są lint-staged oraz npm run test:server. Commit nie przejdzie dopóki nie zostaną naprawione błędy
Do połączenia z bazą danych wymagane są poniższe zmienne środowiskowe
MONGODB_URIMONGODB_DB_NAMEADMIN_API_TOKENDEFAULT_LEVEL_SLUG(opcjonalnie)
Pliki poziomów z server/src/rooms/json/examples (wyłączając default.json) zostaną wyeksportowane do kolekcji levels:
npm run export:levels # pomija poziomy, które istnieją już w bazie
npm run export:levels:force # nadpisuje istniejące poziomyTworzy nowe zasoby w bazie bazując na slugu
default.json - jest używany offline, gdy baza nie jest podłączona
- Colyseus.io - biblioteka po stronie serwera
- Phaser - biblioteka do renderowania obiektów po stronie frontendu
- React
- TypeScript
- MongoDB - baza dla naszych poziomów
Made with 💕 by Solvro



