\select@language {english} \contentsline {chapter}{Abstract}{i} \contentsline {chapter}{Preface}{1} \contentsline {chapter}{\numberline {1}Introduction}{2} \contentsline {section}{\numberline {1.1}About the real-time strategy genre}{2} \contentsline {section}{\numberline {1.2}Why JWars?}{3} \contentsline {subsection}{\numberline {1.2.1}Flaws in contemporary real-time games}{3} \contentsline {subsection}{\numberline {1.2.2}Military hierarchy}{3} \contentsline {section}{\numberline {1.3}Report overview}{3} \contentsline {chapter}{\numberline {2}Features of JWars}{4} \contentsline {section}{\numberline {2.1}Game dynamics}{4} \contentsline {section}{\numberline {2.2}Technical features}{4} \contentsline {chapter}{\numberline {3}Overview}{6} \contentsline {section}{\numberline {3.1}Development plan}{6} \contentsline {section}{\numberline {3.2}Modular overview}{6} \contentsline {chapter}{\numberline {4}Event handling}{7} \contentsline {section}{\numberline {4.1}Types of events}{7} \contentsline {section}{\numberline {4.2}Performance considerations}{8} \contentsline {section}{\numberline {4.3}Queueing system}{8} \contentsline {chapter}{\numberline {5}Networking}{9} \contentsline {section}{\numberline {5.1}Choosing a network model}{9} \contentsline {section}{\numberline {5.2}Synchronization}{10} \contentsline {subsection}{\numberline {5.2.1}Interactivity: player instructions}{10} \contentsline {subsection}{\numberline {5.2.2}Synchronization instructions}{11} \contentsline {subsection}{\numberline {5.2.3}Conclusion}{11} \contentsline {section}{\numberline {5.3}The networking API}{12} \contentsline {chapter}{\numberline {6}World of JWars}{13} \contentsline {section}{\numberline {6.1}Coordinate systems}{13} \contentsline {subsection}{\numberline {6.1.1}Floating point versus integers}{13} \contentsline {subsection}{\numberline {6.1.2}List of coordinate systems}{14} \contentsline {section}{\numberline {6.2}Data management}{14} \contentsline {section}{\numberline {6.3}Terrain}{14} \contentsline {chapter}{\numberline {7}Collision detection}{15} \contentsline {section}{\numberline {7.1}Basics of collision detection}{15} \contentsline {subsection}{\numberline {7.1.1}Divide and conquer approach}{15} \contentsline {subsection}{\numberline {7.1.2}Tile registration strategy}{16} \contentsline {subsection}{\numberline {7.1.3}Shapes and sizes of colliding entities}{17} \contentsline {section}{\numberline {7.2}Design of the collision detector}{17} \contentsline {subsection}{\numberline {7.2.1}The checking routine}{17} \contentsline {subsection}{\numberline {7.2.2}The collision grid}{18} \contentsline {subsection}{\numberline {7.2.3}Further features}{19} \contentsline {section}{\numberline {7.3}Efficiency and optimization}{19} \contentsline {section}{\numberline {7.4}Conclusion}{20} \contentsline {chapter}{\numberline {8}Pathfinding}{21} \contentsline {section}{\numberline {8.1}Vision}{25} \contentsline {chapter}{\numberline {9}Unit organization}{26} \contentsline {chapter}{\numberline {10}Unit AI}{27} \contentsline {section}{\numberline {10.1}Hierarchical structure}{27} \contentsline {section}{\numberline {10.2}Design considerations}{28} \contentsline {section}{\numberline {10.3}Overview of AI structure}{29} \contentsline {chapter}{\numberline {11}Combat}{30} \contentsline {section}{\numberline {11.1}Analysis of combat dynamics}{30} \contentsline {section}{\numberline {11.2}Weapons, armour and damage}{30} \contentsline {section}{\numberline {11.3}Spotting and targetting}{30} \contentsline {chapter}{\numberline {12}Control}{31} \contentsline {chapter}{\numberline {13}Graphics}{32} \contentsline {chapter}{\numberline {14}Conclusion}{33} \contentsline {section}{References}{34}