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ła | Co robi |
|---|---|---|
| moduł | w kliencie gry | zapisuje stan postaci do plików, wykonuje komendy |
| skrypt wysyłający | obok klienta | wysyła pliki do API, zapisuje odpowiedzi |
| feed API | na naszych serwerach | przechowuje 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
- Moduł zapisuje
outbox/status.json: co 2 sekundy, gdy ktoś ogląda postać, w innym wypadku co 30 sekund. - Skrypt wysyła go do
POST /api/v1/statusi zapisuje odpowiedź winbox/reply.json. - 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ę.
- Jeśli czekają komendy, skrypt pobiera je do
inbox/commands.json. Moduł je wykonuje i zapisujeoutbox/results.json. - 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. - Raz na minutę skrypt sprawdza plik
minimap<wersja>.otmmklienta 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.