Návrh a realizace multiuživatelské hry Tomáš Wasserbauer České vysoké učení technické v Praze Fakulta elektrotechnická
Zadání Navrhněte a realizujte Navrhněte a realizujte –víceuživatelskou –RPG hru (Role Playing Game) - simulaci námořní bitvy. –K dispozici budou lodě a ponorky různých typů a velikostí. –Veškeré doplňkové vlastnosti lodí, děl, posádky, atd. si bude hráč moci časem vylepšit, nebo koupit lepší (jako u klasických RPG typu Diablo). –Hráči budou rozděleni do dvou týmů a každý hráč bude ovládat pouze jednu loď. Implementujte pomocí C/C++, WinAPI a OpenGL. Implementujte pomocí C/C++, WinAPI a OpenGL. –Některé 3D objekty vytvořte v MilkShape3D (lodě, letadla, atd.) –a ostatní generujte (ostrůvky, atd) /21Tomáš Wasserbauer
Číselná data Čas strávený tímto projektem = 500 hodin Čas strávený tímto projektem = 500 hodin Čas potřebný k dokončení = hodin Čas potřebný k dokončení = hodin Rozsáhlost kódu = přes znaků Rozsáhlost kódu = přes znaků Počet samostatných částí projektu = 8 Počet samostatných částí projektu = 8 – Klient – Server – 5 editorů – Stránky Tomáš Wasserbauer2/21
Síťová komunikace Architektura klient - server Architektura klient - server Tomáš Wasserbauer3/21
Klient – Datová struktura Dat. struktura je realizována spoj. seznamy Dat. struktura je realizována spoj. seznamy Tomáš Wasserbauer4/21
Klient – Struktura menu Hlavní menu PřístavNastaveníCreditsProfilyKonec GrafikaZvuk Kup posádkuLevel upVýběr bitvyKup zbraňKup loď Připojit se Příprava hry Hra Zhodnocení Hra má poměrně rozsáhlé menu Hra má poměrně rozsáhlé menu Tomáš Wasserbauer5/21
Klient – Přístav Menu, kde se připravuje loď k bitvě Menu, kde se připravuje loď k bitvě Tomáš Wasserbauer6/21
Klient – Nákup lodí a zbraní Pro každou novou věc musí hráč splnit požadavky Pro každou novou věc musí hráč splnit požadavky – Level velitele – Dostatek peněz – U zbraní musí posádka splňovat požadavky levelu, aby ji mohla ovládat Tomáš Wasserbauer7/21
Klient – RPG prvky Poměrně rozsáhlé, ale ne všechny jsou již napojeny na hru Poměrně rozsáhlé, ale ne všechny jsou již napojeny na hru Tomáš Wasserbauer8/21
Klient – Generované ostrovy Řešeno metodou posunu středního bodu Řešeno metodou posunu středního bodu Tomáš Wasserbauer9/21
Klient – Částicové efekty Výpočty prováděny na základě fyz. modelu Výpočty prováděny na základě fyz. modelu Tomáš Wasserbauer10/21
Klient – Částicové efekty Částicové efekty použity i pro střely a torpéda Částicové efekty použity i pro střely a torpéda Tomáš Wasserbauer11/21
Klient – Detekce kolizí střela loď = bod elipsa (a Výška) střela loď = bod elipsa (a Výška) střela ostrov = bod bod výškové mapy střela ostrov = bod bod výškové mapy střela voda = bod rovina střela voda = bod rovina loď loď zde není z důvodu komplikací při síť. hře loď loď zde není z důvodu komplikací při síť. hře Tomáš Wasserbauer12/21
Klient – Cvičné lodě Pro větší zábavu v méně lidech Pro větší zábavu v méně lidech Tomáš Wasserbauer13/21
Server Slouží pro komunikaci mezi klienty Slouží pro komunikaci mezi klienty – Je plně automatický. Tj. po ukončení jedné hry automaticky přejde k vytvoření další Tj. po ukončení jedné hry automaticky přejde k vytvoření další – Slouží k výměně dat při přípravě hry (dává je od klientů dohromady) – Ve hře vypočítává úhly pro střely (jsou z části náhodné) Serverů je možno spustit na jednom PC více, sám si přidělí volný port. Serverů je možno spustit na jednom PC více, sám si přidělí volný port. Server je v co největší možné míře nenáročná aplikace Server je v co největší možné míře nenáročná aplikace Tomáš Wasserbauer14/21 Výběr Načít.Hra
Editor lodí Slouží k vytvoření dat potřebných pro loď Slouží k vytvoření dat potřebných pro loď Včetně detekce kolizí Včetně detekce kolizí Tomáš Wasserbauer15/21
Editor zbraní Slouží k vytvoření dat potřebných pro zbraně Slouží k vytvoření dat potřebných pro zbraně Tomáš Wasserbauer16/21
Editor střel Slouží k vytvoření dat potřebných pro střely Slouží k vytvoření dat potřebných pro střely Tomáš Wasserbauer17/21
Editor inicializačních dat Slouží především pro nastavení parametrů hry po špatném nastavení a nemožnosti znovu hru spustit Slouží především pro nastavení parametrů hry po špatném nastavení a nemožnosti znovu hru spustit Tomáš Wasserbauer18/21
Editor profilů Slouží především pro testovací účely (vyvážení hry) Slouží především pro testovací účely (vyvážení hry) Tomáš Wasserbauer19/21
Stránky Tomáš Wasserbauer20/21
Konec A jsme na konci, děkuji za pozornost… Tomáš Wasserbauer21/21