Miért a Hero Engine?
Azonban nem volt mit tenni, céleszközre volt szükségünk. Elsők között egy Abyssal MMORPG engine nevű rendszert néztük meg, amelyet sajnos nem találtunk alkalmasnak egy olyan játék elkészítésére, amely 2014-ben is megállja majd a helyét. Nem maradt sok választás, a két lehetséges alternatíva, amely akkor elérhető volt, a Hero Engine és a BigWorld. Az akkor még gyermekbetegségeivel küzdő Star Wars: The Old Republic is a Hero Engine-t használta, a BigWorld pedig az azóta hatalmas népszerűségnek örvendő World Of Tanks-t hajtotta meg.
Természetesen az engine vásárlás mindig kompromisszum, mert mások által hozott tervezői döntésekkel kell együtt élni, így amikor egy szakember választás előtt áll, mindig keresi melyik az, ami az igényeihez legjobban illeszkedik. Ahogy azt tudjátok, mi a Hero mellett tettük le a voksunkat.
A döntésben jelentős szerepe volt annak, hogy a Hero-t számunkra sokkal elérhetőbb áron kínálták, másrészt a képességei meggyőzőnek tűntek, többek között olyan interaktív felületet nyújtott, amely megkönnyítette a világok építését. A Hero alapvetően felhő alapú világ architektúrát alkalmaz, az egyes területek - melyek nálunk a pályáknak felelnek meg - egymástól teljesen független folyamatként, tetszőleges példányszámban futhatnak, és a fejlesztők, akárcsak a játékosok a bejelentkezés után egy folyamatosan működő világot alakíthatnak át. A felhő alapú szerkesztésnek hála jelentős időmegtakarítást érhettünk el, és a közös munka is gördülékenyebb volt.
Bár egy viszonylag kényelmes szkriptnyelvet használ a rendszer, a bugkeresés lehetőségei viszonylag korlátozottnak bizonyultak. A sok, MMORPG-k által igényelt rész, mint például a hálózati kommunikáció, animált karakterek kezelése, pályaszerkesztés, felhasználói felület szerkesztésének lehetősége már eleve megvolt, vagy kevés munkával hozzáfejleszthetőnek tűnt. Emellett fejlett és kifinomult szerver menedzsment rendszereket ígértek az engine fejlesztői, amelyeket azonban csak a teljes licence megvásárlás után tettek elérhetővé, így azok képességeit, és az engine működésének legmélyebb aspektusait nem tudtuk vizsgálni.
Lényeges az is, hogy a játékosok kliensei akár menet közben is képesek frissülni, ha új tartalom kerül be, vagy egy gyors hibajavítást kell eszközölnünk, ami igen vonzó tulajdonság és sok más MMO rendszerrel szemben nagyon előnyösnek mondható.
A kezdeti örömök és nehézségek
A fejlesztés 2012 év végén kezdődött, és hála a kényelmes munkafolyamatoknak, kulcsrakész fejlesztői eszközöknek, igen jól haladtunk. Voltak nehézségek, melyeket idővel áthidaltunk, azonban beleütköztünk néhány akadályba, amelyre nem számítottunk. Néhol az engine alapvető működésében is hibák mutatkoztak, vagy beírgért kész rendszerek nem működtek megfelelően, például a pályák közötti töltőkép nélküli átmenetet biztosító "Seamless travel" rendszer is egy ilyen. Az Engine-hez nyújtott support sajnos nem terjedt ki ezen alapvető problémák orvoslására, ezért nagyjából 9 hónap fejlesztés után, mikor az alaprendszereink összeálltak és már csak ezekre a konkrét problémákra próbáltunk megoldást találni, úgy döntöttünk, hogy a forráskódot is megvásároljuk, hogy még mélyebben módosíthassuk az engine működését és végére járjunk ezeknek a hibáknak.
Komoly arculcsapást szenvedtünk el, amikor hozzájutottunk a kódhoz. A készítők is egy harmadik fél által felépített motorra alapoztak, ami azt jelentette, hogy ők maguk sem látták át a teljes működést. A szerverek architektúrájában és a kommunikációban is olyan tervezői döntéseket hoztak, amelyek alapvetően meghatározzák az engine működését, így megváltoztatni nem lehet őket, ugyanakkor komolyabb gondokat, például lagot okozhatnak. Ilyen például a TCP protokollra alapozott kommunikáció, amelynek hála elkerülhető a kommunikációs csomagok elvesztése, ugyanakkor nagyobb terhelést ró a rendszerre, ha a játékosok és a szerver közötti kapcsolatban problémák adódnak. Sok az üzemeltetéssel kapcsolatos lehetőség nem volt megfelelően kialakítva, az adatbázis szinte fekete lyukként viselkedett, a terhelésének vizsgálatára magunk írtunk több külön rendszert, amikor a lagok okát kerestük.
Az is igaz ugyanakkor, hogy az engine előnyeit a lehető legteljesebben kihasználtuk. Amikor egy adott keretben dolgozik az ember, akkor abból kell kihozza a maximumot, és a fejlesztői munka mindig ilyen. A menet közbeni javítások, a folyamatos fejlesztést támogató felépítés, és a felkínált kész rendszerek egy része a mai napig segíti a munkánkat és valószínűleg semmilyen más motorral nem tudtuk volna a Magic to Mastert ilyen kevés erőforrásból, ilyen gyorsan létrehozni. A Hero Engine teszi lehetővé azt is, ami ennek a blognak is az alapfilozófiája, hogy folyamatosan együtt építünk MMORPG-t a játékosainkkal.
Szerettük volna ha egy kis bepillantást nyertek a háttérbe, reméljük, ez ezzel a két blogbejegyzéssel sikerült. Bármilyen kérdésetek, ötletetek van, továbbra is várjuk, bombázzatok minket hozzászólásokkal!