Dla programistów

Jak klient gry rozmawia z Voidwatch i jak zbudować własny moduł albo dodać obsługę nowego serwera.

Części

CzęśćGdzie działaCo robi
modułw kliencie gryzapisuje stan postaci do plików, wykonuje komendy
skrypt wysyłającyobok klientawysyła pliki do API, zapisuje odpowiedzi
feed APIna naszych serwerachprzechowuje stan, odpowiada częstotliwością zrzutów i czekającymi komendami

Sam klient nie wysyła zapytań do sieci. Wiele klientów gubi pamięć przy każdym zapytaniu, dlatego sieć obsługuje skrypt.

Jedna pętla

  1. Moduł zapisuje outbox/status.json: co 2 sekundy, gdy ktoś ogląda postać, w innym wypadku co 30 sekund.
  2. Skrypt wysyła go do POST /api/v1/status i zapisuje odpowiedź w inbox/reply.json.
  3. Odpowiedź mówi, jak często wysłać zrzut ekranu. Co 1–2 sekundy, gdy ktoś ogląda postać, w innym wypadku raz na minutę.
  4. Jeśli czekają komendy, skrypt pobiera je do inbox/commands.json. Moduł je wykonuje i zapisuje outbox/results.json.
  5. Między dwoma statusami skrypt trzyma jedno otwarte zapytanie do GET /api/v1/wait. Wraca ono, gdy ktoś otworzy postać, odpali się alert albo przyjdzie komenda, więc klient przyspiesza w ciągu sekundy.
  6. Raz na minutę skrypt sprawdza plik minimap<wersja>.otmm klienta i wysyła go, gdy się zmienił. Twoja mapa na stronie aktualizuje się sama. Gracz może to wyłączyć w ustawieniach modułu.

Parowanie

Nowy klient nie ma tokenu. Moduł zapisuje outbox/pair-request.json, a skrypt wywołuje POST /api/v1/pair. Odpowiedź zawiera kod i link dla gracza oraz token, który skrypt zachowuje.

Zbuduj własny

Wszystko jest otwarte: feed API, dane statusu i moduł referencyjny, na licencji MIT. Zachowaj układ plików, a moduł zadziała z naszymi skryptami, albo napisz własny program wysyłający w dowolnym języku.

Serwer może też dołączyć moduł do własnego klienta. Napisz do nas, a dopiszemy serwer jako partnera.