Mellékleteink: HUP | Gamekapocs
Keres

A C++ versenyen is a dedikált tesztelő a siker kulcsa

Hlács Ferenc, 2018. november 13. 11:26

Idén is MOBA pályán csaptak össze az NNG C++ Grand Prix versenyzői.

hirdetés

A fejlesztő élete nem csak játék és mese - de azért néha játék: idén is rajthoz álltak az NNG C++ Grand Prix versenyzői, akik rekord létszámban, mintegy 131 csapattal jelentkeztek a hazai cég éves megmérettetésére. A feladatot a szervezők most is a tavalyihoz hasonló MOBA összecsapásra hegyezték ki, a háromfős csapatoknak a megadott, középpontosan tükrözött pályán kellett algoritmusaikkal hőseiket a lehető legtöbb esetben győzelemre vinni. A karaktereket teljes egészében az írott algoritmusok vezérelték, küzdelmüket pedig a döntőkben a csapatok kivetítőn követhették. A versenyen külön mérkőztek meg a külsős csapatok, illetve az NNG saját dolgozóiból verbuválódott mezőny, mindenkinek közel 12 órája volt a MOBA-bajnok algoritmus megírására, amely az NNG direkt a versenyre készült játékában volt hivatott vezérelni a csapatok hőseit. A külsősök számára a győzelem minden évben duplán előnyös lehet, nem csak a nyeremények miatt, de azért is, mert nem egy esetben a sikeres versenyzők maguk is az NNG soraiban kötöttek ki.

Multiplayer Online Battle Arena

A korai stratégiai játékokból kialakult MOBA, vagy Multiplayer Online Battle Arena játékokban két csapat küzd egymás ellen, amelyekben mindenki egy-egy karaktert, vagy "hőst" irányít, a cél pedig az ellenfél központi bázisának lerombolása. A hősök más-más képességekkel rendelkeznek, amelyekre támaszkodva különböző csapatstratégiák építhetők fel. Az NNG saját MOBA-jában a képességeket a pályán elszórt tárgyakkal lehet megszerezni, így mindenki azonos pozícióból kezdheti a játékot, illetve a taktika felépítését. A műfaj megteremtőjeként egyébként az egyedi Starcraft pályából lett Aeon of Strife-ot emlegetik, azóta pedig számos sikeres MOBA látott napvilágot, mint a League of Legends vagy a Dota 2.

Míg a reggeli eligazításokon még álmos, a külsős csapatoknál pedig megszeppent arcok hallgatták a fontos tudnivalókat az NNG tárgyalójában, este nyolckor a döntőknél már sokkal fellazultabb, kifejezetten családias hangulat mellett dördült el a képzeletbeli rajtpisztoly, háttérben a Warcraft 2 zenéjével, amelynek klasszikus karakterei az NNG MOBA-ját is inspirálták. Az izgalmasabb meccsek után a tapsvihar sem maradt el, ilyenekből pedig nem volt hiány, több meccs elképesztően szoros volt, a csapatok egymásnak feszülő algoritmusai zsinórban többször váratlan csavarral fordítottak az álláson - de olyan helyzet is akadt, mikor az egyik fél fogyó pontszáma látszólag egyszer csak beragadt, és a csapat azt szinte a mérkőzés végéig tartva pusztította ki az ellenfél bázisát.

nngrndprx02

Az indulók közül a két kategóriában 10-10 csapat jutott a döntőbe: itt először 20 darab meccset játszottak egymással, ezekben a játék két, 5-5 fős főcsapatra osztotta a résztvevőket, ahol a csapatok 1-1 hőst irányítottak, amelyeknek a másik 5 fős brigád tornyait kellett minél gyorsabban elfoglalni. A felállást a rendszer minden meccsnél megkeverte, a húsz mérkőzés után pedig a négy legmagasabb pontszámot gyűjtő társaság esett egymásnak párbajokban, ekkor mind az öt hőst egy-egy csapat irányította.

A lényeg a jó hangulat

A verseny célja, ahogy azt annak főszervezője, az NNG Hero fejlesztője Fable (Blahut György) elmondta, elsősorban az volt, hogy mindenki jól érezze magát, nem próbálták céges tevékenységhez vagy egyéb aktualitáshoz kötni az NNG C++ Grand Prix-t. Fable szerint a győzelemhez a legjobb út azt volt, ha a csapatok nem rögtön összetett stratégiákkal próbálkoztak, hanem egy egyszerű algoritmussal kezdtek, amelyet a többiek ellen is kipróbálva csiszoltak a nap folyamán szerzett tapasztalataik alapján. A kódok összeeresztésére már a nap elejétől lehetőségük volt a résztvevő csapatoknak - erre biztatták is őket a szervezők. A verseny nevéhez hűen csak C++ háttértudást igényelt, minden más eszközt, például a hálózati protokollok kezelésére, készen kapnak a versenyzők - de minden évben megkapják az előző év feladatát is, amiből tudnak készülni, így azoknak sincs nagy előnyük, akik korábban már voltak az NNG valamelyik versenyén.

nngrndprx03

Előnyt jelenthet azonban, ha a csapatok már korábban összeszoktak, és hatékonyan tudnak együtt dolgozni - ez, mint a döntők után a csapatokkal beszélgetve megtudtuk, mind a belsős, mind pedig a külsős győztes csapatoknál adott volt. Ők megfogadták Fable tanácsát is, és előre kidolgozott komplex taktika helyett lépésről lépésre építették fel algoritmusaikat, egyszerre egy-egy célra koncentrálva, legyen az az elfoglalni kívánt torony megközelítése, az ellenséges hős támadása vagy épp a felvehető tárgyak megszerzése. A győztesek a versenyre is hasonlóan készültek: mindkét csapatnál a Grand Prix-t megelőző megfelelő pihenés volt a titkos fegyver.

Tesztelni? Tesztelni.

A belsős csapatok közül a DBeast vihette haza az aranyat, ők már tavaly megtanulták, hogy nem nagyon érdemes előre dolgozni: az előző versenyre proaktívan megírt kódot végül nem tudták hasznosítani a megmérettetésen. Idén ezért az alvással töltött éjfél előtti órák maximalizálása volt a cél, de a csapat felépítése is kulcsszerepet játszott a győzelemben: ahogy Keresztyén Péter, Tiegelmann Barnabás és Himes Péter rávilágítottak, három programozó egy programozóversenyre egyszerűen sok, mindenképp szükség van egy tesztelőre is, aki a kezdetektől csak nézi a meglévő verziókat és teszteli azokat, szűri a bugokat, összeveti a két programozó verzióinak hatékonyságát tíz-húsz-száz meccsen keresztül.

A sikerhez az is kellett, hogy a tesztelés során a későbbiekben megfelelően bővíthető algoritmusverziók jussanak tovább. A DBeast így például időben tudta úgy alakítani szoftverét, hogy a vezérelt hősök alacsony életpontnál eldobják a náluk lévő tárgyakat, így azokat a csapat közelben lévő karakterei vész esetén fel tudták venni, ahelyett hogy a tárgy elveszett volna. Erre a csapat szerint nem sok rivális gondolt - a kód növekvő komplexitása persze több hibát is hozott magával, ezeket azonban szerencsére időben sikerült kigyomlálni. Összességében a "favágó" módszer bizonyult a legjobb stratégiának, ahol nem ment el túl sok értékes idő a hibajavításra. A verseny egyébként a DBeast szerint is kifejezetten szoros volt, gyakorlás közben jellemzően 4. helyet szereztek, de azért "reménykedtek egy dobogóban".

nngrndprx01

A külsős győztes csapat, Bartal Zoltán, Jámbor Tamás és Török Gábor a nem túl optimista "Utolsók" nevet választották maguknak, amit a Grand Prix végére sikerült meghazudtolni. A tagok itt sem először indultak az NNG versenyén, és szintén a Fable által is javasolt, egyszerű taktikára építettek, egyszerre egy-egy képességet implementálva, amelyeket aztán a megfelelő prioritási sorrendbe rendeztek - élen például a támadással, ezt követte az elesett hősök gyógyítása, és így tovább. A tesztelés itt is kulcsszerepet kapott, a csapat szerint azonban a kód meglepően jól sikerült, kevés hibával találkoztak, a debugolással alig kellett időt tölteni, folyamatosan tudták új elemekkel bővíteni az arzenált.

A győztesek műszaki vásárlási utalványokat vihettek haza, az elsők csapatonként 900 ezer forint értékben, a második helyezett 600, a harmadik 300 ezer forintos utalványt kapott. A csapatok egyébként egybehangzóan dicsérték a Grand Prix-hez készült keretrendszert, illetve fejlesztői eszközöket, ahogy fogalmaztak, azok rendkívül jól használható, színvonalas hátteret adtak a versenynek, csak a lényegre kellett koncentrálni, nem kellett sokat foglalkozni a technikai háttérrel. Mindkét győztes brigád tervezi az indulást jövőre is, a 2019-es C++ Grand Prix-n is izgalmas összecsapásokra számítunk

Facebook

Mit gondolsz? Mondd el!

Adatvédelmi okokból az adott hír megosztása előtt mindig aktiválnod kell a gombot! Ezzel a megoldással harmadik fél nem tudja nyomon követni a tevékenységedet a HWSW-n, ez pedig közös érdekünk.