Zápisnica č.

Dátum

Miesto

Čas

7

19. 11. 2008

Softvérové štúdio

15.00

 

Zúčastnení

členovia

Bc. Juraj Ligocký

Bc. Michal Hrubý

Bc. Gabriel Pán

Bc. Ján Hric

Bc. Marek Polák

Pedagóg

Ing. Ivan Kapustík

Zapisovateľ

Bc. Ján Hric

 

Program stretnutia

Cieľom stretnutia bolo bližšie špecifikovať, čomu sa budeme venovať v prototype.

  1. Rýchla kontrola úloh z minulého stretnutia
  2. Podrobná diskusia k úlohám
  3. Rozdelenie dodatočných úloh

 

Priebeh stretnutia

  1. Rýchla kontrola úloh z minulého stretnutia

-        MP čítal hlavné body zápisnice z minulého stretnutia.

-        JL sa spojil s tímom Kukuričné deti a podpísal preberacie protokoly.

-        MP umiestil simulácie zápasov Jahodových princov na webovej stránke do prehľadnej tabuľky.

 

  1. Podrobná diskusia k úlohám

-        Každý člen opísal spôsob riešenia svojich úloh z minulého stretnutia a prezentoval výsledky.

-        JL sa spojil s členom tímu Jahodoví princovia a spýtal sa ho na algoritmus eliminácie premenných.

o        Algoritmus sa v hráčovi v skutočnosti nepoužíva, v kóde je vypnutý.

o        Realizovaná je iba prvá časť - dopredné hľadanie roly (až na detaily), no nie je otestovaná.

o        Z druhej časti sú zahrnuté len pravidlá pre nahrávajúceho hráča, pravdepodobne nie všetky.

o        Algoritmus sa ťažko testuje - jedine pomocou logovacích výstupov.

o        Pomocné funkcie pre algoritmus v hráčovi sú.

o        V rámci prototypu vyskúšame (cez logy), či sa roly priraďujú správne.

o        Načim nájsť vhodný nástroj na analýzu logov. (Loganalyzer má veľa možností, pozn. MH.)

o        Máme dostupný javový monitor aj so zdrojovým kódom. Mohli by sme ho skúsiť upraviť na zistenie a zobrazenie informácií z logu hráča.

-        MH sa venoval analýze monitorov. Podrobný súpis je v prílohe A.

o        Javový monitor by mal byť schopný zobraziť model sveta hráča, no MH sa to neporadilo. (Asi potrebuje špeciálneho hráča, pozn. IK.)

o        Pôvodným autorom javového monitora je japonský tím, ku ktorému MH nenašiel dokumentáciu.

 

 

-        GP pokračoval v skúmaní hráča tímu DAInamite.

o        GP naprogramoval a predviedol nám beh hráča po ihrisku.

o        Základné funkcie (beh, kop, pohľad a pod.) sú v hráčovi zahrnuté.

o        V kóde sú aj triedy pre rôzne taktiky hráča.

o        Tím má dostupnú podrobnú dokumentáciu s opisom tried.

o        MH nešlo v javovom monitore zobrazenie hlasových správ. (Možno hráči tímu DAInamite nekomunikujú.)

o        Voľne dostupný hráč tímu DAInamite (aj so zdrojovým kódom) je schopný hrať, čo dodáva nádej na pokračovanie v ňom.

o        GP spíše, aké stavy/akcie sú v hráčovi dostupné, aby sme vedeli, na čom sme. (Pozn. IK: ,,Pojem ,je tam všetko, čo treba' nehovorí nič.'')

-        JH odhalil dôvod nefunkčnosti hráča tímu Jahodoví princovia s novšími verziami servra. Zároveň sme zistili zaujímavé veci:

o        Novšie verzie servra už generujú na začiatku hry osemnásť heterotypov oproti doterajším siedmim. Tím Jahodoví princovia nerátal s takým množstvom, preto nefungoval. Po úprave konštanty maximálneho počtu heterotypov v kóde sa JH podarilo skompilovať funkčného hráča.

o        Novšie verzie servra automaticky zisťujú daktoré nedovolené situácie a prepnú režim hry do foul. Hráč Jahodových princov tento režim nepozná.

o        JH zistil, že najnovší server (13.0.1) je dostupný v binárnej forme pod OS Windows. Umiesti ho na stránku tímu.

o        Nový server ukladá herný log v textovom formáte. Staršie verzie používali formát binárny. Textový formát súčasné monitory nepoznajú, pokúsime sa nájsť spôsob na jeho analýzu, resp. prevod do binárnej podoby.

o        JH odskúša viac zápasov s rôznymi hráčmi na potvrdenie, že nový server je stabilný.

o        Mohli by sme sa spojiť s tímom Kukuričné deti a dohodnúť sa na použití nového servra.

o        JH identifikoval hlavné zmeny v servri od verzie 8. Súhrn je v prílohe B.

-        MP sa ďalej zaoberal neurónovou sieťou na agresívne správanie.

o        S tímom Brainstormers sa nespojil, lebo z dodatočnej literatúry (na základe odporučenia prednášajúceho predmetu Neurónové siete) pochopil princíp fungovania siete.

o        Akcia obratia o loptu môže byť dlhá najviac 35 taktov.

o        V každom takte ide do siete vstup opísaný v prílohe A zápisnice č. 6 pre každú možnú akciu, ktorú hráč môže vykonať (zoznam akcií je pevne daný).

o        Sieť vráti pre každú akciu ohodnotenie. Najvyššie ohodnotená sa vykoná.

o        Pri učení sa po skončení akcie upravia podľa úspechu váhy siete.

o        MP nevie, či má sieť naprogramovať v C++ či v Jave. Zatiaľ totiž nie sme rozhodnutí o základe nášho hráča.

o        Do prototypu MP stačí navrhnúť presný spôsob realizácie siete (koľko krokov a akcií bude, aké stavy, opis tried a algoritmu).

 

  1. Rozdelenie dodatočných úloh

-        MP sa informoval o povahe posudku na tím Kukuričné deti, ktorý má napísať. IK vysvetlil:

o       Posudok má pomôcť druhému tímu, preto v ňom majú byť vyzdvihnuté správne veci a odôvodnené veci nevhodné, aby tím vedel, kde a ako sa má zlepšiť.

o       Hodnotí sa formálna i obsahová stránka.

o       Keďže téma posudzovaného tímu je zhodná s našou, posudok môže zachádzať do technických podrobností.

o       IK stačí poslať posudok mailom.

-        Aby sme si boli istí vhodnosťou tímu DAInamite, mali by sme ho odskúšať v podmienkach, v akých bude bežať na fakultnom zápase.

-        JH a JL sa bližšie zoznámia s algoritmom eliminácie premenných. Tentoraz sa zamerajú na to, čo v kóde skutočne je.

-        GP opíše hlavný cyklus tímu DAInamite (čo sa vykoná za jeden cyklus), najlepšie v podobe sekvenčného diagramu.

-        MH sa pokúsi zistiť pomocou logovania, čo v algoritme eliminácie premenných funguje, a navrhne vhodné logovacie výpisy na jeho testovanie.

-        GP dá na stránku odkaz na dokumentáciu tímu DAInamite.

-        JL pripomenul alternatívny zámer: zistiť, prečo hráč Jahodových princov často strieľa z diaľky, hoc priestor na pohyb (driblovanie) má otvorený.

-        IK vysvetľoval fungovanie hráča:

o       Brankár má možnosť loptu buď odkopnúť, buď chytiť príkazom catch.

o       Hráč nemá formálne nohu, je schopný kopnúť v každom takte (desaťkrát za sekundu).

o       Najlepšie hráč kopne do lopty, keď je asi pol metra pred ním.

o       Výhodné je kopnúť do lopty slabšie - keď je za hráčom - a v ďalšom takte - keď sa dostane pred hráča a naberie rýchlosť - kopnúť do nej z celej sily.

 

 

Plnenie úloh z predchádzajúcich stretnutí

Id

Opis

Zodpovedný

Termín

Stav

4.5

Dokumentácia zdrojového kódu Jahodových princov.

Ligocký

12.11.2008

Čiastočne splnená

4.6

Pokračovať v príprave neurónovej siete.

Polák

10.12.2008

7.1

6.1

Analýza algoritmu eliminácie premenných.

Ligocký

19.11.2008

7.2

6.2

Pokračovať v tvorbe dokumentácie.

Hric

10.12.2008

Prebieha

6.3

Analyzovať hotové a použiteľné časti javového hráča a zistiť, ktoré časti je nutné implementovať.

Pán

10.12.2008

Prebieha

6.4

Predviesť jednoduchú akciu hráča (nájdenie lopty, kop na bránku atď.).

Pán

19.11.2008

Splnená

6.5

Opis a špecifikácia javového monitora, jeho porovnanie s inými riešeniami.

Hrubý

19.11.2008

Splnená

6.6

Kontaktovať tím Brainstormers ohľadom neurónovej siete, písanie posudku konkurenčnému tímu.

Polák

19.11.2008

7.1, 7.3

6.7

Prejsť changelogy serverov, identifikovať a opísať chybu v heterotypoch.

Hric

19.11.2008

Splnená

 

Nové úlohy

Id

Opis

Zodpovedný

Termín

7.1

Podrobný návrh neurónovej siete.

Polák

14.12.2008

7.2

Analýza algoritmu eliminácie premenných v kóde Jahodových princov.

Ligocký, Hric

26.11.2008

7.3

Napísať posudok dokumentácie tímu Kukuričné deti.

Polák

21.11.2008

7.4

Spísať, aké stavy, akcie hráča sú dostupné v tíme DAInamite.

Pán

26.11.2008

7.5

Navrhnúť vhodný spôsob testovania algoritmu eliminácie premenných (cez logovacie výpisy, monitor a pod.).

Hrubý

26.11.2008

7.6

Dať na webovú stránku odkaz na dokumentáciu tímu DAInamite.

Pán

26.11.2008

7.7

Upovedomiť tím Kukuričné deti o existencii servra 13.0.1 a našom zámere jeho využitia.

Ligocký

14.12.2008

7.8

Odskúšať viac zápasov a rôzne tímy na servri 13.0.1.

Hric

26.11.2008

 

 

Použité skratky:

 

JL Bc. Juraj Ligocký

MH Bc. Michal Hrubý

GP Bc. Gabriel Pán

JH Bc. Ján Hric

MP Bc. Marek Polák

IK Ing. Ivan Kapustík


Príloha A

 

SoccerScope

 

Úvod

Tím Dainamite prebral monitor od tímu YowAI, ktorý je napísaný v jazyku Java. Tento monitor poskytoval veľkú škálu možností napr. zobrazenie zorného uhlu hráčov, výdrže, rýchlosti, pohybu, správ, prihrávok, držanie lopty a mnoho ďalších. Tím Dainamite sa rozhodol doimplementovať nové funkcie a hlavne možnosť trénovania rôznych situácií.

 

Prehľad zmien

Tím Dainamite pridali do monitora nové funkcie:

 

Popis funkcií

Monitor nám poskytuje obrovské množstvo užitočných funkcií a vlastností. V tejto kapitole popíšem jednotlivé funkcie a ich význam.

Menu View

Toto menu obsahuje voľby zobrazenia rôznych pomocných ukazovateľov vlastností jednotlivých hráčov.

Menu Analyze

Menu Dai

 

 

 

Ovládacie prvky

Na nasledujúcom obrázku sú zobrazené možnosti ovládania zápasu. Monitor nám poskytuje krokovanie po cykloch, zrýchlenie, spomalenie, zastavenie zápasu ale aj vrátenie sa na začiatok alebo koniec.

 

Vytvorenie scenárov na trénovanie

Monitor poskytuje aj možnosť trénovania určitých simulácií. Pri spustení monitora si môžeme rozmiestniť pomocou nástroja 1.2 hráčov po ihrisku. Po kliknutí na tľačítko 1.3 sa zobrazí editor, ktorý umožňuje nastaviť jednotlivým hráčom pozíciu, rýchlosť, uhoľ pohľadu a iné. Ak si nastavíme všetkých hráčov, ktorý sa zúčastňujú tréningu tak môžeme spustiť simuláciu tľačítkom 1.4.

 

 

 

Podrobný popis vytvorenia scenárov nájdete v dokumentácií tímu Dainamite.

 

Soccermonitor v1.4

Tento program poskytuje základnú funkcionalitu. Počas zápasu je možné si zobraziť informácie o aktuálnom hráčovi ako sú:

-         súradnice

-         uhol

-         typ heterotypu hráča

-         veľkosť

-         výdrž

-         sila kopu

-         pohľad

-         max. rýchlosť

-         dash power

-         decay

-         st_inc_mx

-         efft

 

Ďalej umožňuje zmeniť veľkosť hráčov, zobraziť čísla dresov, zobraziť zóny dosahu videnia sveta hráčom. Taktiež obsahuje ovládacie prvky ako krokovanie, zrýchlenie, spomalenie, zastavenie, pretočiť na začiatok alebo koniec.

Program disponuje aj trénerom pomocou ktorého sa dajú skúšať rôzne štandardné situácie: výkop, voľný kop, roh, aut, jedenástka, kopanie na bránku a ďalšie.

 

 

 

Soccermonitor v13.0.0

Jeho funkcie sú dosť obmedzené. Okrem zobrazovania zápasu dokáže meniť veľkosť hráčov, zobraziť súradnice jednotlivých hráčov, zoom.

 

Porovnanie výhod a nevýhod monitorov

SoccerScope

Výhody:

 

Nevýhody:

 

 

 

Soccermonitor v1.4

Výhody:

 

Nevýhody:

 

Soccermonitor v13.0.0

Výhody:

 

Nevýhody:

 


Príloha B

 

Prehľad hlavných zmien v Soccer servri od verzie 8

21. 11. 2001

- možnosť posielania komprimovaných správ hráčovi (pomocou Zlib)

08. 01. 2002

- pri inicializácii server akceptuje len správu init

- ak prídu iné správy, pošle chybu (error only_init_allowed_on_init_port)

16. 01. 2002

- ukazovanie rukou (pointto), zatiaľ bez šumu

21. 01. 2002

- šum pri ukazovaní (pointto)

15. 02. 2002

- kĺzačka (tackle)

- sústredené počúvanie (attentionto)

17. 04. 2002

- zistenie a obsluha spätných prihrávok (back pass)

- podpora zvukových správ v úvodzovkách

- zmena formátu zvukových správ

18. 04. 2002

- zmena: dash_power_rate, stamina_inc_max, player_size, player_speed_max

- spätná prihrávka: obsluha aj prípadu odrazu lopty od hráča

19. 04. 2002

- trest po samoprihrávke pri rozohrávke

22. 05. 2002

- možnosť tímu poslať svoje logo na server (team graphics)

05. 06. 2002

- možnosť „vypnúť uši“ (ear on/off)

11. 07. 2002

- možnosť autospustenia tímov

- podpora parametrov v úvodzovkách

- podpora samospúšťania hier

16. 08. 2002

- pred štartom pravého tímu sa čaká na pripojenie ľavého

22. 11. 2002

- nová dynamika chytania, kontrola zón podľa FIFA

03. 01. 2003

- obmedzenie heterohráčov

- už nemožno byť v ofsajde pri režime kick-in, goal-kick alebo corner-kick

10. 01. 2003

- trestné kopy

20. 01. 2003

- protokol verzie 9

22. 01. 2003

- kopy a kĺzačky sú zakázané v režime TimeOver

18. 03. 2003

- zmena parametrov tackle

 

 

23. 05. 2003

- oprava pointto

- oprava tackle

09. 04. 2007

- inicializačné správy pre koučov (coach_msg_file, sendExternalMsg)

- setTeamLeftStart a setTeamRightStart

- zistenie, že lopta sa zasekla a automatické vhodenie

(ball_stuck_area, BallStuckRef)

27. 04. 2007

- TACKE | TACKLE_FAULT

30. 04. 2007

- oprava chyby goal kick

19. 10. 2007

- min_tackle_power a max_tackle_power

- zmena algoritmu heterohráčov; nik nebeží nad player_speed_max

21. 10. 2007

- nový model spätných prihrávok (back pass)

22. 10. 2007

- kouč: change_player_types

- nové obmedzenie zmeny hráčov

- samopriradenie typu hráča po jeho pripojení

23. 10. 2007

- prísne pravidlá regenerácie výdrže; v predĺžení sa hráč nezregeneruje

24. 10. 2007

- nové pravidlo šumu kopu

31. 10. 2007

- brankár nemôže chytiť loptu hneď po svojom kope

09. 11. 2007

- počet typov hráčov zmenený na 18 (z pôvodných 7)

- samopriradenie typu hráča

10. 11. 2007

- nový variant change_view

19. 11. 2007

- test protokolu monitora verzie 3

20. 11. 2007

- protokol monitora verzie 3

- herný log verzie 4

05. 02. 2008

- zmena protokolu monitora verzie 3; každá správa obsahuje čas

07. 02. 2008

- nový model kĺzačky (tackle)

28. 10. 2008

- protokol verzie 13

- protokol monitora verzie 4

- herný log verzie 5

- nový model výdrže