2014. május 8., csütörtök

MOBA Starter Kit Project - Bevezető

Népszerű MOBA-k
MOBA: Multiplayer Online Battle Arena, 2002 környékén Warcraft III pályaszerkesztőjével készült az első ilyen játék. Eul nevű modder nevéhez fűződik. Később komoly figyelmet kapott a játék. A történetéről egyenlőre elég ennyi, ha valakit érdekel, utána olvashat a wikipédián: http://en.wikipedia.org/wiki/Multiplayer_online_battle_arena

Játékmenet: a legáltalánosabb változatában két 5 fős csapat küzd egymás ellen a képen látható felosztású pályán. A sárga színnel jelölt részek a un. "lane"-k, a köztük lévő zöld terület a "jungle". A kék pontok tornyokat jelölnek.
A játékosok egy-egy hőst (champion) irányítanak. A játék kezdetétől fogva nem-játékos karakterek (minionok) indulnak útra a csapat bázisából (naracssárga negyed körök), ezeket wave-knek nevezik.
A játék célja az ellenfél bázisának lerombolása. A hősök játék közben szinteket és aranyat szereznek, az utóbbiból felszerelést vásárolhatnak.

Az utóbbi pár évben elég sokat játszottam League of Legends-el, hogy elkezdjen érdekelni programozási szinten is. Különböző kihívások merülhetnek fel egy ilyen játék alapjainak létrehozásakor. Bár sikerének vagy sikertelenségének a titka inkább a játék-egyensúly, tanulási nehézség megtalálásában rejlik, és persze abban, hogy mennyire kreatív hősöket tudnak kitalálni hozzá, remek gyakorlási lehetőség programozás terén is úgy gondolom.

Ez a sorozat egyfajta tutorial jellegű is lesz, de inkább csak megoldás technika szintjén. Úgy gondolom, hogy aki már tud programozni unalmas tartja ha az alapoktól kezdem, aki meg nem tud az meg nem hiszem, hogy pont tőlem fog megtanulni. :) Inkább azokra a részekre térek ki, ami engem is érdekelne:

  • Camera : alapvetően nem túl összetett feladat, de elég sokat szoktam kutatni mindig megfelelő kameráért, ezért veszem előre.
  • Champions : a játékos által irányított hősök területét több részre bontom:
    • Statok: a Pioneer közben megismert módszert fogom alkalmazni, ami egy rugalmas tulajdonság rendszert biztosít majd. Ez fontos szempont, mert nem egy konkrét játékban gondolkozom, hanem egy kezdő csomagban.
    • Skillek: szintén a Pioneer tapasztalatokat fogom használni, a különböző célpont kijelölési megoldásoknál. Maguk a skillek típus skillek lesznek, ne lepődjön meg senki, ha nem váltom meg a világot egyediségükkel. :P
    • Items: ebbe a kategóriába sorolom az vásárolható tárgyakat. Érdekes lehet, hogy nagyon hasonlóan fognak működni, mint a buff típusú skillek. ;)
    • Model, animáció, hangok: színesítő elemek, a kronkrét projekt nem követelné meg, de szeretem ha nem csak jó, hanem szép is amit csinálok. :) Mindenesetre alacsony a priorítása.
  • Mobs: Nem tökéletes megfogalmazás, de a minionokat (csapathoz tartozó lények, amik a lane-en mozognak) és a monstereket (jungle-ben lévő lények) értem alattuk.
    • AI : egyértelmű. ez lesz a legfontosabb ebben a témakörben, és mivel eddig ezzel nem nagyon foglalkoztam, számomra a legizgalmasabb is a projektben. :)
  • Game : Alapvető játékirányítási funkciókat foglal magába. wave-k kiküldése, csapatok kezelése, ölési/halási statisztikák követése, nyerés.
  • Network : Bár egy rendes moba megkövetelné a dedikált szervert, de ebben a projektben ezzel mégsem fogok foglalkozni. Alapvetően client to client megoldást fogok alkalmazni, ahol a master client fogja elvégezni azt, ami a dedikált szerver feladata lenne. Ugyanakkor két különböző, megoldásilag mégis nagyon hasonló verziót fogok csinálni: egyet a unity alap hálózat kezelőjével, egyet pedig a Photon Cloud szolgáltatással.
  • GUI : erről sokat nem mondanék. Grafikus felhasználói felület. Ennyi. Viszont esélyes, hogy nyár környékén fogok ezzel érdemben foglalkozni, amikor kijön a Unity 5-ös verziója az új GUI rendszerrel (Yey!) 
  • Developer Panel: mint említettem a projekt alapvetően egy starter kit létrehozásáról szól. Ennek eredményeként szükség van olyan funkciókra is, amelyeket a unity editorjában lehet használni. Ez egyenlőre elég képlékeny, időközben fog még formálódni:
    • Championok adatbázis
    • Tárgy adatbázis
    • Minion/Monster/Turret beállítások
Nagyjából tehát ezeket tervezem átfogni a sorozatban. Szerintem nem hagytam ki semmit, ha mégis, akkor ér beírni a kommentek közé. :)


0 megjegyzés:

Megjegyzés küldése