Kezdők útmutató az alkotók mmorpg játékok

Előszó a fordító

Nemrégiben egy nagyon elterjedt multiplayer online játékok (MMOG - masszív multiplayer online game) játék a világon, amelyek célja az óriási-nagy számú játékos. Persze, mindenki hallja csak a sikeres projektek gyűjtenek jelentős pénzügyi eredmény. Ez vonzza a legtöbb kezdő igrostroy ebben a műfajban. Azonban nagyon kevés ember valóban elképzelni, milyen problémák és kihívások, hogy hozzon létre az ilyen játékokat, hogy mi a tudás van szükség, stb

Ennek eredményeként - kéz mögött létrehozását egy ilyen projekt, a kezdő gyorsan megérteni, hogy minden bonyolult és zavaros. És dobott minden csalódott.

A célja ennek a cikknek -, hogy a kezdeti ötlet hajlandó tenni az ő teljesítménye a MMOG-style, mi a tudás szükséges, hogy mit kell tudni, hogyan és mit kell készíteni. Nem titok, hogy ha egy személy megpróbálja valami egyszer, és az eredmény negatív - majd ismét vissza kell tenni, hogy nem valószínű, hogy legyen. Ezért szeretném figyelmeztetni ismét hajlandó, hogy belevetette magát a világ létrehozásának játékok és nekik több idő átgondolni a dolgokat, és mérjük meg. Talán meg kellene kezdeni az egyszerűbb játékok, hogy csak kap a szükséges minimális tapasztalat?

A cikk bemutatja létrehozását MMORPG (szerepjáték játék), de azt hiszem, le is vonatkozik minden típusú masszívan multiplayer online játékok.

Szükséges ismeretek:
    1. ismerete legalább egy programozási nyelv. Ki között a fejlesztők a legnépszerűbb nyelv C ++, mert annak előnyeit a hatékonyság és a gyorsaság. Visual Basic, Java, C # is használható ebben a minőségében.
    2. Szükséges, hogy megismerjék a grafikus könyvtár. A népszerű választás SDL, OpenGL és a DirectX / Direct3D.
    3. Döntés a hálózati könyvtár. Kiválaszthatja WinSock, SDL_net vagy DirectPlay.
    4. Van tapasztalat játékprogramozásból. Például, hogy van elképzelése, hogy mi: az esemény sorban, többszálú, fejlesztése felhasználói felület (GUI), stb
Nagyon ajánlott, hogy tudja:
    1. A kliens-szerver kommunikáció építészeti és építési az ilyen rendszerek.
    2. létrehozása cross-platform alkalmazásokat. Elég talán szeretne létrehozni a játékot, és főleg az ügyfél úgy, hogy futhat a különböző operációs rendszereken. Mert ezt a funkciót, azt javasoljuk SDL, OpenGL és SDL_net.
    3. kidolgozása Web (Internet). Erre azért van szükség, ha azt szeretné, hogy az érdekelt személyek, hogy megtekinthesse a statisztikát a játékosok, a szerver információt, vagy bármilyen más információ a weboldalon keresztül.
    4. Protection és a menedzsment. Nem akarom, hogy valaki feltörte a szervert?
    5. csapatmunka, team menedzsment. Be kell, hogy legyen egy csapat, amely képes lesz arra, hogy sikeresen kezelni.

Észrevettem, hogy egy csomó ember levelet a fórumokon hozzászólás keresése csapatok MMOG fejlődését. Sokan közülük szavakkal kezdődik: „Mi - a bimbózó társaság / játék stúdió, és szükségünk van 3 művészek, 2 programozók, 1 zenész, stb kialakított innovatív, nem léteztek MMOG, ahol lesz teljes cselekvési szabadságot és a lehetőséget a világ megváltoztatására, stb Mi fog fizetni a munka fejlesztése a végén, amikor mi ezt egy kis pénzt. " Sajnos, a modern technológia és korlátozott sávszélesség (hálózati) Nem lehet létrehozni egy dinamikus világban. Próbálok létrehozni valamit lehetetlen vezet kudarcra. Ez lesz a helyes kezdeni egy kis, teljesen működőképes, skálázható rendszer felépítése.

Az alapvető architektúra a program:

tárolnak információt a karaktert a feladat első pillantásra úgy néz nagyon egyszerű, de ez nem az. Például, van két módon lehet megtenni: használja az adatbázist, vagy használja a fájlokat. Továbbá, a táblázat felsorolja az előnyök és hátrányok az egyes kiviteli alak:

előnyei:
  • Egy könnyen hozzá vagy módosítsa a mezőt.
  • Megváltoztatása statisztikát a játékos (nem a játék) sokkal könnyebb
  • Lehet kapni különböző statisztikákat gyorsan és hatékonyan az SQL lekérdezések
  • Nem kell, hogy hozzon létre egy I / O művelet egy fájl, adatbázis, mindez érted
  • Könnyen frissítheti vagy helyreállíthatja

    hátrányai:
  • Ez könnyű hibázni. Például lekérdezésével elfelejtett „hol” nyilatkozatot. Ez katasztrofális következményekkel járhat, különösen akkor, ha csak a régi (vagy egyáltalán nem) mentést
  • Munkavégzés az adatbázis lassabb lehet, mint a munka a fájl lejátszó közvetlenül. Lehet veszíteni néhány milliszekundum, amikor megkapja az adatokat, különösen, ha nagy számú játékos ugyanabban az időben, belépés / kilépés a játékból
  • Be kell írni kiegészítő kód konvertálni az adatokat / az adatbázisból
  • Szükség van tapasztalata adatbázisok és az SQL nyelv lekérdezések. A könyvtárak is szükség van a szervezet interakció az alkalmazás és az adatbázis
  • Ha valamilyen oknál fogva az adatbázis fájlok megsérültek, akkor így jártál. Akkor elveszíti a szereplők (főleg, ha nincs friss backup)

    előnyei:
  • Nagyon gyors hozzáférés (írás / olvasás)
  • könnyen végrehajtási
  • Nincs további könyvtárak
  • Nincs kapcsolat az adatbázis szerver. Ezért nem kell aggódnia, frissítések és javítások az adatbázis

    hátrányai:
  • Ez is nagy kihívást jelent, hogy új mezőket, ha előzőleg nem gondol a méret és a fájl szerkezetét
  • Lehetetlen, hogy a kérelmet a nagy játékosok száma (ez a probléma is megoldható egy programot, amely minden este hozzáteszi fontos adatokat az adatbázis szerver)
  • Szeretném, hogy írjon egyéni kódot, hogy frissítése / állapotának ellenőrzésére játékos
  • Egy kicsit nehezebb végrehajtani frissítési műveletek és helyreállítási

    Most, hogy úgy döntött, hogyan kell tárolni információt a karakterek, el kell dönteni, hogy milyen hálózati protokoll fog használni a kliens-szerver kommunikáció: TCP vagy UDP? TCP ismert lassabb, de pontosabb, akkor nagyobb sávszélességet igényel. A gyakorlatban nem vettem észre semmilyen problémát, ha a TCP. Ha elegendő sávszélesség, TCP - ez egy jó választás, legalábbis a kezdet. UDP lehet nagyon kellemetlen, főleg kezdőknek. Ne feledje, hogy a kezdeti tesztek a motor és a játék lesz a helyi hálózaton, hogy minden csomag érkezik meg rendeltetési helyükre ugyanabban a sorrendben, mint hogy elment. De ez nem garantálható, ha az internet használata, azaz a egy valós környezetben. Abban az időben, a megszokott módon a csomagok érkeznek egy adott sorrendben, egy részük elveszhet, és ez egy állandó probléma az interneten. Persze, lehet fejleszteni a protokoll, hogy a kliens / szerver elvesztett csomagok. De ez egy nehéz folyamat, ami nem ajánlott kezdőknek.