5. fejezet - Bevezetés a DirectPlay
Bevezetés a DirectPlay
DirectPlay - ez a Microsoft azon döntését, hogy működjön együtt hálózatokat. Bár az elmúlt néhány változat a DirectPlay kitéve jelentős változások, úgy tűnik, hogy a 8-as verzió a Microsoft volt képes megvalósítani valóban egyszerűen használható rendszer. Sőt, olyan egyszerű, hogy ha elkezd dolgozni a hálózat, mielőtt te is tudod.
Ahhoz, hogy használni DirectPlay a projektekben, biztos, hogy a fejlécek és Dplay8.h DPAddr.h, de arra is rámutatott, hogy az elrendezés a könyvtár listát, és DPlay.lib DXGuid.lib.
Tudom, mire gondolsz - mit jelent mindez a cucc a DirectX 8-as verzió a könyvet szentelt a használata DirectX verzió 9. Ne aggódj, barátom úgy döntött, hogy változatlanul hagyja a Microsoft 8-as verzió interfészek DirectX SDK version 9 (kilencedik változata a felület nem létezik ) úgy, hogy az információt megtalál alkalmazható mind DirectX 8 és 9 verziók.
hálózati objektumok
Segítségével DirectPlay hozzáférést biztosít a három korábban említett hálózati modellek: kliens, szerver és peer. Mindegyiknek megvan a saját interface objektum (ezek leírása a 5.1 táblázat), és az összes hasonló feladatokat.
5.1 táblázat. COM-objektumok DirectPlay
Nagyszabású szerepjátékok általában hatékonyan dolgozni megkövetelik a kliens / szerver modell, így nem fogok beszélni ebben a könyvben peer hálózatok. Példák a használatra, olvassa el a dokumentációt a DirectX SDK és a könyvek A. függelék azt ajánlom, mint információforrás használatára vonatkozó ad hoc hálózatok játékok Todd Baron könyve „Programming multiplayer játékokat.”
Amint azt korábban említettük, a munkamenet - amely alatt a dolgozó feje csomópontot, vagy csatlakozik egy távoli rendszert. Amikor a kapcsolat megszűnik, a kapcsolat megszakad. Minden ülés egyedülálló tulajdonságokkal rendelkezik, mint a név, jelszó (ha szükséges), a lehető legnagyobb számú felhasználó, stb További információk az ülés lesz szó „konfigurálása Session” részben később ebben a fejezetben.
Munka játékos
Ami a DirectPlay player (játékos) - ez egy külön kapcsolatot, összeköttetést biztosítva a másik számítógép a hálózaton. Ugyanazon a számítógépen lehet néhány játékos, de általában csak az egyik. Tény, hogy a szerver is hozzá van rendelve, hogy azonosítsa a játékos.
Minden játékos kap egy azonosítót (ID Player), amely a rendszer, hogy az üzeneteket egy játékos. Ezek az azonosítók - az egyetlen megbízható módszer annak meghatározására a játékosok, így a programot kell nyomon követni őket.
A nagy játék lehet több ezer összekapcsolt játékosok. Teljesítményének javítása érdekében a játékosok, néhány (vagy az összes) a játékosok lehet kombinálni csoportokba (csoportok). A csoport, akkor kissé leegyszerűsíti programozás, mert akkor össze egyszerre, hanem külön-külön az egyes játékos a csoport a játékosok, akik ugyanazon a helyen a játék (például egy térkép vagy szint), és küldje el az adatokat a csoporthoz. (Számos más oka használata csoportok, de ez - az egyik legfontosabb.)
A kapcsolat a játékosok és a csoportok ábrán látható. 5.5. Nincsenek korlátozások a játékosok száma egy csoportban, és a csoportok száma is létrehozhat. Amint az ábrán. 5.5 egység (négyszögekkel jelöltük) lehet tartoznak más csoportok (az 1. és 2. csoportjába tartozik 3). Felhívjuk figyelmét, hogy a játékosok a 7. és 8. izolált csoport; A DirectPlay nem számít belép a játékos a csoportba, vagy sem.
Ábra. 5.5. Nyolc játékos csatlakozik a játékról. Hat játékos egy csoportja (vagy a két csoport), és a két játékos van választva az összes csoport
Függetlenül attól, hogy használ-csoport, vagy sem, a rendszer a játékosok, amint egy eszköz tud kommunikálni egymással üzeneteket.
hálózati üzenete
5.2 táblázat. Szabvány üzenetek DirectPlay
Bár a jelentés egyes üzenetek most lehet, hogy nem érti, hogy a leírást a kiindulási pont. Mi csak akkor fog működni néhány üzenetet, de ez az az eset, amikor kisebb a jobb.
Leírás DirectPlay hálózati üzeneteket és a kapcsolódó információk megtalálhatók a dokumentációt a DirectX SDK. Azt javasoljuk, hogy hozzon a mestermű, akkor tartotta a dokumentum látható kéznél.
Ahhoz, hogy megkapja az üzeneteket, hálózati entitás visszahívási funkció kell rendelni, amely az úgynevezett egyes alkalommal, amikor egy üzenet érkezik. Zökkenőmentes adatáramlást, ez a funkció értelmezze az adatokat alapul típusát, és elvégzi kezelése a visszatérés a lehető leggyorsabban.
Üzeneteket küldeni, akkor használja ezt a funkciót, hogy elküldi a megfelelő hálózati egység (két). Ezek a funkciók könnyen használható, és akkor számos lehetőség a szállítás, ideértve a garantált szállítás, biztonságos titkosítást, aszinkron és a szinkron szállítás.
Aszinkron és a szinkron működés
Az első szállítási lehetőség kínál DirectPlay - ez szinkron vagy aszinkron üzenetek elküldésére. Ez azt jelenti, hogy vagy a rendszer visszaadja a vezérlést, miután megkapta a parancsot, hogy küldje el az adatokat (aszinkron működés), vagy megvárja, amíg az adatok sikeres küldeni (szinkron működés).
Melyik a jobb? A legvalószínűbb, akkor inkább aszinkron módszer, hiszen nem késlelteti a rendszer működését, mivel ez teszi egyszerre. Például, ha azt szeretnénk, hogy küldjön nagy mennyiségű adatot, miközben próbál játszani a játékot, nem szeretné megszakítani a folyamatot, várja meg, amíg a hálózat próbál közvetíteni információkat. Csak mondd meg nekik, hogy szeretne küldeni, és lehetővé teszi a DirectPlay, hogy nem a feldolgozás, és a játékos, hogy továbbra is, mintha semmi sem történt volna.
biztonság
Ez szörnyű, hogy tudja, hogy bármikor valaki a hálózaton képes megragadni és rögzíteni az adatokat. Ezért van a képessége, hogy titkosítja az adatokat üzeneteket, ami megnehezíti a hackerek számára, hogy olvassa el az értékes információkat.
A hátránya a biztonságos szállítás lassú le a rendszert, mert az adatok titkosítani kell, mielőtt elküldik, és megfejteni a lenyelés után. Ha át érzékeny információkat, időveszteség nem számít (de továbbra is fontosak a játékok).
A DirectPlay beépített támogatja a biztonságos üzenetküldés. Szerencsére használni csak állítsa be a megfelelő zászló a feladási működését. Most, hogy teher elemelkedik a vállát.
garantált kézbesítési
DirectPlay tudja garantálni a szállítási üzeneteket ugyanúgy, mint néhány közlekedési vállalat garantálására parcellák keresztül küldött nekik. Csak megjelölni egy üzenetet igénylő garantált szállítás, és megnyugodhat, hogy DirectPlay adja azt a cél (kivéve a leválasztás), folyamatosan újra elküldeni művelet sikeres lezárása. Használata garantált szállítás, akkor adjon meg egy egyedi zászló a hívott függvény, amely később látni fogjuk a következő részben „Küldés Server üzenetek” ebben a fejezetben.
Garantált kézbesítési kell fizetnie árak. Garantált szállítási túl lassú használni a valós játék helyzetekben. Games szállítási mód UDP (User Datagram Protocol), amely nem érdekli, hogy a kapott adatokat (ellentétben a TCP szállítási mód, amely garantálja a szállítás). Azt gondolhatnánk, hogy ez őrültség, de érti a helyzetet, hogy milyen játékokat gyakran küldött frissített információkat, és a veszteség egy kis mennyiségű adat időről időre egészen elfogadható.
Beállítása az áramlás
Néha a rendszer előfordulhat túlterhelés, megpróbáltuk feldolgozni az üzenetet áramlását. Azonban van egy beépített DirectPlay üzenet flow control rendszer, amely dob ki az üzeneteket az alacsony prioritású a sorban.
Talán ábra. 5.6 segít elképzelni a fogalom használata a mechanizmus a szabályozás. Nézzük meg a képet, elképzelni, hogy egy sor ember előtt várakozó népszerű szórakozóhely. Minden ember egyedi üzenetet. és kidobó (korrekciós mechanizmus), hogy távolítsa el a legkevésbé fontos a sorban, ha az intézmény válik zsúfolt.
Ábra. 5.6. kiigazítási mechanizmus (ugráló) elfogadja vagy elutasítja az üzenetet (látogató) függően fontosságát
DirectPlay finom beállítja az áramlás, így nem treuetsya általában változtatni az alapértelmezett beállításokat.
A kis és nagy szerinti bájt
A világ nagyon nagy, mindannyian különbözőek vagyunk, és vannak olyan helyzetek, amikor szükség van közvetítő. Arról beszélek, hogy a nyelvi akadály, különösen a számítógépes nyelvi akadályokat.
DirectPlay bemutatja, hogy a világ a Unicode (ha nem ismeri meg). Unicode - ez egy univerzális szabvány, amely lehetővé teszi a különböző programok és számítógépek információk megosztására. Mivel a hálózat is csatlakoztatható egy másik hálózat bárhol a világon, a játékosok különböző országokban élnek és különböző nyelveket beszélünk.
Mivel a Windows verziók különböző országokban kissé eltérő, a felhasználó a rendszer beállítható úgy, hogy Unicode karaktereket. Ennek eredményeként az egész rendszer épül DirectPlay Unicode karaktereket (tárolására minden 16 bites szimbólum helyett 8) van csatlakoztatva, nyelveket használó több mint 255 karakter. Hallom nyög, de hadd mondjam el, hogy a Windows mindazokat a funkciókat meg kell konvertálni egyik formátumból a másikba karakter, így nem kell aggódni.
Azonosítása GUID alkalmazások
Hálózati alkalmazások, mint megkülönböztetni a idegenektől? Saját alkalmazását egyedi számot, és lehetővé teszi, hogy kapcsolatba csak azok a pályázatok, amelyek ugyanazt a számot. Ez a különleges kérdés természetesen GUID (Global Unique Identification), a megszokott Windows-programozók.
Létrehozásakor az alkalmazást, egy pillanatra, hogy rendeljen hozzá egy egyedi GUID és győződjön meg arról, hogy minden alkalmazást, amely csatlakozhat a hálózathoz ugyanazon GUID.
Ez minden, amit mondani akartam most a küldött adatokat. Előrelépés az hálózatának létrehozását entitás DirectPlay hogy adatokat küldeni és fogadni a különböző típusú objektumok nagyon hasonló, ezért az alábbiakban fogok kötődni az egyedi adatokat.