Liquid War 6 a Unique Multiplayer Wargame Documentation for Version 0.6.3902 Codename “Goliath” 6 May 2015
Total Page:16
File Type:pdf, Size:1020Kb
Liquid War 6 A unique multiplayer wargame Documentation for version 0.6.3902 codename \Goliath" 6 May 2015 by Christian Mauduit <[email protected]> Liquid War 6, a unique multiplayer wargame. Copyright (c) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 Christian Mauduit <[email protected]> Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts and no Back-Cover Texts. A copy of the license is included in the section entitled \GNU Free Documentation License". i Table of Contents 1 Introduction::::::::::::::::::::::::::::::::::::: 1 1.1 In a nutshell ::::::::::::::::::::::::::::::::::::::::::::::::::: 1 1.2 Project status :::::::::::::::::::::::::::::::::::::::::::::::::: 1 1.2.1 What works, and what does not (yet):::::::::::::::::::::: 1 1.2.2 What has changed since Liquid War 5.x? :::::::::::::::::: 2 1.2.3 Revision history ::::::::::::::::::::::::::::::::::::::::::: 2 1.2.4 Road map::::::::::::::::::::::::::::::::::::::::::::::::: 3 1.3 How you can help :::::::::::::::::::::::::::::::::::::::::::::: 3 1.3.1 Help GNU :::::::::::::::::::::::::::::::::::::::::::::::: 3 1.3.2 Todo list :::::::::::::::::::::::::::::::::::::::::::::::::: 3 2 User's manual ::::::::::::::::::::::::::::::::::: 5 2.1 Mailing lists:::::::::::::::::::::::::::::::::::::::::::::::::::: 5 2.1.1 General discussion::::::::::::::::::::::::::::::::::::::::: 5 2.1.2 Announcements ::::::::::::::::::::::::::::::::::::::::::: 5 2.1.3 Bugs :::::::::::::::::::::::::::::::::::::::::::::::::::::: 5 2.1.4 IRC channel::::::::::::::::::::::::::::::::::::::::::::::: 5 2.2 Getting the game :::::::::::::::::::::::::::::::::::::::::::::: 6 2.2.1 Download source :::::::::::::::::::::::::::::::::::::::::: 6 2.2.2 Download binaries::::::::::::::::::::::::::::::::::::::::: 6 2.2.3 GIT repository :::::::::::::::::::::::::::::::::::::::::::: 6 2.2.4 Daily snapshots ::::::::::::::::::::::::::::::::::::::::::: 6 2.2.5 Check integrity :::::::::::::::::::::::::::::::::::::::::::: 7 2.3 Installation :::::::::::::::::::::::::::::::::::::::::::::::::::: 8 2.3.1 Requirements ::::::::::::::::::::::::::::::::::::::::::::: 8 2.3.2 Optional libraries:::::::::::::::::::::::::::::::::::::::::: 9 2.3.3 Optional tools:::::::::::::::::::::::::::::::::::::::::::: 10 2.3.4 Installing requirements using RPM/DEB packages :::::::: 10 2.3.5 Compiling:::::::::::::::::::::::::::::::::::::::::::::::: 11 2.4 Extra maps ::::::::::::::::::::::::::::::::::::::::::::::::::: 12 2.4.1 The extra maps package :::::::::::::::::::::::::::::::::: 12 2.4.2 Install extra maps on GNU/Linux and POSIX systems:::: 12 2.4.3 Raw install of extra maps (all-platforms) ::::::::::::::::: 12 2.5 Troubleshooting::::::::::::::::::::::::::::::::::::::::::::::: 12 2.5.1 Compilation problems :::::::::::::::::::::::::::::::::::: 13 2.5.2 Check installation :::::::::::::::::::::::::::::::::::::::: 13 2.5.3 Problems running the game :::::::::::::::::::::::::::::: 13 2.6 Quick start ::::::::::::::::::::::::::::::::::::::::::::::::::: 14 2.6.1 Quick start::::::::::::::::::::::::::::::::::::::::::::::: 14 2.7 Strategy tips :::::::::::::::::::::::::::::::::::::::::::::::::: 14 2.8 User interface ::::::::::::::::::::::::::::::::::::::::::::::::: 14 2.8.1 A reduced set of keys::::::::::::::::::::::::::::::::::::: 14 2.8.2 Combining mouse, keyboard and joysticks :::::::::::::::: 15 ii Liquid War 6 2.8.3 Quit with F10:::::::::::::::::::::::::::::::::::::::::::: 16 2.9 Solo game::::::::::::::::::::::::::::::::::::::::::::::::::::: 16 2.9.1 Current state :::::::::::::::::::::::::::::::::::::::::::: 16 2.9.2 Team profiles::::::::::::::::::::::::::::::::::::::::::::: 16 2.9.3 Weapons ::::::::::::::::::::::::::::::::::::::::::::::::: 16 2.10 Network games :::::::::::::::::::::::::::::::::::::::::::::: 17 2.10.1 Choose your \public url" :::::::::::::::::::::::::::::::: 17 2.10.2 Starting a node ::::::::::::::::::::::::::::::::::::::::: 18 2.10.3 Connecting to a node ::::::::::::::::::::::::::::::::::: 18 2.10.4 Communities:::::::::::::::::::::::::::::::::::::::::::: 18 2.10.5 Firewall settings :::::::::::::::::::::::::::::::::::::::: 18 2.10.6 Is the game secure? ::::::::::::::::::::::::::::::::::::: 19 2.11 Graphics::::::::::::::::::::::::::::::::::::::::::::::::::::: 20 2.11.1 Standard, high and low resolution ::::::::::::::::::::::: 20 2.11.2 Display rate::::::::::::::::::::::::::::::::::::::::::::: 20 2.12 Sound & music :::::::::::::::::::::::::::::::::::::::::::::: 21 2.12.1 Current status :::::::::::::::::::::::::::::::::::::::::: 21 2.12.2 The future :::::::::::::::::::::::::::::::::::::::::::::: 21 2.13 Config file ::::::::::::::::::::::::::::::::::::::::::::::::::: 21 2.14 Logs ::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 21 2.15 Report bugs ::::::::::::::::::::::::::::::::::::::::::::::::: 22 3 Hacker's guide ::::::::::::::::::::::::::::::::: 23 3.1 Designing levels ::::::::::::::::::::::::::::::::::::::::::::::: 23 3.1.1 Why is level design so important? :::::::::::::::::::::::: 23 3.1.2 Format overview ::::::::::::::::::::::::::::::::::::::::: 23 3.1.3 Resolution (map size) :::::::::::::::::::::::::::::::::::: 23 3.1.4 Metadata :::::::::::::::::::::::::::::::::::::::::::::::: 24 3.1.5 map.png ::::::::::::::::::::::::::::::::::::::::::::::::: 24 3.1.6 layer2.png ... layer7.png :::::::::::::::::::::::::::::::::: 24 3.1.7 texture.png, texture.jpeg and texture-alpha.jpeg :::::::::: 25 3.1.8 glue.png and boost.png::::::::::::::::::::::::::::::::::: 26 3.1.9 danger.png and medicine.png ::::::::::::::::::::::::::::: 26 3.1.10 one-way-<direction>.png::::::::::::::::::::::::::::::::: 27 3.1.11 cursor.png and cursor-color.png ::::::::::::::::::::::::: 27 3.1.12 rules.xml:::::::::::::::::::::::::::::::::::::::::::::::: 27 3.1.13 hints.xml ::::::::::::::::::::::::::::::::::::::::::::::: 28 3.1.14 style.xml :::::::::::::::::::::::::::::::::::::::::::::::: 28 3.1.15 teams.xml::::::::::::::::::::::::::::::::::::::::::::::: 28 3.1.16 Resampling ::::::::::::::::::::::::::::::::::::::::::::: 29 3.1.17 Music ::::::::::::::::::::::::::::::::::::::::::::::::::: 29 3.1.18 Experience (\exp"):::::::::::::::::::::::::::::::::::::: 30 3.2 Translating ::::::::::::::::::::::::::::::::::::::::::::::::::: 31 3.2.1 Using gettext :::::::::::::::::::::::::::::::::::::::::::: 31 3.2.2 Formatted strings :::::::::::::::::::::::::::::::::::::::: 31 3.2.3 Partial translation:::::::::::::::::::::::::::::::::::::::: 31 3.3 Architecture :::::::::::::::::::::::::::::::::::::::::::::::::: 32 3.3.1 C + Guile:::::::::::::::::::::::::::::::::::::::::::::::: 32 iii 3.3.2 Threading and SMP:::::::::::::::::::::::::::::::::::::: 32 3.3.3 Internal libraries ::::::::::::::::::::::::::::::::::::::::: 33 3.4 Memory structures :::::::::::::::::::::::::::::::::::::::::::: 35 3.5 100% predictable algorithm ::::::::::::::::::::::::::::::::::: 35 3.6 Graphics backends :::::::::::::::::::::::::::::::::::::::::::: 36 3.6.1 Modularity::::::::::::::::::::::::::::::::::::::::::::::: 36 3.6.2 List of backends :::::::::::::::::::::::::::::::::::::::::: 36 3.6.3 How to write a new backend:::::::::::::::::::::::::::::: 37 3.7 Core algorithm:::::::::::::::::::::::::::::::::::::::::::::::: 38 3.7.1 Introduction ::::::::::::::::::::::::::::::::::::::::::::: 39 3.7.2 Level, game struct, game state and pilot :::::::::::::::::: 39 3.7.3 Getting informations about where fighters are :::::::::::: 40 3.8 Compilation tips :::::::::::::::::::::::::::::::::::::::::::::: 40 3.8.1 Advanced ./configure options ::::::::::::::::::::::::::::: 40 3.8.2 Debian packages ::::::::::::::::::::::::::::::::::::::::: 41 3.8.3 Red Hat packages :::::::::::::::::::::::::::::::::::::::: 42 3.8.4 Microsoft Windows msys/mingw32 port :::::::::::::::::: 42 3.8.5 Mac OS X port :::::::::::::::::::::::::::::::::::::::::: 46 3.8.6 GP2X port::::::::::::::::::::::::::::::::::::::::::::::: 48 3.9 Coding guidelines ::::::::::::::::::::::::::::::::::::::::::::: 49 3.9.1 Project goals reminder ::::::::::::::::::::::::::::::::::: 49 3.9.2 Common sense ::::::::::::::::::::::::::::::::::::::::::: 50 3.9.3 Unitary tests ::::::::::::::::::::::::::::::::::::::::::::: 50 3.9.4 Memory allocation ::::::::::::::::::::::::::::::::::::::: 50 3.9.5 Private and public interfaces ::::::::::::::::::::::::::::: 51 3.9.6 Commit policy ::::::::::::::::::::::::::::::::::::::::::: 51 3.9.7 Audit the code ::::::::::::::::::::::::::::::::::::::::::: 51 3.10 Using the console :::::::::::::::::::::::::::::::::::::::::::: 52 3.11 Advanced tweaking :::::::::::::::::::::::::::::::::::::::::: 53 3.11.1 Hacking ressources :::::::::::::::::::::::::::::::::::::: 53 3.11.2 Optimize for speed :::::::::::::::::::::::::::::::::::::: 53 3.12 Writing modules ::::::::::::::::::::::::::::::::::::::::::::: 53 3.13 Use as a library :::::::::::::::::::::::::::::::::::::::::::::: 53 3.14 Network protocol :::::::::::::::::::::::::::::::::::::::::::: 53 3.14.1 No server, no client, only nodes:::::::::::::::::::::::::: 53 3.14.2 Out of band messages ::::::::::::::::::::::::::::::::::: 54 3.14.3 Regular messages overview :::::::::::::::::::::::::::::: 55 3.14.4 Regular control messages :::::::::::::::::::::::::::::::: 56 3.14.5 Regular MISS messages ::::::::::::::::::::::::::::::::: 58 3.14.6 Regular META messages :::::::::::::::::::::::::::::::: 58 3.14.7 Regular DATA messages :::::::::::::::::::::::::::::::: 58 3.14.8 Other raw technical stuff (WIP) :::::::::::::::::::::::::