Wpis z mikrobloga

#programowanie #gamedev
chcialbym zaprogramowac boty do gry, cos jak counter strike czy inny first person shooter, obecnie zrobilem cos takiego ze robie raytrace - prowadze linie od punktu widzenia gracza na wprost, ktora zatrzymuje sie na scianie, graczu, solidnej przeszkodzie, i jesli odleglosc jest mniejsza niz 50 to licze czy lepiej sie obrocic w lewo czy prawo i dodaje/odejmuje jeden stopien od katow widzenia, dziala dobrze, ale czesto sie zapetla - bo np jest zakrzywiona sciana, i waskie drzwi, a on sie odbija jak pijany od sciany do sciany i zawraca xD
  • 17
@blowfish: No czytam to 4 raz i dalej nie rozumiem, co chcesz osiągnąć.

Chciałbyś zaprogramować boty. Ok.
Z czym masz problem, z pathfinderem, ze strzelaniem do gracza czy z czymś innym?
To ze robisz raytrace nie wiele mówi.
@M4lutki: raytrace - wyobraz sobie linie od oczu w miejsce ktore wskazujesz celownikiem, i on ci daje odleglosc od oczu do tego punktu, jesli punkt jest blisko obracam kamere, problem jest w tym ze takie podejscie jest za glupie i ciagle sie zapetla i bez mojej pomocy w niektorych przypadkach ssie penisa xD
#!$%@? zrobilem bledy i nie moge edytowac komentarza :< co ten wykop :<

@blowfish: Ja wiem co to raytrace xD Ale co chcesz tym raytracem osiągnąć, tzn jaki jest cel końcowy :D Rozumiem, że chcesz przejść z punktu do punktu, czy np sprawdzać czy bot widzi gracza (ma zaczac strzelac) ? :)
@M4lutki: @Mithras: @wytrzzeszcz: chce zrobic cos jak ten koles:
https://m.youtube.com/watch?v=TpIvyPMtBfQ&itct=CDQQpDAYAyITCOu2go770MgCFULiHAody5MEJ1IQY3NnbyBhZmsgd2Fsa2JvdA%3D%3D&hl=pl≷=PL&client=mv-google

mam lgarniete strzelanie, zmienianie broni etc, ale nie umiem zrobic zeby sie poruszal po mapie, bo sie blokuje w miejscach gdzie jest duzo rogow etc, i zaczyna lazic w kolko, ten koles na filmie ma szczescie bo zawxze ktos podchodzi i bot celuje w niego i zmienia kierunek chodu, bez ludzi na serwerze pewnie tez by sie zblokowl
@M4lutki: Z tego co ja zrozumiałem to bot określa odległość od ściany i jak jest za blisko to się obraca. Problem jest z tym, że bot wpada w miejsca gdzie po obu stronach ma przeszkodę i zaczyna się od nich odbijać.

@blowfish: Rozumiem, ze bot porusza się bez ładu i składu? Nie ma żadnego zdefiniowanego celu? Ja bym tego tak nie implementował. Prędzej poszedłbym w losowanie punktów na mapie i
@michalorlik: tak, bot idzie przed siebie i omija przeszkody, myslalem tez zeby wejsc na serwer i zapisywac sciezki prawdziwych graczy i potem wygenerowac posrednie i isc nimi, ale nigdy nie mam pewnosci ze bot bedzie umial zrobic wszystko xD
@sathra: z tego zdjecia wnioskuje ze masz jakby sciezki, dostep do danych, ja nie mam takiego czegos, bardziej cos takiego jak prawdziwy robot - niby mam mape, ale musze robic raytrace zeby wiedziec gdzie wejde, a gdzie nie, chyba ze bym jakos parsowal mape, tak jakby drugi raz, ale to juz sztuka sama w sobie xD
@blowfish: Nie wiem, czy jest jakiś uniwersalny algorytm do takich rzeczy (jeśli jest, to poproszę :D), ale możesz poszukać jakichś prac dyplomowych na ten temat (są do RTSów, może i będą do FPSów).
Ogólnie rzecz biorąc, jeśli ja bym się za to zabierał, to najpierw chciałbym zbudować dla bota pewną mapę dla danej ... mapy. ;) Czyli zidentyfikować: otwarte przestrzenie, gdzie może być łatwo postrzelony; obiekty, które mogą służyć za przeszkody
@blowfish: Heh, to nie jest inteligencja. To jakis uposledzony algorytm sterujacy. Znajdz na mapie (nawet recznie oznacz) punkty typu 'bomb site' etc. wyznacz miedzy nimi sciezki i zrob funkcje typu BronBombsiteB() i wtedy gosc biegnie tam po sciezkach i jak zobaczy gracza to sie odwraca i strzela.