Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- \subsection{Mapa hry}
- Mapa hry je realizována jako obrázky s definovanými regiony. Tyto informace jsou uloženy ve formě souborů s předdefinovanou cestou na filesystému.
- Pro hru úspěšné hraní je potřeba mít šablona mapy, obrázek mapy, obrázek šablony mapy a mapující šablonu.\\
- Nejprve definuji konvence pro pojmenování těchto souborů a poté rozeberu význam jednotlivých těchto souborů.
- \subsubsection{Jmenné konvence}
- Pokud se obrázek mapy jmenuje {jméno mapy}.png, pak se obrázek šablony mapy bude jmenovat "{jméno mapy}ImageTemplate.png" a mapující šablona bude
- "{jméno mapy}ImageTemplate.xml". Šablona mapy bude uložena v "{jméno mapy}Template.xml".
- Pro šablony mapy a mapující šablony bude existovat potom validující xml schema.\\
- Všechny výše zmíněné soubory budou v adresáři na relativní cestě Maps/... ke spustitelnému souboru.
- \subsubsection{Šablona mapy}
- Šablona mapy je XML soubor, který definuje seznam regionů a jeho sousedů na mapě. Při spuštění hry je tento soubor přečten a jsou z něj vytvořeny
- skutečné objekty mapy hry. XML Schema pro šablony je definováno ve stejném adresáři a jmenuje se "Map.xsd".
- \subsubsection{Obrázek mapy}
- Obrázek mapy je PNG soubor, který je obrázek libovolné mapy s vyznačenými regiony. Tento obrázek je ve hře prezentován uživateli a na něj jsou kresleny
- veškeré změny.
- \subsubsection{Obrázek šablony mapy}
- Obrázek šablony mapy je PNG soubor, jehož účelem je graficky znázornit mapování regionů na jednotlivé oblasti na mapě. Docíleno je toho tak, že se
- vezme obrázek mapy, a každý region se vybarví unikátní barvou pro tuto mapu. Dále je zvolena unikátní barva napříč libovolnou mapou.
- Do obrázku šablony mapy se potom zakreslí 1px touto barvou pokud možno daleko od kteréhokoliv okraje.
- \subsubsection{Mapující šablona}
- Mapující šablona je XML soubor, který mapuje jednotlivé barvy obrázku šablony mapy na jméno regionu specifikovaného v šabloně mapy.
- XML schema k mapujícím šablonám je ve stejném adresáři se jménem "TODO".
- \section{Server}
- Hlavním úkolem serveru je poslouchat na definované adrese a portu, komunikovat s klienty,
- odpovídat na jejich požadavky a na ukládání mezistavů používat databázi.\\
- Tyto možnosti si teď rozebereme.
- \subsection{Databáze}
- Databáze je realizována MSSQL serverem.
- \subsection{Komunikace s databází}
- Server komunikuje s databází přímo bez použití návrhových vzorů. K přístupu k databázi je použit EF6 Code-First.
- \subsection{Komunikace s klientem}
- Jak již bylo zmíněno v části o klientovi, komunikace je realizovány objekty "*Message", přesněji "*RequestMessage" a "*ResponseMessage".
- Nebudu v této práci popisovat celý komunikační protokol z důvodu rozsahu.\\
- Server poslouchá na definované IPV4 adrese a portu za použitím TCP socketů. Jakmile se k němu někdo připojí, dojde ke spojení.
- Server pak čeká na požadavky posílané klientem. Přijde-li jako první jakýkoliv jiný požadavek, než na přihlášení se, server pošle
- zápornou odpověď.
- \subsubsection{Přihlašování uživatele}
- Přijde-li serveru požadavek na přihlášení se, v němž bude posláno jméno a heslo, klient heslo zašifruje, tyto údaje verifikuje podle údajů uložených v databázi,
- a pošle binární odpověď, zdali došlo k úspěšnému přihlášení a u sebe si poznačí, že klient byl úspěšně přihlášen.\\
- Od této chvíle může klient se serverem plnohodnotně komunikovat a posílat i jiné požadavky.\\
- Je-li klient neaktivní po serverem určenou dobu, pak je klient odpojen.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement