Skocz do zawartości

Pojedynek botów


I am Lord

Rekomendowane odpowiedzi

tak, ale cel symulatora jest taki, by byl multiplatformowy, a GM:S nie jest tam, gdzie chce na licencji, jaką jeszcze mam. I nie o multiplatformowość tylko chodzi, a o możliwość implementacji w innych językach i frameworkach. sam symulator jest jedynie biblioteką kompletnego flow obsługi robotów i interakcji z otoczeniem. w skrocie: jak ktos zechce zrobic sobie port na iOS, pythona czy cokolwiek innego, to zrobi :) patrze na komentarze i czasem sie zastanawiam, czemu macie taki bol dupy - ja to robie porzadnie i mozliwie na najszerszy target. serio musze sie tlumaczyc ze swoich wyborow? myslalem ze sa na tyle jasne, ze kazdy zrozumie :)

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

moim zdaniem to tylko nieporozumienie (sam niejestem pewien co o tym myslec)

Ale jezeli Psyś ma ochote zrobic TO tak jak to robi, niewidze problemu.

 

ogolnie na czeskim foru byl podobny pomysl dawno temu, akurat nieznalazl sie nikt ochotny do czarnej roboty :)

 

wiec trzymam kciuki a jestem ciekawy co z tego wyjdzie :)

Odnośnik do komentarza
Udostępnij na innych stronach

No i miało wymagać jedynie wiedzy z GMLa.

Ale nikt nie mówi, że będzie inaczej. Ciągle powtarzam i nie dociera - NADAL BĘDZIECIE KODOWAĆ AI W GMLU. DAMMIT. :D

 

moim zdaniem to tylko nieporozumienie

dokładnie - to jest jakieś jedno wielkie nieporozumienie - postanowiłem odizolować wykonywanie kodu od GMa, ale nadal będzie używany GML. Tyle że nie tylko dla sceny GMa to robie, a także dla innych. Będzie z tego sandbox, ale o tym po wykonaniu pierwszego trybu, czyli programowalnego AI do walki robotów :)

Odnośnik do komentarza
Udostępnij na innych stronach

wizualizer symulatora (czyli apka wyswietlajaca graficznie symulacje) zrobiona, dziala wykonywanie programow robotow (asynchronicznie), dzis zabieram sie za dodawanie pozostalych interfejsow, zaczynajac od bazowych: interfejs dotyku, żyroskop i sonar (interfejs silnikow juz jest)

Odnośnik do komentarza
Udostępnij na innych stronach

wszystko jest robione proceduralnie. całą symulację opisuje plik JSON configu:

{
        "areaSize": [ 5, 5 ],
        "obstacles": [
                { "position": [ -2, -2 ], "rotation": 45, "size": [ 1, 1 ] },
                { "position": [ -2, 2 ], "rotation": 45, "size": [ 1, 1 ] },
                { "position": [ 2, 2 ], "rotation": 45, "size": [ 1, 1 ] },
                { "position": [ 2, -2 ], "rotation": 45, "size": [ 1, 1 ] }
        ],
        "robots": [
                { "program": "../scripts/example.itc", "position": [ 0, 0 ], "rotation": 0, "size": [ 1, 1 ] }
        ]
}

 

a dla ciekawskich, tak wyglada testowy kod programu robota (tutaj assembler, bo interpreter GMLa jeszcze nie zostal skonczony):

!intuicio

!registers-i 16
!registers-f 16
!stack 1024

!data float positive 1.0
!data float negative -1.0
!data bytes nl 10, 0

#inject "framework/interface_engines.isc"

!start
        
        movf :$RobotApiEngines->RobotApiEngines.engineLeft.force $positive
        movf :$RobotApiEngines->RobotApiEngines.engineRight.force $negative
        
!exit

Odnośnik do komentarza
Udostępnij na innych stronach

dokładnie. robot kręci się w kółko :) słaby test, ale pokazuje że działa przełożenie z maszyny wirtualnej na fizyke.

Odnośnik do komentarza
Udostępnij na innych stronach

Dodano nowe interfejsy, a oto lista wszystkich ich:

* silniki (napęd) [zapis/odczyt]

* orientacja (kompas?) [odczyt]

* pozycja (gps?) [odczyt]

* kontroler (sterowanie klawiaturą bądź joystickiem) [odczyt]

* dotyk (lista punktów na "ciele" robota, które kolidują z otoczeniem) [odczyt]

* radar (lista zeskanowanych punktów wokół robota o ograniczonym małym zasięgu) [odczyt]

* sonar (lista zeskanowanych punktów naprzeciw robota o dalekim zasięgu) [odczyt]

 

planuje dodać także radio, do komunikacji między robotami (będzie można lepiej programować zachowanie grup)

 

no a dla ciekawskich kolejny kod programu robota, który reguje na kontrolowanie go klawiaturą lub joystickiem:

!intuicio

!registers-i 16
!registers-f 16
!stack 1024

!data float positive 1.0
!data float negative -1.0
!data float zero 0.0

#inject "framework/interface_engines.isc"
#inject "framework/interface_orientation.isc"
#inject "framework/interface_position.isc"
#inject "framework/interface_controller.isc"

!start
    
    movi regi:0 :$RobotApiController->RobotApiController.button0
    movi regi:1 :$RobotApiController->RobotApiController.button3
    movi regi:2 :$RobotApiController->RobotApiController.button2
    movi regi:3 :$RobotApiController->RobotApiController.button5
    
    movf :$RobotApiEngines->RobotApiEngines.left $zero
    jifi 0 @isLF @isLFelse
    !jump isLF
        movf :$RobotApiEngines->RobotApiEngines.left $positive
    !jump isLFelse
    jifi 1 @isLB @isLBelse
    !jump isLB
        movf :$RobotApiEngines->RobotApiEngines.left $negative
    !jump isLBelse
    
    movf :$RobotApiEngines->RobotApiEngines.right $zero
    jifi 2 @isRF @isRFelse
    !jump isRF
        movf :$RobotApiEngines->RobotApiEngines.right $positive
    !jump isRFelse
    jifi 3 @isRB @isRBelse
    !jump isRB
        movf :$RobotApiEngines->RobotApiEngines.right $negative
    !jump isRBelse
    
!exit

Odnośnik do komentarza
Udostępnij na innych stronach

na ten weekend powinien wyjść już cały bazowy set, czyli kompilator kodu i symulator oraz przykładowe programy. nadal assembler bez parsera GML.

Odnośnik do komentarza
Udostępnij na innych stronach

Wizualizer w GM:S zrobiony, dziala odpalanie symulacji z zasobow lokalnych, dzis zrobie szukanie i pobieranie symulacji z serwisu sieciowego RoboCodera i potem dokoncze reszte interfejsow robota i puszczam alfe do testow i zabawy :)

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ę...