SpaceBots to gra, w której stworzona przez ciebie sztuczna inteligencja będzie walczyć z innymi graczami o rzadkie zasoby, lepsze podzespoły oraz nowe technologie.
Gra do działania wymaga dość nowej przeglądarki.
Pewnie widziałeś/aś już stronę SpaceBots. Wygląda ona mniej więcej tak:
To właśnie tutaj będzie odbywać się większość rozgrywki. W czasie gry dość często używał będziesz konsoli JavaScript dostępnej w tzw. DevTools. Możesz je otworzyć wciskając F12.
W czasie rozgrywki bardzo przydatna będzie możliwość uruchamiania na tej stronie własnego kodu. Jak to jednak zrobić? Istnieje kilka sposobów, zostały one opisane poniżej
SpaceBots umożliwia wczytywanie skryptów z dowolnego serwera HTTP(S). W tym celu, wpisz poniższą linijkę w konsoli JavaScript i odśwież stronę:
localStorage.custom_scripts = JSON.stringify(["https://my.server/bot.js"]);
Pamiętaj jednak, że ładowanie skryptów z serwera HTTP podczas gry po HTTPS wymaga odpowiednich wyjątków bezpieczeństwa w przeglądarce. Na przykład, w przypadku przeglądarki Google Chrome musisz ją uruchomić z parametrem --allow-running-insecure-content
Postępowanie jest analogiczne jak w przypadku pobierania skryptów z serwera HTTP. Użyj linku podobnego do file:///home/krzys_h/Pulpit/bot.js lub file:///C:/Users/krzys_h/Desktop/bot.js
Większość przeglądarek wymaga jednak dodatkowej konfiguracji aby ładować skrypty z lokalnego systemu plików. Na przykład w Chrome, uruchom go z parametrem --allow-file-access
Ta opcja jest najwygodniejsza i daje największą swobodę zmian w całej grze. Pobierz kod SpaceBots, i skopiuj katalog SpaceBots/static/ na dowolny lokalny serwer HTTP.
Jeśli teraz cokolwiek wyedytujesz przez DevTools, wszystkie zmiany pójdą w zapomnienie po odświeżeniu strony. Żeby Chrome zapisał zmiany, musisz poinformować go, gdzie znajdują się pliki strony.
Kliknij na ikonę koła zębatego:
Potem wybierz Workspace:
Teraz kliknij Add folder... i dodaj katalog SpaceBots/static/:
Potwierdź w przeglądarce, że zezwalasz na modyfikację tego katalogu:
Z listy na dole wybierz nowo dodany katalog i kliknij w Edit.... W okienku pod tytułem Edit file system, w polu URL prefix wpisz http://localhost:8080/, a w polu /. Gdy skończysz wciśnij enter:
Zamknij okiena ustawień tak żeby wrócić to takiego ekranu:
Od teraz możesz edytować kod strony bezpośrednio w Chrome. Zanim weźmiemy się za edycję ustaw jeszcze okno DevToolsów w wygodniejszej pozycji. Przytrzymaj przycisk pozycji i wybierz podział pionowy:
Okienko przeskoczy na bok:
Zakładka Elements, w której się znajdujesz pokazuje drzewo elementów HTML. Może wygląda jak plik .html strony, ale teraz ten kod żyje w pamięci przeglądarki jako sieć komunikujących się obiektów. Nie można go przez to edytować. Żeby to zrobić, przejdź do zakładki Sources.
Po przejściu, wciśnij Ctrl + O i strzałkami wybierz plik index.html. Możesz wpisać kilka znaków z jego nazwy żeby szybciej do niego dotrzeć. To jego załadowaniu dostaniesz możliwość jego edycji:
Teraz edytując stronę możesz spokojnie usunąć lub zmodyfikować elementy strony. Na przykład, zlokalizuj w kodzie i usuń elementy odpowiedzialne za:
Możesz edytować też kod CSS. Usuń style elementów, których już nie ma na stronie oraz wyedytuj pozycję miotełki tak żeby znalazła się bliżej krawędzi ekranu.
Kiedy skończysz, zapisz zmiany Ctrl + S i odśwież stronę.
Za pomocą DevToolsów, w katalogu /static utwórz nowy plik - bot.js. Umieść w nim jakieś testowe polecenie - na przykład console.log("bot.js się zgłasza");. Dodaj znacznik <script> do strony tak, żeby bot.js załadował się przy starcie i odśwież stronę. W konsoli zobaczysz, że nowo dodany skrypt zadziałał.
Poczytaj kod gry. Na końcu pliku index.html znajduje się cała seria skryptów. Możesz je otworzyć i modyfikować tak samo jak w przypadku index.html - za pomocą Ctrl + O i Ctrl + S. Skrypty SpaceBots są wyjątkowo dobrze udokumentowane i nie będziesz mieć z nimi żadnych problemów. Zacznij od skryptu logging_in.js i po kolei przeglądaj kolejne - jest w nich cała masa funkcji, z których będziesz korzystać we własnych skryptach. W ten sposób dowiesz się też jak zbudowany jest domyślny klient gry. Twoim następnym celem jest oczywiście jego modyfikacja.
Jeśli chcesz dowiedzieć się więcej o obsłudze DevToolsów, możesz skorzystać z tych stron:
Grając w SpaceBotsy będziesz programować w języku JavaScript. Jeśli go znasz, przejdź do rozdziału z opisem mechaniki SpaceBots. Jeśli nie, na kolejnych stronach będziesz mógł go poznać.
Nie musisz go czytać w całości i spokojnie możesz robić to równolegle z poznawaniem SpaceBots. Musisz go jednak przeczytać i wyjdzie ci na zdrowie jeśli zrobisz to wcześniej niż później.