2026-04-08 11:21:35 +02:00
|
|
|
\babel@toc {czech}{}\relax
|
2026-07-20 09:45:09 +02:00
|
|
|
\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}%
|
2026-07-27 08:35:35 +02:00
|
|
|
\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}Metriky}{32}{subsection.4.5}%
|
|
|
|
|
\contentsline {subsubsection}{\numberline {4.5.1}PostgreSQL}{33}{subsubsection.4.5.1}%
|
|
|
|
|
\contentsline {subsubsection}{\numberline {4.5.2}TimescaleDB}{33}{subsubsection.4.5.2}%
|
|
|
|
|
\contentsline {subsubsection}{\numberline {4.5.3}Grafana}{33}{subsubsection.4.5.3}%
|
|
|
|
|
\contentsline {subsubsection}{\numberline {4.5.4}Orchestrace}{34}{subsubsection.4.5.4}%
|
|
|
|
|
\contentsline {subsubsection}{\numberline {4.5.5}ImGui}{34}{subsubsection.4.5.5}%
|
|
|
|
|
\contentsline {subsubsection}{\numberline {4.5.6}Tracy}{34}{subsubsection.4.5.6}%
|
|
|
|
|
\contentsline {subsubsection}{\numberline {4.5.7}Konkrétní metriky}{35}{subsubsection.4.5.7}%
|
|
|
|
|
\contentsline {subsubsection}{\numberline {4.5.8}Sbírání v reálném čase}{35}{subsubsection.4.5.8}%
|
|
|
|
|
\contentsline {subsection}{\numberline {4.6}Protokol QUICr}{35}{subsection.4.6}%
|
|
|
|
|
\contentsline {subsubsection}{\numberline {4.6.1}Rámec}{36}{subsubsection.4.6.1}%
|
|
|
|
|
\contentsline {subsubsection}{\numberline {4.6.2}Handshake}{36}{subsubsection.4.6.2}%
|
|
|
|
|
\contentsline {subsubsection}{\numberline {4.6.3}Spolehlivost}{38}{subsubsection.4.6.3}%
|
|
|
|
|
\contentsline {subsubsection}{\numberline {4.6.4}Enkodér}{38}{subsubsection.4.6.4}%
|
|
|
|
|
\contentsline {subsubsection}{\numberline {4.6.5}Testování}{39}{subsubsection.4.6.5}%
|
|
|
|
|
\contentsline {subsubsection}{\numberline {4.6.6}Měření}{39}{subsubsection.4.6.6}%
|
|
|
|
|
\contentsline {subsection}{\numberline {4.7}Optimalizace replikátoru}{41}{subsection.4.7}%
|
|
|
|
|
\contentsline {subsection}{\numberline {4.8}Optimalizace manažera zájmů}{43}{subsection.4.8}%
|
|
|
|
|
\contentsline {subsubsection}{\numberline {4.8.1}Congestion control}{44}{subsubsection.4.8.1}%
|
|
|
|
|
\contentsline {subsubsection}{\numberline {4.8.2}Bandwidth control}{44}{subsubsection.4.8.2}%
|
|
|
|
|
\contentsline {subsection}{\numberline {4.9}Sharding}{44}{subsection.4.9}%
|
|
|
|
|
\contentsline {subsection}{\numberline {4.10}Horizontální škálování}{44}{subsection.4.10}%
|
|
|
|
|
\contentsline {section}{\numberline {5}Výsledná hra}{45}{section.5}%
|
|
|
|
|
\contentsline {section}{\numberline {6}Měřění}{45}{section.6}%
|
|
|
|
|
\contentsline {subsection}{\numberline {6.1}Závěry}{45}{subsection.6.1}%
|
2026-07-20 09:45:09 +02:00
|
|
|
\contentsline {section}{Z\'av\v er}{47}{section*.3}%
|
2026-04-08 11:21:35 +02:00
|
|
|
\babel@toc {czech}{}\relax
|
|
|
|
|
\babel@toc {czech}{}\relax
|
2026-07-20 09:45:09 +02:00
|
|
|
\contentsline {section}{Conclusions}{48}{section*.5}%
|
2026-04-08 11:21:35 +02:00
|
|
|
\babel@toc {english}{}\relax
|
|
|
|
|
\babel@toc {czech}{}\relax
|
2026-07-20 09:45:09 +02:00
|
|
|
\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}%
|