140 likes | 239 Views
DEIK nyári ösztöndíj jelentés: a KőPapírMetalFC ” lájtosított ” 2D RCSS csapat bemutatása. Dóczi Roland Debreceni Egyetem Informatikai kar Mérnök informatikus BSc hallgató doczi.roli @ gmail.com. Kivonat.
E N D
DEIK nyári ösztöndíj jelentés: a KőPapírMetalFC”lájtosított” 2D RCSS csapat bemutatása Dóczi Roland Debreceni Egyetem Informatikai kar Mérnök informatikus BSc hallgató doczi.roli@gmail.com
Kivonat • A 2011/2012 nyári ösztöndíjprogramban a ”lájtosított” 2D RCSS server (RoboCupSoccerSimulation) 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 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 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