DEIK nyári ösztöndíj jelentés: a KőPapírMetalFC ”lájtosított” 2D RCSS csapat bemutatása
Dóczi RolandDebreceni EgyetemInformatikai karMérnök informatikus BSc hallgató[email protected]
Kivonat
• A 2011/2012 nyári ösztöndíjprogramban a ”lájtosított” 2D RCSS server (RoboCup Soccer Simulation) környezetet szeretném ismertetni
• Sporttudományi és oktatási célok nyomán átalakított robotfocis környezet
• Ehhez fejlesztettem ki a KőPapírMetalFC csapatot• rcssserver/sampleclient alapú• Fejlesztési idő: július és augusztus hónap• Licence: A kódok GNU LGPL 3, vagy későbbi verziójú licenccel
futnak. Ezért szabadon terjeszthető vagy módosítható a licencnek megfelelően.
A csapat címere
A szerver
• UDP alapú• Nincs grafikus megjelenítés• A csapatokat, illetve a játékszabályokat kezeli• A szerver a klienseket minden időpillanatban információval
látja el• Ilyen információk a labda távolsága, annak az ágenshez képest
viszonyított szöge, csapattársak iránya, távolsága, stb.• Az információk ismeretében már feltudjuk készíteni a
klienseket a legtöbb szituációra
Egy adatcsomag
Egy kliens
• Egy kliens egy játékosnak felel meg• Fel kell készíteni őket a lehető legtöbb szituációra• Feldolgozza a szervertől kapott információkat <LEXER>• Ezekre válaszol• Időpillanatonként egy cselekvéssel válaszolhat• Egy időpillanat körülbelül 50ms• Cselekvés: futás, fordulás, rúgás
Érzékelés
• Az érzékelés minden időpillanatban történik • Ez alapján tudja az ágens azt is, hogy melyik játékmódot
játsszák éppen (bedobás, kirúgás, szöglet, … )• Minden érzékelésre van egy külön függvény, ami egyszerűbbé
teszi a kód megírását• latomAFocit(thisclient), distanceFoci(thisclient), …• Emberi szem számára is szép, olvasható kód
Mit tesz egy ágens a labdával?
• A cselekvés függ, hogy– mi a játék módja az aktuális időpillanatban(bedobás,
kirúgás, …)– a játékos hol is van a pályán– melyik poszton játszik– melyik térfél a sajátja– milyen messze van a saját, illetve az ellenfél kapujától
Viselkedések
• Külön viselkednek minden egyes szituációban a kapus, a védők, a középpályások és a támadók
• A kapus kizárólag egy a gólvonallal párhuzamos szakaszon mozog, együtt élve a játékkal
• A védők tartják a pozíciójukat, majd ha közel van a labda, akkor két védő összezár a támadó előtt megakadályozva azt, hogy a kapura törjön
• A középpályások a támadók felé rúgják a labdát, illetve elkerülik az ütközéseket az ellenfél játékosaival
• A támadók a befejező emberek. Amint a labda hozzájuk kerül, megpróbálnak kapura törni.
Jövőbeli tervek
• A fejlesztést folytatni fogom• Legfőbb irány: miután egy kliens csatlakozott egy másik
szerverhez, átadja az információit, majd a szerver megpróbálja szimulálni a lehetséges kimeneteleket 10 időpillanattal a ”jövőbe”, így elkerülhetővé válnak azoknak a cselekvéseknek az elvégzése, ami negatívan érheti a csapatot
• Minden játékosnak külön osztály és viselkedés
Köszönöm a figyelmet