\babel@toc {czech}{}\relax \contentsline {section}{\numberline {1}Úvod}{8}{section.1}% \contentsline {section}{\numberline {2}Distribuované systémy}{9}{section.2}% \contentsline {subsection}{\numberline {2.1}Architektury}{9}{subsection.2.1}% \contentsline {subsubsection}{\numberline {2.1.1}Softwarová architektura}{9}{subsubsection.2.1.1}% \contentsline {subsubsection}{\numberline {2.1.2}Systémové architektury}{10}{subsubsection.2.1.2}% \contentsline {subsection}{\numberline {2.2}Komunikace}{11}{subsection.2.2}% \contentsline {subsubsection}{\numberline {2.2.1}Modely pro komunikaci}{11}{subsubsection.2.2.1}% \contentsline {subsection}{\numberline {2.3}Počítačová Síť}{12}{subsection.2.3}% \contentsline {subsection}{\numberline {2.4}Komunikace v síti}{13}{subsection.2.4}% \contentsline {subsubsection}{\numberline {2.4.1}Rodina protokolů TCP/IP}{13}{subsubsection.2.4.1}% \contentsline {subsection}{\numberline {2.5}Protokoly v aplikační vrstvě}{15}{subsection.2.5}% \contentsline {subsubsection}{\numberline {2.5.1}HTTP}{15}{subsubsection.2.5.1}% \contentsline {subsubsection}{\numberline {2.5.2}HTTP/3}{16}{subsubsection.2.5.2}% \contentsline {subsection}{\numberline {2.6}Protokoly v transportní vrstvě}{16}{subsection.2.6}% \contentsline {subsubsection}{\numberline {2.6.1}TCP}{17}{subsubsection.2.6.1}% \contentsline {subsubsection}{\numberline {2.6.2}UDP}{18}{subsubsection.2.6.2}% \contentsline {subsubsection}{\numberline {2.6.3}QUIC}{18}{subsubsection.2.6.3}% \contentsline {subsection}{\numberline {2.7}Sokety}{20}{subsection.2.7}% \contentsline {subsection}{\numberline {2.8}Asynchroní vstupně výstupní operace}{21}{subsection.2.8}% \contentsline {subsubsection}{\numberline {2.8.1}ZeroMQ}{21}{subsubsection.2.8.1}% \contentsline {subsubsection}{\numberline {2.8.2}Work stealing}{21}{subsubsection.2.8.2}% \contentsline {subsubsection}{\numberline {2.8.3}Async/Await}{21}{subsubsection.2.8.3}% \contentsline {subsubsection}{\numberline {2.8.4}Boost Asio}{22}{subsubsection.2.8.4}% \contentsline {section}{\numberline {3}Hra}{23}{section.3}% \contentsline {subsection}{\numberline {3.1}Engine}{23}{subsection.3.1}% \contentsline {subsubsection}{\numberline {3.1.1}Fyzický engine}{24}{subsubsection.3.1.1}% \contentsline {subsubsection}{\numberline {3.1.2}Vykreslování}{24}{subsubsection.3.1.2}% \contentsline {subsubsection}{\numberline {3.1.3}Entity-Component-System}{24}{subsubsection.3.1.3}% \contentsline {section}{\numberline {4}Hra více hráčů}{27}{section.4}% \contentsline {subsection}{\numberline {4.1}Server}{27}{subsection.4.1}% \contentsline {subsubsection}{\numberline {4.1.1}Registr klientů}{28}{subsubsection.4.1.1}% \contentsline {subsubsection}{\numberline {4.1.2}Server Replikátoru}{29}{subsubsection.4.1.2}% \contentsline {subsubsection}{\numberline {4.1.3}Správa zájmů}{29}{subsubsection.4.1.3}% \contentsline {subsection}{\numberline {4.2}Klient}{29}{subsection.4.2}% \contentsline {subsubsection}{\numberline {4.2.1}Klient Replikátoru}{29}{subsubsection.4.2.1}% \contentsline {subsubsection}{\numberline {4.2.2}Interpolace}{29}{subsubsection.4.2.2}% \contentsline {subsubsection}{\numberline {4.2.3}Rollback}{30}{subsubsection.4.2.3}% \contentsline {subsection}{\numberline {4.3}Posílání zpráv}{30}{subsection.4.3}% \contentsline {subsubsection}{\numberline {4.3.1}Kódování zpráv}{30}{subsubsection.4.3.1}% \contentsline {subsubsection}{\numberline {4.3.2}Implementace}{31}{subsubsection.4.3.2}% \contentsline {subsubsection}{\numberline {4.3.3}Detekce a náprava chyb}{31}{subsubsection.4.3.3}% \contentsline {subsection}{\numberline {4.4}Serializace}{31}{subsection.4.4}% \contentsline {subsection}{\numberline {4.5}Protokol QUICr}{32}{subsection.4.5}% \contentsline {subsubsection}{\numberline {4.5.1}Rámce}{33}{subsubsection.4.5.1}% \contentsline {subsubsection}{\numberline {4.5.2}Handshake}{33}{subsubsection.4.5.2}% \contentsline {subsubsection}{\numberline {4.5.3}Spolehlivost}{34}{subsubsection.4.5.3}% \contentsline {subsubsection}{\numberline {4.5.4}Enkodér}{35}{subsubsection.4.5.4}% \contentsline {subsubsection}{\numberline {4.5.5}Testování}{36}{subsubsection.4.5.5}% \contentsline {subsubsection}{\numberline {4.5.6}Congestion control}{36}{subsubsection.4.5.6}% \contentsline {subsubsection}{\numberline {4.5.7}Bandwidth control}{36}{subsubsection.4.5.7}% \contentsline {subsection}{\numberline {4.6}Sharding}{36}{subsection.4.6}% \contentsline {subsection}{\numberline {4.7}Horizontální škálování}{36}{subsection.4.7}% \contentsline {section}{\numberline {5}Výsledná hra}{37}{section.5}% \contentsline {section}{\numberline {6}Měřění}{38}{section.6}% \contentsline {subsection}{\numberline {6.1}Metriky}{38}{subsection.6.1}% \contentsline {subsubsection}{\numberline {6.1.1}PostgreSQL}{38}{subsubsection.6.1.1}% \contentsline {subsubsection}{\numberline {6.1.2}TimescaleDB}{38}{subsubsection.6.1.2}% \contentsline {subsubsection}{\numberline {6.1.3}Grafana}{38}{subsubsection.6.1.3}% \contentsline {subsubsection}{\numberline {6.1.4}Orchestrace}{39}{subsubsection.6.1.4}% \contentsline {subsubsection}{\numberline {6.1.5}ImGui}{39}{subsubsection.6.1.5}% \contentsline {subsubsection}{\numberline {6.1.6}Tracy}{39}{subsubsection.6.1.6}% \contentsline {subsubsection}{\numberline {6.1.7}Konkrétní metriky}{40}{subsubsection.6.1.7}% \contentsline {subsubsection}{\numberline {6.1.8}Sbírání v reálném čase}{40}{subsubsection.6.1.8}% \contentsline {subsection}{\numberline {6.2}QUICr}{41}{subsection.6.2}% \contentsline {subsection}{\numberline {6.3}Optimalizace replikátoru}{43}{subsection.6.3}% \contentsline {subsection}{\numberline {6.4}Optimalizace manažera zájmů}{45}{subsection.6.4}% \contentsline {subsection}{\numberline {6.5}Závěry}{46}{subsection.6.5}% \contentsline {section}{Z\'av\v er}{47}{section*.3}% \babel@toc {czech}{}\relax \babel@toc {czech}{}\relax \contentsline {section}{Conclusions}{48}{section*.5}% \babel@toc {english}{}\relax \babel@toc {czech}{}\relax \contentsline {section}{\numberline {A}První příloha}{49}{appendix.A}% \contentsline {section}{\numberline {B}Druhá příloha}{49}{appendix.B}% \contentsline {section}{\numberline {C}Obsah elektronických dat}{49}{appendix.C}% \contentsline {section}{Seznam zkratek}{51}{section*.7}%