Skocz do zawartości

Pojedynek botów


I am Lord

Rekomendowane odpowiedzi

Na forum gmlscripts.com zauważałem fajny wątek: http://www.gmlscripts.com/forums/viewtopic.php?id=1749 w którym ludzie zaprogramowali swoje boty do omijania przeszkód. Botów powstało chyba 6 i ktoś zaproponował by zrobić turniej. W którym wszystkie boty zostały umieszczone razem i tak można było porównać który z botów lepiej potrafi omijać przeszkody.

 

Turniej można obejrzeć tutaj GMK: http://www.gmlscripts.com/forums/viewtopic...?pid=2506#p2506 post nr 36.

EXE: http://www.mediafire.com/download/ohafj5bi...llenge_all2.rar

 

Może zrobimy coś podobnego u nas?

Tylko będzie trzeba pomyśleć nad tym jak to może wyglądać żeby nie było tak samo jak oni mają. Może jakiś deathmatch czy coś.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Odpowiedzi 73
  • Dodano
  • Ostatniej odpowiedzi

Top użytkownicy w tym temacie

Top użytkownicy w tym temacie

znaczy zrobić arene i coś, co będzie czytało skrypty botów, tworzyło je na scenie i wykonywało ich AI?

Odnośnik do komentarza
Udostępnij na innych stronach

No to potrzeba ustalić jakieś standardy. Proponuję aby wszystkie boty miały wspólny parent. Ale i tak trzeba ustalić jakieś zasady. Nie używanie instance_destroy(), maksymalna długość kodu, nie korzystanie z point_direction().

 

Pomysł mi się podoba ale trzeba wszystko zaplanować i ustalić rygorystyczne zasady. :D

Odnośnik do komentarza
Udostępnij na innych stronach

Dokładnie tak jak mówi threef. Ustalić zasady. Boty będą miały parenta na bank. Zasada strzelania mogła by być taka że w template pliku areny będzie dostępny obiekt pocisku i strzelać będzie można tylko za pomocą

GML
ins = instance_create( bot.x, bot.y, pocisk )

ins.direction = i tutaj już bot sam ustala jakiś kierunek

ins.botID = id; // przypisanie właściciela pocisku

// nie można modyfikować innych zmiennych startowych pocisku</span></span>

 

W ten sposób można tylko obrać jakiś kierunek dla pocisku nic więcej a sam pocisk będzie znał właściciela i można ustawić kontroler który by blokował inne nadchodzące pociski od tego samego właściciela by przypadał tylko jeden pocisk na jednego bota.

 

Co wy na to?

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

Dlaczego nie korzystanie z point_direction?

 

Btw. jeśli w studio, to można stworzyć obiekty GMX i rooma z przeszkodami, aby wszystko było na równych zasadach. Ten sam tor przeszkód, różne implementacje przejścia.

Odnośnik do komentarza
Udostępnij na innych stronach

Dlaczego nie korzystanie z point_direction?

Tylko rzuciłem przykład. Tak u mnie wyglądają burze mózgów. Nawet głupi pomysł może podsunąć komuś lepszy. ;)

 

Moje propozycje to:

-Maska kolizji botów jako eklipsa 32x32px

-Maksymalny speed taki sam dla pocisków i botów. Nie za szybki. To pozwoli próbować robić uniki.

-Publikacja kodu bota TYLKO po wygranym pojedynku. Nie będzie wstydu i oszustw.

Odnośnik do komentarza
Udostępnij na innych stronach

-Maska kolizji botów jako eklipsa 32x32px

Tutaj za obliczenia kolizji będzie mógł odpowiadać skrypt w parencie bota a samemu obiektowi bota da się event_inherited() jeżeli event jest już używany.

-Maksymalny speed taki sam dla pocisków i botów. Nie za szybki. To pozwoli próbować robić uniki.

Jestem za.

 

-Publikacja kodu bota TYLKO po wygranym pojedynku. Nie będzie wstydu i oszustw.

Ale w takim przypadku jak wyobrażasz sobie połączenie naszych botów? Ktoś będzie musiał się przecież tym zając i stworzyć nową grę w której wszystkie boty połączy.

Odnośnik do komentarza
Udostępnij na innych stronach

idealnie bylo by, jezeli gracze takie rzeczy jako strzelanie/ruch niemieli pod kontrolo

tylko by uzywali przygotowane skripty :)

tworcy botow niepotrzebujo miec "direct control" nad bootem, tylko majo zrobic ai boota

 

jak pisze HuderLord + ktos musi tez sprawdzic boty jesli so wedlug regol

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności
Ale w takim przypadku jak wyobrażasz sobie połączenie naszych botów? Ktoś będzie musiał się przecież tym zając i stworzyć nową grę w której wszystkie boty połączy.

 

ktoś bezstronny, kto nie bierze udziału się tym zajmuje

Odnośnik do komentarza
Udostępnij na innych stronach

wrócę z pracy, to zrobię symulator, boty będzie się opisywało skryptami GML w pliku tekstowym i wrzucało do odpowiedniego folderu, symulator załaduje i zbuduje boty, podepnie im skrypty GML i przeprowadzi symulacje. dostępne będzie wyłącznie używanie wystawionych przez symulator interfejsów sterowania, analizowania przestrzeni i broni identycznej dla każdego. Ocenicie, czy to odpowiada wymaganiom.

Odnośnik do komentarza
Udostępnij na innych stronach

mają to być i zachowywać się jak prawdziwe boty, stąd opis jak działać będą konkretne interfejsy:

 

* interfejs sterowania: napęd na cztery koła osobno (każdemu z kół możemy ustawić prędkość dodatnią i ujemną), jak i funkcje upraszczające w stylu: jazda w konkretnym kierunku w przód i w tył, zmiana kierunku.

 

* interfejs analizowanie przestrzeni: możliwe będzie zeskanowanie obiektów (inne boty, porzeszkody) w określonym zasięgu od bota (radar) i uzyskać ich listę, oraz upraszczające funkcje w stylu: sprawdź co stoi na drodze w konkretnym kierunku.

 

* interfejs broni: ustaw działko w danym kierunku, wystrzel pocisk.

 

to jest lista wszystkiego, czego potrzeba aby robot był w pełni autonomiczny i nie mógł robić wszystkiego (sandbox ograniczony do wymaganych funkcji).

Odnośnik do komentarza
Udostępnij na innych stronach

Mnie się to podoba! A podobałoby się jeszcze bardziej, jeśli do boju można było wysłać drużynę botów.

I chciałbym, aby był określony zestaw reguł w jednym PDF-ie, żeby nie okazało się nagle, że jakiś konkretny ficzer daje przytłaczającą przewagę i bota trza było zdyskwalifikować.

 

Miałbym w końcu okazję do przetestowania sieci neuronowych, hihi.

E: ten filmik z linku nie działa : (

Odnośnik do komentarza
Udostępnij na innych stronach

Filmik nie działa to prawda ale w następnym poście jest turniejowe gmk. Można sobie to uruchomić i obejrzeć. Tylko z bota xota trzeba jedną funkcję przerobić bo w GM8.1 inne ma argumenty.

 

Edit:

Dobra wrzuciłem skompilowane exe http://www.mediafire.com/download/ohafj5bi...llenge_all2.rar

Odnośnik do komentarza
Udostępnij na innych stronach

huder: nie zajmie to masy czasu, zakladam, ze pare godzin do jednej nocy. w koncu to user bedzie budowal program kontrolujacy robota, ja buduje tylko jego szkielet i reakcje na swiat.

 

amateratsu: tak, bedzie walka druzynowa, grunt zebys umial zaprogramowac robota tak, by nie atakowal swoich :)

 

siadam do roboty! bedzie to swietna i rozwijajaca przerwa od robienia maszyny wirtualnej :D

Odnośnik do komentarza
Udostępnij na innych stronach

małe info: z racji, że robie to w GMS, a tam nie działa odpalanie GML z plików, to symulator będzie wykorzystywał swój własny mały język skryptowy (może uda mi się podpiąć wirtualke to będzie szybszy) do interpretacji obliczeń matematycznych i wykonywania procedur do interfejsów robotów :) czyli jak dobrze pójdzie, to cudem skończe dziś, a jak nie to przeciągnie się to do paru dni.

Odnośnik do komentarza
Udostępnij na innych stronach

dostaniesz interfejs do kol pojazdu, nadajac kazdemu z nich odpowiadnia sile obrotu, bedziesz mogl zrobic wszystko z poruszaniem pojazdu, nawet to, co podales.

Odnośnik do komentarza
Udostępnij na innych stronach

A bot będzie widział to co jest za nim? Tzn ten interface widzenia to dosłownie radar czy jakiś sensor który widzi do przodu w postaci stożka. Bo jak to drugie to był by trzeba było zaprogramować naszemu AI algorytm rozglądania się :D ale to już hard mógł by być.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

W GM:S można zrobić szablon, że w obiekcie NPC są wywoływane skrypty w eventach Create, Step, Draw itp. i tak naprawdę każdy zgłasza tylko plik tekstowy który zostaje podstawiony pod ten skrypt potem (skrypty w GM:S są zapisywane w plikach txt z rozszerzeniem gml). Wystarczy więc tylko wkleić czyjeś rozwiązanie i odpalić na nowo grę, żeby zobaczyć bota :)

Odnośnik do komentarza
Udostępnij na innych stronach

Że jak? Objaśnij, albo rzuć refką ze strony YYG.

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli jedynym sensorem będzie wzrok, to ciężko będzie botom wyznaczać, skąd może być skierowany atak, znajdować bezpieczniejsze miejsca na mapie itp.; proponuję zatem, aby każda podejmowana akcja emitowała dźwięk, którego natężenie było zależne od odległości od źródła. Mając dwoje uszu w pewnej odległości od siebie można wyznaczyć gradient natężenia dźwięku (czyli z której strony najprawdopodobniej dochodzi dźwięk) i na jego podstawie podejmować akcje.

 

Albo coś uproszczonego, bo powyższe może być dość skomplikowane ze strony matematycznej.

Odnośnik do komentarza
Udostępnij na innych stronach

Dlatego ja jestem jednak za radarem 360st ale działający w mniejszej odległości niż sensor wzroku. Wzrokiem można by było sięgać po całej mapie a radar na parę pixeli np 256.

 

No i jeśli ma być więcej jednostek gracza to te powinny zawsze znać swoją pozycję, komunikacja w teamie musi przecież być, tak się wygrywa wojny :D

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.

×
×
  • Dodaj nową pozycję...