Warsztat » Robocompo » RGBattle

R G Battle

Opis gry

Aby móc uczestniczyć w konkursach musisz sięzalogować.

Opis gry

Stwórz własną implementację sztucznej inteligencji dla jednej z gier i przystąp do rywalizacji z innymi. Wystarczy znać podstawy języka JavaScript aby brać udział w konkursie i walczyć o najwyższe pozycje w rankingu.

Informacje o rozgrywce

  • Dwuwymiarowa mapa o ograniczonych rozmiarach
  • 3 frakcje, drużyny składające się z sześciu żołnierzy, maksymalnie 18 drużyn biorących udział w bitwie.
  • Bitwa trwa maksymalnie 10 minut, kończy się przed czasem jeśli przy życiu będą jednostki tylko jednej lub żadnej frakcji.
  • Po upływie 10 minut wygrywa ta frakcja, która zabiła najwięcej przeciwników i jednocześnie ciągle jest przy życiu.
  • Każda jednostka może: poruszać się do przodu, obracać się w lewo/prawo i strzelać
  • Żołnierz ma 100 punktów życia(hitpoints, HP), jedno trafienie powoduje odjęcie 5 HP i lekkie odrzucenie. Co pewien czas jednostki odzyskują niewielką ilość HP.
  • Po śmierci jednostka zamienia się w przeszkodę, przyjmuje nieograniczoną ilość trafień, powoduje kolizje
  • Nieograniczona amunicja
  • Friendly fire
  • Kolizje, dwie jednostki nie mogą stać w jednym miejscu i wzajemnie się odpychają

Implementacja AI

Jednostki podejmują decyzje(idź, zatrzymaj się, obróć się, strzel) na podstawie informacji o swoim stanie(HP, aktualna czynność) i polu widzenia, czyli informacjach o aktualnie widzianych jednostkach. Każda jednostka ma swoją pamięć, w której może przechowywać informacje. Jednostki mają również dostęp do pamięci swojej drużyny, która może służyć do komunikacji. Skrypt jest wykonywany co pół sekundy dla każdej żywej jednostki. Więcej szczegółów i dokumentację API znajdziesz w szablonie skryptu po dołączeniu do konkursu.

Wymagania dla skryptów

Skrypty są uruchamiane w tzw. sandboxie, czyli mają ograniczony dostęp do wielu funkcji i metod. Ponad to muszą wykonywać się w czasie nie dłuższym niż 50 milisekund. Po przekroczeniu tego czasu wynik wykonywania skryptu jest ignorowany.

Funkcje składowe

Przykładowy skrypt zawiera pełną listę dostępnych funkcji składowych i zmiennych globalnych. Nie jest to lista zamknięta. Wbudowane funkcje wykonują się szybciej od tych, które są definiowane w skryptach. Dlatego jeśli masz pomysł na nową funkcję składową lub zmienną globalną, napisz o tym komentarzach lubtrackerze.

Artykuły na temat Robocompo i RGBattle:

Ranking(zobacz)

W każdym tygodniu tworzona jest lista rankingowa uczestników bitew. Każdy gracz dostaje punkty za każdą z zakończonych bitew, w której brał udział. Suma tych punktów decyduje o miejscu w rankingu.

Jest wiele kategorii, za które można dodstać punkty. W każdej z nich punktujesz w zależności od pozycji, maksymalnie 10 punktów jeśli zajmiesz pierwsze miejsce, 1 punkt za 10 miejsce i zero za niższe pozycje.

Punktowane kategorie:

  • Zwycięstwa - po pierwsze, czy było się członkiem frakcji, która wygrała bitwę. Po drugie różnica pomiędzy sumą zadanych i otrzymanych obrażeń podczas bitwy, im większa tym lepiej.
  • Kill/death ratio - różnica pomiędzy ilością fragów i zgonów, im większa tym lepiej.
  • Trafienia - różnica pomiędzy ilością trafień i ilością postrzałów, im większa tym lepiej.
  • Zgony - im mniej zgonów tym lepiej.
  • Niecelne strzały - im mniej niecelnych strzałów tym lepiej.
  • Friendly fire - trafienia w sojusznicze jednostki, im mniej tym lepiej.
  • Bitwy bez zgonu - im więcej bitew bez zgonu tym lepiej.
  • Najszybszy skrypt - Im niższy średni czas wykonywania skryptu tym lepiej, liczą się tylko wygrane bitwy.

Ranking jest brany pod uwagę podczas rozstawiania jednostek przed bitwą.

Masz pomysł na nową kategorię? Napisz o tym w trackerze