1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220
|
@node Playing Xconq, , Xconq, Top
@chapter Playing Xconq
This chapter is about how to play @i{Xconq}. Although @i{Xconq}
supports a wide variety of games, they all have much in common, and it
is these common features that will be described here. This chapter,
along with any documentation for the game you're playing, should provide
all the information you need to play and enjoy @i{Xconq}.
The term @dfn{interface} refers to the particular graphical user
interface in use. Examples include X11, curses, and Macintosh.
Interfaces can vary radically from each other, since each is designed to
be best suited for its environment. In practice though, interfaces all
share the same commands, so that you don't have to learn a whole new set
when switching computers, and many of the displays are similar.
When reading this chapter, you should be aware that the term @dfn{game}
is more precisely @dfn{game design}, since it is the set of rules and
definitions of the game you want to play. Since @i{Xconq} allows for
many different kinds of game designs, much of the information in this
chapter will be irrelevant to a particular game. This will be indicated
in the text by phrases like ``some games'' or by saying that a game
``may'' implement some concept or behavior. You should learn what the
game you're playing actually does in these cases. The names of the
variables or tables to look at will often be mentioned in @code{computer
type}.
@menu
* Setting Up A Game::
* Starting Play::
* Getting Help::
* Worlds and Areas::
* Units::
* Materials::
* Sides::
* Moving the Units::
* Automation of Units and Sides::
* Modes::
* Standard Keyboard Commands::
* Unit Info::
* Backdrop Weather::
* Backdrop Economy::
* Backdrop Random Events::
* Scoring::
* Playing in Realtime::
* Advanced Play::
* Playing Hints::
* Problems and Troubleshooting::
* The Game Library::
@end menu
@node Setting Up A Game, Starting Play, Playing Xconq, Playing Xconq
@section Setting Up A Game
To get started with @i{Xconq},
you have to select which game you want to play.
The possibilities may be
presented to you, or you may have to look in some sort of library
to see what's available and then supply that name on a command line.
If you don't do anything, then you will get a default game.
Some games require no additional setup; once loaded, you're ready to go.
Others will require additional decisions, such as the size and shape of
the playing area, whether exploration will be necessary, or whether the
game is realtime. These choices are @dfn{variants} of the game. The
exact set of variants is part of the game design, and the interface will
(usually) tell you about them.
In addition, most games also give you a choice of which player is to
play which side in a game, as well how many players can join in. There
are two kinds of players: humans, who have displays, and @dfn{artificial
intelligence}s or @dfn{AI}s for short, which are run by the computer.
Some versions of @i{Xconq} may include more than one kind of AI; each
type has a distinct name. The AI named @code{mplayer} is always
available.
An example might be a simulation of Europe @i{ca} 1900, named
@code{"la-belle-epoque"}, in which the sides might be ``England'',
``France'', ``Germany'', and ``Austria-Hungary'', and the players might
be Joe on a Sun-4 named @code{sun-lamp}, Natalie on an HP machine named
@code{jaguar}, and two of the @code{mplayer} AIs. You can set Joe to
play England, Natalie to play France, and the two AIs to play Germany
and Austria-Hungary by using this command line:
@example
xconq -g la-belle-epoque -r Joe@@sun-lamp:0.0 Natalie@@jaguar:0.0 -e 2
@end example
Note that this is X11, so the @code{:0.0} is the usual server and
screen identification, while @code{-r} says not to open a display
on the machine that is actually running the program.
Some game designs provide a way to even things up if the players are of
vastly differing abilities. In these designs, each player has an
@dfn{advantage} that affects how much he or she gets to start with.
Weaker players should get a higher advantage, so for instance a game
with two players, of advantages 1 and 4, might give the advantage=4
player 8 cities while the advantage=1 player gets only 2. This affects
setup only; during the game all players are equal. The variability of
advantage also depends on the game; some may allows differences of 10 to
1 or more, while others, especially historically accurate scenarios,
will have a fixed advantage that the designer has set for each side.
Once a trial player setup has been made, @i{Xconq} runs ``synthesis
methods''. The game design specifies the methods to use, which generate
anything that was not explicitly spelled out; such as the initial
location of countries, terrain features, and so forth. As a player, you
don't have to concern yourself much about synthesis methods, but you may
get warnings or errors if a synthesis method is having difficulties. A
common case is where you ask for many players to be set up in a small
world, and the set of constraints is too ``tight'' for an initial setup;
you will get a warning that some players were given poor positions.
Synthesis methods may also take a long time to run; for large worlds and
lots of players, be prepared to wait.
When initialization and setup succeeds, @i{Xconq} will try to open up
displays for every player that wanted one. Exactly how this happens
depends on the interface and networking capabilities of the version of
@i{Xconq} you're using. See the system-specific sections at the end of
this chapter for more detail. Once all the players are in, @i{Xconq}
will start the game for real.
You may also get a warning that ``images were not found''. This happens
when the game design specifies the use of particular icons or patterns
(collectively call @dfn{images} here), but they cannot be found anywhere
by @i{Xconq}. This is not fatal, because @i{Xconq} will use generic
default images instead, but the display may be hard to understand.
There are several possible reasons for images not to be found: 1) the
game designer might have specified the use of particular images, but
never defined them, 2) the library of images was not updated to include
the needed images, or 3) the image library is not located where Xconq is
looking.
@ref{Problems and Troubleshooting}
describes more of the errors and warnings that you may encounter,
and what to do about them.
@node Starting Play, Getting Help, Setting Up A Game, Playing Xconq
@section Starting Play
What you'll first see depends entirely on the interface you're using.
Typically there will be at least a map and a list of sides. Help is
available by typing `@code{?}' or clicking on a button that says
``Help''. You can also just try to find your way around by
experimentation. (This is best done in a game by yourself, rather than
in one with a lot of other people.)
The game proceeds as a sequence of @dfn{turns}. During each turn, you
and the other players get to move your @dfn{units}, which can be
anything from cities to submarines to insects, depending on the game.
In addition, there may be @dfn{backdrop activities}, such as changing
seasons and weather, that go on all by themselves. These typically
happen at the beginning or end of a turn, not while players are moving
their units.
Your exact goal depends on the game's @dfn{scorekeepers}. Most games
have at least one, some have several, and some have none. There are
many kinds of scorekeepers, so be sure you know and understand what they
are before getting too far into a game! If there are no scorekeepers at
all, you can do whatever you like; any AIs playing in such a game will
behave quite randomly.
A game may last anywhere from a few turns to many hundreds. Again, this
may be limited by the game design, or perhaps by the nature of the game.
For instance, a game of oil empires might be forced to end when the
world's oil supplies are exhausted...
@node Getting Help, Worlds and Areas, Starting Play, Playing Xconq
@section Getting Help
@i{Xconq} includes extensive online help. The keyboard command
`@code{?}' is available in all interfaces; some may also include a
button or menu item that leads you to the help system. Help information
consists of a list of @dfn{help nodes}, each of which describes an
aspect of the game or of @i{Xconq} in general. There is usually a table
of topics that you can select from, or else you can go forwards and
backwards through the nodes.
@node Worlds and Areas, Units, Getting Help, Playing Xconq
@section Worlds and Areas
@quotation
Gallia est omnis divisa in partes tres [All Gaul is divided into three
parts] -- JULIUS CAESAR
@end quotation
The @i{Xconq} ``world'' is always a sphere. However, you only play on a
piece of its surface, which is called an @dfn{area}. Currently, there
can only be one world and one area in a game; this may change in a
future version of @i{Xconq}.
An area is divided into a grid pattern of @dfn{cells}. Although squares
with four or eight neighbors could be used (and were, in the very first
version of @i{Xconq}), currently only a hexagon grid is available. Each
cell is therefore adjacent to six others, in the directions NW, NE, W,
E, SW, and SE. Areas have a @dfn{width} and @dfn{height} that are the
number of cells across and up/down. Although you can ask for areas down
to 10x10 or less, or up to 1000x1000 or even more, the ideal default is
typically around 60x30. Larger areas consume vast quantities of memory,
plus they're slow and unwieldy to play on; don't ask for them unless you
have a lot of time and patience!
If the area's width matches the circumference of the world, it is a
cylinder in shape. The cylinder can be circumnavigated in an east-west
direction. This is what an 8x6 cylinder area might look like (periods
are sea, @code{+} and @code{^} are land, @code{#} indicates edge cells):
@example
# # # # # # # #
. . + + . . . .
. . . + ^ . . .
. . . . . . . .
. . . . ^ . . .
# # # # # # # #
@end example
Areas whose width is less than the world's circumference have a
hexagonal shape. This is an 8x7 hexagon:
@example
# # # # #
# . + + . #
# . . + ^ . #
# . . + ^ . . #
# . . . . . #
# . . ^ . #
# # # # #
@end example
The top and bottom rows of the cylinder shape, and all the sides of the
hexagon shape, are called @dfn{edge} cells. Your units may not enter
them, unless leaving the area entirely, which some games allow.
The types of terrain you'll find in the world depends on the game
design; typically there will be sea, land, mountains, swamp, and so
forth, but more exotic games have been known to feature junkheaps, lava,
and black holes as ``terrain''.
Terrain can cover an entire cell, be linear features passing through or
between cells, or be a coating overlaying other terrain. @dfn{Cell
terrain} covers the entire cell uniformly, right out to its edges.
A @dfn{border} is the boundary between two adjacent cells; it has a
distinct terrain type, such as ``river'' or ``beach''. A
@dfn{connection} is a narrow ribbon of terrain that reaches from the
middle of one cell to the middle of an adjacent cell. Like borders,
connections are distinct types, for instance ``road'', ``railway'', or
``canal''. Connections take precedence over borders and underlying cell
terrain; in other words, if cell or border terrain is impassable, but
there is a passable connection type, then the connection allows passage.
Thus a connection can be usable as a bridge. You may also find more
than one type of connection or border, between two cells, such as both a
road and a rail line. They will be assumed to be side-by-side, so that
units can use any connection that they like, and will be affected by all
borders when crossing them.
A @dfn{coating} is like snow; it is a type that co-exists with cell
terrain. Coatings can change from turn to turn, varying in depth--and
resultant effect on units.
Note that any single terrain type can only play one of these roles.
This means you will never have river terrain that is both border and
connection, nor will snow be both a coating and a cell type.
In some games, each cell has an @dfn{elevation}, which is basically
elevation above sea level, but could be any range of values, as set by
the game design. The game design also defines the effect of elevation
on movement, visibility, and weather.
A world can have @dfn{people} living in some or all of its cells.
People belonging to a side report everything they see in their cell to
their side. Some types of units will cause the people's side to change
to match their own.
A world can have named @dfn{geographical features} or just
@dfn{features}, such as a bay, mountain, desert, or valley.
Geographical features never have any direct effect on your game, but
some interfaces may label features when drawing a map, or use them to
help describe locations verbally, in phrases like @code{"1 hex NW of
Broken Hill"}.
The coordinate system is ``oblique'', with the X-axis in the usual
horizontal, and the Y-axis vertical, but tilted to the right at a
60-degree angle.
@example
Y
\ /
\/
---------X
/ \
/ \
@end example
The additional left-leaning axis is the x = - y line.
@node Units, Materials, Worlds and Areas, Playing Xconq
@section Units
@dfn{Units} can be almost anything: adventurers, armies, balloons,
bicycles, dragons, triremes, spiders, battleships, bridges,
headquarters, cities. Units move around, manufacture things, fight with
other units, and possibly die. They are the playing pieces of
@i{Xconq}.
Units have a location, either out in the open terrain of a cell, or
inside some other unit. In games that define connections, a unit may be
on the connection rather than on the predominant terrain of the cell.
(Think of a truck on a bridge.) There may be more than one unit in the
open in a given cell, up to a game-defined limit. The collection of
units sharing a cell is called a @dfn{stack}. A unit inside another
unit will be called an @dfn{occupant} in a @dfn{transport}, even if the
``transport'' is a type that can never move.
A unit's location may also include an @dfn{altitude}, expressed as its
distance above the surface of the cell it is in. Altitude affects
combat and viewing abilities.
A unit either belongs to a side, or else it is considered
@dfn{independent}. Independent units do not do very much. In more
complex games, the unit's side merely represents the current ownership,
and the unit may have a range of feelings towards each side, including
its current one. In those games, it is possible for one of your units
to be a traitor!
Units can have a name, full name, a title, and a number, as appropriate
to the situation. The name is an ordinary name like ``Joe Schmoe'' or
``Cincinnati'', while the full name might be something like ``Joseph
P. Schmoe''. The title is a form of address such as ``Lord''. The unit
number, if used, is an ordinal that is maintained for each side and each
unit type, so you can have both a ``1st national bank'' and a ``45th
infantry division'' on your side. Names and numbers are always
optional, and can usually be changed at any time during the game.
Every unit starts out with a number of @dfn{hit points} or @dfn{hp}
representing how much damage it can sustain before dying. Certain types
of units, such as armies and fleet of ships, have multiple @dfn{parts},
which means that damage to them reduces their effective size.
Multi-part units can merge with and detach from each other. Damaged
units may recover their hp on their own, or else be repairable by
explicit action, either by themselves or by another units (ships in port
for example).
In addition to occupants, a unit can also carry @dfn{supplies} (food,
fuel, treasure, etc), which are type of ``materials'' (see the next
section). Supplies are used up by movement, combat, and by just
existing, and are gotten either by producing them or by transferring
them from some other unit. Some games start units out with lots of
supplies, while in others you have to acquire them on your own.
What a unit can do at any one time depends on the @dfn{action points} or
@dfn{acp} available to it. Each sort of action - movement,
construction, repair, etc - uses up at least one action point, and
possibly more. A unit with an acp of 0 can never do anything on its
own, although other units can still manipulate it. Also, not every type
of unit can do every type of action; this is also defined by the game
design. @ref{Types of Actions} lists all the types of actions that are
possible in @i{Xconq}.
Units that engage in combat may accumulate @dfn{combat experience} or
@dfn{cxp} for short. Combat experience will increase with each fight,
irrespective of outcome, up to a game-defined maximum. An experienced
unit will do better in combat, being both more effective in inflicting
damage on opponents and at avoiding damage to itself.
You can lose a unit in many different ways: in combat, by running out of
essential supplies, by being captured, by revolt, by garrisoning a
captured unit, by leaving the world, or in accidents. If a unit dies
because of excessive damage (i.e. hp = 0), then in some games it will
change into its @dfn{wrecked type}. Wrecks are just normal units. For
instance, a city might be ``wrecked'' and become a town. Occupants of
dead or wrecked units will attempt to leave. If they can't, then they
will share the fate of their transport. If an occupant can occupy a
wrecked transport with no problem, then nothing will happen to it.
@node Materials, Sides, Units, Playing Xconq
@section Materials
In @i{Xconq}, @dfn{materials} are basically bulk inanimate stuffs, like
food or fuel. They are kept in units or in cells, up to limits defined
by the game. Materials may be provided as part of the initial game
setup, or else produced by units and cells. They are consumed by
construction, movement, or merely in order to survive. You can also
move materials around from unit to unit. Some games define laws of
supply and demand, which will move materials for you, though not
necessarily in the directions you would prefer!
In a few games, possession of a material type may figure into your score
(gold in a dungeon-type game, for instance). In other games, there
are no types of materials at all. Sometimes materials exist only to
constrain units' actions, such as fuel to prevent airplanes from
straying too far from airports, and so you may not need to do much with
the materials yourself. The player notes and help info for the particular game
should explain this if so.
@node Sides, Moving the Units, Materials, Playing Xconq
@section Sides
Each player in @i{Xconq} runs a @dfn{side}. The concept of ``side'' is
somewhat abstract in @i{Xconq}; units in a game belong to sides, but the
sides themselves are not attached to any particular unit. Side often
represent countries, but not invariably; they may be factions,
governorships, or alliances, or just a convenient division of the game's
units.
It is important to be clear about sides and players. A side is a part
of the simulated world, while a player is the actual real-world person
or program that is playing the side. You yourself are always the
player, but in one game you may play the German side, and in another the
Klingon side. During a game, there will always be a player for each
side, and vice versa. The distinction is most important during setup
and restoration of saved games, since you can choose which players go
with which sides.
Each side can have a name and associated parts of speech, such as a noun
for individuals on the side and an adjective to describe anything
belonging to the side.
@c [example?]
A side may also have an @dfn{emblem} and one or more colors for displays
to use. Some game designs preset all this, while others let you
personalize as desired.
@menu
* Interaction Between Sides::
* Using Agreements::
* Tech Levels::
* Side Classes::
* Self-Units::
@end menu
@node Interaction Between Sides, Using Agreements, , Sides
@subsection Interaction Between Sides
In games with two players, your interaction is usually pretty simple,
i.e. bash on each other. In games with many players, some human, some
mechanical, it is possible to have a variety of relationships, ranging
from complete trust to complete hostility.
A side can @dfn{trust} another side. This is
like a close ally - you can enter each other's transports, you share
view data, and so forth. Trust is a two-way relationship; both you and
the other side each have to declare you want to trust the other. You
can do this at any time. You can also, unilaterally, withdraw your
trust in another side at any time. There are no preconditions or caveats
for trust.
You can make your side be controlled by another side.
This is basically a surrender that lets you stay in the game, because
the controlling side can manipulate any of your units as if they were
its own. The controlling side also has the option of allowing or
forbidding you to move your own units. The relationship is strictly
one-sided, and only the controlling side can release the controlled
side. (Note that this is a way to have several people play on a side;
have one player run the controlling side and be helped by several other
players running controlled sides, usually with agreed-upon
responsibilities.)
@node Using Agreements, Tech Levels, Interaction Between Sides, Sides
@subsection Using Agreements
@quotation
Diplomacy is to do and say //
The nastiest thing in the nicest way.
-- ISAAC GOLDBERG (1938)
@end quotation
If you don't want to declare a special relationship with another side,
but still want to make some sort of adhoc arrangement, you can create an
@dfn{agreement}. An agreement is a sort of generalized treaty; it
consists of a number of @dfn{terms} agreed to by a number of
@dfn{signers}, which are sides. Agreements may be public or secret, and
you can declare them to be enforced by @i{Xconq} if the terms are in a
form it understands. An agreement that just says ``help each other out''
cannot be evaluated by the computer!
[Agreements are not completely implemented.]
@c To make an agreement, you tell the interface to create one, fill in its
@c terms, possibly give it a name, make up a list of proposed signers,
@c then either propose it directly or else send to @dfn{drafters}, which
@c are the side you want to help with the composition of the agreement.
@c The draft also includes the list of sides that will know about the
@c agreement.
@c
@c When the agreement is officially proposed, it will be displayed to
@c all sides that are to sign, and represented as coming from the
@c sides listed as @dfn{proposers}.
@c @i{Xconq} will then ask each proposed signer to sign;
@c if all do so, then the agreement goes into effect immediately.
@c All sides that are to know about the agreement
@c will be informed of its terms.
@c
@c Some interfaces may allow players to copy and modify a proposed and
@c circulate it along with the original. The proposing side may also
@c withdraw a proposal, but cannot modify it without having it signed again
@c by everybody involved.
@c
@c Once in effect, an agreement cannot be modified, and it cannot be
@c removed unless it includes a term that provides for this.
@c
@c An agreement can have any number of terms.
@c Each term can have one of several forms:
@c
@c A text string. This is not interpreted in any way
@c and could be a comment, preamble, or whatever.
@c
@c A true/false expression. This must always be true for the agreement
@c to be valid.
@c
@c A statement of an action. This action will be performed at the instant
@c that the agreement goes into effect.
@c
@c An if-then statement. If the condition is true
@c while the agreement is in effect, then the action will be performed.
@c
@c [need some examples]
@c
@c Note that the drafter/proposer/signer distinction has many uses;
@c for instance, you can draft an agreement to be proposed by a coalition
@c of sides, but the proposed signers are neutral sides that you want
@c to keep quiet.
@node Tech Levels, Side Classes, Using Agreements, Sides
@subsection Tech Levels
In some game designs, technology and research are important. These
games give each side a set of @dfn{tech levels} (or just @dfn{tech} for
short), one for each type of unit. The tech level represents the
technological knowledge needed to see, operate and build a type of unit.
Tech levels never decrease, at least in the @i{Xconq} universe, and they
can be increased by research and espionage.
There are several tech thresholds for a unit. First there is
@code{tech-to-see}, below which you will not even be aware of the
existence of a unit (consider barbarians unable to see spy satellites
passing overhead). Then there is @code{tech-to-use}, which you must
have in order to make the unit do any actions. The
@code{tech-to-understand} and @code{tech-on-acquisition} are points at
which your side can increase its tech level just by owning a unit, and
finally the @code{tech-to-build} is what you must have to create new
units of the given type.
@node Side Classes, Self-Units, Tech Levels, Sides
@subsection Side Classes
In some games, several sides may be very similar to each other, while
being very different from other sides in the same game. For instance,
the game might have several sides that are different tribes of
barbarians, but they are more like each other than, say, Romans. These
similar sides can be given the same @dfn{side class}. Units may then be
restricted to be usable only by the sides in a particular class. (Note
that this is different from tech level, which allows units to be used by
any side that has managed to acquire a sufficient tech level.)
@node Self-Units, , Side Classes, Sides
@subsection Self-Units
A @dfn{self-unit} is one that represents your whole side in some way.
For instance, in a dungeon exploration game, your ``side'' might consist
of an adventurer (you), your possessions, your followers, and perhaps
more. In such a case, if the adventurer dies or is captured, then the
game should be over, at least for you.
Usually the self-unit will be set up by the game design, and all you
have to do is to be aware that losing the self-unit permanently ends
your participation in the game. Some games might have ``self-unit
resurrection'' (@code{self-resurrects}) which just means that if another
type of unit is available when the current self-unit dies, then that
another unit becomes your new self-unit. For instance, admirals would
leave their sinking flagship and board another ship, thus ``transferring
the flag''. (Admirals presumably being more valuable than captains, who
are supposed go down with their ships!) Some games may also allow you
to change self-units manually (@code{self-changeable}). In any, the
game will define which types may be self-units (@code{can-be-self}).
@node Moving the Units, Automation of Units and Sides, Sides, Playing Xconq
@section Moving the Units
Once the first turn begins, you can begin looking at the display and
moving your units. Depending on the game design and startup options,
you may or may not be moving simultaneously with the other players. If
not, then the players move one at a time, in the order that their sides
are listed in any display. Usually, you can choose freely which units
to move next; you can move one a bit, switch to another, move it, then
come back to the first one later, and so forth. Some game designs may
require that you move units in a specific order; perhaps all your
aircraft must finish all their movement before any ships can move.
@menu
* Turn Setup::
* Types of Actions::
* Movement::
* Combat::
* Research::
* Construction::
* Repairing Units::
* Disbanding Units::
* Transferring Unit Parts::
* Changing Unit Side::
* Changing Unit Type::
* Producing Materials::
* Transferring Materials::
* Changing the Terrain::
@end menu
@node Turn Setup, Types of Actions, , Moving the Units
@subsection Turn Setup
First, @i{Xconq} computes the number of action points available to each
unit. Each unit gets an increment of action points equal to its
@code{acp-per-turn}.
The range of action points for a unit is normally 0 up to the value of
@code{acp-per-turn}, but the parameters @code{acp-min} and
@code{acp-max} may allow for an extended range. You use this range by
allowing a unit to accumulate extra action points by doing nothing for
several turns, or to recover from an activity that used many action
points all at once. Think of this as a sort of temporary action
``debt''. Units in debt at the beginning of a turn cannot act during
that turn, and will continue to be inactive until they start a turn with
an acp of 1 or more.
@node Types of Actions, Movement, Turn Setup, Moving the Units
@subsection Types of Actions
Actions are the most basic kinds of things your units can do. During
play, the interface will usually give you capabilities that are easy to
use, such as the ability to point at a destination and have the unit
figure out which path to take to get there, but all such input
eventually breaks down into sequences of actions. Also, the rules of a
game design are expressed in terms of allowed actions, their costs, and
their consequences. You will therefore find it useful to understand all
the types of actions available.
Each type of action may have one or more ``arguments'' associated
with it. These are mentioned below as ``given'' values.
Movement:
@itemize @bullet
@item
@i{Move to} a given location.
The unit being moved may be in a
transport or out in the open, the destination is any location in the
open (this will usually, but not always, be an adjacent cell), and may
be at any altitude allowed for the unit. (@code{move-to})
@item
@i{Enter} a given transport unit.
The transport need not be on the same
side as the entering unit.
(@code{enter})
@end itemize
Combat:
@itemize @bullet
@item
@i{Attack} a given unit.
A successful attack causes damage and destruction
to the unit being attacked.
(@code{attack})
@item
@i{Overrun} a given location.
The overrunning unit attempts to
occupy the destination, capturing, ejecting, or eliminating any
unfriendly unit present.
(@code{overrun})
@item
@i{Fire at} a given unit,
either using a given material as ammunition, or using any available
material.
(@code{fire-at})
@item
@i{Fire into} a given location,
either using a given material as ammunition, or using any available
material.
(@code{fire-into})
@item
Attempt to @i{capture} a given unit. If the attempt is successful,
the unit changes side to match that of the capturing unit.
Occupants will either escape, die, or be captured also.
(@code{capture})
@item
@i{Detonate} at a given location.
Detonation may damage any or all units in the vicinity
of the detonation, and it may change terrain types as well.
(@code{detonate})
@end itemize
Construction:
@itemize @bullet
@item
@i{Research} a given unit type.
This increases the tech level for the type being researched.
(@code{research})
@item
@i{Tool up} to build a given unit type.
(@code{toolup})
@item
@i{Create} a unit of the given type @i{in} a given unit.
The unit will usually be incomplete.
(@code{create-in})
@item
@i{Create} a unit of the given type @i{at} a given location.
The unit will usually be incomplete.
(@code{create-at})
@item
@i{Build} a given unit towards completion.
(@code{build})
@item
@i{Repair} a given unit, restoring lost hp.
(@code{repair})
@end itemize
Unit Manipulation Group:
@itemize @bullet
@item
@i{Disband} a given unit, causing it to disappear.
(@code{disband})
@item
@i{Transfer part} of a unit, either to another given unit,
or to a new unit created by this action.
(@code{transfer-part})
@item
@i{Change side} of a given unit to a given side.
(@code{change-side})
@item
@i{Change type} of a given unit to a given type.
(@code{change-type})
@end itemize
Material Manipulation Group:
@itemize @bullet
@item
@i{Produce} a given quantity of a given material type.
(@code{produce})
@item
@i{Transfer} a quantity of a given material type to a given unit.
(@code{transfer})
@end itemize
Terrain Manipulation Group:
@itemize @bullet
@item
@i{Add terrain} of a given type to a given location.
(@code{add-terrain})
@item
@i{Remove terrain} of a given type from a given location.
(@code{remove-terrain})
@item
@i{Alter terrain} to a given type at a given location.
(@code{alter-terrain})
@end itemize
Normally, you as the player and the side simply tell units to perform
these actions themselves. However, some games will allow the unit to
cause the action to done as if another unit were doing the action. For
instance, a transport can pick up or drop off a non-moving unit.
Not all interfaces can be guaranteed to allow the most general forms of
all these actions; you must consult the interface's documentation to
find out which of these actions is available.
@node Movement, Combat, Types of Actions, Moving the Units
@subsection Movement
Movement into a cell is easy to request--interfaces let you do this with
a keystroke or mouse click--but each game design will have many rules
constraining possible moves, depending both on the unit and the terrain
it is moving over. Certain kinds of terrain cost extra time to enter,
leave, or cross. The destination must usually be adjacent to the unit's
current location, and may be at any altitude.
The other kind of movement action is to enter/leave a transport. The
only argument is the unit to enter, but again the constraints are
complicated. The transport must have sufficient space, both the
entering unit and the transport must have sufficient mp and acp to
complete the move, and the entering unit must be able to cross the
intervening terrain. The transport may be able to @dfn{ferry} the
would-be occupant over any barriers; possibilities include no ferrying,
ferrying only over the transport's terrain, ferrying over any borders,
and ferrying over all terrain between the would-be occupant and the
transport.
Although as with other actions, you use up action points to move, the
cost of movement is based on @dfn{movement points} or @dfn{mp}. A
unit's @dfn{speed} determines the relationship between acp and mp; most
of unit have a speed of 1.00, so for them acp and mp are the same.
However, a unit with a speed of 4.50 and 2 acp will be able to do moves
costing up to 4.50 * 2 = 9 mp.
In some games, you may be able to make one of your units leave the world
entirely. Sometimes this will seem like a good idea, perhaps to keep a
trapped unit from falling into enemy hands, or because you win the game
by leaving through a designated place. To do this, you just direct your
unit (which must already be at the edge of the world) to move into one
of the cells along the edge. If the departure is allowed, then the unit
will simply vanish and be out of the game permanently.
In other games, you may be able to do a @dfn{border slide}. This is
where a unit can jump to a non-adjacent cell if the two cells have a
border whose endpoints touch the starting and ending cell. This is
typically allowed in games so that ships can go through narrow straits
without having to be ``between cells'' at any time.
@node Combat, Research, Movement, Moving the Units
@subsection Combat
@quotation
War is a matter of vital importance to the State; the province of life
or death; the road to survival or ruin. It is mandatory that it be
thoroughly studied. -- SUN TZU (ca 400 BC)
@end quotation
There are two basic kinds of combat, each with two versions. A unit can
either attack or overrun, meaning that it comes to grips with the enemy
in some way, or it can fire, meaning that it keeps its position and
throws rocks or whatever at a target.
@dfn{Attack} is directed at a particular unit, while @dfn{overrun} is a
more complex action where the unit attempts to clear enough units from a
given location so that it can move in.
A unit wishing to attack picks a position or unit to attack, @i{Xconq}
computes the defender's response, then the outcome is computed.
(In future versions of @i{Xconq}, units may become locked in a
``battle'' and unable to do anything else until the battle is over or
the unit has disengaged somehow.)
@dfn{Firing} can happen at long ranges, up to the @code{range} of a
unit. It may or may not involve using a specific material as
ammunition; if the game gives you a choice, you will have to choose
which, or else all possible types will be used. You can @dfn{fire at} a
specific unit if you can see it, otherwise you will have to @dfn{fire
into} a cell; perhaps without knowing whether or not you're actually
hitting anything in it. Some units may also have a @code{range-min} and
cannot fire at anything that is closer than that range. (ICBMs and some
kinds of artillery are limited in this way.)
Some units are capable of capturing other units, with a probability
depending on the types of both units involved, and whether the unit
being captured is independent or belongs to a side
(@code{capture-chance} and @code{independent-capture-chance}). If the
capture attempt is successful, the capturer will move into the cell if
possible, either as occupant or transport. In some games, the capturer
may be partially or even completely disbanded, to serve as the garrison.
Capture may also occur as a side effect of a normal attack or overrun.
Detonation is a special kind of ``combat'' available to some units. The
action requires a location, either the unit's own position or a nearby
cell. Upon detonation, the detonating unit may lose some hp and even
die (changing to its wrecked type, if defined, or else vanishing). At
the same time, it makes one hit on any units within its radius of
effect. Detonation may also be triggered automatically, such as by
damage to the unit or even by another unit appearing nearby.
@node Research, Construction, Combat, Moving the Units
@subsection Research
@quotation
Knowledge is power. -- FRANCIS BACON (1597)
@end quotation
@dfn{Research} increases a side's tech for the unit type being
researched. Although you can only research a specific type of unit,
some game designs allow for a crossover effect, where increases in the
tech level for one type also increases the level in others.
You can have more than one researcher researching the same type, and
thereby speed up your progress, but some games put a ceiling
(@code{tech-per-turn}) on how much progress you can make in one turn.
@node Construction, Repairing Units, Research, Moving the Units
@subsection Construction
@quotation
We must be the great arsenal of democracy.
-- FRANKLIN ROOSEVELT (1940)
@end quotation
@dfn{Tooling up} prepares a unit to create or construct the desired
type. As with research, game designs may allow a crossover effect for
tooling. Tooling may also decline gradually over time; this is called
@dfn{tooling attrition}. Many games do not require tooling up.
Actual construction of a unit happens in two steps; creation and
building towards completion. Most interfaces will also schedule
research and toolup actions if a unit is told to build something that
needs tech or tooling first.
@dfn{Creation} is the actual step of bringing a new unit into existence.
If the new unit is @i{complete}, then it can be used immediately. If
not (which is usually the case), then the incomplete unit will exist and
belong to your side, but be unable to do anything at all. Incomplete
transports cannot have any occupants, unless the occupants are types
capable of helping complete the transport. Incomplete units always have
1 hp, so they're vulnerable to attack.
@dfn{Completion} is achieved by doing build actions on the unit.
Multiple units can all work on completing the same unit, but they must
be sufficiently close, within a range defined by the game (usually the
same or an adjacent cell). In some games, there is a level of
completion past which the unit will start working on itself
automatically, and eventually become complete without any further
action.
It is @i{usually} the case that the same unit will be able to both
create and complete a unit, but if not, you will have to pay special
attention to your construction plan, since an incomplete unit cannot act
in any way. You would have to either transport the incomplete unit to a
type that can complete it, or the completing unit must come to the
incomplete one. Some games may allow the incomplete unit and its
completer to be some distance apart, but the usual rule is that they
must be in the same cell.
Note that multi-part units will be considered ``complete'' when just one
of their parts is completed. Most interfaces will have the builder
continue growing the just-completed unit as long as it remains within
construction range.
@node Repairing Units, Disbanding Units, Construction, Moving the Units
@subsection Repairing Units
@dfn{Repair} restores lost hit points to a unit. Repairs can be done by
the damaged unit itself, if it is not too badly damaged, or by another
unit that is close enough.
Some games also feature automatic hit point recovery
(@code{hp-recovery}), so you don't always have to remember to do
explicit repair actions.
@node Disbanding Units, Transferring Unit Parts, Repairing Units, Moving the Units
@subsection Disbanding Units
@dfn{Disbanding} is a voluntary loss of hp, ultimately resulting in the
disappearance of the unit. Most games only allow it for a few types of
units. Depending on the game, you may be able to disband the unit with
one action, or you may need several before the unit actually goes away.
Units with occupants can disband, but only if the occupants are
unaffected by the action. If the unit would vanish or lose transport
capacity, then the occupants must be disbanded or removed first. (The
interface may arrange to do this for you automatically.)
You always get back all of the disbanded unit's supplies, and they will
be distributed to other units nearby. In addition, the disbanded unit
itself may become a source of materials, according to the table
@code{recycleable-material}. A percentage of the total material will
become available after each action, if disbanding takes several actions
to accomplish.
@node Transferring Unit Parts, Changing Unit Side, Disbanding Units, Moving the Units
@subsection Transferring Unit Parts
In games where units can vary in size, you can shift one or more parts
of a multi-part unit to another unit, or else create an entirely new
unit.
You would use this action if, for instance, you wanted to detach a
survey party from an exploring expedition, then rejoin later.
@node Changing Unit Side, Changing Unit Type, Transferring Unit Parts, Moving the Units
@subsection Changing Unit Side
In many games, you can give some of your units to another side. You may
also be able to take them from another side, if you control that side.
Unlike other actions, you may be able to cause a unit to change side
without actually needing any action points, if the type is one that
cannot act on its own.
@node Changing Unit Type, Producing Materials, Changing Unit Side, Moving the Units
@subsection Changing Unit Type
A few games allow you to change the type of a unit.
For instance, you might have this ability in a construction-oriented
game, where you can take a town that has accumulated sufficient building
materials and change it into a city. Another possibility is that you
have increased your technology level and are now able to transform a
low-tech ship into a higher-tech ship.
@node Producing Materials, Transferring Materials, Changing Unit Type, Moving the Units
@subsection Producing Materials
@dfn{Production} is how a unit can produce a quantity of a material.
In many games, units already have a @dfn{base production} that is the
amount of material that they produce automatically each turn. This will
often depend on the terrain, so that explorers in the forest will always
``produce'' enough water to drink each turn, but will start to use up
their water supply when in the desert.
@node Transferring Materials, Changing the Terrain, Producing Materials, Moving the Units
@subsection Transferring Materials
Often there will be plenty of some type of material in the world, but
the problem is getting it from the units that have it to the units that
need it. The @dfn{transfer} action is how you move material supply from
one unit to another.
As with production, many games have some automatic transfers set up.
For instance, games involving aircraft generally refuel them
automatically whenever the aircraft has landed in a place with fuel to
spare. [Demands should be set by doctrine.]
@node Changing the Terrain, , Transferring Materials, Moving the Units
@subsection Changing the Terrain
In some games, units can add or remove borders, connections, or
coatings, or may even be able to change the overall type of terrain in a
cell. The actions are @dfn{add-terrain}, @dfn{remove-terrain}, and
@dfn{alter-terrain}, respectively.
The change happens immediately (for the sake of simplicity), but in
practice, you may find that preparing for the change may take awhile.
For instance, the unit executing the change might have to accumulate acp
or materials required for the change.
@node Automation of Units and Sides, Modes, Moving the Units, Playing Xconq
@section Automation of Units and Sides
Specifying the exact sequence of actions and their operands for every
single unit would be mind-numbingly complex, and, for that matter, not
very realistic either. Therefore, @i{Xconq} includes several levels of
automation for human players.
The elements of automation are the @i{task}, the @i{plan}, the
@i{doctrine}, and the @i{strategy}. These are related to each other by
@i{goals}.
@dfn{Tasks} are single activities of a unit that require one or more
actions to accomplish. Examples of tasks include moving to a given
position, or waiting 15 turns to be picked up by a transport. Most of
the commands that you give while playing actually set up tasks rather
than individual actions.
A @dfn{plan} is the unit's object that expresses its decided-upon
behavior. Elements of a plan include a type, possibly one or more
goals, a @dfn{task agenda}, plus some assorted flags and properties.
All units that can act and that are on a side will have a plan, while
independent units that can do actions may have a plan that is preset by
a scenario. Plans primarily govern individual behavior, in many cases
allowing the unit to act on its own, without needing any explicit
direction from the player.
The @dfn{doctrine} is the set of parameters governing how the side will
play and how its units should work generally. For instance, per-unit
doctrine specifies the point which a unit low on supply should start to
look for a place to replenish itself.
The @dfn{strategy} and associated subobjects is what an AI uses to make
all the decisions about what to do. This object is not directly
visible, unless the AI is acting as your assistant and the interface
includes a display of its strategy.
Of all these types of objects, only the doctrine can be manipulated
directly; all others are implicitly changed as a result of player
commands, which are different for each interface.
The @dfn{Standing order} command allows you to set up conditions for
execution of tasks.
@menu
* Using Doctrine::
* Plans::
* Tasks::
* Standing Orders::
@end menu
@node Using Doctrine, Plans, , Automation of Units and Sides
@subsection Using Doctrine
There is a doctrine for each type of unit on your side. Several types
may share a single doctrine, so that changes to it will affect all types
equally.
@itemize @bullet
@item
construction-run
@end itemize
[more doctrine info]
@node Plans, Tasks, Using Doctrine, Automation of Units and Sides
@subsection Plans
A unit's plan must be one of the types listed here.
@itemize @bullet
@item
None (@code{none}).
Units with this type of plan do absolutely nothing.
@item
Passive (@code{passive}).
Units with a passive plan will execute any tasks they have
been given, but will not add to the task agenda on their own.
By default, if you are running the side by yourself,
with no AI assistant, your units will have this type of plan.
@item
Offensive (@code{offense}).
Units with an offensive plan will look for favorable
combat opportunities, usually within an area specified as their goal
to hold.
@item
Defensive (@code{defense}).
Units with a defensive plan will seek to preserve the status quo.
@item
Exploratory (@code{explore}).
Exploratory units will seek to collect information about
unknown parts of the world.
@end itemize
@node Tasks, Standing Orders, Plans, Automation of Units and Sides
@subsection Tasks
A task has several standard properties and may have additional properties
specific to the task's type. @i{Xconq} keeps track of how many times a
task has been executed and how many times it has failed to execute a
step correctly. For example, a movement task to a distant location may
need to execute 100 times, but it will only fail if the unit is actually
blocked from moving. If a task fails too many times, the plan or the AI
may decide to remove the task from its agenda.
If a task succeeds, it will always be removed.
Each task in a plan's task agenda must be one of the types listed here.
@itemize @bullet
@item
Do nothing (@code{none}).
@item
Sentry (@code{sentry @var{turns}}).
Stand sentry at the present location for a given number of turns.
This is not the same as sleeping, since it is for a definite period
of time.
@item
Move in a direction (@code{move-dir @var{direction}}).
Move in the given direction up to the given distance.
@item
Move to a location (@code{move-to @var{location}}).
Move to within a given distance of the given location.
@item
Occupy a unit (@code{occupy @var{unit}}).
Move towards a given unit and attempt to enter it.
@item
Pick up a unit (@code{pickup @var{unit}}).
Move towards the given unit and wait for it to enter.
@item
Build (@code{build @var{unit-type n}}).
Build a given number of units of a given type.
This task will do research actions if necessary and possible,
and toolup actions if necessary.
Also, if there is an incomplete unit of the given type
nearby, this task will complete it before creating a new unit.
@item
Research (@code{research @var{unit-type n}}).
Do research to increase the tech for a given type
up to a given level.
@item
Hit a position (@code{hit-position @var{location}}).
Attempt to attack or fire on any units at the given position.
@item
Hit a unit (@code{hit-unit @var{unit}}).
Attempt to attack a given unit.
@item
Capture a unit (@code{capture @var{location}}).
Attempt to capture a unit at a given location,
optionally of a given type and on a given side.
@item
Resupply (@code{resupply @var{material-type}}).
Replenish depleted supplies.
This may be accomplished by production actions,
moving to higher-productivity terrain,
or by moving within supply range of a unit with the desired
supplies.
@item
Repair (@code{repair @var{unit}}).
Repair damage to the given unit.
@item
Do a specific action (@code{do-action @var{action-parms...}}).
@end itemize
@node Standing Orders, , Tasks, Automation of Units and Sides
@subsection Standing Orders
Standing orders are basically a combination of a test or condition and
a task to be performed when the condition is met.
The textual form of the command is ``if <type> <test> <task>'',
where <type> is a name of a unit type, <test> is some sort of condition,
and <task> is a task, as described previously.
Possible tests include @code{at @var{location}}, @code{in @var{unit}},
and @code{near @var{location} @var{dist}}.
The @code{at} test applies to the unit if it comes to be in a particular cell,
for whatever reason. The @var{location} may be either a comma-separated pair
of coordinates, or the name of a unit.
The @code{near} test is similar to @code{at}, but you give an additional
argument that says how close, in cells, the unit must be for the order to apply.
For instance, a distance of 1 means that the order applies to units at the
given location and to all adjacent units. This is useful if you want to
have several kinds of units use a rendezvous point that is on a type of
terrain that some of the kinds can't use, or if there are stacking limits
and requiring all units to converge on a single cell would result in
traffic jams.
The @code{in} test applies to the unit if it is an occupant of the given
unit.
If a unit is already performing another task, it will ignore any standing
orders in any location that it happens to be passing over; so it is not
possible for the standing order to waylay the unit and send off doing
something else. The unit must be under your orders (``passive'' plan),
not have any tasks on its agenda, and cannot be asleep or in reserve.
@example
if armor in Paris move-to Antwerp
if bomber in London move-to 33,54
if bomber at 33,54 hit-position 34,60
@end example
The second example shows how you can use several standing orders together to
route units around obstacles or dangerous areas.
@node Modes, Standard Keyboard Commands, Automation of Units and Sides, Playing Xconq
@section Modes
Interfaces to @i{Xconq} have typically two major modes governing how
input will be handled; @dfn{survey mode} and @dfn{move mode}. The
purpose of these modes is to streamline the input and interaction
process; they have no other consequence, and all functionality should be
available in either mode.
In survey mode, you are basically just looking around the map. Normal
mouse clicks change the focus and perhaps scroll the map, but do not
cause any units to do anything.
In move mode, a normal mouse click means to move the currently selected
unit or units to the location of the click.
@node Standard Keyboard Commands, Unit Info, Modes, Playing Xconq
@section Standard Keyboard Commands
These commands should be available in all versions of @i{Xconq}.
Additional commands may be defined for some interfaces; see the
interface's documentation below for more details.
@set FULL
@include commands.texi
@node Unit Info, Backdrop Weather, Standard Keyboard Commands, Playing Xconq
@section Unit Info
Most of the interfaces in Xconq use a common format for displaying
textual information about a unit.
First comes the unit type, ownership, and name or number:
@code{your city New York}
Then there is the current values of the most important properties.
Each value includes its maximum, so that there is no confusion about
what the current value means.
@code{HP 37/40 ACP 0/1}
Next comes the location of the unit. This will vary in form, so for
instance a unit out in the open by itself will have something like
@code{in mountains at 23,59}
while an occupant of a transport will have
@code{in 2nd troop transport at 10,35}
Location information also includes descriptions of roads, rivers,
and other linear features nearby, plus elevation and temperature
if appropriate.
If the game allows for stacking multiple units at one location,
unit info will briefly list counts of the other types present,
usually with single characters to indicate the types, as in
@code{2 i 1 f 1 N here also}.
If the unit is a transport with occupants, then the list of
occupants appears, in a similar format:
@code{Occs 1(1) i 2 b}
(The first number is actually only a count of the complete units, the
number of incomplete units is in parentheses.)
Unit info includes a list of all materials being carried as supplies,
in a straightforward form:
@code{fuel 8/10 ammo 4/4}
The unit's current plan appears as a word describing the plan type,
followed by plan properties, such as awake/asleep, reserve, and AI
control:
@code{passive AI 1 task}
Plan information is followed by task info. The details of each task
description depend on the task type:
@code{move-to 34,10 x 2}
The ``x <n>'' indicates the number of times the task has been executed
so far. There may also be a ``fail <n>'' indicating the number of failures
of execution that have occurred, for instance because a unit's movement
has been blocked.
@node Backdrop Weather, Backdrop Economy, Unit Info, Playing Xconq
@section Backdrop Weather
Some games include @i{environmental effects}, which includes what we
normally think of as weather; the temperature, clouds, wind, rainfall,
snowfall, and snow cover on the ground.
The temperature falls in a range specified by the game, and may be
computed in different ways depending on the game design, but typically
depends on terrain, latitude, the severity of the seasons, and
elevation. Temperature may also vary randomly from turn to turn and
cell to cell. [describe effects of temperature on units]
A game may include clouds. Clouds in @i{Xconq} are a single band, with
a density, altitude of cloud bottom, and cloud height in each cell. In
this example side view below, @code{o} and @code{O} represent different
densities of cloud, and @code{-} is the tops and bottoms, while @code{^}
shows the ground.
@example
---- -- -
--oOOo -- OO o
OOoOOo oo--OO -
^^--oOO- --OO--
^ --- ^^^-- ^^^^^
^^^^^ ^^^^
@end example
The chief effect of clouds is to prevent the viewing of units on the
other side of the clouds.
A game may also include wind. Wind has a force and a direction for each
cell. Wind affects the weather by causing clouds and storms to move
around. Certain unit types, such as sailing ships and balloons, may
depend on the wind to be able to move around, and their speed will
depend on the direction they take with respect to the wind.
Games may assert that the playing area represents part of a sphere,
possibly tilted on its axis, and that poles and equator correspond to
various latitudes. If the game allows temperatures to vary according to
the time of year and the latitude, you will have seasons.
@node Backdrop Economy, Backdrop Random Events, Backdrop Weather, Playing Xconq
@section Backdrop Economy
The economy in @i{Xconq} is based upon materials. Games that do not
include any material types do not have any of the activities described
in this section.
@menu
* Material Consumption::
* Material Movement::
@end menu
@node Material Consumption, Material Movement, , Backdrop Economy
@subsection Material Consumption
Units consume their supplies, both in the course of existence, and by
motion/combat. The rate depends on game and unit type; it consists of
an overhead consumed each turn without fail, and consumption for each
cell of movement. The total is a max, not a sum, since units with a
constant consumption rate are not likely to need additional supplies to
move (consider foot soldiers who eat as much sitting around as they do
walking). Supplies may also be consumed for production and repair,
again depending on game and unit types, but this consumption happens
during the build phase. Consumption is not affected by the situation of
the consuming unit; armies in troop transports eat just as much as when
in the field.
@node Material Movement, , Material Consumption, Backdrop Economy
@subsection Material Movement
Excess production is discarded, unless it can be unloaded into the
producer's occupying units, or distributed to nearby units via
@dfn{supply lines}. Supply lines automatically exist between units that
are close enough (as set by the game), and there is no need for explicit
manipulation. Supply line length depends on the game and the units on
both ends, but is not affected by the intervening terrain. Supply
redistribution does not account for special needs anywhere; it just
tries to utilize production excess. The redistribution method is rather
adhoc; units try to get rid of all their excess supply, and try to take
up supply from other units within supply range. Each direction is
controlled independently, so for instance airplanes can get
automatically refueled from a nearby city, but not from each other. No
unit will transfer all of its supply via supply lines. Normally units
in the same cell can exchange supplies, but some games can disable this
behavior (@code{out-length} < 0), so that explicit transfer using the
give and take commands is always necessary.
@node Backdrop Random Events, Scoring, Backdrop Economy, Playing Xconq
@section Backdrop Random Events
Some games may include @dfn{random events}. These are usually rare, but
not always -- be sure you know the odds!
@menu
* Accidents::
* Attrition::
* Revolts::
* Surrenders::
@end menu
@node Accidents, Attrition, , Backdrop Random Events
@subsection Accidents
For some types of units in some types of terrain, there is a chance for
it to have an @dfn{accident} that wrecks or eliminates the unit
instantly. This depends on both unit type and terrain type. If the
accident occurs, the unit is wrecked or vanishes along with all its
occupants. ``Wrecking'' and ``vanishing'' have separate probabilities.
Occupants may survive wrecking, but never vanishing.
@node Attrition, Revolts, Accidents, Backdrop Random Events
@subsection Attrition
@dfn{Attrition} is ``slow death''; it takes away some number of hit
points each time it occurs. The rate of attrition depends on unit type
and terrain or transport type. Very low attrition rates may only take
away one hp once in a while.
@node Revolts, Surrenders, Attrition, Backdrop Random Events
@subsection Revolts
In a @dfn{revolt}, the unit changes sides spontaneously, perhaps to
independence, perhaps to the side of a nearby unit. Occupants will
change over if possible, or else escape if possible, or else be killed.
Any plans will be cancelled.
@node Surrenders, , Revolts, Backdrop Random Events
@subsection Surrenders
@dfn{Surrender} is like revolt, but is always to the side of a nearby
unit that is capable of attacking and/or capturing. The capturing unit
does not move. Occupants of the surrendering unit also change over,
escape, or die.
@node Scoring, Playing in Realtime, Backdrop Random Events, Playing Xconq
@section Scoring
@quotation
Victory at all costs, victory in spite of all terror,
victory however long and hard the road may be;
for without victory there is no survival.
-- WINSTON CHURCHILL (1940)
@end quotation
Different games can have different ways for players to win or lose.
Some games may not have any scoring at all, while others have very
complicated formulas. You should be aware of the scoring in effect
@emph{before} you start to play a game!
In @i{Xconq}, a game's @dfn{scorekeepers} define how scoring is to be
done. Each scorekeeper tests some sort of condition and/or maintains a
numeric score. Scorekeepers also define when they run (perhaps only
during certain turns or certain times within a turn) and which sides to
look at. Each scorekeeper is independent of the others, meaning it only
takes one to decide if you win or lose.
In a game with many players, winning and losing can be a complicated
issue; read the conditions carefully. A scorekeeper can also decide to
declare a game to be a draw and end it on the spot.
Once a side has won, it is out of the game. Some scorekeepers only
allow one winner, others allow several; in those cases, the scorekeeper
will say what happens to the winning side's units.
Once a side has lost, it cannot be brought back into a game, even if
another side tries to give it some more units or otherwise to reverse
things.
It may also be possible to declare a draw, but all players still in a
game have to agree to this. While human players just have to enter the
appropriate command (or answer appropriately when asking to quit the
game), AIs may not always be willing to go along, particularly if they
think they still have a chance to win. If that happens, you must
continue on. (Some cowards have been known to abort the program or
reboot the machine, in order to avoid an ignominious fate; unfortunately
@i{Xconq} is merely a program and cannot prevent such slimy tricks.)
Finally, some games may record everybody's final scores into a file.
@menu
* Last-Side-Wins Scorekeeper::
* Occupation Scorekeeper::
* Unit Count/Sum Scorekeeper::
@end menu
@node Last-Side-Wins Scorekeeper, Occupation Scorekeeper, , Scoring
@subsection Last-Side-Wins Scorekeeper
The most common form of scoring in @i{Xconq} is called
@code{last-side-wins}. It is basically a fight to the death; any side
that loses all of its units loses the game, and the last side with any
units remaining is declared the winner. It is possible that more than
one side will lose all of its units at the same time, in which case
@i{Xconq} declares a draw.
Since this would sometimes lead to bizarre stalemates (a submarine could
hide at sea, thus preventing the side from losing, for instance), many
games also define @dfn{point values} for units. In such cases,
@code{last-side-wins} makes a side lose when the sum of point values of
all its units is zero, and the interface will have some way to display
your current points. By default, each unit of each type has a point
value of 1; many games will define point values that apply to all units
of the same type. Some games may also define special point values for
individual units.
@node Occupation Scorekeeper, Unit Count/Sum Scorekeeper, Last-Side-Wins Scorekeeper, Scoring
@subsection Occupation Scorekeeper
Occupation means that you have one of your own units in or near a fixed
location or unit.
@node Unit Count/Sum Scorekeeper, , Occupation Scorekeeper, Scoring
@subsection Unit Count/Sum Scorekeeper
This is a simple count of units, or else a summation of the values of
some property, such as hit points.
@node Playing in Realtime, Advanced Play, Scoring, Playing Xconq
@section Playing in Realtime
Some game designs define limits on the realtime duration of a game. For
instance, the game might be set to end in one hour, a single turn might
be limited to always last at most 2 minutes, or your side might be
limited to 15 minutes of playing time, in the manner of a chess clock.
If such limits are in effect, your display should be able to show you
how much time you have left at any moment; pay attention!
When you run out of time, you are not automatically taken out of the
game, but you can no longer do anything with your units. Units that
already have plans will continue to act on them.
The game design may give you a limited number of ``timeouts'' that you
can call to stop the clock. The timeout ends when you order a unit to
do something. Other sides will also be able to play while the clocks
are not running.
You can see what the limits are by looking at the ``game design'' node
of the online help.
@node Advanced Play, Playing Hints, Playing in Realtime, Playing Xconq
@section Advanced Play
This section covers additional features that may interest experienced
players.
@menu
* Mixing Game Modules::
* Personalizing Your Side::
@end menu
@node Mixing Game Modules, Personalizing Your Side, Advanced Play, Advanced Play
@subsection Mixing Game Modules
Some interfaces (such as those using Unix-style command lines) may let
you ask for more than one game design when starting up. This is
sometimes useful, for instance, if you want to play on the
@code{steppes} world with a non-standard set of units; your command line
might look like @code{-g my-hacked-standard -g steppes}. You can also
turn things around and load a file with your own changes after a
complete game, as in @code{-g gettysburg -g my-tweaks}.
Be aware, however, that this cannot be guaranteed to work always, since
the mixed-together game designs may have mutually conflicting
definitions, or interfere with each other in subtle or not-so-subtle
ways. Just imagine the disaster if the world consists entirely of
terrain that is instant death to your initial units! Worse, @i{Xconq}
may start up and run OK for awhile, then at the moment you're about to
win---the object that you must capture simply cannot be captured by any
unit at all.
So be careful about mixing designs!
@node Personalizing Your Side, , Mixing Game Modules, Advanced Play
@subsection Personalizing Your Side
Many games will pre-assign your side's name, emblem, enemies, and so
forth. However, many others allow you to change all that to suit your
tastes.
The name is a proper noun such as ``Poland'', the noun is what you would
call an individual, such as ``Pole'', the plural is for more than one,
and <adj> is the adjective for things on that side, such as ``Polish''.
The color scheme is a comma-separated list of color names, and <image
name> names some sort of image file (like a bitmap).
The image may be of any size and combination of colors, with the caveat
that it may not always work correctly. For instance, two subtly
different shades may get fused into a single solid color. The emblem
should also be small enough to fit reasonably into unit icons. As a
rule, most national flags will fit into a 7x5 rectangle, and coats of
arms into a 7x9 region. The color scheme should be useful by itself,
when the unit icons are too small to fit the emblem.
@i{Xconq} will not allow you to have the same name, color, or emblem as
another player in the same game.
The interface-specific side configuration uses the favored mechanism for
that interface (if one is defined). You should check with the interface
documentation for more details.
@node Playing Hints, Problems and Troubleshooting, Advanced Play, Playing Xconq
@section Playing Hints
This section is a collection of bits of information and advice derived
from players' actual experience playing @i{Xconq}.
@menu
* Player Alliances::
* Advantage Rounding::
* Strategy::
@end menu
@node Player Alliances, Advantage Rounding, , Playing Hints
@subsection Player Alliances
Informal alliances frequently happen in games involving more than two
people, so I have a few words of advice. First, an alliance between two
of the players is almost certain in a three-person game, and inevitably
results in the ``odd man out'' being quickly defeated. In four-person
games, the alliances could be decided after looking at the map via a
command-line option such as @code{-v}, so that one pair is not
hopelessly separated. Five or more players is going to be a
free-for-all of formal and informal alliances. Some scenarios are
designed with a particular number of players in mind.
@node Advantage Rounding, Strategy, Player Alliances, Playing Hints
@subsection Advantage Rounding
When you set the advantage, @i{Xconq} multiplies the desired advantage
with the normal number of starting units, then divides by the default
advantage and ROUNDS DOWN. This means that you might end up with a lot
fewer units than you thought. For instance, suppose that you have a
game where each player starts with one large city and five towns, and
this is considered to be an advantage of 10, because one large city is
worth about as much as 5 towns. Then if you select an advantage of 8,
and your opponent selects 14 (because you're a better player perhaps),
@i{Xconq} will give you 8/10 of the normal setup, which means four towns
and NO large city. Your opponent will get 14/10 of the setup, which
works out to one large city and seven towns, which is really a 1 to 3
disparity, much more than the planned 4 to 7. This is not a bug, just a
limitation of the method.
@node Strategy, , Advantage Rounding, Playing Hints
@subsection Strategy
The correct strategy for a game will depend on the game; some are
deliberately designed to encourage or even force you to adopt a
particular strategy. In general however, classic principles of strategy
apply perfectly to @i{Xconq}. First, the words of an ancient master:
@quotation
Generally in war the best policy is to take a state intact; to ruin it
is inferior to this. -- SUN TZU
@end quotation
@quotation
Attack where he is unprepared; sally out when he does not expect you.
-- SUN TZU
@end quotation
@quotation
There has never been a protracted war from which a country has benefited.
-- SUN TZU
@end quotation
The most important consideration is to conceal your own forces and
movements as much as possible. Decoys and feints are worthwhile, but
only if they don't draw critical strength away from your real purpose.
Don't rush to attack with weak forces. Especially over long distances,
the defender has the advantage. Wait until you have assembled enough to
take and hold a piece of territory, then allow some extra, just in case.
Have a plan, and have some contingency plans ready as well.
Be ready to take advantage of opportunities.
@node Problems and Troubleshooting, The Game Library, Playing Hints, Playing Xconq
@section Problems and Troubleshooting
This section describes some of the problems you might encounter,
and what to do about them.
@menu
* Errors and Warnings::
* Cheating::
@end menu
@node Errors and Warnings, Cheating, , Problems and Troubleshooting
@subsection Errors and Warnings
``Errors'' are fatal flaws. @i{Xconq} must shut itself down in order to
prevent a bad situation from getting worse. You may be able to save the
game, repair it, and restart it, but you must understand a good deal
about GDL and about how @i{Xconq} works.
``Warnings'' are advice that something is amiss, but that there is no
obvious reason to quit.
Any error or warning not listed below is almost certainly a bug, most
likely in a game design, but maybe in @i{Xconq}, and should be reported
as such.
@table @code
@item Can't find module @var{xxx} anywhere
This means that @i{Xconq} searched in the library locations it knows
and found no modules named @var{xxx}.
@item Module @var{xxx} could not be opened
This typically means that although the module was found, it could
not be opened; for instance, it might have been read-protected.
@item Too many players
Some game designs limit the number of players, and you asked for
more than that. Ask for fewer.
@item Requested advantage is too (low, high)
The game design limits the range of advantages that you may request,
and you went outside that range.
@item Only @var{n} of the requested displays opened
(not the most useful message in the world - only document the
"xxx could not be opened" message?)
@item Need at least one display to run
@i{Xconq} is an interactive game; a game with no displays at all
is sort of pointless, eh?
@item Images were not found
A game design may not have had images defined for
all types of units and terrain.
@i{Xconq} will warn about this, then make up some (typically ugly)
default images itself. Actual game play will be unaffected.
@item @var{xxx} color is way off on display @var{yyy}
It may be that a particular display and its software will not
have set up a color that matches what was requested (this can
happen in X, for instance). This has no direct effect on game
play, but some of the players may have difficulty if, say,
their displays show several different terrain types as having
the same color.
@item Memory exhausted
Some @i{Xconq} games are exceedingly large and complex, and it is
not unusual that they will need more than that available RAM or
swap space. This will typically occur during game setup, since
@i{Xconq} preallocates nearly all of the space it will need.
If you have no way to get more memory, you must choose a smaller
game. You can make a given game smaller by choosing the ``See All''
variant (no need to record views for each side) or by having fewer
players and/or fewer AIs. For instance, instead of playing against 7 AIs,
you can play against one AI with an initial advantage of 7.
@item Can't open statistics file @var{xxx}
(Obvious)
@item Can't open score file @var{xxx}
(Obvious)
@item Sides have undesirable locations
A game can specify how close and how far away each side should be from
all the others, and the kind of terrain each will start on. If the
world is too small, or doesn't have the right kinds of terrain, then
@i{Xconq} will warn about this. The game will still play normally, but
it may be grossly unfair, and if the sides start out hidden from each
other, it may be a while until it becomes obvious how unfair it really
is.
@end table
@node Cheating, , Errors and Warnings, Problems and Troubleshooting
@subsection Cheating
The standard builtin AI @code{mplayer} does not cheat; it always plays
according to the same rules as you do. This should be true of any AI in
@i{Xconq}. If you have evidence that would seem to indicate that any AI
is using information it should not have, or is otherwise cheating, that
is a bug and should be reported. Note that sometimes the AI is smarter
than you are, or moves more quickly; it may very well have spotted one
of your units and disappeared again without you noticing.
Cheating by human players is possible, though not easy.
For instance, a player could examine a saved game and learn all kinds
of things, perhaps even starting up a separate game from it.
As always, human ingenuity will defeat any purely technical defenses,
and the best way to forestall cheaters is to refuse to play with them.
If you suspect cheating, look at the game history and the final game
statistics for things that seem suspicious.
@node The Game Library, , Problems and Troubleshooting, Playing Xconq
@section The Game Library
One of @i{Xconq}'s distinguishing features is its extensive game library.
The variety can be rather confusing; which game @emph{should} you be playing?
The following sections describe the games that appear in the games list
that is in the distributed library (these show up in the "New Game" dialog
in the Mac port, for instance).
Details of the
games may change from release to release, so treat this only as a guide.
Read the game's own instructions and notes for detailed information.
The library will generally include many game modules not listed here; in some
cases, the modules are supporting modules for other games, and not playable
on their own, while in other cases the game is still under development.
Because of this, you should be prepared to experience problems if you try
to play any module not on the games list.
@menu
* Generic Games::
* Ancient History::
* European History::
* American History::
* WWII::
* Empire-Building::
* Fantasy::
* Science Fiction::
* Miscellaneous Games::
@end menu
@node Generic Games, Ancient History, The Game Library, The Game Library
@subsection Generic Games
@i{Xconq} belongs to what one might call the ``Empire'' family
of computer games; players each start with a small country and
attempt to take over the world. The available units, which
players must build for themselves during the game, are generally
modern military but somewhat abstract; armies, airplanes, battleships,
and suchlike.
The game designs in this category are just variations
on the theme, being more/less complex or faster/slower-paced.
@table @code
@item intro
This is a simple game designed for newcomers to @i{Xconq}. The rules
are simple, the map is fixed, so it's not really very interesting once
you've learned how to play @i{Xconq}.
@item standard
The standard game is, well, the standard @i{Xconq} game. It is by far
the most developed, tested, and polished. You can enjoy @i{Xconq} for
years playing only this game and its variants.
@item classic
The standard game of version 7 has been enhanced to take advantage
of its new features, such as stacking, rivers, and roads, but if you
like the standard game of @i{Xconq} 5.x and want to continue with it,
@code{classic} is a very close approximation.
@item crater-lake
This is a classic of 5.x, so named because of the mountain ring
with lake in the middle. The real notable feature of this is the
difficulty of mounting any offensive; this game has been
fought to a stalemate time and time again.
@item old-empire
Stroll down memory lane. This is a workalike of the old simple
Empire game, complete with imbalance, slow pacing, and other problems.
Compare how it plays versus the standard game; the flaws should be
obvious.
@c @item earth-2deg, earth-1deg, earth-50km
@c The entire Earth, at scales of 2 degrees/cell, 1 degree/cell, and
@c 50km/cell, respectively. This means that the areas are 180x64, 360x140,
@c and 800x320 cells in size, which makes for games that are simply
@c gigantic.
@end table
@node Ancient History, European History, Generic Games, The Game Library
@subsection Ancient History
@table @code
@item pelops
If you're a fan of ancient history, try this version of the
Peloponnesian War. Although its game parameters need more work,
you can get some idea of the scale of the conflict. This is
also a three-sided game, allowing for someone to play the Persians
and perhaps win by exploiting the Athenians and Spartans.
@item rom-civ-war
The Roman Civil War, played out on a very nice map of the Roman world.
@end table
@node European History, American History , Ancient History, The Game Library
@subsection European History
@table @code
@item voyages
This represents the Age of Discovery.
@item magellan
Attempt to re-create Magellan's voyage around the world.
Based on @code{voyages}.
@item 1756, 1757
These are renditions of the annual campaign seasons that made up the
Seven Years' War.
@item 1805
Napoleon's Austrian campaign of 1805, of which the battle of Austerlitz
proved to be the key action.
@item red-october
The Russian revolution.
@end table
@node American History, WWII, European History, The Game Library
@subsection American History
@table @code
@item gettysburg
This is a set-piece version of the Battle of Gettysburg, at the brigade
level with hourly turns. The setup is very detailed, but the mechanics
too simple, which unfortunately allows some rather bizarre-looking
battles to develop.
@end table
@node WWII, Empire-Building, American History, The Game Library
@subsection WWII
The WWII games listed here are technical, detailed, and specialized to
particular time periods or scenarios.
@table @code
@item panzer
This is a fast-paced tactical Eastern Front game, similar to the board
games on the subject. Features include strict line-of-sight (thus you
can hide behind hills and trees), ranged fire, and a wide assortment of
hardware. It's not really very accurate, and it's stretching
@i{Xconq} to use it for a tactical game, but great fun anyway.
@item magnusvew
A large panzer scenario based on a Panzerblitz(tm) board game scenario
designed by Robert Harmon.
@item cherbourg, cobra, normandy
These are all battalion-level games using the base game @code{ww2-bn}.
The @code{cherbourg} scenario covers the capture of Cherbourg in the
Normany campaign, while @code{cobra} is a reenactment of Operation Cobra,
and @code{normandy} is the whole invasion! While @code{cherbourg} is
reasonably sized, the others are monster games that will need lots of
memory and lots of time to play.
@item nw-europe
This game is at the division level, being about the entire
NW Europe campaign. Although you can open by landing in Normandy,
you can try invading anywhere you like.
@item ww2-eur-42
This is a theater-level simulation of WWII in Europe, starting in
January 1942. The Germans are on the ascendant everywhere, the Soviets
hard-pressed, and the Americans only just getting involved. The game
has a lot of sides; either AIs have to play them or you'll need to round
up a bunch of players.
@item ww2-38, ww2-39, ww2-42
These are full global scenarios for advanced WWII. Can they really be
played as games? Probably not -- but so what, we just want to scroll
around and admire it all!
@item ww2s-eur-42, ww2s-pac-41, ww2s-42
WWII again, but using the unit types and terrain of the standard game,
and with only two sides, Axis and Allies. It's not realistic enough
for purists, but can certainly be exciting to play.
@item flattop
This game is a somewhat abstract version of tactical naval combat.
You have a force of carriers and battleships, plus a contingent
of smaller vessels, and a similar opposing force somewhere out
there. Use your PBYs to find them, before their subs and destroyers
get in to sink your capital ships.
@item coral-sea
This is the battle of the Coral Sea, both land and sea, at the operations
level. Airplanes are simply part of carriers' combat abilities.
@c @item midway
@c The Battle of Midway.
@item gazala
The battles around Gazala and Tobruk in North Africa. The Axis is out
to capture Tobruk, the British have to block them with very few units.
@end table
@node Empire-Building, Fantasy, WWII, The Game Library
@subsection Empire-Building
The games in this category include more economic development than the
combat oriented generic games.
@table @code
@item empire
An Xconqification of ``true'' or ``net'' Empire, which is a large and
complex economic/military game.
@c @item modern
@c Stan's conception of modern times.
@end table
@node Fantasy, Science Fiction, Empire-Building, The Game Library
@subsection Fantasy
Although @i{Xconq} was never designed for the swords&sorcery genre,
it turns out to be able to support some rather interesting games.
@table @code
@item cave
A basic dungeon game, where you wander around a maze, collect
valuable items, and battle various monsters.
@c fantasy
@c wizard
@end table
@node Science Fiction, Miscellaneous Games, Fantasy, The Game Library
@subsection Science Fiction
@i{Xconq} was never really designed for outer-space games either,
but there are some fun if unrealistic designs.
@table @code
@item galaxy
A sort of generic outer space game with units mixed from various
fictional universes.
@item tokyo, monster
Inspired by a description of an old board called ``Crush Crumble and Chomp'',
this is a game featuring one side as Godzilla and the other side as Tokyo.
Hard to say whether it's more fun to play Godzilla and stomp on buildings,
or to play the national guard and try to defeat him before Tokyo is
entirely flattened!
If you ask for just @code{monster}, you will get a randomized setup for
this game.
@c postmodern
@end table
@node Miscellaneous Games, , Science Fiction, The Game Library
@subsection Miscellaneous Games
Some games just don't fit in any category.
@table @code
@item beirut
A somewhat disrespectful rendition of the fighting in Beirut during the
early 1980s. Seven different sides, all fighting each other with tanks,
death squads, and car bombs.
@c @item duel
@c Two tanks, small area, no tricks.
@c @item hill
@c Play the children's game ``King of the Hill''. As an early tester said,
@c ``Man, I figured you must have been on some really good drugs!''
@item insects
This is a silly but amusing game involving various kinds of insects.
@item mormon
This is a downright blasphemous version of the heroic age of the Mormon
pioneers in Utah. The Mormons try to reproduce faster than the US
Cavalry and the Ute Indians can massacre them; to strike back, the
Mormons have their Avenging Angels.
(I can do this, I'm descended from Mormon pioneers. -sts)
@c @item time
@end table
|