/usr/share/doc/HOWTO/fr-html/Linux-Gamers-HOWTO.html is in doc-linux-fr-html 2013.01-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 | <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Guide pratique du jeu sous Linux</title><link rel="stylesheet" type="text/css" href="style.css"/><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/><meta name="description" content="Les mêmes questions reviennent continuellement sur les listes de diffusion et groupes de discussion Linux. Beaucoup d'entre elles sont dues à la méconnaissance du fonctionnement de Linux, du moins en ce qui concerne le jeu. Jouer peut être malaisé : cela requiert la connaissance d'une très grande étendue de sujets parmi lesquels on trouve les compilateurs, les bibliothèques, l'administration système, la gestion de réseaux, l'administration de XFree86, et cætera, vous voyez le genre. Chaque aspect de votre ordinateur joue un rôle dans le jeu. C'est un sujet exigeant, mais ce fait est occulté par le but principal du jeu : s'amuser et décompresser. Ce document est un point de départ pour résoudre la plupart des problèmes courants et pour donner aux joueurs les connaissances nécessaires afin de réagir intelligemment en cas de problème avec leurs jeux. Comme de coutume sous Linux, vous devez connaître un peu ce qui se passe en coulisses pour que vos jeux continuent à fonctionner correctement ou pour poser un diagnostic et agir en conséquence dans le cas contraire."/></head><body><div xml:lang="fr" class="article"><div class="titlepage"><div><div><h2 class="title"><a id="Linux-Gamers-HOWTO"/>Guide pratique du jeu sous Linux</h2></div><div><h3 class="subtitle"><em>
Version française du <span class="foreignphrase"><em class="foreignphrase">Linux Gamers'
HOWTO</em></span>
</em></h3></div><div><div class="author"><h3 class="author"><span class="firstname">Peter</span> <span class="othername">Jay</span> <span class="surname">Salzman</span></h3><code class="email"><<a class="email" href="mailto:p CHEZ dirac POINT org">p CHEZ dirac POINT org</a>></code></div></div><div><div class="author"><h3 class="author"><span class="firstname">Frédéric</span> <span class="surname">Delanoy</span></h3></div></div><div><p class="othercredit"><span class="contrib">Traduction française</span> : <span class="firstname">Frédéric</span> <span class="surname">Delanoy</span></p></div><div><p class="releaseinfo">Version : 1.0.1.fr.0.9</p></div><div><p class="copyright">Copyright © 2001, 2002 Peter Jay Salzman</p></div><div><p class="copyright">Copyright © 2003, 2004 Peter Jay Salzman, Frédéric Delanoy</p></div><div><div class="legalnotice"><a id="d0e73"/><p>
<code class="email"><<a class="email" href="mailto:p CHEZ dirac POINT org">p CHEZ dirac POINT org</a>></code> /
<a class="ulink" href="http://www.dirac.org/p" target="_top">http://www.dirac.org/p</a>.
</p><p>
Distribué selon les termes de la <span class="foreignphrase"><em class="foreignphrase">Open Software
License</em></span>, version 1.1.
</p></div></div><div><p class="pubdate">9 juin 2004</p></div><div><div class="revhistory"><table summary="Historique des versions"><tr><th align="left" valign="top" colspan="2"><strong>Historique des versions</strong></th></tr><tr><td align="left">Version 1.0.1.fr.0.9</td><td align="left">2004-06-09</td></tr><tr><td align="left" colspan="2">
Traduction de la version 1.0.1 du « Linux
Gamers' HOWTO »
</td></tr><tr><td align="left">Version 1.0.1</td><td align="left">2004-02-04</td></tr></table></div></div><div><div class="abstract"><p class="title"><strong>Résumé</strong></p><p>
Les mêmes questions reviennent continuellement sur les listes de
diffusion et groupes de discussion Linux. Beaucoup d'entre elles
sont dues à la méconnaissance du fonctionnement de Linux, du moins
en ce qui concerne le jeu. Jouer peut être malaisé : cela
requiert la connaissance d'une très grande étendue de sujets parmi
lesquels on trouve les compilateurs, les bibliothèques,
l'administration système, la gestion de réseaux, l'administration de
<span class="application">XFree86</span>, et cætera, vous voyez le genre.
Chaque aspect de votre ordinateur joue un rôle dans le jeu. C'est un
sujet exigeant, mais ce fait est occulté par le but principal du
jeu : s'amuser et décompresser.
</p><p>
Ce document est un point de départ pour résoudre la plupart des
problèmes courants et pour donner aux joueurs les connaissances
nécessaires afin de réagir intelligemment en cas de problème avec
leurs jeux. Comme de coutume sous Linux, vous devez connaître un peu
ce qui se passe en coulisses pour que vos jeux continuent à
fonctionner correctement ou pour poser un diagnostic et agir en
conséquence dans le cas contraire.
</p></div></div></div><hr/></div><div class="toc"><p><strong>Table des matières</strong></p><dl class="toc"><dt><span class="sect1"><a href="#administrata">1. Informations administratives</a></span></dt><dd><dl><dt><span class="sect2"><a href="#droits">1.1. Droits d'utilisation</a></span></dt><dt><span class="sect2"><a href="#authorship">1.2. Authorship and Copyright</a></span></dt><dt><span class="sect2"><a href="#acknowledgements">1.3. Remerciements</a></span></dt><dt><span class="sect2"><a href="#version">1.4. Dernières versions et traductions</a></span></dt></dl></dd><dt><span class="sect1"><a href="#definitions">2. Définitions : types de jeux</a></span></dt><dd><dl><dt><span class="sect2"><a href="#arcade">2.1. Arcade</a></span></dt><dt><span class="sect2"><a href="#cardboard">2.2. Jeux de cartes, de logique et de
plateau</a></span></dt><dt><span class="sect2"><a href="#interactivefiction">2.3. Aventure en mode texte (ou
fiction interactive)</a></span></dt><dt><span class="sect2"><a href="#graphicaladventure">2.4. Aventures graphiques</a></span></dt><dt><span class="sect2"><a href="#d0e405">2.5. Jeux de simulation</a></span></dt><dt><span class="sect2"><a href="#strategy">2.6. Jeux de stratégie</a></span></dt><dt><span class="sect2"><a href="#fps">2.7. Jeux de combat à la première personne (First
Person Shooter, FPS)</a></span></dt><dt><span class="sect2"><a href="#d0e523">2.8. Jeux à défilement horizontal</a></span></dt><dt><span class="sect2"><a href="#d0e544">2.9. Jeux de combat à la troisième personne</a></span></dt><dt><span class="sect2"><a href="#rpg">2.10. Jeux de rôle (Role Playing Game, RPG)</a></span></dt></dl></dd><dt><span class="sect1"><a href="#d0e638">3. Bibliothèques</a></span></dt><dd><dl><dt><span class="sect2"><a href="#glide2">3.1. Glide2</a></span></dt><dt><span class="sect2"><a href="#glide3">3.2. Glide3</a></span></dt><dt><span class="sect2"><a href="#opengl">3.3. OpenGL</a></span></dt><dt><span class="sect2"><a href="#mesa">3.4. Mesa</a></span></dt><dt><span class="sect2"><a href="#d0e783">3.5. DRI</a></span></dt><dt><span class="sect2"><a href="#d0e813">3.6. GLX</a></span></dt><dt><span class="sect2"><a href="#d0e818">3.7. Utah GLX</a></span></dt><dt><span class="sect2"><a href="#xlib">3.8. xlib</a></span></dt><dt><span class="sect2"><a href="#widgetset">3.9. <span class="foreignphrase"><em class="foreignphrase">Widgets</em></span></a></span></dt><dt><span class="sect2"><a href="#sdl">3.10. SDL (Simple DirectMedia Layer)</a></span></dt><dt><span class="sect2"><a href="#ggi">3.11. GGI</a></span></dt><dt><span class="sect2"><a href="#svgalib">3.12. SVGAlib, framebuffer et console</a></span></dt><dt><span class="sect2"><a href="#openal">3.13. OpenAL</a></span></dt><dt><span class="sect2"><a href="#directx">3.14. DirectX</a></span></dt><dt><span class="sect2"><a href="#clanlib">3.15. Clanlib</a></span></dt></dl></dd><dt><span class="sect1"><a href="#d0e1094">4. <span class="application">XFree86</span> et vous</a></span></dt><dd><dl><dt><span class="sect2"><a href="#d0e1120">4.1. Recueillir des informations sur votre système X</a></span></dt><dt><span class="sect2"><a href="#nowm">4.2. Jouer à des jeux sous X sans gestionnaire de
fenêtres</a></span></dt></dl></dd><dt><span class="sect1"><a href="#d0e1270">5. Divers</a></span></dt><dd><dl><dt><span class="sect2"><a href="#mtrr">5.1. <span class="hardware">Registres d'intervalles
mémoire</span></a></span></dt><dt><span class="sect2"><a href="#milkingperformance">5.2. Exploiter au maximum les
ressources de votre système</a></span></dt><dt><span class="sect2"><a href="#d0e1326">5.3. À propos des bibliothèques sous Linux</a></span></dt></dl></dd><dt><span class="sect1"><a href="#d0e1491">6. Quand de mauvaises choses arrivent à de bonnes gens</a></span></dt><dd><dl><dt><span class="sect2"><a href="#d0e1501">6.1. RTFM !</a></span></dt><dt><span class="sect2"><a href="#d0e1525">6.2. Recherchez des mises à jour et des correctifs</a></span></dt><dt><span class="sect2"><a href="#d0e1547">6.3. Groupes de discussion</a></span></dt><dt><span class="sect2"><a href="#d0e1569">6.4. Recherche sur Google Groupes</a></span></dt><dt><span class="sect2"><a href="#d0e1611">6.5. Débogage : traces d'appel et fichiers core</a></span></dt><dt><span class="sect2"><a href="#savedgames">6.6. Parties sauvegardées</a></span></dt><dt><span class="sect2"><a href="#d0e1688">6.7. Que faire quand on ne trouve pas un fichier ou une
bibliothèque (ou se faciliter la vie avec
<span class="command"><strong>strace</strong></span>)</a></span></dt><dt><span class="sect2"><a href="#hosedconsoles">6.8. Consoles corrompues</a></span></dt><dt><span class="sect2"><a href="#d0e1950">6.9. Système bloqué</a></span></dt></dl></dd><dt><span class="sect1"><a href="#d0e2064">7. Cartes vidéo</a></span></dt><dd><dl><dt><span class="sect2"><a href="#d0e2067">7.1. Historique</a></span></dt><dt><span class="sect2"><a href="#d0e2147">7.2. Situation actuelle (13 juillet 2003)</a></span></dt><dt><span class="sect2"><a href="#d0e2174">7.3. Quelle carte vidéo dois-je acheter ? (13 juillet
2003)</a></span></dt><dt><span class="sect2"><a href="#d0e2200">7.4. Définitions : carte vidéo et terminologie 3D</a></span></dt></dl></dd><dt><span class="sect1"><a href="#d0e2313">8. Son</a></span></dt><dd><dl><dt><span class="sect2"><a href="#d0e2316">8.1. Quelle carte son est la meilleure ?</a></span></dt><dt><span class="sect2"><a href="#d0e2367">8.2. Pourquoi le son ne fonctionne-t-il pas ?</a></span></dt></dl></dd><dt><span class="sect1"><a href="#d0e2528">9. Problèmes divers</a></span></dt><dd><dl><dt><span class="sect2"><a href="#d0e2531">9.1. Problèmes d'accélération matérielle</a></span></dt><dt><span class="sect2"><a href="#d0e2620">9.2. L'accélération matérielle ne fonctionne que pour
root</a></span></dt></dl></dd><dt><span class="sect1"><a href="#d0e2664">10. Émulation et machines virtuelles</a></span></dt><dd><dl><dt><span class="sect2"><a href="#d0e2677">10.1. Qu'est-ce qu'une machine virtuelle ?</a></span></dt><dt><span class="sect2"><a href="#d0e2692">10.2. Apple 8 bits</a></span></dt><dt><span class="sect2"><a href="#d0e2742">10.3. DOS</a></span></dt><dt><span class="sect2"><a href="#d0e2779">10.4. Win16</a></span></dt><dt><span class="sect2"><a href="#win32">10.5. Win32</a></span></dt></dl></dd><dt><span class="sect1"><a href="#interpreters">11. Interpréteurs</a></span></dt><dd><dl><dt><span class="sect2"><a href="#d0e3177">11.1. Moteur SCUMM (LucasArts)</a></span></dt><dt><span class="sect2"><a href="#d0e3218">11.2. AGI : Adventure Gaming Interface (Sierra)</a></span></dt><dt><span class="sect2"><a href="#d0e3255">11.3. SCI : SCript Interpreter ou Sierra Creative
Interpreter (Sierra)</a></span></dt><dt><span class="sect2"><a href="#infocom">11.4. Infocom Adventures (Infocom,
Activision)</a></span></dt><dt><span class="sect2"><a href="#scottadams">11.5. Scott Adams Adventures (Adventure
International)</a></span></dt><dt><span class="sect2"><a href="#d0e3373">11.6. Ultima Underworld : The Stygian Abyss (Origin, Blue
Sky Productions)</a></span></dt><dt><span class="sect2"><a href="#exult">11.7. Ultima 7 (Origin, Electronic Arts)</a></span></dt><dt><span class="sect2"><a href="#d0e3455">11.8. System Shock (Electronic Arts, Origin)</a></span></dt></dl></dd><dt><span class="sect1"><a href="#d0e3508">12. Sites web et ressources</a></span></dt><dd><dl><dt><span class="sect2"><a href="#d0e3511">12.1. Méta-sites web de jeux</a></span></dt><dt><span class="sect2"><a href="#d0e3548">12.2. Jeux Linux commerciaux</a></span></dt><dt><span class="sect2"><a href="#d0e3670">12.3. Autres ressources</a></span></dt></dl></dd></dl></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title"><a id="administrata"/>1. Informations administratives</h2></div></div></div><p>
Si vous avez des idées, corrections ou questions relatives à ce
guide, envoyez-moi un courriel. Le fait de recevoir du retour (même
si je n'ai pas le temps de répondre) me donne l'impression que je
fais quelque chose d'utile. Dès lors, cela me motive à écrire plus
encore et à compléter ce document. Vous pouvez me contacter
(NdT : en anglais) à l'adresse
<code class="email"><<a class="email" href="mailto:p CHEZ dirac POINT org">p CHEZ dirac POINT org</a>></code>.
Ma page web est <a class="ulink" href="http://www.dirac.org/p" target="_top">http://www.dirac.org/p</a> et mes
pages Linux sont situées sur <a class="ulink" href="http://www.dirac.org/linux" target="_top">http://www.dirac.org/linux</a>. N'hésitez pas à envoyer
vos commentaires et suggestions relatifs à ce guide. Même si je ne
les retiens pas tous, votre apport est le bienvenu.
</p><p>
N'hésitez pas à faire parvenir tout commentaire relatif à la version
française de ce document à
<code class="email"><<a class="email" href="mailto:commentaires CHEZ traduc POINT org">commentaires CHEZ traduc POINT org</a>></code>.
</p><p>
Je présume une connaissance pratique de Linux, et j'utilise donc
certains termes comme les niveaux d'exécution et les modules sans
les définir. S'il y a assez de questions (ou même de protestations),
j'ajouterai des informations plus basiques à ce document.
</p><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="droits"/>1.1. Droits d'utilisation</h3></div></div></div><div class="important" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Important"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="images/important.png"/></td><th align="left">Important</th></tr><tr><td align="left" valign="top"><p>
Le texte ci-dessous est la version française de la licence de ce
document. Seule la version originale de cette licence, présentée
dans la section suivante, fait foi.
</p></td></tr></table></div><p>
La version originale de ce document a été réalisée par
<span class="personname"><span class="firstname">Peter</span> <span class="othername">
Jay</span> <span class="surname"> Salzman</span></span>
<code class="email"><<a class="email" href="mailto:p CHEZ dirac POINT org">p CHEZ dirac POINT org</a>></code>
pour les années 2001-2002, et à <span class="personname"><span class="firstname">Peter</span> <span class="othername">
Jay</span> <span class="surname"> Salzman</span></span> et
<span class="personname"><span class="firstname">Frédéric</span> <span class="surname">
Delanoy</span></span> pour les années 2003-2004.
</p><p>
Vous avez le droit de copier, distribuer et modifier la version
originale de ce document selon les termes de la <a class="ulink" href="http://opensource.org/licenses/osl-1.1.txt" target="_top"><span class="foreignphrase"><em class="foreignphrase">Open Software
License</em></span></a> (OSL), version 1.1, complétés par
les dispositions présentées dans le paragraphe suivant. Je déteste
les guides qui incluent la licence : des arbres
meurent…
</p><p>
Si vous voulez créer un travail dérivé ou publier ce guide à des
fins commerciales, je souhaiterais être contacté au préalable.
Cela me donnera l'occasion de vous fournir la version la plus
récente. J'apprécierais également soit une copie de votre travail,
soit une pizza aux épinards, à l'ail, aux champignons, à la feta
et aux cœurs d'artichauts.
</p><p>
La version française de ce document a été réalisée par
<span class="personname"><span class="firstname">Frédéric</span> <span class="surname">
Delanoy</span></span>. Elle est publiée en accord avec
les termes de la <span class="foreignphrase"><em class="foreignphrase">Open Software
License</em></span>.
</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="authorship"/>1.2. Authorship and Copyright</h3></div></div></div><div class="important" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Important"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="images/important.png"/></td><th align="left">Important</th></tr><tr><td align="left" valign="top"><p>
Le texte ci-dessous est la licence de ce document. Ce texte fait
foi. Il est composé de la licence en anglais du document orignal,
suivi de la licence en français de sa traduction.
</p></td></tr></table></div><p>
This document is copyright (c) 2001-2002 Peter Jay Salzman,
<code class="email"><<a class="email" href="mailto:p(at)dirac(dot)org">p(at)dirac(dot)org</a>></code>;
2003-2004 Peter Jay Salzman and Frédéric Delanoy. Permission is
granted to copy, distribute and/or modify this document under the
terms of the Open Software License, Version 1.1, except for the
provisions I list in the next paragraph. I hate HOWTO's that
include the license; it's a tree killer. You can read the OSL at
<a class="ulink" href="http://opensource.org/licenses/osl-1.1.txt" target="_top">http://opensource.org/licenses/osl-1.1.txt</a>.
</p><p>
If you want to create a derivative work or publish this HOWTO for
commercial purposes, I would appreciate it if you contact me first.
This will give me a chance to give you the most recent version. I'd
also appreciate either a copy of whatever it is you're doing or a
spinach, garlic, mushroom, feta cheese and artichoke heart pizza.
</p><p>
La version française de ce document a été réalisée par
<span class="personname"><span class="firstname">Frédéric</span> <span class="surname">Delanoy</span></span>.
Elle est publiée en accord avec les termes de la <span class="foreignphrase"><em class="foreignphrase">Open
Software License</em></span>.
</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="acknowledgements"/>1.3. Remerciements</h3></div></div></div><p>
Merci à
<span class="personname"><span class="firstname">Mike</span> <span class="surname">Phillips</span></span>
qui a énormément commenté ce guide.
Merci à
<span class="personname"><span class="firstname">Dmitry</span> <span class="surname">Samoyloff</span></span>,
<code class="email"><<a class="email" href="mailto:dsamoyloff CHEZ yandex POINT ru">dsamoyloff CHEZ yandex POINT ru</a>></code>,
qui a traduit ce document en russe. Cela m'a fait chaud au
cœur quand il m'a raconté qu'il traduisait mes mots en
russe. D'autres remerciements reviennent à :
</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Moritz Muehlenhoff
<code class="email"><<a class="email" href="mailto:jmm CHEZ Informatik POINT uni-bremen POINT de">jmm CHEZ Informatik POINT uni-bremen POINT de</a>></code>
qui m'a envoyé des mises à jour (même si je suis éternellement
à la traîne…)
</p></li><li class="listitem"><p>
Frédéric Delanoy pour d'importantes différences, corrections
de fautes de frappe ou d'erreurs docbook.
</p></li></ol></div><p>
Je voudrais également remercier Michael Mc Donnell pour m'avoir
envoyé des commentaires et des corrections.
</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="version"/>1.4. Dernières versions et traductions</h3></div></div></div><p>
La version la plus récente peut être trouvée sur <a class="ulink" href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/lgh/LG-HOWTO" target="_top">http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/lgh/LG-HOWTO</a>
ou <a class="ulink" href="http://www.dirac.org/linux/writing" target="_top">http://www.dirac.org/linux/writing</a>, mais
c'est ma copie de travail personnelle. La version présente sur mon
site web personnel pourrait être corrompue si je travaille sur le
guide. La version sur sourceforge est la plus récente mais est
garantie non corrompue, même si elle peut comporter quelques
petits problèmes, comme des paragraphes non terminés. :)
</p><p>
La version stable la plus récente peut être trouvée sur <a class="ulink" href="http://www.tldp.org" target="_top">http://www.tldp.org</a>.
</p><p>
<span class="personname"><span class="firstname">Dmitry</span> <span class="surname">Samoyloff</span></span>,
<code class="email"><<a class="email" href="mailto:dsamoyloff CHEZ yandex POINT ru">dsamoyloff CHEZ yandex POINT ru</a>></code>,
est responsable de la traduction russe de ce guide. La version la
plus récente peut être trouvée sur <a class="ulink" href="http://www.dirac.org/linux/writing" target="_top">http://www.dirac.org/linux/writing</a>.
</p></div></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title"><a id="definitions"/>2. Définitions : types de jeux</h2></div></div></div><p>Tout le monde ne connaît pas les différents types de jeux
existants. Pour pouvoir parler un langage commun, je vais m'intéresser
à chaque type de jeu et fournir un très bref historique.</p><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="arcade"/>2.1. Arcade</h3></div></div></div><p>Bien que les jeux d'arcade ont connu leur heure de gloire dans
les années 80, ils restent néanmoins très populaires. Rien ne
remplacera jamais une promenade dans une galerie d'arcade sombre,
bondée et bruyante, y glissant une pièce dans votre machine préférée
et jouant à un vieux jeu du genre <span class="productname"><span class="foreignphrase"><em class="foreignphrase">Space
Invaders</em></span></span>™. Les jeux de style arcade
essaient de simuler les jeux d'arcade eux-mêmes. Il y en a tellement
qu'il est quasi impossible de tous les énumérer, mais on peut citer
les clones de
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Asteroids</em></span></span>™,
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Space
Invaders</em></span></span>™,
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Pac-Man</em></span></span>™,
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Missile
Command</em></span></span>™ et
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Galaxian</em></span></span>™.
</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="cardboard"/>2.2. Jeux de cartes, de logique et de
plateau</h3></div></div></div><p>
Les jeux de cartes simulent des jeux comme le poker ou le solitaire.
Le programme peut simuler votre ou vos adversaire(s).
</p><p>
Les jeux de logique simulent habituellement quelque casse-tête
logique bien connu comme <span class="productname"><span class="foreignphrase"><em class="foreignphrase">Master
Mind</em></span></span>™ ou le taquin.
</p><p>
Les jeux de plateau simulent les jeux que vous pourriez jouer sur une
table avec des amis, comme le
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Monopoly</em></span></span>™,
les échecs, et cætera. Le programme peut simuler votre adversaire.
</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="interactivefiction"/>2.3. Aventure en mode texte (ou
fiction interactive)</h3></div></div></div><p>Il était une fois, quand Apple ][, Commodore et Atari
dominaient le monde, les aventures en mode texte étaient le jeu dans
le vent des <span class="quote">« <span class="quote">gens éduqués</span> »</span>. On vous fournit
un scénario et vous pouvez interagir avec le monde dans lequel vous
vous trouvez :
</p><pre class="screen">
You are in a room. It is pitch dark and you're likely
to be eaten by a grue.
> Light lantern with match.
You light the lantern. This room appears to be a kitchen.
There's a table with a book in the center. You
also see an oven, refrigerator and a door leading east.
> Open the oven.
In the oven you see a brown paper bag.
> Take the bag. Open the bag. Close the oven.
Inside the bag is a clove of garlic and a cheese sandwich.
The oven door is now closed.
</pre><p>À cette époque, les aventures en mode texte étaient des
exécutables autonomes tenant entièrement sur une disquette ou une
cassette. Il y avait souvent un fichier de données et un
interpréteur. L'interpréteur lit les fichiers de données et fournit
l'interface de jeu. Les fichiers de données constituent le jeu en
lui-même, à la manière de la relation entre les <a class="link" href="#fps" title="2.7. Jeux de combat à la première personne (First Person Shooter, FPS)">jeux de combat à la première personne</a> et les
fichiers <code class="filename">wad</code>.</p><p>Le premier jeu d'aventure était
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Adventure</em></span></span>™
(en fait
<span class="quote">« <span class="quote"><span class="productname"><span class="foreignphrase"><em class="foreignphrase">ADVENT</em></span></span>™</span> »</span>,
écrit sur un PDP-1 en 1972). Vous pouvez toujours jouer à Adventure
(en fait, à un descendant) : il est fourni avec les
<span class="quote">« <span class="quote">jeux bsd</span> »</span> sur la plupart des distributions
Linux. Les aventures en mode texte ont été popularisées par <a class="link" href="#scottadams" title="11.5. Scott Adams Adventures (Adventure International)"><span class="personname"><span class="firstname">Scott</span> <span class="surname"> Adams</span></span></a> et ont atteint leur pic
de popularité à la fin des années 80 avec les jeux de <a class="link" href="#infocom" title="11.4. Infocom Adventures (Infocom, Activision)">Infocom</a> auxquels on peut également jouer
sous Linux.</p><p>Comme les modes graphiques se sont développés et sont devenus
plus puissants, les aventures en mode texte ont cédé la place aux
aventures en mode graphique. La mort de la fiction interactive a plus
ou moins coïncidé avec la faillite de Infocom.</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="graphicaladventure"/>2.4. Aventures graphiques</h3></div></div></div><p>Les aventures graphiques sont, en fin de compte, des aventures
en mode texte traitées aux anabolisants. Leur degré d'utilisation des
graphiques varie fortement. Dans les années 80, ils n'étaient qu'un
peu plus que des aventures en mode texte et affichaient un écran
rempli de graphiques statiques. Quand vous ramassiez un objet,
l'arrière-plan était repeint et l'objet disparaissait. L'exemple type
pourrait être les prétendues <span class="quote">« <span class="quote">aventures en haute
résolution</span> »</span> comme <span class="productname"><span class="foreignphrase"><em class="foreignphrase">The Wizard
And The Princess</em></span></span>™. Plus tard, les
aventures graphiques sophistiquées faisaient déambuler votre
personnage à l'écran, et vous pouviez même utiliser une souris, mais
l'interface restait purement textuelle.</p><p>Ensuite, il y eut les <span class="quote">« <span class="quote">aventures pilotées à la
souris</span> »</span> qui n'avaient plus d'interface textuelle, et
disposaient souvent de graphiques dynamiques, comme un chat se
baladant dans la pièce pendant que vous décidiez de la prochaine
action à effectuer. Dans ce type de jeux, vous pointez un objet
(p.ex. un livre) et vous pouvez choisir une action à partir d'une
liste déroulante de fonctions. Un genre d'aventure orientée objet. :)
Il n'y a pas beaucoup d'aventures graphiques écrites nativement pour
Linux. La seule dont je me rappelle est
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Hopkins FBI</em></span></span>™
(qui est mon jeu préféré sous Linux).</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="d0e405"/>2.5. Jeux de simulation</h3></div></div></div><p>Les simulations s'efforcent d'immerger le joueur dans un milieu
auquel il n'aurait normalement pas accès. Cela peut être quelque
chose comme un avion de chasse ou quelque chose d'imaginaire comme
une unité de combat mécanisée. Dans tous les cas, les simulations
recherchent le réalisme.</p><p>Certaines simulations ne comportent que peu ou pas de
stratégie. Elles vous placent simplement dans un cockpit pour vous
donner la sensation de piloter un avion. Certaines sont extrêmement
complexes, et la frontière est souvent ténue entre les simulations et
les <a class="link" href="#strategy" title="2.6. Jeux de stratégie">jeux de stratégie</a>. Un bon exemple
serait <span class="productname"><span class="foreignphrase"><em class="foreignphrase">Heavy Gear
III</em></span></span>™ ou
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Flight
Gear</em></span></span>™. De nos jours, les jeux de
simulation et de stratégie sont pratiquement indissociables mais, il
y a longtemps, les simulations se déroulaient en temps réel alors que
les jeux de stratégie se jouaient au tour à tour. Cette dénomination
est maladroite de nos jours, car un jeu comme
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Warcraft</em></span></span>™,
que tout le monde considère être un jeu de stratégie, serait une
simulation par définition.</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="strategy"/>2.6. Jeux de stratégie</h3></div></div></div><p>Les jeux de stratégie descendent des vieux jeux de plateau de
type <span class="productname"><span class="foreignphrase"><em class="foreignphrase">Avalon</em></span></span>™
comme <span class="productname"><span class="foreignphrase"><em class="foreignphrase">Panzer
Leader</em></span></span>™ et des vieux jeux de stratégie
militaire publiés par SSI. Généralement, ils simulent quelque type de
scénario. Il peut être pacifique, comme la gestion réussie d'une
ville
(<span class="productname"><span class="foreignphrase"><em class="foreignphrase">SimCity</em></span></span>™),
ou pas, comme la vente illégale de drogue
(<span class="productname"><span class="foreignphrase"><em class="foreignphrase">DrugWars</em></span></span>™)
ou un jeu de stratégie militaire acharné comme
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Myth II</em></span></span>™. Ce
type de jeux a habituellement une longue durée de vie et requiert
beaucoup de réflexion.</p><p>Les jeux de stratégie peuvent être à leur tour subdivisés en
deux classes : le temps réel et le tour à tour. Les jeux de
stratégie en temps réel sont basés sur le principe <span class="quote">« <span class="quote">un
petit moment d'inattention, et c'est perdu</span> »</span>. Par exemple,
vous gérez une ville et un incendie se déclenche quelque part. Au
plus il vous faut du temps pour mobiliser les pompiers, au plus
l'incendie fera du dégât. Les jeux de stratégie au tour à tour sont
similaires aux échecs : l'ordinateur joue, puis c'est au tour du
joueur, et cætera.</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="fps"/>2.7. Jeux de combat à la première personne (First
Person Shooter, FPS)</h3></div></div></div><p>Quelle est cette lumière au loin ? Cela doit être l'éclair
du fusil de chasse à double canon ! L'histoire des jeux FPS est
longue et tortueuse et a commencé quand id Software a ouvert le code
source de
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Doom</em></span></span>™. Ce
code a été repris (par d'autres équipes) et fusionné à de nombreuses
reprises. D'autres moteurs précédemment fermés se sont ouverts,
beaucoup de moteurs sont jouables via des émulateurs, beaucoup de
jeux FPS commerciaux ont été publiés pour Linux et nombre de moteurs
FPS étaient des projets <span class="foreignphrase"><em class="foreignphrase">open source</em></span> à
l'origine. Bien qu'il se peut que vous ne puissiez pas jouer à votre
jeu FPS <span class="emphasis"><em>préféré</em></span> sous Linux
(<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Half-Life</em></span></span>™
marche très bien sous <span class="application">winex</span>), Linux ne
présente certainement aucune lacune dans ce domaine !</p><p>Les FPS sont caractérisés par deux choses. Primo, vous tirez à
peu près sur tout ce qui bouge. Secundo, l'action a lieu à la
première personne, c.-à-d. au travers des yeux du personnage que vous
interprétez. Vous pouvez même voir vos mains ou votre arme en bas de
l'écran. Ils peuvent être du type fantastique
(<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Hexen</em></span></span>™),
science-fiction (<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Quake
II</em></span></span>™), réaliste
(<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Soldier Of
Fortune</em></span></span>™) parmi bien d'autres
possibilités.</p><p>Tout comme les aventures en mode texte, les FPS obéissent au
format moteur/fichier de données. Le moteur représente le jeu en
lui-même
(<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Doom</em></span></span>™,
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Quake</em></span></span>™,
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Heretic2</em></span></span>™)
et utilise les niveaux et les méchants décrits par les fichiers de
données (<code class="filename">doom2.wad</code>,
<code class="filename">pak0.pak</code>, etc). Beaucoup de jeux FPS permettent
de créer ses propres fichiers de données non commerciaux. Il y a des
centaines, si pas des milliers, de fichiers de données pour
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Doom</em></span></span>™ que
vous pouvez télécharger gratuitement depuis Internet. Souvent, les
sociétés libèrent leurs moteurs afin que la communauté
<span class="foreignphrase"><em class="foreignphrase">open source</em></span> puisse les améliorer.
Néanmoins, les fichiers de données originaux restent propriétaires.
À ce jour, vous devez toujours acheter
<code class="filename">doom.wad</code>.</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="d0e523"/>2.8. Jeux à défilement horizontal</h3></div></div></div><p>Les jeux à défilement horizontal sont similaires aux FPS mais
vous voyez votre personnage comme une figure 2D qui court sur
plusieurs écrans en tirant ou en effectuant d'autres tâches. Par
exemple, il y a
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Abuse</em></span></span>™ pour
Linux et le <span class="productname"><span class="foreignphrase"><em class="foreignphrase">Duke
Nukem</em></span></span>™ original. Ils ne sont pas
nécessairement violents, comme
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">xscavenger</em></span></span>™,
un clone du vieux jeu 8 bits <span class="productname"><span class="foreignphrase"><em class="foreignphrase">Lode
Runner</em></span></span>™.</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="d0e544"/>2.9. Jeux de combat à la troisième personne</h3></div></div></div><p>Similaires aux FPS, mais vous voyez votre personnage à la
troisième personne et en 3D. Dans les jeux de combat à la troisième
personne modernes, vous pouvez en général réaliser des
manœuvres dévastatrices comme les retournés acrobatiques et les
roulades à la Jackie Chan. L'exemple type serait
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Tomb
Raider</em></span></span>™. Sous Linux, on dispose de
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Heretic 2</em></span></span>™
et de <span class="productname"><span class="foreignphrase"><em class="foreignphrase">Heavy Metal
FAKK2</em></span></span>™.</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="rpg"/>2.10. Jeux de rôle (Role Playing Game, RPG)</h3></div></div></div><p>Quiconque a déjà joué à des jeux du style
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Dungeons &
Dragons</em></span></span>™ ou
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Call of
Cthulhu</em></span></span>™ sait exactement ce qu'est un
RPG. Vous interprétez un personnage (parfois plusieurs) doté de
certaines caractéristiques (p.ex. force, dextérité), d'aptitudes
(p.ex. explosifs, confection de paniers, mécanique) et de propriétés
(niveaux, argent liquide). Au fil du temps, le personnage devient
plus puissant et le jeu s'adapte en conséquence : p.ex., au lieu
de combattre des orcs, vous commencez à combattre des dragons noirs
dans les plus hauts niveaux. Les récompenses augmentent en
conséquence. Dans les bas niveaux, vous pourriez obtenir quelques
pièces d'or comme récompense suite à la victoire dans une
bataille ; plus loin, vous pourriez obtenir une épée magique ou
un fusil d'assaut ravageur.</p><p>Les RPG proposent généralement une quête ayant un épilogue bien
déterminé. Dans
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">nethack</em></span></span>™,
vous devez retrouver l'amulette de Yendor pour votre dieu. Dans
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Ultima II</em></span></span>™,
vous détruisez la sorcière maléfique Minax. À un certain moment,
votre personnage devient suffisamment puissant pour pouvoir vous
lancer et essayer de terminer la quête.</p><p>Bien que la série immensément populaire des
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Ultima</em></span></span>™,
écrite par <span class="personname"><span class="firstname">Richard</span> <span class="surname">
Garriot</span></span> (alias Lord British) pour Origin,
n'était pas le premier RPG, elle a popularisé et propulsé le genre
RPG sur le devant de la scène. <span class="productname"><span class="foreignphrase"><em class="foreignphrase">Ultima
I</em></span></span>™ a été publié en 1987 et est le point
de départ de 9 (en fonction du mode de comptage) suites très
populaires, se terminant par <span class="productname"><span class="foreignphrase"><em class="foreignphrase">Ultima IX:
Ascension</em></span></span>™. Vous pouvez <a class="link" href="#exult" title="11.7. Ultima 7 (Origin, Electronic Arts)">jouer à <span class="productname"><span class="foreignphrase"><em class="foreignphrase">Ultima
VII</em></span></span>™ sous Linux</a> avec
Exult.</p><p>Le jeu RPG type sous Linux est
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Rogue</em></span></span>™ (la
bibliothèque ncurses était à l'origine une routine de traitement
d'écran pour
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Rogue</em></span></span>™ !)
et on en décline des tas de variantes comme
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Zangband</em></span></span>™ et
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Nethack</em></span></span>™
(qui a lui-même de nombreuses variantes). Certains RPG sont assez
compliqués et constituent de véritables exploits de programmation. Il
semble y avoir une carence en RPG commerciaux sous Linux. Si l'on ne
compte pas les variantes de
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Rogue</em></span></span>™,
c'est également le cas des RPG <span class="foreignphrase"><em class="foreignphrase">open
source</em></span>.</p></div></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title"><a id="d0e638"/>3. Bibliothèques</h2></div></div></div><p>Voici différentes bibliothèques consacrées au jeu que l'on peut
trouver sous Linux.</p><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="glide2"/>3.1. Glide2</h3></div></div></div><p>Glide2 est une API et un pilote graphiques de bas niveau qui
accèdent aux fonctions 3D accélérées par matériel des cartes Voodoo
I, II et III de 3dfx sous <span class="application">XFree86</span>
3.x.</p><p>Un programme ne peut utiliser les fonctionnalités spéciales
accélérées matériellement de ces cartes qu'en utilisant la
bibliothèque Glide2 d'une des deux façons suivantes :</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>directement en utilisant Glide2
(<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Myth II</em></span></span>™,
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Descent
III</em></span></span>™)</p></li><li class="listitem"><p>indirectement en utilisant Mesa construit avec un
dorsal Glide2 pour simuler OpenGL
(<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Rune</em></span></span>™,
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Unreal
Tournament</em></span></span>™)</p></li></ul></div><p>3dfx a ouvert les spécifications et le code source à la
communauté <span class="foreignphrase"><em class="foreignphrase">open source</em></span>. Cela a permis
à <span class="personname"><span class="firstname">Daryll</span> <span class="surname">
Strauss</span></span> de porter Glide2 sous Linux,
autorisant les utilisateurs de <span class="application">XFree86</span> 3.x
à utiliser les cartes Voodoo I, II et III sous Linux.</p><p>Puisque Glide2 accède directement à la carte vidéo, les
applications Glide2 doivent soit être exécutées par root, soit être
setuid-root. Une façon d'éviter cela était de créer le module noyau
3dfx. Ce module (et son fichier de périphérique <code class="filename">/dev/3dfx</code>) permet l'accélération
graphique matérielle Glide2 pour les utilisateurs non-root
d'applications non-setuid.</p><p>Malheureusement, Glide2 n'est pas une solution d'avenir. Elle
n'est utilisée que pour les cartes Voodoo I, II et III (qui
deviennent obsolètes), sous <span class="application">XFree86</span> 3.x
(la majorité utilise <span class="application">XFree86</span> 4.x). Et
étant donné que 3dfx est maintenant une société défunte, il est
certain qu'aucun développement n'aura désormais lieu sur Glide2 et
qu'aucun nouveau jeu ne sera écrit en utilisant Glide2.</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="glide3"/>3.2. Glide3</h3></div></div></div><p>À la différence de Glide2, Glide3 n'est pas une API utilisée
pour la programmation de jeux. Elle n'existe que pour gérer le DRI
pour les cartes Voodoo III, IV et V sous
<span class="application">XFree86</span> 4.x. Aucun des jeux utilisant
Glide2 ne fonctionnera avec Glide3. Cela ne devrait pas être
surprenant dans la mesure où Glide2 et Glide3 prennent en charge des
cartes vidéo différentes et des versions de
<span class="application">XFree86</span> différentes. La seule carte vidéo
pouvant utiliser à la fois Glide2 (sous
<span class="application">XFree86</span> 3.x) et Glide3 (sous
<span class="application">XFree86</span> 4.x) est la Voodoo III. On
rapporte qu'une Voodoo III utilisant Glide2 surpasse une Voodoo III
utilisant Glide3.</p><p>Quand vous utilisez une Voodoo III, IV ou V sous
<span class="application">XFree86</span> 4.x, vous devez utiliser une
version de <a class="link" href="#mesa" title="3.4. Mesa">Mesa</a> qui a été compilée pour
utiliser Glide3 comme dorsal afin de pouvoir utiliser l'accélération
matérielle OpenGL sur votre système.</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="opengl"/>3.3. OpenGL</h3></div></div></div><p>OpenGL est une interface de programmation graphique de haut
niveau développée à l'origine par SGI, et qui est devenue un standard
industriel pour la programmation 2D et 3D. Elle est définie et
soutenue par le Architectural Revision Board
(<acronym class="acronym">ARB</acronym>), une organisation qui inclut des
représentants de SGI, IBM, DEC et Microsoft. OpenGL fournit un jeu de
fonctionnalités puissant, complet et générique pour les opérations
graphiques 2D et 3D.</p><p>OpenGL est constitué de 3 parties :</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>GL : les appels OpenGL de
base</p></li><li class="listitem"><p>GLU : les appels utilitaires</p></li><li class="listitem"><p>GLUT : le traitement des événements de
fenêtre indépendants du système (événements de souris, du clavier,
et cætera).</p></li></ul></div><p>OpenGL n'est pas seulement une API, c'est aussi une
implémentation, écrite par SGI. Elle essaie d'utiliser l'accélération
matérielle pour diverses opérations graphiques quand elle est
disponible, en fonction de de la carte vidéo dont vous disposez. Si
l'accélération matérielle n'est pas possible pour une tâche
particulière, OpenGL retombe sur le rendu logiciel. Cela signifie que
si vous vous procurez OpenGL chez SGI, et que vous voulez disposer
d'une accélération matérielle quelconque, elle doit être écrite en
OpenGL et compilée spécifiquement pour une certaine carte graphique.
Sinon, vous retomberez sur le rendu logiciel. Cela s'applique
également aux clones d'OpenGL, comme Mesa.</p><p>OpenGL est l'équivalent <span class="foreignphrase"><em class="foreignphrase">open
source</em></span> de Direct3D, un composant de <a class="link" href="#directx" title="3.14. DirectX">DirectX</a>. Une différence importante est que
puisque OpenGL est ouvert (et DirectX fermé), les jeux écrits en
OpenGL sont beaucoup plus faciles à porter et à co-développer sous
Linux que ne le sont les jeux utilisant DirectX.</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="mesa"/>3.4. Mesa</h3></div></div></div><p>Mesa <<a class="ulink" href="http://www.mesa3d.org" target="_top">http://www.mesa3d.org</a>> est
une implémentation libre de l'API OpenGL, conçue et écrite par Brian
Paul. Bien qu'elle ne soit pas officiellement certifiée (cela
nécessiterait plus d'argent que n'en dispose un projet
<span class="foreignphrase"><em class="foreignphrase">open source</em></span>), elle constitue une
implémentation d'OpenGL presque totalement conforme aux
spécifications de l'ARB. On rapporte que Mesa est même plus rapide
que la propre implémentation OpenGL de SGI.</p><p>Tout comme OpenGL, Mesa utilise l'accélération matérielle quand
c'est possible. Quand une tâche graphique particulière ne peut être
accélérée matériellement par la carte vidéo, elle est rendue en
logiciel ; la tâche est alors accomplie par votre processeur.
Cela signifie qu'il existe différentes moutures de Mesa en fonction
du type de carte vidéo dont vous disposez. Chaque mouture utilise une
bibliothèque différente comme moteur de rendu. Par exemple, si vous
avez une Voodoo I, II ou III sous <span class="application">XFree86</span>
3.x, vous devriez utiliser mesa+glide2 (écrit par <span class="personname"><span class="firstname">David</span> <span class="surname">
Bucciarelli</span></span>) qui est l'implémentation Mesa de
OpenGL qui utilise Glide2 comme dorsal pour rendre les opérations
graphiques.</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="d0e783"/>3.5. DRI</h3></div></div></div><p>Le rendu des graphiques comporte 3 protagonistes :
l'application cliente (comme <span class="productname"><span class="foreignphrase"><em class="foreignphrase">Quake
3</em></span></span>™), le serveur X et le matériel (la
carte graphique). Auparavant, les applications clientes ne pouvaient
pas écrire directement sur le matériel, et il y avait une bonne
raison à cela : un programme à qui l'on permet un accès en
écriture direct sur le matériel peut faire planter le système de
plusieurs façons. Plutôt que de faire confiance aux programmeurs pour
écrire des programmes (accédant au matériel) totalement exempts de
bogues et coopératifs, Linux l'a tout simplement interdit. Néanmoins,
cela a changé sous <span class="application">XFree</span> 4.x avec
l'infrastructure de rendu direct (<a class="ulink" href="http://www.dri.sourceforge.net" target="_top">Direct Rendering
Infrastructure</a>, <acronym class="acronym">DRI</acronym>). La DRI autorise les
clients X à écrire des informations de rendu 3D directement sur la
carte vidéo d'une manière sûre et coopérative.</p><p>DRI fait abstraction du serveur X afin que le pilote 3D (Mesa
ou OpenGL) puisse parler directement au matériel. Cela améliore les
performances. Les informations de rendu 3D ne doivent même pas subir
d'accélération matérielle. D'un point de vue technique, cela a
plusieurs avantages :</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Les données associées aux sommets de polygones ne
doivent pas être codées/décodées via GLX.</p></li><li class="listitem"><p>Les données graphiques ne sont pas envoyées via une
socket au serveur X.</p></li><li class="listitem"><p>Sur les machines mono-processeur, le CPU ne doit
pas changer de contexte entre XFree86 et son client pour rendre les
graphiques.</p></li></ul></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="d0e813"/>3.6. GLX</h3></div></div></div><p>GLX est l'extension X utilisée par les programmes OpenGL ;
c'est le liant entre l'OpenGL indépendant de la plate-forme, et X
dépendant de la plate-forme.</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="d0e818"/>3.7. Utah GLX</h3></div></div></div><p>Utah-GLX est le précurseur de DRI. Certaines décisions de
conception sont différentes en ce qui concerne la séparation des
données et des méthodes d'accès à la carte vidéo, comme le repos sur
l'accès root plutôt que la création de l'infrastructure noyau
permettant un accès sécurisé. Il prend en charge quelques cartes qui
ne sont pas bien gérées par le DRI comme la famille ATI Rage Pro, la
S3 Virge (bien que quiconque l'utilise pour jouer est pour ainsi dire
cinglé), et un pilote TNT/TNT2 <span class="foreignphrase"><em class="foreignphrase">open
source</em></span> (très incomplet). Le pilote TNT/TNT2 est basé
sur la rétro-ingénierie de la publication du code source obscurci des
pilotes X 3.3 par nVidia. Néanmoins, ils sont très incomplets et,
pour tout dire, inutilisables.</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="xlib"/>3.8. xlib</h3></div></div></div><p>De temps à autre, vous verrez quelques malades (dit avec
respect) qui écrivent un jeu en xlib. C'est un groupe de
bibliothèques C qui comportent l'interface de programmation du plus
bas niveau pour <span class="application">XFree86</span>. Toute
programmation graphique sous X fait <span class="emphasis"><em>in fine</em></span>
usage de la bibliothèque xlib.</p><p>Il n'est pas exagéré de dire que xlib est volumineux,
mystérieux et compliqué. De ce fait, il existe des tas de
bibliothèques comme <a class="link" href="#sdl" title="3.10. SDL (Simple DirectMedia Layer)">SDL</a> pour les
graphiques 2D, et <a class="link" href="#opengl" title="3.3. OpenGL">OpenGL</a> pour les
graphiques 3D et les jeux d'éléments graphiques (<a class="link" href="#widgetset" title="3.9. Widgets"><span class="foreignphrase"><em class="foreignphrase">widgets</em></span></a>)
pour les éléments graphiques à l'intérieur des fenêtres qui cachent
les détails de différents aspects de la programmation xlib.</p><p>Bien que quelques jeux soient écrits avec xlib, comme l'éditeur
Doom Yadex, xlib en lui-même ne peut pas raisonnablement servir de
bibliothèque d'écriture de jeux. La plupart des jeux n'ont pas besoin
de l'interface de bas niveau fournie par xlib. De plus, en utilisant
les bibliothèques de plus haut niveau, un programmeur de jeux peut
développer son jeu sur plusieurs plates-formes, même celles qui
n'utilisent pas <span class="application">XFree86</span>.</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="widgetset"/>3.9. <span class="foreignphrase"><em class="foreignphrase">Widgets</em></span></h3></div></div></div><p>Les éléments graphiques (widgets) sont des objets qui
constituent l'interface d'une application graphique. Ils incluent des
choses comme les boîtes d'entrée de texte, les menus déroulants, les
barres de défilement, les boutons radio et bien d'autres choses. Un
jeu d'éléments graphiques (widget set) est une collection d'éléments
graphiques apparentés qui sont conçus pour avoir une interface
commune et un aspect cohérent. Gtk est le jeu d'éléments graphiques
canonique sous Linux, mais il y en a beaucoup d'autres comme fltk (de
petite taille, écrit en C++), Xaw, Qt (le jeu d'éléments graphiques
de KDE) et Motif (celui utilisé par Netscape). Motif régnait dans le
monde Unix, mais sa licence d'utilisation était très coûteuse. L'Open
Group a finalement ouvert la licence de Motif pour les systèmes
d'exploitation <span class="foreignphrase"><em class="foreignphrase">open source</em></span>, mais
c'était trop tard. Il y a beaucoup de jeux d'éléments graphiques
complètement <span class="foreignphrase"><em class="foreignphrase">open source</em></span> qui sont plus
complets et plus beaux que Motif, y compris Lesstif, un clone
totalement gratuit de Motif.</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="sdl"/>3.10. SDL (Simple DirectMedia Layer)</h3></div></div></div><p><a class="ulink" href="http://www.libsdl.org" target="_top">SDL</a> est une
bibliothèque de <span class="personname"><span class="firstname">Sam</span> <span class="surname">
Lantiga</span></span> (diplômé de l'UCD !). C'est en
fait une méta-bibliothèque, c.-à-d. que ce n'est pas seulement une
bibliothèque graphique qui cache les détails de la programmation
xlib, mais c'est aussi une interface simple d'utilisation pour le
traitement du son, de la musique et des événements. Sa licence est la
LGPL et elle prend également en charge les joysticks et OpenGL. À la
différence de <a class="link" href="#xlib" title="3.8. xlib">xlib</a>, SDL convient fort
bien à la programmation de jeux.</p><p>Le plus impressionnant dans SDL est son caractère
multi-plates-formes. Mis à part quelques détails, un programme écrit
en SDL compilera sous Linux, MS Windows, BeOS, MacOS, MacOS X,
Solaris, IRIX, FreeBSD, QNX et OSF. Il existe diverses extensions
permettant de manipuler à peu près tous les formats graphiques, lire
des vidéos MPEG, afficher des polices
<span class="foreignphrase"><em class="foreignphrase">truetype</em></span>, gérer les acteurs
(<span class="foreignphrase"><em class="foreignphrase">sprites</em></span>) et à peu près tout ce qui
est imaginable. SDL est un exemple de ce à quoi toutes les
bibliothèques graphiques devraient aspirer. </p><p>Sam avait une motivation cachée pour l'écriture d'une si
chouette bibliothèque : il était le programmeur en chef de Loki
Software (il code maintenant pour Blizzard Software), qui utilisait
SDL dans tous ses jeux sauf
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Quake3</em></span></span>™.</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="ggi"/>3.11. GGI</h3></div></div></div><p><a class="ulink" href="http://www.ggi-project.org" target="_top">GGI</a> est un
projet qui vise à implémenter une couche d'abstraction graphique dans
du code de bas niveau, de placer la prise en charge du matériel
graphique dans une base de code commune, et d'apporter une plus
grande stabilité et portabilité aux applications graphiques. Les
applications LibGGI tournent entre autres sous SVGAlib, fb et X. Si
l'on en juge à leurs captures d'écran, c'est une bibliothèque assez
puissante.</p><p>Les applications qui utilisent LibGGI directement comportent
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Heroes</em></span></span>™,
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Ultrapoint</em></span></span>™,
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Quake</em></span></span>™ et
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Berlin</em></span></span>™. La
plupart des applications qui utilisent SVGALib peuvent être exécutées
sous X ou sous n'importe quel autre dorsal LibGGI en utilisant une
bibliothèque enveloppe qui réimplémente <a class="link" href="#svgalib" title="3.12. SVGAlib, framebuffer et console">SVGALib</a> en utilisant LibGGI. Les
applications <a class="link" href="#sdl" title="3.10. SDL (Simple DirectMedia Layer)">SDL</a> et <a class="link" href="#clanlib" title="3.15. Clanlib">clanlib</a> peuvent s'afficher avec LibGGI mais
les pilotes natifs de ces bibliothèques sont généralement plus
rapides ; néanmoins, c'est un bon moyen pour que des
applications SDL, clanlib et SVGALib s'exécutent là où elles
n'auraient pas pu le faire auparavant.</p><p>GGI a un projet sœur, KGI, qui développe une alternative
de niveau noyau aux systèmes du type
<span class="foreignphrase"><em class="foreignphrase">framebuffer</em></span> linux et DRI. Ce projet
est beaucoup moins avancé que LibGGI lui-même, mais promet de
combiner les vitesses de niveau DRI à la stabilité et à la sécurité
auxquelles aspirent les utilisateurs UNIX.</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="svgalib"/>3.12. SVGAlib, framebuffer et console</h3></div></div></div><p>La console est l'écran noir non graphique que vous voyez
lorsque votre ordinateur démarre pour la première fois (et qu'aucune
application du genre <span class="application">xdm</span> ou
<span class="application">gdm</span> ne tourne). C'est différent de
l'environnement X qui comporte toutes sortes d'éléments graphiques
comme les <span class="application">xterm</span>. Une idée fausse fort
répandue est de croire que X signifie
<span class="quote">« <span class="quote">graphique</span> »</span> et que console signifie
<span class="quote">« <span class="quote">non graphique</span> »</span>. Il peut assurément y avoir
des graphiques en mode console ; nous discuterons des deux
manières les plus habituelles de procéder.</p><p>SVGAlib est une bibliothèque graphique qui vous permet de
dessiner des graphiques sur la console. Il existe beaucoup
d'applications graphiques et de jeux utilisant SVGAlib comme
<span class="application">zgv</span> (un visualisateur d'images en mode
console), <span class="application">prboom</span> et
<span class="application">hhexen</span>. J'apprécie cette bibliothèque et
les jeux graphiques en mode console en général : ils sont
extrêmement rapides, plein écran et captivants. SVGAlib souffre de
trois défauts. Primo, les exécutables SVGAlib doivent être lancés par
root ou être setuid-root (néanmoins, la bibliothèque abandonne les
privilèges root immédiatement après le début de l'exécution).
Secundo, SVGAlib est dépendant de la carte vidéo : si votre
carte vidéo n'est pas prise en charge par SVGAlib, c'est pas de
chance. Tertio, SVGAlib est spécifique à Linux : les jeux
écrits en SVGAlib ne fonctionneront <span class="emphasis"><em>que</em></span> sous
Linux.</p><p>Les <span class="foreignphrase"><em class="foreignphrase">framebuffers</em></span> sont des
consoles implémentées par un mode graphique plutôt qu'un mode texte
du BIOS. Pourquoi simuler un mode texte dans un environnement
graphique ? Cela permet d'exécuter des applications graphiques
en console, comme p.ex. de choisir la police affichée en console (qui
est normalement fixée par le BIOS). On peut trouver un bon
<span class="quote">« <span class="quote">Guide pratique du frame-buffer</span> »</span> (<a class="ulink" href="http://www.traduc.org/docs/howto/lecture/Framebuffer-HOWTO.html" target="_top"><span class="foreignphrase"><em class="foreignphrase">Framebuffer-HOWTO</em></span></a>)
sur le LDP. Les jeux en console graphique écrits en utilisant le
framebuffer souffrent des mêmes problèmes que ceux utilisant
SVGAlib : le support matériel est limité, et le code ne
fonctionnera que sous Linux.</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="openal"/>3.13. OpenAL</h3></div></div></div><p><a class="ulink" href="http://www.openal.org" target="_top">OpenAL</a> a pour
objectif d'être au son ce que OpenGL est aux graphiques. Développé
conjointement par Loki Software et Creative Labs, elle a pour but
d'être une API neutre et multi-plates-formes pour le son. Sa licence
est la LGPL et les spécifications peuvent être obtenues gratuitement
depuis le site web de OpenAL. OpenAL est entièrement fonctionnel,
mais depuis que Loki Software n'existe plus, son développement futur
est incertain.</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="directx"/>3.14. DirectX</h3></div></div></div><p>DirectX est une collection d'API multimédia propriétaires,
développée à l'origine par Microsoft en 1995, pour ses différents
systèmes d'exploitation Windows. C'est une erreur de prétendre que
<span class="quote">« <span class="quote">DirectX est similaire à OpenGL</span> »</span> ou
<span class="quote">« <span class="quote">DirectX est similaire à SDL</span> »</span>, comme il est
souvent dit dans les didacticiels DirectX. Les API multimédia sont
plus centralisées sous Windows qu'elles ne le sont sous Linux. Une
formulation plus précise serait : <span class="quote">« <span class="quote">DirectX est
similaire à DRI, OpenGL et SDL combinés</span> »</span>. En juin 2003,
la version la plus récente de DirectX était la 9.0. Les composants de
DirectX sont : </p><div class="variablelist"><dl class="variablelist"><dt><span class="term">DirectDraw</span></dt><dd><p>DirectDraw
fournit un accès direct à la mémoire vidéo, comme DRI, de sorte
que les graphiques 2D peuvent être placés directement sur la
carte vidéo. DirectDraw est similaire au composant graphique de
SDL, mais l'accès direct à la carte vidéo est effectué par DRI
plutôt que par SDL. C'est pourquoi un jeu peut facilement faire
tomber un système Windows mais ne devrait pas le faire avec un
système Linux.</p></dd><dt><span class="term">Direct3D (D3D)</span></dt><dd><p>Direct3D,
comme OpenGL, fournit une API graphique 3D. Alors qu'OpenGL est
<span class="foreignphrase"><em class="foreignphrase">open source</em></span>, de plus bas niveau et
compile sous une multitude de systèmes d'exploitation, D3D est
propriétaire, de plus haut niveau et ne compile que sous Windows.
D3D est d'abord apparu dans DirectX 2, en
1996.</p></dd><dt><span class="term">DirectXAudio</span></dt><dd><p>Direct Audio est une combinaison de deux API
audio, DirectSound et DirectMusic, qui offrent un accès direct à
la carte son pour jouer du son et de la
musique.</p></dd><dt><span class="term">DirectInput</span></dt><dd><p>DirectInput permet l'utilisation de périphériques
d'entrée de jeu comme les
joysticks.</p></dd><dt><span class="term">DirectPlay</span></dt><dd><p>DirectPlay offre une gestion réseau
simplifiée pour les jeux multi-joueurs.</p></dd><dt><span class="term">DirectShow</span></dt><dd><p>DirectShow prend en charge les fichiers vidéo
comme <code class="filename">AVI</code> et <code class="filename">MPG</code>. C'était une API distincte de
DirectX, mais elle a été intégrée dans DirectX
8.</p></dd><dt><span class="term">DirectSetup</span></dt><dd><p>Cette API
facilite l'installation de DirectX à partir d'une application
pour simplifier l'installation des
jeux.</p></dd></dl></div><p>DirectX est un peu pris en charge par <a class="link" href="#winex" title="10.5.3. winex"><span class="application">winex</span></a>, l'est mal
par <a class="link" href="#wine" title="10.5.1. wine"><span class="application">wine</span></a>,
l'est à peine par <a class="link" href="#vmware" title="10.5.5. VMWare"><span class="application">vmware</span></a> et ne l'est
pas du tout par <a class="link" href="#win4lin" title="10.5.4. Win4Lin"><span class="application">Win4Lin</span></a>.</p><p>Remarque sur la portabilité : pour chaque composant de DirectX,
on peut trouver plusieurs bibliothèques correspondantes sous Linux.
Mieux encore, un programmeur de jeux qui utilise des bibliothèques
comme OpenGL, GGI ou SDL écrira un jeu qui compilera trivialement
sous Windows, Linux et une multitude d'autres systèmes
d'exploitation. Pourtant, les sociétés productrices de jeux
persistent à utiliser DirectX et limitent de ce fait leur public aux
seuls utilisateurs Windows. Si vous écrivez des jeux, veuillez
envisager l'utilisation de bibliothèques multi-plates-formes et
rester éloigné de DirectX.</p><p>Une société nommée realtechVR a démarré un projet
<span class="foreignphrase"><em class="foreignphrase">open source</em></span>, <a class="ulink" href="http://www.v3x.net/directx" target="_top">DirectX Port</a> qui, comme
<span class="application">wine</span>, fournit une couche d'émulation de
Direct3D qui implémente les appels Direct3D. Le projet se concentrait
sur la plate-forme BeOS, mais l'est maintenant sur MacOS et Linux.
Vous pouvez récupérer la toute dernière mouture depuis leur
référentiel CVS sur <<a class="ulink" href="http://sourceforge.net/projects/dxglwrap" target="_top">http://sourceforge.net/projects/dxglwrap</a>>.</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="clanlib"/>3.15. Clanlib</h3></div></div></div><p>ClanLib est un kit d'outils de développement de niveau
intermédiaire. Au plus bas niveau, il fournit des outils indépendants
de la plate-forme (dans la limite du possible en C++) de gestion de
l'affichage, du son, des entrées, du réseau, des fichiers, des
threads, et cætera. ClanLib construit un cadre générique de développement
de jeu, vous offrant une gestion aisée des ressources, une
réplication des objets sur le réseau, des interfaces utilisateur
graphiques (GUI) autorisant les thèmes, les langages de scripts dans
les jeux et plus encore.</p></div></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title"><a id="d0e1094"/>4. <span class="application">XFree86</span> et vous</h2></div></div></div><p>Si vous avez l'intention de jouer sous X, il est primordial que
vous le connaissiez quelque peu. Le <span class="quote">« <span class="quote">Guide pratique de
l'utilisateur de X Window</span> »</span> (<a class="ulink" href="http://www.traduc.org/docs/howto/lecture/XWindow-User-HOWTO.html" target="_top"><span class="foreignphrase"><em class="foreignphrase">XWindow-User-HOWTO</em></span></a>),
et en particulier <strong class="userinput"><code>man XF86Config</code></strong>
constituent des lectures <span class="emphasis"><em>requises</em></span>. N'essayez pas
d'y échapper : lisez-les. Elles ont un très bon rapport
signal/bruit. Beaucoup de problèmes peuvent être résolus facilement si
vous savez vous y retrouver dans <code class="filename">XF86Config</code> (ou
<code class="filename">XF86Config-4</code>).</p><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="d0e1120"/>4.1. Recueillir des informations sur votre système X</h3></div></div></div><p>Que vous essayiez de diagnostiquer un problème X ou que vous
requerriez de l'aide sur une liste de diffusion ou un groupe de
discussion Usenet, vous devrez disposer d'un maximum d'informations.
Voici quelques outils qui peuvent vous y aider :</p><div class="sect3"><div class="titlepage"><div><div><h4 class="title"><a id="d0e1125"/>4.1.1. <span class="command"><strong>probeonly</strong></span></h4></div></div></div><p>La sortie de <span class="command"><strong>probeonly</strong></span> constitue l'un des
meilleurs outils de diagnostic et l'une des meilleures sources
d'informations sur votre système. Pour l'utiliser, arrêtez X le cas
échéant et tapez depuis une console :</p><pre class="screen">
X -probeonly 2> X.out
</pre><p>La sortie de X va sur stderr, et il faut donc rediriger
stderr avec <span class="quote">« <span class="quote">2></span> »</span> dans un fichier nommé
<code class="filename">X.out</code>. Ce fichier contiendra tout ce qu'il y a
à savoir sur votre système X. Il est crucial que vous connaissiez
la différence entre les différentes marques que vous pourrez
rencontrer dans la sortie de
<span class="command"><strong>probeonly</strong></span> :</p><pre class="screen">
(--) probed (**) from config file (==) default setting
(++) from command line (!!) notice (II) informational
(WW) warning (EE) error (??) unknown.
</pre><p>Voici un exemple de quelques informations que j'ai pu
glaner :</p><p>J'utilise des couleurs 16 bits :</p><pre class="screen">
(**) TDFX(0): Depth 16, (--) framebuffer bpp 16
</pre><p>X a détecté que la puce et la mémoire RAM de ma carte vidéo
sont :</p><pre class="screen">
(--) Chipset 3dfx Voodoo5 found
(--) TDFX(0): VideoRAM: 32768 kByte Mapping 65536 kByte
</pre></div><div class="sect3"><div class="titlepage"><div><div><h4 class="title"><a id="d0e1160"/>4.1.2. Obtenir des informations sur votre configuration :
<span class="command"><strong>xvidtune</strong></span></h4></div></div></div><p><span class="command"><strong>xvidtune</strong></span> est votre ami si votre écran X
est un peu trop décalé sur la droite, ou si la hauteur est trop
réduite pour remplir votre écran. Néanmoins, c'est également un
très bon outil de diagnostic. Il affiche :</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>l'intervalle <span class="hardware">hsync/vsync</span>
(valeurs de synchronisation horizontale et verticale
respectivement) spécifié dans votre fichier
<code class="filename">XF86Config</code>.</p></li><li class="listitem"><p>les 4 nombres horizontaux et les 4 nombres
verticaux qui définissent votre mode vidéo (le premier couple
horizontal/vertical indique la résolution de l'écran). Ces 8
nombres vous indiqueront quelle ligne de mode
(<span class="foreignphrase"><em class="foreignphrase">modeline</em></span>) votre X utilise. Voyez
le <span class="quote">« <span class="quote">Guide pratique de configuration vidéo de
XFree86</span> »</span> (<a class="ulink" href="http://www.traduc.org/docs/howto/lecture/XWindow-User-HOWTO.html" target="_top"><span class="foreignphrase"><em class="foreignphrase">XFree86-Video-Timings-HOWTO</em></span></a>)
pour plus d'informations. Notez que des spécifications explicites
ne sont plus nécessaires, car XFree 4.0.1 (et les versions
ultérieures) les calcule automatiquement à partir des
possibilités de votre moniteur et de votre carte vidéo.
Néanmoins, c'est parfois utile en cas de matériel exotique ou si
vous voulez un peu bidouiller votre affichage.</p></li><li class="listitem"><p>La <span class="quote">« <span class="quote">fréquence d'horloge</span> »</span>
à laquelle tourne votre carte vidéo.</p></li></ul></div></div><div class="sect3"><div class="titlepage"><div><div><h4 class="title"><a id="d0e1198"/>4.1.3. Obtenir des informations sur votre configuration :
<span class="command"><strong>xwininfo</strong></span></h4></div></div></div><p><span class="command"><strong>xwininfo</strong></span> vous indique toutes sortes
d'informations sur les fenêtres X. L'arrière-plan est également
assimilé à une fenêtre. Ainsi, quand il vous demande de cliquer sur
la fenêtre pour laquelle vous désirez des informations, cliquez sur
votre arrière-plan. Il vous indique entre autres la résolution de
l'écran et de la fenêtre, le nombre de couleurs (NdT : plus
précisément, le nombre de bits utilisés pour les représenter),
l'état de gravité de la fenêtre (qui donne une indication au
gestionnaire de fenêtres sur l'endroit où placer les nouvelles
fenêtres) et l'utilisation du cache d'affichage
(<span class="foreignphrase"><em class="foreignphrase">backing store</em></span>).</p></div><div class="sect3"><div class="titlepage"><div><div><h4 class="title"><a id="d0e1210"/>4.1.4. Autres sources d'information</h4></div></div></div><p><span class="command"><strong>xdpyinfo</strong></span> vous donne des informations
intéressantes, comme la version de X et les extensions chargées
(inestimable quand vous essayez de voir ce qui manque, comme GLX,
DRI, XFree86-VidMode, et cætera).</p></div><div class="sect3"><div class="titlepage"><div><div><h4 class="title"><a id="d0e1217"/>4.1.5. Obtenir des informations sur votre système 3D</h4></div></div></div><p><span class="command"><strong>glxinfo</strong></span> donne des tas d'informations
utiles sur OpenGL comme l'utilisation ou non du rendu direct, les
versions de glx et mesa actuellement installées, les chaînes de
vendeur/moteur de rendu, les fichiers de bibliothèque GL utilisés,
et cætera.</p></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="nowm"/>4.2. Jouer à des jeux sous X sans gestionnaire de
fenêtres</h3></div></div></div><p>
Quand vous jouez à un jeu sous X, vous devriez envisager de ne pas
utiliser de gestionnaire de fenêtres. Des <span class="quote">« <span class="quote">poids
lourds</span> »</span> comme enlightenment produiront un
ralentissement perceptible ; même des plus légers comme twm
vous volent des cycles processeur (et dans le cas de twm, même les
jeux plein écran auront un cadre autour de leur fenêtre). Pour
exécuter un jeu sans gestionnaire de fenêtres, modifiez
<code class="filename">.xinitrc</code> dans votre répertoire personnel.
Voici à quoi ressemble mon
<code class="filename">.xinitrc</code> :</p><pre class="screen">
#quake3 +set r_gldriver libGR.so.1
#exec ut
#lsdldoom -server 2
#exec tribes2
exec /usr/bin/enlightenment
</pre><p>Vous y remarquerez généralement un gestionnaire de fenêtres
et/ou de bureau (GNOME ou KDE). Commentez les lignes contenant un
gestionnaire de fenêtres et/ou de bureau avec un signe dièse (#) et
placez votre jeu sur une nouvelle ligne accompagné des arguments de
ligne de commandes éventuels. Si votre jeu n'est pas situé dans votre
<code class="envar">$PATH</code>, donnez le nom de chemin complet. Notez que ceci
ne s'applique qu'aux personnes utilisant <span class="command"><strong>startx</strong></span>
pour démarrer X.</p><p>Je n'utilise jamais des choses comme <span class="command"><strong>gdm</strong></span> ou
le niveau d'exécution 5 (je ne suis donc pas sûr de mon fait), mais
je suspecte que si vous le faites, vous devrez agir un peu
différemment. Ma recommandation est d'aller en mode mono-utilisateur
(niveau d'exécution 1) avec :</p><pre class="screen">
# telinit 1
</pre><p>ensuite d'éditer <code class="filename">.xinitrc</code>, et de revenir
au niveau 5 avec</p><pre class="screen">
# telinit 5
</pre><p>Ensuite, quand vous arrêtez de jouer, allez au niveau 1,
modifiez <code class="filename">.xinitrc</code> et revenez au niveau 5. Je
n'ai jamais expérimenté cela, et je ne peut donc pas me prononcer
avec certitude, mais vous pourriez devoir tuer
<span class="application">gdm</span>. J'apprécierai du retour à ce
sujet.</p></div></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title"><a id="d0e1270"/>5. Divers</h2></div></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="mtrr"/>5.1. <span class="hardware">Registres d'intervalles
mémoire</span></h3></div></div></div><p>À partir des processeurs de classe Pentium (y compris Athlon,
K6-2 et d'autres CPU), ces registres (Memory Type Range Registers,
MTRR) contrôlent la façon dont le processeur accède aux intervalles
d'adresses mémoire. Pour résumer, ce mécanisme remplace plusieurs
petites écritures séparées sur la carte vidéo par une seule écriture
(une rafale). Cela améliore l'efficacité des écritures sur la carte
vidéo et peut accélérer le rendu graphique de 250 % voire
plus !</p><p>Voyez
<code class="filename">/usr/src/linux/Documentation/mtrr.txt</code> pour les
détails. Notez que, depuis que ce fichier a été écrit,
<span class="application">XFree86</span> a été amélioré pour détecter
automatiquement l'adresse de base et la taille de votre RAM vidéo et
configurer les MTRR.</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="milkingperformance"/>5.2. Exploiter au maximum les
ressources de votre système</h3></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Si pour une raison quelconque, vous utilisez X 3.3,
suivez les instructions données dans <code class="filename">mtrr.txt</code>
(voyez la <a class="xref" href="#mtrr" title="5.1. Registres d'intervalles mémoire">Section 5.1, « <span class="hardware">Registres d'intervalles
mémoire</span> »</a>) pour configurer les MTRR.
X 4.0 fait cela automatiquement pour vous.</p></li><li class="listitem"><p>Si vous jouez sous X, n'exécutez pas de gestionnaire de
fenêtres, et <span class="emphasis"><em>certainement pas</em></span> de
gestionnaire de bureau comme GNOME ou KDE. Voyez la <a class="xref" href="#nowm" title="4.2. Jouer à des jeux sous X sans gestionnaire de fenêtres">Section 4.2, « Jouer à des jeux sous X sans gestionnaire de
fenêtres »</a> pour plus de détails.</p><p>Arrêtez tous les processus non essentiels (en tant que
root) en utilisant les scripts de démarrage de votre système.
Sous Debian, les scripts de démarrage pour le niveau d'exécution
2 sont situés dans <code class="filename">/etc/rc2.d/</code>. Vous pouvez arrêter un
service d'une manière ordonnée en envoyant à son script de
démarrage la commande
<span class="quote">« <span class="quote">stop</span> »</span> :</p><pre class="screen">
# cd /etc/rc2.d
# ./ntpd stop
</pre><p>Une autre possibilité (radicale) est de simplement vous
placer en mode mono-utilisateur avec</p><pre class="screen">
# telinit 1
</pre><p>Cela vous débarrassera même de
<span class="command"><strong>getty</strong></span> ; votre système s'exécutera avec
uniquement ce qui est absolument crucial pour son fonctionnement.
Il y aura quelque chose comme 10 processus en cours d'exécution.
L'inconvénient est que vous devez jouer en tant que root. Mais
votre table de processus sera une ville fantôme, et tous les
cycles CPU supplémentaires bénéficieront à votre
jeu.</p></li></ul></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="d0e1326"/>5.3. À propos des bibliothèques sous Linux</h3></div></div></div><p>Un problème souvent rencontré est un fichier de bibliothèque
non trouvé. Ils sont quelque peu mystérieux et ont des noms
bizarres ; nous en parlerons donc un peu. Il y a deux types de
bibliothèques, les statiques et les dynamiques. Quand vous compilez
un programme, <span class="command"><strong>gcc</strong></span> utilise par défaut les
bibliothèques dynamiques, mais vous pouvez lui faire utiliser des
bibliothèques statiques en utilisant l'option
<code class="option">-static</code>. À moins que vous n'ayez l'intention de
compiler des jeux à partir du code source, vous serez principalement
intéressés par les bibliothèques dynamiques.</p><div class="sect3"><div class="titlepage"><div><div><h4 class="title"><a id="d0e1337"/>5.3.1. Bibliothèques dynamiques</h4></div></div></div><p>Les bibliothèques dynamiques, aussi appelées
<span class="quote">« <span class="quote">bibliothèques partagées</span> »</span>, fournissent du
code objet à une application alors qu'elle s'exécute, c.-à-d. que
le code est lié à l'exécutable au moment de l'exécution, et non à
celui de la compilation. Elles sont analogues aux <code class="filename">.dll</code> utilisées sous Windows. Le
programme responsable de la liaison du code <span class="quote">« <span class="quote">au
vol</span> »</span> est appelé <span class="command"><strong>/etc/ld.so</strong></span>, et les
bibliothèques dynamiques elles-mêmes se terminent habituellement
par <code class="filename">.so</code> avec un numéro de
version, comme :</p><pre class="screen">
/usr/lib/libSDL.so
/lib/libm.so.3
</pre><p>Quand vous utilisez <span class="command"><strong>gcc</strong></span>, vous référencez
ces bibliothèques en enlevant les chaînes de caractères
<code class="literal">lib</code>, <code class="literal">.so</code> et tous les numéros
de version. Donc, pour utiliser ces deux bibliothèques, vous
devriez passer les options <code class="literal">-lSDL -lm</code> à
<span class="command"><strong>gcc</strong></span>. Celui-ci placera alors une marque dans
l'exécutable indiquant d'examiner les fichiers <code class="filename">/usr/lib/libSDL.so</code> et <code class="filename">/lib/libm.so.3</code> à chaque fois qu'une
fonction SDL ou une fonction mathématique est utilisée.</p></div><div class="sect3"><div class="titlepage"><div><div><h4 class="title"><a id="d0e1382"/>5.3.2. Bibliothèques statiques</h4></div></div></div><p>Contrairement aux bibliothèques statiques qui fournissent du
code alors que l'application s'exécute, les bibliothèques statiques
contiennent du code qui est lié (inséré) dans le programme lors de
sa compilation. Aucun code n'est inséré au moment de
l'exécution : le code est complètement autonome. Les
bibliothèques statiques se terminent habituellement par <code class="filename">.a</code> suivi d'un numéro de version,
comme :</p><pre class="screen">
/usr/lib/libSDL.a
/usr/lib/libm.a
</pre><p>Les fichiers <code class="filename">.a</code>
forment réellement des archives de fichiers <code class="filename">.o</code> (objet), à la manière d'un fichier
tar. Vous pouvez utiliser <span class="command"><strong>nm</strong></span> pour lister les
fonctions contenues dans une bibliothèque statique :</p><pre class="screen">
% nm /usr/lib/libm.a
...
e_atan2.o:
00000000 T __ieee754_atan2
e_atanh.o:
00000000 T __ieee754_atanh
00000000 r half
00000010 r limit
00000018 r ln2_2
...
</pre><p>Quand vous utilisez <span class="command"><strong>gcc</strong></span>, vous référencez ces
bibliothèques en enlevant les chaînes de caractères
<span class="quote">« <span class="quote">lib</span> »</span>, <span class="quote">« <span class="quote">.a</span> »</span> et tous
les numéros de version. Donc, pour utiliser ces deux bibliothèques,
vous devriez passer les options <code class="option">-lSDL -lm</code> à
<span class="command"><strong>gcc</strong></span>. Celui-ci importera alors du code de <code class="filename">/usr/lib/SDL.a</code> et <code class="filename">/usr/lib/libm.a</code> à chaque fois qu'il
rencontre une fonction mathématique lors du processus de
compilation.</p></div><div class="sect3"><div class="titlepage"><div><div><h4 class="title"><a id="d0e1428"/>5.3.3. Localisation des fichiers de bibliothèques</h4></div></div></div><p>Si vous compilez vos propres jeux, le problème principal avec
les bibliothèques sera soit que <span class="command"><strong>gcc</strong></span> ne trouve
pas une bibliothèque statique, soit que la bibliothèque n'est pas
présente sur votre système. Quand vous jouez à des jeux à partir du
binaire, le problème sera soit que <span class="command"><strong>ld.so</strong></span> ne
trouve pas la bibliothèque, soit que la bibliothèque n'est pas
présente sur votre système. Il est donc opportun de d'abord parler
de la façon dont <span class="command"><strong>gcc</strong></span> et <span class="command"><strong>ld.so</strong></span>
s'y prennent pour trouver les bibliothèques.</p><p><span class="command"><strong>gcc</strong></span> recherche les bibliothèques dans les
<span class="quote">« <span class="quote">répertoires système standard</span> »</span> ainsi que
dans ceux spécifiés avec l'option <code class="option">-L</code>. Vous pouvez
déterminer la liste des répertoires système standard avec
<strong class="userinput"><code>gcc -print-search-dirs</code></strong>.</p><p><span class="command"><strong>ld.so</strong></span> examine un condensé binaire contenu
dans un fichier nommé <code class="filename">/etc/ld.so.cache</code> pour y
trouver une liste de répertoires contenant les bibliothèques
dynamiques disponibles. Puisqu'il contient des données binaires,
vous ne pouvez pas modifier directement ce fichier. Néanmoins, le
fichier est généré à partir d'un fichier texte
<code class="filename">/etc/ld.so.conf</code> que vous pouvez éditer. Ce
fichier contient la liste des répertoires où
<span class="command"><strong>ld.so</strong></span> doit rechercher les bibliothèques
dynamiques. Si vous voulez ajouter des bibliothèques dynamiques
dans <code class="filename">/home/joecool/privatelibs</code>, il faut
ajouter ce répertoire dans <code class="filename">/etc/ld.so.conf</code>.
Votre modification n'est prise en compte dans
<code class="filename">/etc/ld.so.cache</code> qu'après avoir exécuté
<span class="command"><strong>ldconfig</strong></span> ; une fois fait,
<span class="command"><strong>ld.so</strong></span> commencera à rechercher des bibliothèques
dans votre répertoire privé.</p><p>De plus, même si vous ne faites qu'ajouter de nouvelles
bibliothèques à votre système, vous devez mettre à jour
<code class="filename">ld.so.cache</code> pour qu'il reflète la présence des
nouvelles bibliothèques.</p></div></div></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title"><a id="d0e1491"/>6. Quand de mauvaises choses arrivent à de bonnes gens</h2></div></div></div><p>Bien sûr, il n'est pas possible de recouvrir tous les types de
problèmes, mais je vais souligner certains points de bon sens.</p><p>Il y a deux types de problèmes : les aléatoires et les
reproductibles. Il est difficile de diagnostiquer ou de corriger des
problèmes aléatoires sur lesquels vous n'avez par définition aucun
contrôle. Néanmoins, si le problème est reproductible (ex :
<span class="quote">« <span class="quote">cela se produit quand j'appuie deux fois sur la flèche
gauche</span> »</span>), alors vous pouvez agir.</p><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="d0e1501"/>6.1. RTFM !</h3></div></div></div><p>Relis ton fameux manuel. Le
<span class="quote">« <span class="quote">manuel</span> »</span> peut revêtir plusieurs formes.
Pour les jeux <span class="foreignphrase"><em class="foreignphrase">open source</em></span>, on
peut trouver les fichiers <code class="filename">readme</code>
(<span class="quote">« <span class="quote">lisez-moi</span> »</span>). Les jeux commerciaux sont
accompagnés d'un manuel imprimé et éventuellement de quelques
fichiers <code class="filename">readme</code> sur le CD. N'oubliez pas
d'explorer le CD de votre jeu pour obtenir des astuces et des
conseils utiles.</p><p>N'oubliez pas le site web du jeu. Son auteur a
probablement déjà eu affaire à maintes reprises à des personnes
ayant exactement le même problème que vous, et il pourrait avoir
placé des informations spécifiques à ce jeu sur son site web. Un
bon exemple : les FAQ en ligne de Loki Software situées sur
<a class="ulink" href="http://faqs.lokigames.com" target="_top">http://faqs.lokigames.com</a>.</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="d0e1525"/>6.2. Recherchez des mises à jour et des correctifs</h3></div></div></div><p>Si vous jouez à un jeu <span class="foreignphrase"><em class="foreignphrase">open
source</em></span> que vous avez compilé, assurez-vous de
disposer de la version la plus récente en visitant le site web du
jeu. Si votre jeu fait partie d'une distribution, assurez-vous qu'il
n'y ait pas de paquet rpm/deb plus à jour pour le jeu.</p><p>Les sociétés produisant des jeux commerciaux comme Loki
publient des correctifs pour leurs jeux (souvent nombreux, p.ex.
pour
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Myth2</em></span></span>™),
et certains sont même injouables en leur absence
(<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Heretic2</em></span></span>™).
Recherchez des correctifs sur le site web du jeu que vous ayez
un problème avec le jeu ou pas ; il peut y avoir une mise à
jour pour un problème de sécurité dont vous pourriez ne pas
avoir eu connaissance.</p><p>À propos, Loki propose maintenant un utilitaire qui recherche
les logiciels Loki sur votre disque dur et les met à jour
automatiquement. Consultez <a class="ulink" href="http://updates.lokigames.com" target="_top">http://updates.lokigames.com</a>.</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="d0e1547"/>6.3. Groupes de discussion</h3></div></div></div><p>Si vous ne savez pas ce que sont les News (Usenet), alors ça
vaut la peine de prendre 30 minutes pour vous y frotter. Installez un
lecteur de News. Je préfère les outils en console, et j'utilise donc
<span class="application">tin</span>, mais <span class="application">slrn</span>
est également populaire. Netscape propose également un chouette
lecteur de News graphique piloté à la souris.</p><p>Par exemple, je peux me promener sur le serveur de News de Loki
Software avec <strong class="userinput"><code>tin -g news.lokigames.com</code></strong>. Vous
pouvez également spécifier quel serveur de News utiliser grâce à la
variable d'environnement <code class="envar">$NNTP</code> ou le fichier
<code class="filename">/etc/nntpserver</code>.</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="d0e1569"/>6.4. Recherche sur Google Groupes</h3></div></div></div><p>Chaque soumission faite sur Usenet est archivée dans la base de
données de Google sur <a class="ulink" href="http://groups.google.fr" target="_top">http://groups.google.fr</a>.
Cette archive était située sur <a class="ulink" href="http://www.deja.com" target="_top">http://www.deja.com</a>, mais a été rachetée par Google.
Beaucoup de personnes parlent toujours de
<span class="quote">« <span class="quote">deja</span> »</span>.</p><p>Il est presque sûr que quel que soit le problème que vous
avez avec Linux, qu'il ait ou pas un rapport avec le jeu, il a
déjà été reporté et solutionné sur Usenet, pas une, pas deux,
mais de nombreuses fois. Si vous ne comprenez pas la première
réponse que vous voyez (ou si elle ne fonctionne pas), essayez
l'une des suivantes. Si la page n'est pas dans une langue que
vous comprenez, il existe des tas de sites de traduction qui
convertiront le texte dans la langue que vous préférez, comme
<a class="ulink" href="http://www.freetranslation.com" target="_top">http://www.freetranslation.com</a> et <a class="ulink" href="http://translation.lycos.com" target="_top">http://translation.lycos.com</a>. Mon navigateur web
préféré,
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Opera</em></span></span>™
(disponible sur <a class="ulink" href="http://www.opera.com" target="_top">http://www.opera.com</a>) vous
permet d'utiliser le bouton droit de la souris pour sélectionner
un extrait de texte, et de cliquer avec le bouton gauche sur la
sélection pour le traduire. Très utile quand une recherche sur
Google Groupes renvoie une page en allemand qui semble utile et
que ma petite amie (qui lit bien l'allemand) n'est pas
disponible.</p><p>La recherche sur Google Groupes propose une page de recherche
élémentaire et avancée. Ne perdez pas de temps avec la recherche
simple. La recherche avancée est située sur <a class="ulink" href="http://groups.google.com/advanced_group_search" target="_top">http://groups.google.com/advanced_group_search</a>.</p><p>C'est facile à utiliser. Par exemple, si mon problème est que
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Quake III</em></span></span>™
plante à chaque fois que Lucy saute, j'entre <span class="quote">« <span class="quote">linux
quake3 crash lucy saute</span> »</span> dans la boîte de texte
<span class="quote">« <span class="quote">Retrouver les messages avec tous les mots
suivants</span> »</span>.</p><p>Certains champs permettent de limiter la portée de votre
recherche à un groupe de discussion. Prenez le temps de lire et de
comprendre la signification de chaque champ. Je vous le
promets : ce service ne vous décevra pas. Utilisez-le, et vous
serez quelqu'un de beaucoup plus heureux. Notez bien que les groupes
de discussion privés ne sont pas archivés, comme le serveur de News
de Loki Software. Néanmoins, vu que beaucoup de personnes utilisent
Usenet, cela n'a généralement que peu d'importance.</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="d0e1611"/>6.5. Débogage : traces d'appel et fichiers core</h3></div></div></div><p>Ce n'est généralement pas quelque chose que vous ferez pour les
jeux commerciaux. Pour les jeux <span class="foreignphrase"><em class="foreignphrase">open
source</em></span>, vous pouvez aider l'auteur en lui fournissant
un fichier core ou une trace de la pile. En bref, un fichier core
(dit <span class="quote">« <span class="quote">core dump</span> »</span>) est un fichier qui conserve
l'état du programme au moment où il s'est crashé. Il contient des
indices précieux pour le programmeur relatifs à la nature du
crash : ce qui l'a causé et ce que le programme faisait quand il
s'est produit. Si vous voulez en savoir plus sur les fichiers core,
j'ai un super tutoriel <span class="application">gdb</span> disponible sur
<a class="ulink" href="http://www.dirac.org/linux" target="_top">http://www.dirac.org/linux</a>.</p><p>En <span class="emphasis"><em>dernier</em></span> recours, l'auteur sera
intéressé par la pile d'appels au moment du plantage du jeu. Voici
comment procéder :</p><p>Il arrive que les distributions configurent leur système
d'exploitation en sorte que les fichiers core (qui sont
principalement utiles aux programmeurs) ne sont pas générés. La
première étape est d'autoriser votre système à générer des fichiers
core de taille illimitée :</p><pre class="screen">
ulimit -c unlimited
</pre><p>Vous devrez maintenant recompiler le programme et passer
l'option <code class="option">-g</code> à <span class="application">gcc</span>
(l'explication dépasse la portée de ce document). À présent,
exécutez le jeu et répétez ce qui a fait planter le programme pour
générer à nouveau un fichier core. Exécutez le débogueur avec le
fichier core comme second argument :</p><pre class="screen">
$ gdb ExécutableJeuChouette core
</pre><p>À l'invite, tapez <strong class="userinput"><code>backtrace</code></strong>. Vous verrez
quelque chose comme : </p><pre class="screen">
#0 printf (format=0x80484a4 "z is %d.\n") at printf.c:30
#1 0x8048431 in display (z=5) at try1.c:11
#2 0x8048406 in main () at try1.c:6
</pre><p>Cela peut être assez long, mais utilisez votre souris pour
copier et coller ces informations dans un fichier. Envoyez-le par
courriel à l'auteur et indiquez-lui :</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>le nom du jeu</p></li><li class="listitem"><p>le message d'erreur qui est apparu à l'écran quand
le jeu a planté.</p></li><li class="listitem"><p>ce qui a provoqué le plantage et s'il est
reproductible ou non.</p></li><li class="listitem"><p>la pile d'appels</p></li></ol></div><p>Si vous avez une bonne bande passante, demandez à l'auteur s'il
souhaite le fichier core généré par son programme. S'il est d'accord,
envoyez-le lui. N'oubliez pas de lui demander au préalable, car les
fichiers core peuvent être très, très gros.</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="savedgames"/>6.6. Parties sauvegardées</h3></div></div></div><p>Si votre jeu permet de sauvegarder des parties, alors
l'envoi à l'auteur d'une copie de la partie sauvegardée est
utile car cela lui permet de reproduire le dysfonctionnement.
Pour les jeux commerciaux, cette possibilité est plus fructueuse
que d'envoyer un fichier core ou une pile d'appels car les jeux
commerciaux ne peuvent être recompilés de sorte à inclure des
informations de débogage. Vous devriez impérativement demander
avant d'envoyer une partie sauvegardée car ils ont tendance à
être gros, mais une société comme Loki Software dispose de
beaucoup de bande passante. <span class="personname"><span class="firstname">Mike</span> <span class="surname">
Phillips</span></span> (un ancien de Loki Software)
indique que l'envoi de sauvegardes de jeux à Loki est
définitivement une bonne chose.</p><p>Évidemment, cela ne s'applique que si votre jeu plante de façon
reproductible dans certaines circonstances. Si le jeu vous donne une
erreur de segmentation (<span class="foreignphrase"><em class="foreignphrase">segmentation
fault</em></span>) à chaque fois que vous l'exécutez, ou est
incroyablement lent, une sauvegarde de jeu n'aura que peu
d'utilité.</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="d0e1688"/>6.7. Que faire quand on ne trouve pas un fichier ou une
bibliothèque (ou se faciliter la vie avec
<span class="command"><strong>strace</strong></span>)</h3></div></div></div><p>Parfois, vous verrez des messages d'erreur indiquant qu'un
fichier n'a pu être trouvé. Le fichier pourrait être une
bibliothèque :</p><pre class="screen">
% ./exult
./exult: error while loading shared libraries: libSDL-1.2.so.0: cannot load shared object
file: No such file or directory
</pre><p>ou un fichier de données, comme un fichier <code class="filename">wad</code> ou <code class="filename">map</code> :</p><pre class="screen">
% qf-client-sdl
IP address 192.168.0.2:27001 UDP Initialized Error: W_LoadWadFile: couldn't load gfx.wad
</pre><p>Supposez que <code class="filename">gfx.wad</code> est déjà sur mon
système, mais qu'il ne peut être trouvé étant donné qu'il n'est pas
dans le bon répertoire. Mais alors, où est le bon répertoire ?
Ne serait-il pas utile de savoir où ces programmes recherchent les
fichiers manquants ?</p><p>C'est ici que <span class="command"><strong>strace</strong></span> brille. Il vous indique
quels appels système sont effectués, avec quels arguments, et quelles
sont les valeurs de retour. Dans mon <span class="quote">« <span class="quote">Guide de
programmation de modules noyau</span> »</span> (à paraître bientôt sur
le LDP), je souligne tout ce que vous devez savoir sur
<span class="command"><strong>strace</strong></span>. Mais voici les grandes lignes :
saisissez la commande</p><pre class="screen">
strace -o ./LS_LOG /bin/ls
</pre><p>L'option <code class="option">-o</code> envoie la sortie de
<span class="command"><strong>strace</strong></span> dans un fichier, ici LS_LOG. Le dernier
argument de <span class="command"><strong>strace</strong></span> est le programme à surveiller,
ici <span class="command"><strong>ls</strong></span>. Regardez le contenu de
<code class="filename">LS_LOG</code>. Assez impressionnant, n'est-ce
pas ? Voici une ligne typique :</p><pre class="screen">
open(".", O_RDONLY|O_NONBLOCK|0x18000) = 4
</pre><p>Nous avons utilisé l'appel système <code class="function">open()</code>
pour ouvrir <span class="quote">« <span class="quote"><code class="filename">.</code></span> »</span> avec divers arguments, et
la valeur de retour de l'appel est <span class="returnvalue">4</span>. Quel
est le rapport avec les fichiers non trouvés ?</p><p>Supposez que je veuille regarder la démo de
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">StateOfMind</em></span></span>™
car je ne m'en lasse pas. Un jour, j'essaie de l'exécuter et quelque
chose se passe mal :</p><pre class="screen">
% ./mind.i86_linux.glibc2.1
Loading & massaging...
Error:Can't open data file 'mind.dat'.
</pre><p>Utilisons <span class="command"><strong>strace</strong></span> pour détecter l'endroit où
le programme recherchait le fichier de données.</p><pre class="screen">
strace ./mind.i86_linux.glibc2.1 2> ./StateOfMind_LOG
</pre><p>Lançant <span class="application">vim</span> et recherchant toutes
les occurrences de <code class="filename">mind.dat</code>, je trouve les
lignes suivantes :</p><pre class="screen">
open("/usr/share/mind.dat",O_RDONLY) = -1 ENOENT (No such file)
write(2, "Error:", 6Error:) = 6
write(2, "Can\'t open data file \'mind.dat\'."..., ) = 33
</pre><p>Je ne recherchais <code class="filename">mind.dat</code> que dans
un seul répertoire. Il apparaît clairement que
<code class="filename">mind.dat</code> n'est pas dans <code class="filename">/usr/share</code>. Nous pouvons maintenant
essayer de localiser <code class="filename">mind.dat</code> et de le
déplacer dans <code class="filename">/usr/share</code>
ou, mieux, créer un lien symbolique.</p><p>Cette méthode fonctionne également pour les bibliothèques.
Supposez que la bibliothèque <code class="filename">libmp3.so.2</code> est située dans <code class="filename">/usr/local/include</code> mais que votre
nouveau jeu
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Kill-Metallica</em></span></span>™
ne le trouve pas. Vous pouvez utiliser <span class="command"><strong>strace</strong></span> pour
déterminer où
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Kill-Metallica</em></span></span>™
doit rechercher la bibliothèque et créer un lien symbolique de
<code class="filename">/usr/local/include/libmp3.so.2</code>
vers l'endroit où
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Kill-Metallica</em></span></span>™
recherchait le fichier de bibliothèque.</p><p><span class="command"><strong>strace</strong></span> est un utilitaire très puissant.
Quand vous essayez de savoir pourquoi quelque chose n'est pas trouvé,
il est votre meilleur allié, et est même plus rapide que la
consultation du code source. De plus, vous ne pouvez pas rechercher
d'informations dans le code source des jeux commerciaux de Lokisoft
ou Tribsoft. Mais vous pouvez toujours utiliser
<span class="command"><strong>strace</strong></span> !</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="hosedconsoles"/>6.8. Consoles corrompues</h3></div></div></div><p>Parfois, un jeu se termine anormalement et votre console
se retrouve alors dans un état bizarroïde : le texte à
l'écran est du charabia, votre bel écran noir habituel ressemble
à un écran semi-graphique, et cætera. Quand vous tapez sur
<span class="keycap"><strong>Entrée</strong></span>, un retour à la ligne n'est pas
reproduit à l'écran. Parfois, certaines touches du clavier ne
répondent pas. La déconnexion suivie d'une reconnexion ne marche
pas toujours, mais il y a d'autres possibilités :</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Si aucun des caractères que vous tapez
n'apparaît à l'écran, les réglages de votre terminal peuvent
être incorrects. Essayez
<span class="quote">« <span class="quote">stty echo</span> »</span>. Cela devrait
rétablir l'écho des caractères.</p></li><li class="listitem"><p>À l'invite, tapez <strong class="userinput"><code>reset</code></strong>.
Cela devrait éliminer beaucoup de problèmes, y compris les consoles
corrompues par un jeu basé sur SVGAlib ou
ncurses.</p></li><li class="listitem"><p>Essayez de ré-exécuter le même jeu normalement. Une
fois, j'ai dû tuer <span class="productname"><span class="foreignphrase"><em class="foreignphrase">Quake
III</em></span></span>™ en toute hâte, et j'ai donc
effectué un <span class="keycap"><strong>ctrl</strong></span>+<span class="keycap"><strong>alt</strong></span>+<span class="keycap"><strong>backspace</strong></span>. La
console était corrompue et présentait un écran quasi-graphique.
Exécuter <span class="productname"><span class="foreignphrase"><em class="foreignphrase">Quake
III</em></span></span>™ et le quitter normalement a
corrigé le problème.</p></li><li class="listitem"><p>Les commandes <span class="command"><strong>deallocvt</strong></span> et
<span class="command"><strong>openvt</strong></span> fonctionneront pour la plupart des autres
problèmes. <span class="command"><strong>deallocvt <em class="parameter"><code>N</code></em></strong></span>
tue entièrement le terminal <code class="literal">N</code>, de sorte que
<code class="literal">Alt-FN</code> ne fonctionne plus du tout.
<span class="command"><strong>openvt <code class="option">-c
<em class="parameter"><code>N</code></em></code></strong></span> ou <strong class="userinput"><code>openvt
<code class="option">-c <em class="parameter"><code>N</code></em></code></code></strong> le
redémarre.</p></li><li class="listitem"><p>Si certaines touches de votre clavier ne
fonctionnent pas, faites preuve de créativité. Si vous voulez
redémarrer mais que la touche <span class="keycap"><strong>o</strong></span> ne fonctionne
pas, essayez d'employer <span class="command"><strong>halt</strong></span>. Une méthode
que j'ai expérimentée est de taper une commande à l'invite et
d'utiliser des caractères à l'écran en utilisant le
copier-coller avec la souris. Par exemple, vous pouvez taper
<strong class="userinput"><code>ps ax</code></strong>, et vous êtes sûr(e) d'avoir un
<span class="keycap"><strong>h</strong></span>, <span class="keycap"><strong>a</strong></span>, <span class="keycap"><strong>l</strong></span> et
un <span class="keycap"><strong>t</strong></span> quelque part à l'écran. Vous pouvez
utiliser la souris pour copier et coller le mot
<span class="quote">« <span class="quote">halt</span> »</span>.</p></li><li class="listitem"><p>L'option la plus regrettable est le
redémarrage. Si c'est possible, un arrêt ordonné est
préférable ; utilisez <span class="command"><strong>halt</strong></span> ou
<span class="command"><strong>shutdown</strong></span>. Sinon, utilisez
<span class="command"><strong>ssh</strong></span> depuis une autre machine. Cela
fonctionne parfois quand votre console présente d'importants
dysfonctionnements. Dans le pire des cas, appuyez sur le
bouton Reset ou Power (réinitialisation ou arrêt de
l'alimentation).</p></li></ul></div><p>Notez que si vous utilisez un système de fichiers
journalisé comme ext3, reiserfs ou xfs, l'appui sur le bouton
Power n'est pas aussi néfaste que cela. Vous êtes toujours
supposé arrêter la machine d'une façon ordonnée, mais
l'intégrité du système de fichiers sera préservée. Vous ne
verrez normalement pas de <span class="command"><strong>fsck</strong></span> pour les
partitions qui utilisent le système de fichiers
journalisé.</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="d0e1950"/>6.9. Système bloqué</h3></div></div></div><p>Quand un ordinateur se bloque, le clavier et la souris ne
répondent plus du tout. C'est une conséquence directe d'un bogue
dans le noyau Linux. Bien que Linux soit réputé pour sa
stabilité, de telles choses peuvent arriver, en particulier avec
les jeux qui occasionnent des événements matériels extrêmement
synchronisés se produisant très rapidement, même pour un
ordinateur. Quand un ordinateur se bloque, cela peut être un
<span class="quote">« <span class="quote">blocage total</span> »</span>, signifiant que le noyau
a complètement cessé de fonctionner. Cela indique souvent que le
matériel est en cause. Le seul remède à ce type de blocage est
d'appuyer sur le bouton Reset ou Power. Le blocage peut
également être <span class="quote">« <span class="quote">léger</span> »</span>, à savoir que le
noyau fonctionne toujours dans une certaine mesure. Il est
possible de se remettre gracieusement de cette situation.</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>La première chose à essayer est de taper
<span class="keycap"><strong>control</strong></span>+<span class="keycap"><strong>alt</strong></span>+<span class="keycap"><strong>backspace</strong></span>
qui tue X. Si vous récupérez le contrôle sur votre système, le
noyau n'était pas réellement bloqué. Si cela ne fonctionne pas
après quelques secondes, il faut alors redémarrer le système en
suivant les recommandations suivantes :</p></li><li class="listitem"><p>Utilisez <span class="keycap"><strong>control</strong></span>+<span class="keycap"><strong>alt</strong></span>+<span class="keycap"><strong>delete</strong></span> pour redémarrer le système.
Vous savez que cela a fonctionné si l'ordinateur émet un bip après
quelques secondes (c'est le BIOS qui dit <span class="quote">« <span class="quote">Tout est
OK</span> »</span> au cours du cycle de démarrage).</p></li><li class="listitem"><p>Connectez-vous à partir d'un autre système via ssh.
Si vous y parvenez, redémarrez ou arrêtez le
système.</p></li><li class="listitem"><p>Si cela n'est pas possible, vous devrez utiliser la
<span class="quote">« <span class="quote">touche magique <span class="keycap"><strong>SysRq</strong></span></span> »</span> qui
est documentée dans
<code class="filename">/usr/src/linux/Documentation/sysrq.txt</code>. Voici
un résumé pour l'architecture x86 (consultez la documentation pour
les autres architectures). Notez que si votre clavier n'a pas de
touche <span class="keycap"><strong>SysRq</strong></span>, il vous faudra utiliser la touche
<span class="keycap"><strong>PrintScreen</strong></span> :
</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Tapez <span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>SysRq</strong></span>+<span class="keycap"><strong>s</strong></span> pour tenter de synchroniser vos
systèmes de fichiers montés afin que les changements apportés
aux fichiers soient effectués sur disque. Vous pouvez
entendre de l'activité du disque dur. Si vous regardez sur
une console, le système devrait afficher le nom des
périphériques pour lesquels cette opération a eu
lieu.</p></li><li class="listitem"><p>Quelques secondes plus tard, tapez <span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>SysRq</strong></span>+<span class="keycap"><strong>u</strong></span> pour essayer de remonter les
systèmes de fichiers montés en mode lecture seule. Vous
devriez entendre de l'activité disque. Si vous examinez une
console, le système affichera les périphériques qui ont été
remontés.</p></li><li class="listitem"><p>Après un bref moment, utilisez <span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>SysRq</strong></span>+<span class="keycap"><strong>b</strong></span> pour redémarrer le
système.</p></li><li class="listitem"><p>Vous pouvez aussi taper <span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>SysRq</strong></span>+<span class="keycap"><strong>h</strong></span> pour obtenir un écran d'aide
ultra-concis.</p></li></ol></div></li></ul></div><p>Pour prendre en charge la touche magique
<span class="keycap"><strong>SysRq</strong></span>, votre noyau doit avoir été compilé à cet
effet. Vous trouverez cette option sous
<span class="quote">« <span class="quote"><code class="literal">Kernel Hacking | Kernel Debugging | Magic
SysRq key</code></span> »</span>. Si la séquence magique
<span class="keycap"><strong>SysRq</strong></span> n'éteint pas correctement votre système,
votre noyau s'est réellement bien planté et le seul remède est
d'utiliser le bouton Reset ou Power.</p></div></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title"><a id="d0e2064"/>7. Cartes vidéo</h2></div></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="d0e2067"/>7.1. Historique</h3></div></div></div><p>Il était une fois, une société de San Jose, en Californie,
appelée <span class="trademark">3dfx Interactive</span>™ dominait le marché
des cartes vidéo destinées au jeu. En octobre 1996, elle a mis sur le
marché la Voodoo I, qui a connu un succès phénoménal. C'était la
première carte proposant une accélération matérielle, mais elle
n'effectuait que du rendu 3D ; il fallait une seconde carte
vidéo 2D de haute qualité pour effectuer le rendu 2D (Matrox était
immensément populaire à l'époque) alors que les informations 3D
(voyez Glide2, à la <a class="xref" href="#glide2" title="3.1. Glide2">Section 3.1, « Glide2 »</a>) sont transmises à la
Voodoo I et rendues, en utilisant le matériel rapide de la Voodoo
pour effectuer les calculs graphiques nécessaires. La Voodoo Rush est
sortie en avril 1996. Elle aurait dû être plus puissante, avec un GPU
cadencé à 50 Mhz et 8 Mo de RAM. Mieux encore, elle
constituait leur première carte combinée 2D/3D, libérant un port PCI
précieux (la plupart des PC n'avaient que deux ports PCI à l'époque)
mais la Rush n'a pas été aussi populaire. 3dfx a supprimé l'unité
multi-textures de la Rush, qui a dès lors été surclassée par la
Voodoo I. Pendant ce temps-là, ATI produisait sa série de Rage et
nVidia celle de Riva 128, mais la Voodoo I dominait toujours
largement.</p><p>C'était une belle époque pour Linux. id Software avait libéré
le code source de Doom et porté Quake I sous Linux (décembre 1996).
Nous goûtions pour la première fois au jeu commercial réel. Le choix
était vite fait : vous achetiez une Voodoo. Et vous vous sentiez
bien, car 3dfx avait ouvert ses pilotes. La reine des cartes vidéo
fonctionnait grâce à des développeurs Linux. Non seulement nous
disposions des meilleures cartes vidéo, mais de plus leurs pilotes
étaient tous <span class="foreignphrase"><em class="foreignphrase">open source</em></span>.</p><p>En mars 1998, 3dfx lançait la Voodoo II, avec sa bande passante
mémoire de 3.6 Go/sec, 12 Mo de mémoire vidéo et un
cœur fonctionnant à 90 MHz. Elle permettait des
résolutions allant jusqu'à 1024x768. C'était 3dfx à son apogée. Comme
la Voodoo I, la Voodoo II était une carte ne s'occupant que de la 3D,
et se reposant sur une autre carte vidéo pour la 2D. La Voodoo
Banshee est sortie en septembre 1998 comme une carte combinée 2D/3D,
comme la Rush. Malgré un cœur plus rapide fonctionnant à
100 MHz, la Banshee était dépassée par la Voodoo II du fait de
la suppression de l'unité multi-textures, comme pour la Rush. Et à
nouveau, comme la Rush, elle n'était pas populaire. Mais 3dfx régnait
en maître, et personne ne pouvait leur faire de l'ombre.</p><p>La Voodoo III est sortie en avril 1999. Il y en a eu plusieurs,
au cœur variant de 143 à 183 MHz. Certaines versions
disposaient d'une sortie TV. Il y avait des versions PCI et AGP
(c'était la première carte vidéo AGP). C'était un autre succès, mais
3dfx commençait à perdre du terrain au profit de nVidia, qui
produisait la TNT 2. Celle-ci surclassait la Voodoo II, et offrait
une accélération 3D avec des couleurs 32 bits, alors que les Voodoo
étaient limitées aux couleurs 16 bits. Mais la vie était toujours
belle pour Linux. Nous disposions d'une carte qui était pratiquement
au coude à coude avec nVidia, nos pilotes étaient <span class="foreignphrase"><em class="foreignphrase">open
source</em></span> et, en décembre 1999, id Software nous a fait
un grand cadeau : ils ont ouvert le code source de Quake
I.</p><p>Ensuite, la GeForce 256 de nVidia est apparue en octobre 1999.
La Voodoo IV de 3dfx, son concurrent direct, avait à peu près une
année de retard, ce qui est pour le moins ennuyeux quand on se bat
sur un marché <span class="quote">« <span class="quote">de pointe</span> »</span>. Alors que les
travaux en recherche et développement de nVidia étaient appliqués à
ses cartes, 3dfx ne faisait qu'ajouter de la RAM plus rapide. Les
Voodoo IV et V rendaient les couleurs 32 bits, prenaient très bien en
charge l'<a class="link" href="#aa" title="7.4.3. AA : Anti Aliasing">anti-crénelage</a>, proposaient un
second GPU, plus de mémoire, et étaient pour ainsi dire supérieures
aux autres cartes vidéo. Néanmoins, la sortie tardive des Voodoo IV
et V couplée au fait qu'on pouvait obtenir la GeForce pour moitié
moins explique le naufrage rapide de 3dfx. Pour Linux, les plus
récentes Voodoo ne pouvaient accélérer que pour les couleurs 16 et 24
bits. Pire encore, le second GPU de la Voodoo V n'était pas exploité
par le pilote Linux (et, à ce jour, la Voodoo V est fonctionnellement
équivalente à la Voodoo IV sous Linux). La plupart des utilisateurs
Windows sont passés à nVidia et, bien que les pilotes de cette
dernière étaient propriétaires, même les utilisateurs Linux
commençaient à la choisir. VA Linux, le plus grand vendeur des
serveurs Linux, plaçait des nVidia dans ses machines.</p><p>Ensuite, en avril 2000, 3dfx a été attaqué sur un autre
front : ATI commençait à produire sa première génération de
Radeon. Auparavant, ATI avait toujours été un fabricant de puces
graphiques innovant (leurs propres puces accélératrices 3D datent de
1996, à peu près au même moment que 3dfx), mais fort discret. Les
Radeon étaient leur première carte accélératrice 3D à réellement
intéresser les joueurs. Leurs Radeon écrasaient à la fois nVidia et
3dfx. Ils ont collaboré avec des développeurs Linux, ont ouvert le
code source de tous leurs pilotes et ont été acclamés comme le grand
espoir pour le jeu sous Linux. nVidia revint à la charge, et c'en
était trop pour 3dfx. Entre la défaite dans les bancs d'essais contre
la GeForce et la Radeon, leurs nouvelles cartes en retard et leurs
prix élevés, 3dfx avait perdu sa part de marché et n'avait plus les
fonds nécessaires pour continuer ses activités. Le 18 avril 2001, ils
ont vendu la plupart des leurs avoirs et technologies à nVidia et, en
octobre 2002, ont finalement fait aveu de faillite.</p><p>La disparition de 3dfx était très soudaine et une gifle pour la
communauté <span class="foreignphrase"><em class="foreignphrase">open source</em></span>. Je me souviens
toujours de mon ami <span class="personname"><span class="firstname">Gabe</span> <span class="surname"> Rosa</span></span> m'envoyant un courriel avec ces
simples mots <span class="quote">« <span class="quote"><code class="literal">Look at /.</code></span> »</span>
(Va voir sur slashdot) et la vision de la nouvelle. C'était le 2e
jour le plus sombre de l'histoire du jeu sous Linux (après la mort de
Loki). Et c'était aussi vraiment dommage. 3dfx était sur le point de
sortir une nouvelle Voodoo V avec 4 GPU qui aurait écrasé les offres
de ATI et nVidia, ainsi qu'une nouvelle carte au nom de code
<span class="quote">« <span class="quote">Rampage</span> »</span> qui les auraient ramené sur le
devant de la scène. On raconte que la technologie de Rampage (qui a
été vendue à nVidia) s'est retrouvée dans la GeForce 5900. Pas trop
mal pour une technologie vieille de 3 ans !</p><p>Au début, tout était simple. Les joueurs Linux gardaient soit
leurs Voodoo <span class="foreignphrase"><em class="foreignphrase">open source</em></span>, acquéraient
une Radeon <span class="foreignphrase"><em class="foreignphrase">open source</em></span> ou une GeForce
propriétaire. Néanmoins, les jeux grossissant et s'améliorant, ce
n'était qu'une question de temps avant que les Voodoo ne soient plus
viables pour les jeux modernes. Certains utilisaient toujours des
Voodoo, mais ces personnes étaient pratiquement hors du coup en ce
qui concerne le jeu.</p><p>ATI a produit un nombre incroyable de versions de chaque carte
vidéo, et il devenait difficile de suivre l'évolution de leur
terminologie. ATI et nVidia dominaient le marché. Leurs produits ont
toujours été au coude à coude depuis lors, la GeForce prenant
l'avantage un peu plus souvent que la Radeon. Mais les pilotes de la
Radeon étaient <span class="foreignphrase"><em class="foreignphrase">open source</em></span>, et de
nombreux utilisateurs Linux lui restaient fidèles. Ensuite, cela
s'est compliqué.</p><p>ATI a commencé à devenir de plus en plus réticent aux pilotes
<span class="foreignphrase"><em class="foreignphrase">open source</em></span> pour leurs nouvelles
cartes et, soudainement, il n'était plus facile de savoir qui était
le <span class="quote">« <span class="quote">bon</span> »</span>. L'excuse de nVidia était qu'une
partie de leur code GL est sous licence d'une autre société, et ne
peut par conséquent pas être <span class="quote">« <span class="quote">libérée</span> »</span>.
Vraisemblablement, ATI ne veut pas collaborer afin de conserver ses
secrets de fabrique. Et cela ne s'arrange pas. Les pilotes ATI Linux
ont souffert de performances extrêmement faibles. Même quand une
offre de ATI est meilleure que celle de la GeForce du moment pour
Windows, la carte est toujours écrasée par la GeForce sous Linux. Du
fait de pilotes ATI Linux calamiteux, les utilisateurs Linux ne
peuvent se fier aux bancs d'essais ou aux tests de cartes prévus pour
MS Windows. Ils ne sont tout simplement pas appropriés. Et c'est à
peu près au point où nous en sommes pour le moment.</p><p>Finalement, le seul véritable banc d'essais des cartes vidéo
sous Linux date malheureusement, à ma connaissance, de mars 2001,
entre une Radeon 32 DDR et une GeForce 2. Vous pouvez le consulter
vous-même sur <a class="ulink" href="http://www.linuxhardware.org/features/01/03/19/0357219.shtml" target="_top">http://www.linuxhardware.org/features/01/03/19/0357219.shtml</a>,
mais la conclusion est que la GeForce 2 domine de la tête et des
épaules la Radeon 32 DDR.</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="d0e2147"/>7.2. Situation actuelle (13 juillet 2003)</h3></div></div></div><p>La dernière offre de nVidia est la GeForce 5900, basée sur le
jeu de composants NV35. Elle est bien prise en charge sous Linux par
des pilotes de haute qualité mais propriétaires. Ils ne fournissent
pas d'informations aux développeurs Linux, et vous ne pourrez donc
utiliser que leurs pilotes binaires ; ils ne font pas partie de
XFree86. nVidia utilise une architecture unifiée pratique :
leurs pilotes prennent en charge de la TNT 2 à la GeForce
5900.</p><p>ATI a travaillé avec les développeurs Linux pour toutes les
Radeon jusqu'à la Radeon 9200. Ces cartes font l'objet d'une prise en
charge 2D et 3D dans XFree86. Je ne suis pas entièrement sûr de la
qualité de ces pilotes <span class="foreignphrase"><em class="foreignphrase">open
source</em></span> ; néanmoins,
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Soldier of Fortune
I</em></span></span>™ et <span class="productname"><span class="foreignphrase"><em class="foreignphrase">Heavy
Metal</em></span></span>™ ont toujours des problèmes de
textures opaques avec la première génération de Radeon. Après la
9200, vous devez utiliser les pilotes binaires propriétaires,
disponibles au format rpm, depuis le site web de ATI. Ces pilotes
sont abominables : un de mes amis m'affirme que sa GeForce 4400
surclasse sa Radeon 9700 pro. C'est une honte !</p><p>Sur le papier, et selon les bancs d'essais pour Windows, la
Radeon 9800 écrase la mal-conçue GeForce 5800 et dépasse légèrement
la GeForce 5900. Sur le papier, elle est tout simplement la carte la
plus impressionnante. Mais, à nouveau, le problème des pilotes ne
nous permet pas d'en bénéficier. Si vous désirez acheter la meilleure
carte pour Linux, vous devrez utiliser la GeForce 9800. Préparez-vous
simplement à manger des nouilles pendant quelques mois : les
deux cartes sont excessivement chères.</p><div class="sect3"><div class="titlepage"><div><div><h4 class="title"><a id="d0e2167"/>7.2.1. Support de SVGAlib</h4></div></div></div><p>Au 30 juin 2002, la prise en charge par la SVGAlib des
cartes Radeon est problématique. Les développeurs ont rapporté
que SVGAlib fonctionne avec les Radeon 7500 et Radeon QD (modèle
64 Mo DDR) mais a quelques soucis avec la Radeon VE.</p><p>Je ne dispose pas d'informations concernant les cartes
GeForce.</p></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="d0e2174"/>7.3. Quelle carte vidéo dois-je acheter ? (13 juillet
2003)</h3></div></div></div><p>La réponse était très difficile l'an dernier, mais voici mon
opinion :</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Toutes les cartes GeForce requièrent un pilote
propriétaire qui <span class="quote">« <span class="quote">salit</span> »</span> votre noyau.
Néanmoins, c'est également la cas de toutes les cartes ATI
suivant la Radeon 9200.</p></li><li class="listitem"><p>nVidia a prouvé qu'elle se souciait suffisamment
de Linux pour écrire et actualiser des pilotes vidéo de haute
qualité pour Linux. Même quand ATI a ouvert le code source de ses
pilotes, ils se reposaient sur les développeurs Linux pour faire
le sale boulot. Leurs pilotes propriétaires actuels sont
ignobles.</p></li><li class="listitem"><p>La Radeon 9800 actuelle bat tout juste la GeForce
5900 dans les bancs d'essais et sur le plan des spécifications,
mais les utilisateurs Linux ne pourront en bénéficier du fait de
la faiblesse des pilotes de la 9800.</p></li><li class="listitem"><p>ATI a depuis longtemps l'habitude d'abandonner le
support de son matériel dès que c'est possible.</p></li><li class="listitem"><p>Sous MS Windows, quand la GeForce bat son
principal adversaire Radeon, les critiques affirment généralement
que les graphismes de la Radeon étaient plus soignés. Je ne sais
pas si cela se ressent également sous Linux.</p></li></ol></div><p>En fin de compte, la plupart devrait acheter une GeForce pour
le moment.</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="d0e2200"/>7.4. Définitions : carte vidéo et terminologie 3D</h3></div></div></div><p>Parlons à présent de la terminologie des cartes vidéo et des
graphiques 3D. Ce n'est pas primordial pour faire fonctionner un jeu
en pratique, mais cela peut vous aider à décider quelles options
matérielles et logicielles vous conviennent le mieux.</p><div class="sect3"><div class="titlepage"><div><div><h4 class="title"><a id="textures"/>7.4.1. Textures</h4></div></div></div><p>Une scène rendue est constituée à la base de polygones et de
lignes. Une texture est une image 2D (habituellement une bitmap)
recouvrant les polygones d'un monde 3D. Pensez à une couche de
peinture sur les polygones.</p></div><div class="sect3"><div class="titlepage"><div><div><h4 class="title"><a id="tl"/>7.4.2. <span class="foreignphrase"><em class="foreignphrase">T&L : Transform and
Lighting</em></span></h4></div></div></div><p>Le T&L (transformation et éclairage) est le processus de
traduction de toutes les informations du monde 3D (position,
distance et sources de lumière) en une image 2D effectivement
affichée à l'écran.</p></div><div class="sect3"><div class="titlepage"><div><div><h4 class="title"><a id="aa"/>7.4.3. <span class="foreignphrase"><em class="foreignphrase">AA : Anti
Aliasing</em></span></h4></div></div></div><p>L'anti-aliasing (anti-crénelage) est le lissage de l'effet
d'escalier d'une courbe ou d'un polygone, apparaissant lors du
dessin d'une ligne brisée ou d'une courbe composée de pixels (de
forme rectangulaire), aussi appelé
<span class="quote">« <span class="quote">crénelage</span> »</span>. Il se produit quand les pixels
forment une ligne crénelée plutôt qu'une courbe ou une ligne lisse.
L'AA utilise un filtrage gourmand en temps CPU pour lisser de tels
contours crénelés. Cela améliore l'aspect visuel d'un jeu, mais
peut également grever dramatiquement les performances.</p><p>L'AA est utilisé dans différentes situations. Par exemple,
quand vous grossissez une image, vous pouvez remarquer que des
lignes qui étaient lissent deviennent crénelées (essayez avec
<span class="application">The Gimp</span>). Le rendu des polices de
caractères est une autre grande application pour l'AA.</p><p>L'AA peut être fait soit par l'application elle-même (comme
avec <span class="application">The Gimp</span> ou le système de polices
de <span class="application">XFree86</span>), soit par le matériel, si
votre carte le supporte. Puisque l'AA est gourmand en temps CPU, il
vaut mieux l'effectuer en matériel, mais si nous parlons
d'applications semi-statiques, comme <span class="application">The
Gimp</span>, cela ne pose pas vraiment de problème. Pour les
situations dynamiques, comme les jeux, effectuer l'AA en matériel
peut être crucial.</p></div><div class="sect3"><div class="titlepage"><div><div><h4 class="title"><a id="fsaa"/>7.4.4. <span class="foreignphrase"><em class="foreignphrase">FSAA : Full Screen
Anti-Aliasing</em></span></h4></div></div></div><p>Le FSAA (anti-crénelage plein écran) implique habituellement
le dessin d'une version grossie de l'écran entier dans un
framebuffer séparé, en effectuant l'AA sur l'image entière puis en
la ramenant à la résolution normale. Comme vous pouvez l'imaginer,
c'est extrêmement gourmand en temps CPU. Vous ne verrez jamais de
FSAA non accéléré matériellement.</p></div><div class="sect3"><div class="titlepage"><div><div><h4 class="title"><a id="mipmapping"/>7.4.5. <span class="foreignphrase"><em class="foreignphrase">Mip
Mapping</em></span></h4></div></div></div><p>Le <span class="quote">« <span class="quote">mip mapping</span> »</span> est une technique
consistant à stocker diverses copies à l'échelle de la même texture
dans la mémoire de la carte vidéo, afin de représenter la texture à
différentes distances. Quand la texture est très éloignée, une plus
petite version de la texture est utilisée. Quand la texture est
proche, une plus grande est utilisée. Le <span class="foreignphrase"><em class="foreignphrase">mip
mapping</em></span> peut être utilisé quelle que soit la <a class="link" href="#texturefiltering" title="7.4.6. Filtrage de textures">méthode de filtrage</a>. Il réduit
non seulement les besoins en bande passante mémoire (puisque les
images sont stockées sur le matériel), mais offre également une
meilleure qualité d'image.</p></div><div class="sect3"><div class="titlepage"><div><div><h4 class="title"><a id="texturefiltering"/>7.4.6. Filtrage de textures</h4></div></div></div><p>Le filtrage de textures est la fonctionnalité fondamentale
requise pour fournir des graphiques 3D agréables. Il a plusieurs
applications, comme mélanger sans encombre des textures adjacentes,
et rendre réaliste des textures vues depuis un angle (p.ex.
regarder un panneau d'affichage depuis un angle extrême). Il existe
plusieurs techniques de filtrage de textures incluant
l'échantillonnage de points et les filtrages bilinéaire,
trilinéaire et anisotrope.</p><p>Quand je parle de <span class="quote">« <span class="quote">dégradation de
performances</span> »</span>, gardez à l'esprit qu'elle dépend de la
résolution utilisée. Par exemple, à une basse résolution, l'impact
sur les performances de l'utilisation du filtrage trilinéaire au
lieu du filtrage bilinéaire est négligeable. Mais à de hautes
résolutions, il peut être énorme. De plus, je ne connais aucune
carte qui utilise le filtrage de textures anisotrope. Les pilotes
TNT le prétendent, mais j'ai lu que ces pilotes utilisent toujours
le filtrage trilinéaire au moment du rendu réel d'une image à
l'écran.</p><div class="sect4"><div class="titlepage"><div><div><h5 class="title"><a id="d0e2272"/>7.4.6.1. Filtrage de textures avec échantillonnage de
points</h5></div></div></div><p>L'échantillonnage de points est rare de nos jours, mais si
vous exécutez un jeu avec le <span class="quote">« <span class="quote">rendu
logiciel</span> »</span> (ce que vous devrez faire si vous exécutez
un jeu avec accélération 3D sans carte accélératrice 3D), vous
constaterez probablement son utilisation.</p></div><div class="sect4"><div class="titlepage"><div><div><h5 class="title"><a id="d0e2280"/>7.4.6.2. Filtrage de textures bilinéaire</h5></div></div></div><p>Le filtrage bilinéaire est un filtrage de textures peu
exigeant en temps de calcul mais de basse qualité. Il approxime
les différences entre les textures en échantillonnant la couleur
des quatre texels les plus proches (supérieur, inférieur, gauche
et droit). Toutes les cartes vidéo accélératrices 3D modernes
peuvent effectuer du filtrage bilinéaire en matériel sans chute
des performances.</p></div><div class="sect4"><div class="titlepage"><div><div><h5 class="title"><a id="d0e2285"/>7.4.6.3. Filtrage de textures trilinéaire</h5></div></div></div><p>Le filtrage trilinéaire est un filtre bilinéaire de haute
qualité qui utilise les quatre pixels les plus proches du
deuxième niveau de mip map (<span class="foreignphrase"><em class="foreignphrase">mip map
level</em></span>) le plus approprié pour produire des
transitions plus douces entre les niveaux. Le filtrage
trilinéaire échantillonne à partir de huit pixels et les intègre
avant de calculer le rendu. Le filtrage trilinéaire utilise
toujours le <a class="link" href="#mipmapping" title="7.4.5. Mip Mapping"><span class="foreignphrase"><em class="foreignphrase">mip
mapping</em></span></a>. Il élimine l'effet de bandes qui
apparaît entre des niveaux adjacents. La plupart des cartes vidéo
accélératrices 3D peuvent effectuer du filtrage trilinéaire en
matériel sans impact sur les performances.</p></div><div class="sect4"><div class="titlepage"><div><div><h5 class="title"><a id="d0e2297"/>7.4.6.4. Filtrage de textures anisotrope</h5></div></div></div><p>Le filtrage anisotrope est la meilleure mais la plus
demandeuse en temps de calcul des trois méthodes habituelles de
filtrage de textures. Le filtrage trilinéaire est capable de
produire de beaux résultats, mais il ne fait qu'échantillonner à
partir d'une zone carrée, ce qui n'est pas toujours la méthode
idéale. Anisotrope (signifiant <span class="quote">« <span class="quote">depuis n'importe
quelle direction</span> »</span>) échantillonne à partir de plus de
8 pixels. Le nombre de pixels utilisés et lesquels sont utilisés
dépendent de l'angle de vision de la surface par rapport à votre
écran. Il fait des merveilles lors de la visualisation de
caractères alphanumériques depuis un certain angle.</p></div></div><div class="sect3"><div class="titlepage"><div><div><h4 class="title"><a id="d0e2305"/>7.4.7. <span class="foreignphrase"><em class="foreignphrase">Z-buffer</em></span></h4></div></div></div><p>Un Z-buffer est une partie de RAM qui représente la distance
entre l'observateur (vous) et chaque pixel d'un objet. Beaucoup de
cartes accélératrices 3D modernes disposent d'un z-buffer dans leur
RAM vidéo, ce qui accélère considérablement les choses, mais il
peut également être pris en charge par le moteur de rendu de
l'application. Néanmoins, ce type de choses devrait clairement être
fait en mémoire à chaque fois que c'est possible.</p><p>Chaque objet possède son ordre d'empilement, à la manière
d'une pile de cartes. Quand des objets sont rendus dans un
framebuffer 2D, le moteur de rendu supprime les surfaces cachées en
utilisant le Z-buffer. Il y a deux façons de s'y prendre. Les
moteurs stupides dessinent d'abord les objets éloignés puis
seulement les objets proches, cachant les objets situés en dessous
d'eux dans le Z-buffer. Les moteurs intelligents calculent quelles
portions des objets seront cachées par les objets situés au-dessus
et ne rendent tout simplement pas les portions que vous ne verriez
de toute façon pas. Pour les textures compliquées, cela offre des
grandes économies en temps processeur.</p></div></div></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title"><a id="d0e2313"/>8. Son</h2></div></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="d0e2316"/>8.1. Quelle carte son est la meilleure ?</h3></div></div></div><p>Par <span class="quote">« <span class="quote">meilleure</span> »</span>, j'entends
<span class="quote">« <span class="quote">meilleure pour le jeu</span> »</span>. Les joueurs
demandent une haute qualité sonore sans trop de paramétrage à
effectuer. Les musiciens ont par contre d'autres exigences : le
concept de <span class="quote">« <span class="quote">meilleure carte son</span> »</span> sera
probablement différent pour eux. Si vous êtes un musicien, vous
devriez consulter le <span class="quote">« <span class="quote">Guide pratique de la qualité du son
sous Linux</span> »</span> (<span class="foreignphrase"><em class="foreignphrase"><a class="ulink" href="http://www.linuxdj.com/audio/quality/" target="_top">Linux Audio Quality
HOWTO</a></em></span>).</p><p>Maintenant que Linux commence à mûrir, cette question a perdu
de son importance. Auparavant, les cartes son sans puce MIDI intégrée
(la plupart des cartes son PCI) ne pouvaient pas interpréter le MIDI.
C'était principalement un problème pour les jeux comme
<span class="productname">xdoom</span>™ ou <span class="productname">lxdoom</span>™
qui utilisent <span class="application">musserv</span>. De nos jours, il
existe des émulateurs MIDI comme <span class="application">Timidity</span>
et des bibliothèques comme SDL qui ne requièrent pas de support MIDI
matériel. Franchement, j'ai eu beaucoup de cartes et je n'ai pas
constaté de différences en ce qui concerne le jeu. Si vous voulez des
choses comme la conversion d'un enregistrement LP en format
numérique, alors votre choix de carte son se portera sur un
convertisseur analogique/numérique de niveau professionnel. Dans ce
guide, nous supposerons que vous êtes plus un joueur qu'un ingénieur
du son.</p><p>Votre décision devrait se baser sur la facilité de
configuration. Si vous avez déjà une carte qui fonctionne bien, c'est
suffisant. Si vous explorez le marché pour acheter une carte son,
prenez quelque chose qui ne prend qu'une seconde à configurer. Les
cartes PCI sont beaucoup plus faciles à gérer que les cartes ISA car
vous ne devez pas indiquer à leur pilote quelles ressources système
(IRQ, DMA, adresses d'entrée-sortie) utiliser. Certaines cartes ISA
sont plug-n-play, comme la Creative AWE-64, et le noyau Linux a
beaucoup évolué pour les auto-configurer.
</p><p>Ma recommandation personnelle est une carte à base de es1370 ou
es1371, qui utilise les pilotes son es1370 et es1371 sous Linux. Ces
cartes vont de la plus ancienne Ensoniq es1370 à la plus récente
Creative PCI-128. Ces cartes sont très bon marché et triviales à
faire fonctionner sous Linux. </p><p>J'étais un grand fan des cartes son Creative Soundblaster AWE
32, AWE 64 et AWE 64 gold. Ces cartes ISA PnP sont bien prises en
charge à la fois par OSS et par Alsa. Elles utilisent toutes la même
puce de synthèse sonore E-mu 8000 qui leur permet de jouer 32 voix
simultanément (elles ont 32 <span class="quote">« <span class="quote">canaux</span> »</span>). Elles
sont ISA, mais plug-n-play. Quelques remarques : primo, le
<span class="foreignphrase"><em class="foreignphrase">Soundblaster AWE HOWTO</em></span> est très
dépassé. Secundo, la AWE 64 et la AWE 64 gold peuvent jouer jusqu'à
64 voix simultanément, mais cela est fait en logiciel. Creative n'a
jamais publié de pilote Linux pour ces cartes (ni n'ont publié
d'informations de programmation à ce sujet), et les utilisateurs
Linux ne peuvent donc pas utiliser les 32 canaux supplémentaires de
la AWE 64 et de la AWE 64 gold. Pour eux, ces trois cartes sont
complètement identiques (bien que la AWE 64 gold ait des connecteurs
plaqués or, qui offrent une meilleure qualité de son que les
connecteurs en acier habituels).</p><p>La Creative Soundblaster Live! est une carte son PCI
extrêmement populaire de nos jours. Je n'en ai jamais possédé, et je
ne peut donc pas vous donner mes impressions. Néanmoins, on a reporté
à de nombreuses reprises des problèmes sérieux avec la Live! et les
cartes mères AMD qui utilisent le southbridge 686b. Une recherche sur
Google devrait produire un tas d'informations sur ce problème.</p><p>Un élément plus pertinent est les haut-parleurs, mais même ici
la différence n'est pas énorme. J'ai eu des haut-parleurs Altec
Lansing coûteux qui ne fonctionnent que légèrement mieux que les
haut-parleurs bon marché. Tout dépend du prix que vous êtes
disposé(e) à mettre, mais ne vous attendez pas à de grosses
différences. Vous devriez vous procurer quelque chose avec un caisson
de basses séparé : les différences sont perceptibles au prix de
câbles d'alimentation et de connecteurs supplémentaires.</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="d0e2367"/>8.2. Pourquoi le son ne fonctionne-t-il pas ?</h3></div></div></div><p>Tout d'abord, votre jeu n'est probablement pas en cause ;
il s'agit probablement de votre configuration. À ma
connaissance, il y a 3 possibilités pour faire fonctionner une carte
son configurée sous Linux : les pilotes son libres OSS
accompagnant le noyau Linux, les pilotes Alsa et les pilotes son OSS
commerciaux. Personnellement, je préfère les pilotes OSS, mais
beaucoup ne jurent que par Alsa. Les pilotes commerciaux sont bons
quand vous avez du mal à faire fonctionner votre carte son avec des
méthodes libres. Ne crachez pas dessus : ils sont très bon
marché (du genre 10 ou 20 $), supportent des cartes son du
dernier cri et évitent beaucoup d'essai-erreur lors du processus de
configuration.</p><p>Il y a 5 choses qui peuvent mal se passer avec votre système
son : </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>interruption partagée</p></li><li class="listitem"><p>pilote mal configuré</p></li><li class="listitem"><p>quelque chose accède déjà à la carte son</p></li><li class="listitem"><p>mauvais pilote utilisé</p></li><li class="listitem"><p>problème de permissions</p></li></ol></div><div class="sect3"><div class="titlepage"><div><div><h4 class="title"><a id="d0e2390"/>8.2.1. Interruption partagée</h4></div></div></div><p>La première chose à faire est de savoir s'il y a un conflit
d'IRQ. Les cartes ISA ne peuvent pas partager de canaux
d'interruption. Les cartes PCI le peuvent, mais certains types de
cartes à grande bande passante n'aiment tout simplement pas
partager, en ce compris les cartes réseau et son. Pour déterminer
si vous avez un conflit, tapez
<strong class="userinput"><code>cat /proc/interrupts</code></strong>. J'obtiens comme
sortie sur mon système :
</p><pre class="screen">
$ cat /proc/interrupts
CPU0 CPU1
0: 24185341 0 XT-PIC timer
1: 224714 0 XT-PIC keyboard
2: 0 0 XT-PIC cascade
5: 2478476 0 XT-PIC soundblaster
5: 325924 0 XT-PIC eth0
11: 131326 0 XT-PIC aic7xxx
12: 2457456 0 XT-PIC PS/2 Mouse
14: 556955 0 XT-PIC ide0
NMI: 0 0
LOC: 24186046 24186026
ERR: 1353
</pre><p>La seconde colonne est présente car j'ai 2 processeurs sur
cette machine ; si vous n'en avez qu'un, vous n'aurez qu'une
seule colonne CPU. Les nombres sur la gauche sont les IRQ
attribuées et les chaînes de caractères sur la droite indiquent
quel périphérique a été assigné à cette IRQ. Vous pouvez voir que
j'ai un conflit entre la carte son (soundblaster) et la carte
réseau. Elles partagent l'IRQ 5. En fait, j'ai créé cet exemple de
toutes pièces car je voulais vous montrer à quoi ressemble un
conflit d'IRQ. Mais si j'avais ce conflit, ni mon réseau ni mon son
ne fonctionneraient correctement (ou ne fonctionneraient tout
court !).</p><p>Si la carte son est une PCI, le plus simple est de simplement
déplacer l'une des cartes dans un port différent et d'espérer que
le BIOS trie tout correctement. Une méthode plus avancée serait
d'aller dans le BIOS et d'attribuer des IRQ à des ports
spécifiques. Les BIOS modernes en sont capables.
</p></div><div class="sect3"><div class="titlepage"><div><div><h4 class="title"><a id="d0e2404"/>8.2.2. Pilote mal configuré</h4></div></div></div><p>Parfois, une carte utilisera toujours une certaine IRQ
(uniquement pour les cartes ISA). Alternativement, certaines cartes
ISA peuvent être configurées pour utiliser une IRQ spécifique en
utilisant des cavaliers sur la carte elle-même. Avec ce type de
cartes, vous devez passer les IRQ, adresses mémoire et port
d'entrée-sortie corrects au pilote.</p><p>C'est un sujet spécifique à la carte son, qui dépasse le cadre
de ce guide.</p></div><div class="sect3"><div class="titlepage"><div><div><h4 class="title"><a id="d0e2411"/>8.2.3. Quelque chose accède déjà à votre carte son</h4></div></div></div><p>Peut-être une application accède-t-elle déjà à votre carte
son ? Par exemple, peut-être y a-t-il un lecteur MP3 qui est
en mode pause… Si quelque chose accède déjà à votre carte,
d'autres applications ne pourront l'utiliser. Même s'il a été conçu
pour partager la carte entre des applications, je trouve que
<span class="application">esd</span> (le serveur de son de Enlightenment)
ne fonctionne pas toujours correctement. Le meilleur outil est
<span class="command"><strong>lsof</strong></span>, qui montre quels processus accèdent à un
fichier. Votre carte son est représentée par <code class="filename">/dev/dsp</code>. À l'instant, j'écoute
un MP3 (pas de Metallica bien sûr…) avec
<span class="application">mp3blaster</span>.
</p><pre class="screen">
# lsof /dev/dsp
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
mp3blaste 1108 p 6w CHR 14,3 662302 /dev/dsp
</pre><p><span class="command"><strong>fuser</strong></span> est similaire, mais vous permet
d'envoyer un signal à un processus quelconque accédant au fichier
de périphérique. </p><pre class="screen">
# fuser -vk /dev/dsp
USER PID ACCESS COMMAND
/dev/dsp root 1225 f.... mp3blaster
root 1282 f.... mp3blaster
</pre><p>Après avoir saisi la commande,
<span class="application">mp3blaster</span> a été tué par un signal
SIGKILL. Voyez les pages de manuel de <span class="command"><strong>lsof</strong></span> et
<span class="command"><strong>fuser</strong></span> ; elles sont très utiles. Vous devrez
les exécuter en tant que root car vous demandez des informations
concernant des processus pouvant appartenir à root.
</p></div><div class="sect3"><div class="titlepage"><div><div><h4 class="title"><a id="d0e2447"/>8.2.4. Mauvais pilote (ou aucun pilote) utilisé</h4></div></div></div><p>Il n'y a que deux façons de configurer votre
carte :</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>La prise en charge doit être compilée directement
dans le noyau</p></li><li class="listitem"><p>Le bon pilote doit être chargé en mémoire</p></li></ol></div><p>Vous pouvez trouver quel pilote utilise votre carte son en
utilisant <span class="command"><strong>lsmod</strong></span> ou en examinant la sortie de
<span class="command"><strong>dmesg</strong></span>. Étant donné que le son est de première
importance pour moi, je le compile toujours dans mes noyaux. Si
aucun pilote n'est chargé, vous devez déterminer ce qui a été
compilé dans votre noyau. Ce n'est pas si facile. Il vaut mieux
compiler votre noyau. À propos, sachez que la compilation de
votre propre noyau est la première étape vers la compétence sous
Linux. C'est pénible la première fois, mais une fois que c'est fait
correctement, cela devient très facile, en particulier si vous
conservez tous vos anciens fichiers <code class="filename">.config</code> et
utilisez des choses comme <strong class="userinput"><code>make oldconfig</code></strong>.
Voyez le <span class="quote">« <span class="quote">Guide pratique du noyau Linux</span> »</span>
(<a class="ulink" href="http://www.traduc.org/docs/howto/lecture/Kernel-HOWTO.html" target="_top"><span class="foreignphrase"><em class="foreignphrase">Kernel-HOWTO</em></span></a>)
pour les détails.
</p><p>Si vous n'avez pas compilé votre noyau vous-même, il est très
probable que votre système soit configuré de sorte à charger les
pilotes son sous forme de modules. C'est ainsi que fonctionnent les
distributions. Compilez tout ce qui est possible sous forme de
module et essayez de les charger tous. Ainsi, si vous ne voyez pas
le pilote de votre carte son avec <span class="application">lsmod</span>,
votre carte n'est probablement pas encore configurée.</p></div><div class="sect3"><div class="titlepage"><div><div><h4 class="title"><a id="d0e2485"/>8.2.5. Problème de permissions</h4></div></div></div><p>Si la carte son ne fonctionne que lorsque vous êtes root,
vous avez probablement un problème de permissions. Si c'est le cas,
sous root, examinez le groupe propriétaire de la carte son en
utilisant <strong class="userinput"><code>ls -l /dev/dsp</code></strong> ; il
s'agira probablement de <code class="literal">audio</code>. Ensuite, sous
root, ajoutez votre utilisateur non-root au groupe
<code class="literal">audio</code> dans <code class="filename">/etc/group</code>. Par
exemple, j'ai ajouté les utilisateurs <code class="literal">toto</code> et
<code class="literal">lulu</code> au groupe <code class="literal">audio</code> sur mon
système :</p><pre class="screen">
audio:x:29:toto,lulu
</pre><p>N'oubliez pas d'utiliser <span class="command"><strong>grpconv</strong></span> si vous
utilisez les mots de passe masqués (<span class="foreignphrase"><em class="foreignphrase">shadow
passwords</em></span>), ce qui devrait être le cas sur la
plupart des distributions récentes, afin de préserver une
configuration de groupes cohérente. Ensuite, déconnectez-vous et
reconnectez-vous comme utilisateur normal. Votre carte son devrait
fonctionner à présent. Merci à <span class="personname"><span class="firstname">James
</span> <span class="surname">Barton</span></span> pour m'avoir
rappelé d'ajouter ceci à ce guide.</p></div></div></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title"><a id="d0e2528"/>9. Problèmes divers</h2></div></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="d0e2531"/>9.1. Problèmes d'accélération matérielle</h3></div></div></div><p><span class="application">XFree86</span> 4.x fournit une approche
plus centralisée et plus autonome en ce qui concerne la vidéo.
Beaucoup des joyeusetés comme les modules noyau pour un accès non
root aux cartes vidéo ont, heureusement, disparu.</p><div class="sect3"><div class="titlepage"><div><div><h4 class="title"><a id="d0e2538"/>9.1.1. L'accélération matérielle ne fonctionne pas du
tout</h4></div></div></div><p>Si vous obtenez quelque chose comme 1 image par seconde,
alors votre système n'utilise pas d'accélération matérielle 3D.
Voici deux causes possibles :</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>votre système 3D est mal configuré (très
probable) ;</p></li><li class="listitem"><p>le jeu X est mal configuré (moins
probable).</p></li></ol></div><p>La première étape est déterminer ce qui se passe.</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Si vous utilisez X 4.0 (les utilisateurs de X 3.*
passeront à l'étape 2), regardez la sortie de la commande
<strong class="userinput"><code>X -probeonly</code></strong>. Vous verrez :</p><pre class="screen"> (II) XXXXXX: direct rendering enabled </pre><p> ou </p><pre class="screen"> (II) XXXXXX: direct rendering disabled </pre><p>où XXXXXXX dépend de la carte vidéo que vous possédez. Si
le rendu direct est désactivé, alors votre configuration X est
en cause, et pas le jeu. Vous devez déterminer pourquoi le DRI
est désactivé. L'outil le plus important est le
<span class="quote">« <span class="quote">Guide de l'utilisateur DRI</span> »</span>
(<span class="foreignphrase"><em class="foreignphrase">DRI Users Guide</em></span>). C'est un
document très bien écrit qui vous donne des informations pas à
pas sur la façon de configurer correctement le DRI pour votre
machine. Une copie est disponible sur <a class="ulink" href="http://www.xfree86.org/4.0/DRI.html" target="_top">http://www.xfree86.org/4.0/DRI.html</a>.</p><p>Notez que si vous réussissez ce test, votre système est
<span class="emphasis"><em>capable</em></span> de faire du rendu direct. Vos
bibliothèques peuvent toujours être en cause. Passez donc à
l'étape 2. </p></li><li class="listitem"><p>Il existe un programme appelé
<span class="command"><strong>glxgears</strong></span> qui accompagne le paquet
<span class="quote">« <span class="quote">mesademos</span> »</span>. Vous pouvez obtenir
mesademos sous Debian (<span class="command"><strong>apt-get install
mesademos</strong></span>) ou vous pouvez chercher le rpm sur <a class="ulink" href="http://www.rpmfind.net" target="_top">http://www.rpmfind.net</a>. Vous pouvez également
télécharger les sources depuis le site officiel de mesa et les
compiler vous-même.</p><p>L'exécution de <span class="command"><strong>glxgears</strong></span> montrera des
pignons en rotation. La <span class="command"><strong>xterm</strong></span> depuis
laquelle vous exécutez <span class="command"><strong>glxgears</strong></span> affichera
<span class="quote">« <span class="quote">X frames in Y seconds = X/Y FPS</span> »</span> (X
images en Y secondes). Vous pouvez comparer votre système avec
la liste de bancs d'essais ci-dessous. </p><pre class="screen">
CPU TYPE VIDEO CARD X VERSION AVERAGE FPS
</pre><p>Compiler les modules Mesa et DRI vous-même peut vous
faire gagner 15 images par seconde, une grosse augmentation de
performances ! Donc, si vous obtenez, disons, 20 images
par seconde de moins qu'une machine comparable, il est possible
que <span class="command"><strong>glxgears</strong></span> utilise le rendu logiciel. En
d'autres termes, votre carte graphique n'accélère pas les
graphiques 3D.
</p><p>Plus important encore que le nombre d'images par seconde,
est la non-variation de ce nombre pour les petites et les
grandes fenêtres. Si l'accélération matérielle fonctionne, le
nombre d'images par seconde pour <span class="command"><strong>glxgears</strong></span>
devrait être pratiquement indépendant de la taille de fenêtre.
Si ce n'est pas le cas, alors vous ne bénéficiez d'aucune
accélération matérielle.
</p></li></ol></div></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="d0e2620"/>9.2. L'accélération matérielle ne fonctionne que pour
root</h3></div></div></div><div class="sect3"><div class="titlepage"><div><div><h4 class="title"><a id="d0e2623"/>9.2.1. <span class="application">XFree86</span> 4.x</h4></div></div></div><p>Si les lignes suivantes ne sont pas présentes dans votre
fichier <code class="filename">XF86Config-4</code>, placez-les
y :</p><pre class="screen">
Section "DRI"
Mode 0666
EndSection
</pre><p>Cela permet aux utilisateurs non-root d'utiliser le DRI. Pour
les paranoïaques, il est possible de restreindre l'utilisation du
DRI à seuls quelques utilisateurs non-root. Voyez le
<span class="foreignphrase"><em class="foreignphrase">DRI User Guide</em></span>.</p></div><div class="sect3"><div class="titlepage"><div><div><h4 class="title"><a id="d0e2640"/>9.2.2. <span class="application">XFree86</span> 3.x</h4></div></div></div><div class="sect4"><div class="titlepage"><div><div><h5 class="title"><a id="d0e2645"/>9.2.2.1. Cartes Voodoo</h5></div></div></div><p>L'accélération matérielle pour les cartes Voodoo a lieu
<span class="emphasis"><em>uniquement</em></span> en couleurs 16 bits et échoue
silencieusement lors du démarrage de X avec un autre nombre de
couleurs.
</p><p>De plus, les cartes Voodoo ont besoin du module noyau
<code class="filename">3dfx.o</code> et d'un fichier de périphérique
<code class="filename">/dev/3dfx</code> (majeur 107,
mineur 0) pour l'accélération matérielle pour les utilisateurs
normaux (non root). Ni le module ni le fichier de périphérique ne
sont utilisés sous <span class="application">XFree86</span> 4.x.
</p></div></div></div></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title"><a id="d0e2664"/>10. Émulation et machines virtuelles</h2></div></div></div><p>Linux est beaucoup critiqué du fait de l'absence de la profusion
de jeux présents sous d'autres plates-formes. Franchement, il y a assez
de jeux pour moi, même s'il serait très chouette d'avoir certains des
jeux du dernier cri et des classiques comme
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Half-life</em></span></span>™ et
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Carmageddon</em></span></span>™.
Heureusement, il y a plus d'émulateurs que vous ne pouvez en tester.
Bien que jouer à un jeu émulé n'est pas aussi amusant que de le jouer
sur la machine originale, et que faire fonctionner correctement
certains émulateurs peut s'avérer difficile, ils existent, et il y en a
beaucoup !</p><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="d0e2677"/>10.1. Qu'est-ce qu'une machine virtuelle ?</h3></div></div></div><p>Un <span class="quote">« <span class="quote">véritable ordinateur</span> »</span> fournit
beaucoup de choses à un système d'exploitation : CPU, canaux
d'entrée-sortie, mémoire, un BIOS pour fournir un accès de bas niveau à
la carte mère et aux ressources d'entrée-sortie, et cætera. Quand un système
d'exploitation veut écrire sur un disque dur, il communique par
l'intermédiaire d'un pilote de périphérique qui fait l'interface
directe avec le matériel.</p><p>Néanmoins, il est possible de donner à un programme toutes les
ressources matérielles dont il a besoin. Quand il veut accéder à un
disque dur, donnons-lui de la mémoire où écrire. Quand il veut
attribuer une IRQ, donnons-lui l'impression d'avoir attribué une IRQ.
Si vous faites ceci correctement alors, en principe, la pauvre
application est incapable de savoir si elle accède réellement au
matériel ou si on la trompe en lui donnant des ressources qui simulent
le matériel. Une machine virtuelle est l'environnement qui trompe les
applications en leur faisant croire qu'elles tournent sur une machine
réelle. Elle fournit tous les services offerts par un véritable
ordinateur.</p><p>Les machines virtuelles ont été à l'origine utilisées dans les
années 1960 pour émuler les systèmes d'exploitation à temps partagé. De
nos jours, nous les utilisons pour exécuter des logiciels qui ont été
conçus pour des systèmes d'exploitation différents, ou plus
communément, pour émuler un système d'exploitation entier. Du fait de
la nature des machines virtuelles, le système d'exploitation étranger
ne peut faire la différence entre fonctionnement à l'intérieur d'une
machine virtuelle et fonctionnement dans une
<span class="quote">« <span class="quote">vraie</span> »</span> machine.
</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="d0e2692"/>10.2. Apple 8 bits</h3></div></div></div><p>Tous les émulateurs Apple ][ 8 bits requièrent une copie de la
ROM originale, quel que soit le système que vous voulez émuler, dans
un fichier. Si vous cherchez suffisamment bien, vous pouvez trouver
des copies des ROM pour les Apple ][, ][+, ][e, ][c et //gs. Ils sont
toujours propriété de Apple, et vous ne pouvez les utiliser
légalement que si vous possédez réellement un de ces ordinateurs.
</p><div class="sect3"><div class="titlepage"><div><div><h4 class="title"><a id="d0e2697"/>10.2.1. KEGS</h4></div></div></div><p><span class="application">KEGS</span>, de <span class="personname"><span class="firstname">Kent </span> <span class="surname">
Dickey</span></span> <code class="email"><<a class="email" href="mailto:kentd CHEZ cup POINT hp POINT
 com">kentd CHEZ cup POINT hp POINT
com</a>></code>, est un émulateur Apple II qui a été écrit à l'origine
pour HP-UX, mais amélioré et taillé pour Linux. Il tourne sous X
pour n'importe quel nombre de couleurs, et supporte des tailles de
mémoire variables, les joysticks et le son.
<span class="application">KEGS</span> amorce toutes les variantes de
Apple II, et prend en charge tous les modes graphiques des Apple
][. Je n'arrive pas à trouver de page d'accueil pour cette
application.
</p></div><div class="sect3"><div class="titlepage"><div><div><h4 class="title"><a id="d0e2718"/>10.2.2. apple2 et xapple2</h4></div></div></div><p><span class="application">apple2</span> basé sur SVGAlib et
<span class="application">xapple2</span> utilisant X peuvent émuler
n'importe quelle variante de Apple ][ sauf le //gs. L'interface est
assez originale, mais utilisable. La configuration est aussi un peu
étrange ; cet émulateur bénéficierait d'un outil de
configuration basé sur SVGA ou X. Il supporte la partie non
documentée du jeux d'instructions 6502 sur laquelle se basent
certains jeux. <span class="application">apple2</span> est actuellement
maintenu par <span class="personname"><span class="firstname">Michael</span> <span class="surname">
Deutschmann</span></span> <code class="email"><<a class="email" href="mailto:michael CHEZ talamasca
 POINT ocis POINT net">michael CHEZ talamasca
POINT ocis POINT net</a>></code> et semble être développé à une allure
lente mais constante. Je ne pense pas que cette application ait une
page d'accueil. </p></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="d0e2742"/>10.3. DOS</h3></div></div></div><div class="sect3"><div class="titlepage"><div><div><h4 class="title"><a id="dosemu"/>10.3.1. <span class="application">dosemu</span></h4></div></div></div><p><a class="ulink" href="http://www.dosemu.org" target="_top"><span class="application">dosemu</span></a>
est l'émulateur DOS canonique sous Linux. Quand vous pensez à DOS,
ne pensez pas à des choses comme PROCOM PLUS OU D'AUTRES PROGRA~1
QUI ONT DES NOMS COURTS ET QUI SONT TOUS EN MAJUSCULES. Quelques
classiques ont été écrits pour DOS comme
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Carmageddon</em></span></span>™,
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Redneck
Rampage</em></span></span>™ et
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Tomb
Raider</em></span></span>™.
<span class="application">dosemu</span> peut les faire tourner.
Malheureusement, il peut être malaisé de le faire fonctionner et,
depuis janvier 2002, le code audio est quelque peu défectueux. Pas
un gros problème si vous essayez d'exécuter
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Wordperfect</em></span></span>™
ou une vieille application de base de données, mais ça empêche de
jouer en pratique. Parvenir à faire fonctionner correctement
<span class="application">dosemu</span> n'est pas facile, mais c'est
malheureusement le mieux qu'on puisse faire pour les jeux DOS.
Bonne chance. Si vous utilisez avec succès
<span class="application">dosemu</span>, prévenez-moi.
</p></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="d0e2779"/>10.4. Win16</h3></div></div></div><div class="sect3"><div class="titlepage"><div><div><h4 class="title"><a id="d0e2782"/>10.4.1. Wabi</h4></div></div></div><p><span class="application">Wabi</span> est un émulateur Win16
commercial, c.-à-d. qu'il exécute des applications Windows 16 bits
prévues pour un environnement Windows 3.1, Windows 3.11 ou Windows
for Workgroups 3.11. <span class="application">Wabi</span> a été
initialement créé par SCO Unix il y a longtemps et a été acheté
par Caldera un beau jour vers la mi-2001. </p><p><span class="application">Wabi</span> est rapide et fait bien son
boulot, même si j'ai entendu dire qu'il est plus stable sous
Solaris que sous Linux. Il pourrait être utile pour jouer à de plus
anciens jeux Win16, mais il y a trois problèmes :</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>vous devez posséder une copie légale de Windows
3.1/3.11 ou de Windows for Workgroups 3.11 ; </p></li><li class="listitem"><p><span class="application">Wabi</span> est affreusement
cher pour ce qu'il fait ;</p></li><li class="listitem"><p>Wabi ne fonctionne pas en couleurs 24 ou 32 bits.
</p></li></ul></div><p><span class="application">Wabi</span> ne gère
<span class="emphasis"><em>pas</em></span> DOS par lui-même, mais il semble qu'il
puisse utiliser un émulateur DOS comme dorsal pour exécuter des
programmes DOS. On a parlé d'un <span class="application">Wabi</span> 3.0
qui aurait effectué de l'émulation Win32, mais pour autant que je
sache, ce projet est tombé aux oubliettes. Je pense que Wabi
fonctionne sous Linux sur toutes les architectures (quelqu'un
peut-il le vérifier ?).</p></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="win32"/>10.5. Win32</h3></div></div></div><div class="sect3"><div class="titlepage"><div><div><h4 class="title"><a id="wine"/>10.5.1. <span class="application">wine</span></h4></div></div></div><p><a class="ulink" href="http://www.winehq.com" target="_top"><span class="application">wine</span></a>,
qui porte l'acronyme GNUide de <span class="foreignphrase"><em class="foreignphrase">Wine Is Not An
Emulator</em></span> (Wine n'est pas un émulateur) est une
implémentation non commerciale de l'API Win32. La raison pour
laquelle ce n'est pas un émulateur est subtile et pas du plus grand
intérêt pour la plupart des non-informaticiens, et nous parlerons
donc d'émulateur ici (il s'agit en fait d'une traduction au moment
de l'exécution des appels de l'API Win32 en appels POSIX/X11).
<span class="application">wine</span> a beaucoup évolué, et est capable
d'émuler beaucoup de jeux importants, ce qui est une bonne nouvelle
pour les utilisateurs Linux intéressés.</p><p><span class="application">wine</span> ne fournit <code class="literal">pas</code> d'API DOS, et vous ne pouvez donc pas
l'utiliser pour exécuter des applications DOS. Pour cela, vous
devriez jeter un œil à <a class="link" href="#dosemu" title="10.3.1. dosemu"><span class="application">dosemu</span></a>.
<span class="application">wine</span> n'a jamais très bien implémenté
DirectX, bien que quelques jeux fonctionnent sous
<span class="application">wine</span>. Pour les jeux, vous devriez vous
tourner vers <a class="link" href="#winex" title="10.5.3. winex"><span class="application">winex</span></a>. </p><p>En plus de la traduction au moment de l'exécution de l'API
Win32 vers POSIX/X11 (il exécute des applications Windows sous
Linux), <span class="application">wine</span> effectue également une
traduction au moment de la compilation de l'API Win32 vers
POSIX/X11 (il compile le code source d'une application Windows sous
Linux). Vu sous cet angle, <span class="application">wine</span> est un
utilitaire de portage Windows-vers-Linux. L'architecture x86 n'est
pas requise, mais est recommandée car elle permet une exécution
binaire x86 réelle ainsi qu'une utilisation directe des DLL.
</p><p>Vous pouvez utiliser <span class="application">wine</span>
<span class="quote">« <span class="quote">avec Windows</span> »</span>, ce qui signifie qu'il
utilise des bibliothèques qui proviennent en réalité de Microsoft
Windows lui-même. Cela n'est légal que si vous possédez une copie
de Windows qui n'est pas actuellement utilisée sur un ordinateur.
On dit que <span class="application">wine</span> fonctionne le mieux
quand il est exécuté avec Windows. Vous pouvez également utiliser
<span class="application">wine</span> sans Windows. Les gens de <a class="ulink" href="http://www.winehq.com" target="_top">winehq</a> écrivent leur propre jeu
de bibliothèques appelé <code class="literal">libwine</code> qui implémente
l'API Win32 sans aucun code provenant de Microsoft. </p><p>
<a id="winelicense"/><span class="application">wine</span> était
à l'origine placé sous licence MIT/X11, et pouvait donc être
utilisé à la fois à des fins commerciales et non commerciales.
À la mi-2002, des parties de
<span class="application">wine</span> sont passées à la LGPL afin de
ne plus pouvoir être utilisées à des fins commerciales. Cela
pose un problème à des sociétés comme Transgaming (<a class="xref" href="#winex" title="10.5.3. winex">Section 10.5.3, « <span class="application">winex</span> »</a>) et a ouvert la voie à un nouveau projet issu
de <span class="application">wine</span> appelé <a class="link" href="#rewind" title="10.5.2. rewind"><span class="application">ReWind</span></a>.
</p></div><div class="sect3"><div class="titlepage"><div><div><h4 class="title"><a id="rewind"/>10.5.2. <span class="application">rewind</span></h4></div></div></div><p><a class="ulink" href="http://rewind.sourceforge.net/" target="_top"><span class="application">rewind</span></a>
a été démarré par <span class="personname"><span class="firstname">Éric
</span> <span class="surname">Pouech</span></span> (un développeur
de <span class="application">wine</span>) et <span class="personname"><span class="firstname">Ove</span> <span class="surname"> Kåven</span></span>
(un développeur de <span class="application">winex</span>) en réponse au
<a class="link" href="#winelicense">changement de licence de
<span class="application">wine</span></a>. Il a vu le jour comme un
instantané de la dernière version de
<span class="application">wine</span> complètement placée sous la licence
MIT/X11. Le but est que <span class="application">rewind</span> demeure
sous licence MIT/X11 afin que des sociétés comme Transgaming
puissent offrir des produits dérivés de
<span class="application">wine</span>.</p></div><div class="sect3"><div class="titlepage"><div><div><h4 class="title"><a id="winex"/>10.5.3. <span class="application">winex</span></h4></div></div></div><p><span class="application">winex</span> est publié par une société
appelée <a class="ulink" href="http://www.transgaming.com" target="_top">Transgaming</a>. Ses
développeurs utilisent <a class="link" href="#wine" title="10.5.1. wine"><span class="application">wine</span></a> et y ajoutent
le support DirectX/DirectDraw. Bien que
<span class="application">winex</span> soit commercial, leur modèle
économique est intéressant. </p><p>L'utilisateur final (vous) peut télécharger le code source
gratuitement. Néanmoins, pour 5 $ US par mois, vous pouvez
devenir un abonné de Transgaming, ce qui procure trois avantages
principaux :</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Les abonnés peuvent à tout moment télécharger des
versions empaquetées de <span class="application">winex</span> dans le
format <code class="filename">deb</code>, <code class="filename">rpm</code> ou <code class="filename">tar.gz</code> (y compris les mises à jour).
Elles sont également plus fonctionnelles que le source
publiquement disponible : celui-ci est une version
antérieure qui ne dispose pas de certaines des fonctionnalités
les plus récentes, comme la prise en charge des programmes
protégés contre la copie.</p></li><li class="listitem"><p>Les utilisateurs abonnés peuvent indiquer lors de
sondages mensuels quels sont les points qu'il faut améliorer en
priorité dans <span class="application">winex</span>. Par exemple, ils
peuvent voter pour des choses comme <span class="quote">« <span class="quote">Améliorer la
prise en charge des programmes protégés contre la
copie</span> »</span>, <span class="quote">« <span class="quote">Meilleur support
d'Installshield</span> »</span> ou <span class="quote">« <span class="quote">Améliorer la prise
en charge de DirectX 8.0</span> »</span>. Il me semble que les
développeurs écoutent réellement les sondages.</p></li><li class="listitem"><p>Le site web de Transgaming comporte quelques
forums d'assistance aux utilisateurs. D'un côté, ils utilisent le
format le plus affreux, horrible, confus, dispendieux et idiot
qu'il m'ait été donné de voir, et j'espère bien ne plus jamais
revoir de forum ayant un format aussi mauvais que celui de
Transgaming. D'un autre côté, vous pouvez demander de l'aide et
les développeurs sont <span class="emphasis"><em>très</em></span> bons pour trouver
une réponse à votre question ; leur vigilance est assez
impressionnante. Les non abonnés peuvent parcourir les forums,
mais seuls les abonnés peuvent y écrire (et, par conséquent, y
demander de l'aide).</p></li></ul></div><p>Les développeurs de <span class="application">winex</span> avaient
l'intention de publier périodiquement leurs améliorations à
Installshield, DirectX et DirectDraw dans
<span class="application">wine</span>. En contrepartie, au fur et à
mesure de la maturation de <span class="application">wine</span>, les
développeurs de <span class="application">winex</span> auraient pris les
nouvelles versions de <span class="application">wine</span> pour les
utiliser dans <span class="application">winex</span>. Néanmoins, depuis
la naissance de Transgaming, des parties de
<span class="application">wine</span> sont <a class="link" href="#winelicense">passées à la licence plus restrictive GNU
LGPL</a>. Cela signifie en gros que les versions de
<span class="application">wine</span> publiées après la date du
changement de licence ne peuvent plus être utilisées par
<span class="application">winex</span>. Par conséquent,
<span class="application">winex</span> sera à présent basé sur <a class="link" href="#rewind" title="10.5.2. rewind"><span class="application">rewind</span></a>.
</p></div><div class="sect3"><div class="titlepage"><div><div><h4 class="title"><a id="win4lin"/>10.5.4. Win4Lin</h4></div></div></div><p><a class="ulink" href="http://www.netraverse.com" target="_top"><span class="application">Win4Lin</span>
</a> est un produit commercial de Netraverse. Comme <a class="link" href="#vmware" title="10.5.5. VMWare"><span class="application">vmware</span></a>, il
utilise l'approche de la machine virtuelle pour exécuter des
applications Windows, et affiche donc une grande fenêtre depuis
laquelle vous pouvez démarrer Windows et exécuter toutes sortes
d'applications Windows. À la différence de
<span class="application">vmware</span>,
<span class="application">Win4Lin</span> ne prend en charge que Windows
95/98/ME, mais cela s'avère être mieux pour les joueurs. Puisque
<span class="application">Win4Lin</span> se concentre sur ces systèmes
d'exploitation, on dit qu'il est plus rapide et exécute mieux les
jeux sous ces systèmes d'exploitation que
<span class="application">vmware</span>. Il est également bien moins cher
que ce dernier. <span class="application">Win4Lin</span>, dont la version
la plus récente au 30 juin 2003 est la 5.0, souffre néanmoins de
certaines limitations :</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Il ne prend pas en charge DirectX ou DirectDraw,
alors que <span class="application">vmware</span> a un support
<span class="quote">« <span class="quote">limité</span> »</span> pour DirectX. </p></li><li class="listitem"><p>Il ne prend en charge que les périphériques série
et parallèle. C'est important pour ceux qui utilisent des
joysticks USB. Notez que <span class="application">vmware</span> peut
gérer jusqu'à 2 périphériques USB. </p></li><li class="listitem"><p>Au 30 juin 2003, comptez 89.99 $ sans
documentation imprimée et 99.99 $ avec. De plus, il n'y a
pas de copie d'évaluation disponible, bien qu'il y ait une
garantie de remboursement sous 30 jours. Néanmoins, puisque c'est
commercial, vous avez le support technique.
<span class="application">vmware</span> est beaucoup plus cher. </p></li><li class="listitem"><p>Comme pour <span class="application">vmware</span>,
vous devez posséder une copie autorisée de Win95 ou Win98.
<span class="application">Win4Lin</span> ne peut utiliser une
installation existante de Windows à la manière de
<span class="application">wine</span>. </p></li><li class="listitem"><p>Il ne tourne que sur les architectures x86.
</p></li></ul></div></div><div class="sect3"><div class="titlepage"><div><div><h4 class="title"><a id="vmware"/>10.5.5. VMWare</h4></div></div></div><p><a class="ulink" href="http://www.vmware.com" target="_top"><span class="application">VMWare</span></a>
est une machine virtuelle qui peut exécuter plusieurs systèmes
d'exploitation simultanément sur un PC standard : les systèmes
d'exploitation pris en charge comprennent ceux de Microsoft, Linux,
Novell Netware et FreeBSD. Vous pouvez entre autres l'utiliser pour
exécuter un système d'exploitation MS Windows et y lancer votre jeu
favori. Vous pouvez même faire tourner Linux sous Linux ;
utile par exemple si vous voulez tester une autre distribution.
Stupéfiant ! Mais il y a des mauvais côtés. Vous devriez
assurément disposer d'une bonne configuration pour
l'utiliser ; le minimum annoncé est un CPU x86 500 Mhz
avec 128 Mo de RAM, mais un processeur plus rapide avec au
moins 256 Mo de RAM semble le minimum absolu si vous désirez
des performances raisonnables. Toutes les distributions Linux ne
sont pas prises en charge : les dernières RedHat, Mandrake et
Suse le sont, mais c'est pas de chance si vous avez une autre
version et/ou distribution (comme Debian). De plus, la prise en
charge par <span class="application">vmware</span> de DirectX est
limitée, et vous pourriez ne pas pouvoir jouer à des jeux
récents.</p><p>Voyez <a class="ulink" href="http://www.vmware.com" target="_top">http://www.vmware.com</a> pour plus
d'informations. Ce n'est pas bon marché (environ 300 $ pour la
version Workstation), mais vous pouvez obtenir une version
d'évaluation limitée à 30 jours.</p></div><div class="sect3"><div class="titlepage"><div><div><h4 class="title"><a id="d0e3123"/>10.5.6. Que choisir ?</h4></div></div></div><p>En premier lieu, vous devriez essayer un émulateur. Bien que
certains jeux fonctionnent sous <a class="link" href="#wine" title="10.5.1. wine">wine</a>,
vous aurez probablement le plus de succès avec <a class="link" href="#winex" title="10.5.3. winex">winex</a> : sa prise en charge de DirectX
s'améliore constamment. Dans la version 3.1, la prise en charge de
DirectX 8 est quasiment achevée, mais ce n'est pas forcément le cas
des versions plus anciennes de DirectX (et donc des jeux plus
anciens).</p><p>Vous pourriez également essayer une machine virtuelle comme
<a class="link" href="#win4lin" title="10.5.4. Win4Lin">Win4Lin</a> ou <a class="link" href="#vmware" title="10.5.5. VMWare">VMWare</a> au lieu d'un émulateur. Si votre but
est d'exécuter des applications Win95/98/ME sous Linux, sans USB et
sur l'architecture x86, le coût et le centrage sur les systèmes
d'exploitation de type Win95 de <span class="application">Win4Lin</span>
en font un meilleur choix que <span class="application">vmware</span>.
Néanmoins, si vous devez avoir la prise en charge de l'USB ou
exécuter Linux sur une plate-forme autre que x86,
<span class="application">vmware</span> est votre seule
possibilité.</p><p>Maintenant, si votre but est d'exécuter des jeux pour des
systèmes d'exploitation de type Win95 sous Linux,
<span class="application">Win4Lin</span> semble presque toujours meilleur
que <span class="application">vmware</span>. Le plus gros problème est
que <span class="application">vmware</span> a un support limité de
DirectX alors que <span class="application">Win4Lin</span> n'en a aucun.
Ce fait seul rend tant <span class="application">Win4Lin</span> que
<span class="application">vmware</span> inutilisables pour la plupart des
jeux un tant soit peu évolués. Mais si vous voulez essayer, vous
aurez probablement plus de succès avec
<span class="application">vmware</span>.
</p></div></div></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title"><a id="interpreters"/>11. Interpréteurs</h2></div></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="d0e3177"/>11.1. Moteur SCUMM (LucasArts)</h3></div></div></div><p>Lucasarts a écrit un moteur pour les aventures pilotées à la
souris nommé SCUMM (<span class="foreignphrase"><em class="foreignphrase">Script Creation Utility for Maniac
Mansion</em></span>). Ils ont écrit beaucoup d'aventures
graphiques en utilisant SCUMM, comme leur célèbre série
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Monkey
Island</em></span></span>™ (tous les trois). <span class="personname"><span class="firstname">Ludvig</span> <span class="surname">
Strigeus</span></span> <code class="email"><<a class="email" href="mailto:strigeus CHEZ users POINT
 sourceforge POINT net">strigeus CHEZ users POINT
sourceforge POINT net</a>></code> a pu utiliser la rétro-ingénierie pour
comprendre le format SCUMM et écrire un interpréteur pour les jeux
l'utilisant qui compile sous Linux et Win32. Il s'agit de <a class="ulink" href="http://scummvm.sourceforge.net/" target="_top"><span class="application">scummvm</span></a>.
Leur site web est très bon, et regorge d'informations sur SCUMM et
l'utilisation de <span class="application">scummvm</span> pour ce type de
jeux.</p><p>Une page de compatibilité peut être trouvée sur le site web de
<span class="application">scummvm</span>. Ça vaut ce que ça vaut, mais j'ai
pu finir beaucoup des jeux qui sont listés à 90 % sans le
moindre problème. <span class="application">scummvm</span> est très
robuste, et vous permet d'acheter des jeux Lucas Arts utilisant le
format SCUMM, copier les fichiers de données sur votre disque dur et
les jouer sous Linux. En février 2002, j'ai suivi leur CVS, et ce
projet subit un développement constant. Gloire à l'équipe de
<span class="application">scummvm</span>. </p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="d0e3218"/>11.2. AGI : Adventure Gaming Interface (Sierra)</h3></div></div></div><p>Les anciens jeux d'aventures graphiques DOS de Sierra
utilisaient un langage de script appelé AGI (<span class="foreignphrase"><em class="foreignphrase">Adventure
Gaming Interface</em></span>). Quelques jeux écrits en AGI :
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Leisure Suit Larry
I</em></span></span>™ (EGA),
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Space Quest
I</em></span></span>™, <span class="productname"><span class="foreignphrase"><em class="foreignphrase">Space
Quest II</em></span></span>™,
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">King's Quest
II</em></span></span>™,
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Mixed-Up Mother
Goose</em></span></span>™, et cætera. On peut y jouer en
utilisant <a class="ulink" href="http://sarien.sourceforge.net" target="_top"><span class="application">sarien</span></a>,
un interpréteur <span class="foreignphrase"><em class="foreignphrase">open source</em></span> pour les
jeux AGI. </p><p>Sarien a été écrit en SDL, et devrait donc tourner sur toute
plate-forme qui peut compiler des programmes SDL. De plus, il y a des
versions pour DOS, les PDA utilisant Strong-Arm, QNX (mon dieu !
du jeu embarqué !), les systèmes à base de MIPS et les Pocket PC
à base de SH3/4. Les développeurs ont clairement perdu la tête (d'une
bonne façon !). Sarien propose de nombreuses améliorations non
trouvées dans les jeux originaux, comme une console déroulante du
genre de celle de Quake, un visualisateur d'images et de
dictionnaire, un son amélioré et la prise en charge de AGDS, un clone
russe de AGI. Sarien est en cours de développement et les
développeurs ont très bien documenté la conception interne de Sarien
si jamais quelqu'un veut s'impliquer dans son développement. </p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="d0e3255"/>11.3. SCI : SCript Interpreter ou Sierra Creative
Interpreter (Sierra)</h3></div></div></div><p>Les jeux d'aventures graphiques plus récents de Sierra (c.-à-d.
de la fin des années 80) utilisaient un interpréteur appelé SCI. Il y
a beaucoup de versions de SCI puisque Sierra a constamment amélioré
son moteur. Les premiers jeux SCI s'exécutaient sous DOS, mais Sierra
s'est finalement tourné vers Win32. Quelques exemples de jeux écrits
avec SCI : <span class="productname"><span class="foreignphrase"><em class="foreignphrase">Leisure Suit Larry
1</em></span></span>™ (VGA),
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Leisure Suit Larry
2-7</em></span></span>™, <span class="productname"><span class="foreignphrase"><em class="foreignphrase">Space
Quest 3-6</em></span></span>™,
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">King's Quest
4-6</em></span></span>™, <span class="productname"><span class="foreignphrase"><em class="foreignphrase">Quest
For Glory 1-4</em></span></span>™ et beaucoup d'autres.
Comparées aux jeux AGI, les aventures SCI ont une meilleure prise en
charge de la musique, un moteur plus complexe et des tas de
fioritures.</p><p>Beaucoup de jeux utilisant SCI (écrits en SCI0) peuvent être
joués en utilisant <span class="application">freesci</span>, disponible sur
<a class="ulink" href="http://freesci.linuxgames.com" target="_top">http://freesci.linuxgames.com</a>. Comme
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Sarien</em></span></span>™,
FreeSCI peut utiliser beaucoup de cibles graphiques incluant SDL,
xlib et GGI, de sorte que ce programme peut compiler et s'exécuter
sous un nombre incroyable de plates-formes. Les développeurs ont très
bien documenté leur application. </p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="infocom"/>11.4. Infocom Adventures (Infocom,
Activision)</h3></div></div></div><p>La <a class="ulink" href="http://www.gnelson.demon.co.uk/zspec/index.html" target="_top">Z-machine</a>
est une machine virtuelle bien documentée conçue par Infocom pour
exécuter leurs jeux de fiction interactive. Cela leur permet d'écrire
des fichiers de données de jeu d'une façon multi-plates-formes, car
seul le moteur lui-même, la Z-machine, est dépendant de la
plate-forme. La Z-machine a subi différentes évolutions durant la vie
de Infocom, et deux révisions supplémentaires (V7 et V8 créées par
<span class="personname"><span class="firstname">Graham</span> <span class="surname">
Nelson</span></span>) après la mort de Infocom. Les versions
ultérieures disposaient même d'une prise en charge limitée du son et
des graphiques !
</p><p>Un des interpréteurs de Z-machine parmi les plus populaires est
<a class="ulink" href="http://www.cs.csubak.edu/~dgriffi/proj/frotz/" target="_top"><span class="application">Frotz</span></a>.
Leur excellente page d'accueil regorge de liens sympas pour les
amateurs de fiction interactive. <span class="application">Frotz</span> est
placé sous GPL, exécute toutes les versions de la Z-machine et
compile sur la plupart des versions de Unix. Frotz est à l'origine de
nombreuses variantes, comme une version pour PalmOS et les PDA à base
de Linux.</p><p><a class="ulink" href="http://jzip.sourceforge.net/" target="_top"><span class="application">jzip</span></a>
est un autre interpréteur de Z-machine très populaire qui exécute les
fichiers de données des Z-machine V1-V5 et V8.
<span class="application">jzip</span> est très portable ; il compile
sous tous les Unix, OS/2, Atari ST et DOS.</p><p>Il y a en fait beaucoup d'autres interpréteurs de Z-machine
comme <span class="application">nitfol</span> et
<span class="application">rezrov</span> (écrit en Perl !). Chaque
interpréteur a ses points forts, et vous pouvez trouver des liens les
référençant sur les pages d'accueil de
<span class="application">Frotz</span> et <span class="application">jzip</span>.
</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="scottadams"/>11.5. Scott Adams Adventures (Adventure
International)</h3></div></div></div><p>On peut dire que <span class="personname"><span class="firstname">Scott</span> <span class="surname"> Adams</span></span> est le père de la fiction
interactive. Bien qu'il ait lui-même été inspiré par la première
œuvre de fiction interactive,
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Adventure</em></span></span>™,
Scott a propulsé l'aventure au devant de la scène. Ses jeux étaient
disponibles pour Atari, Apple 2, Commodore, Sorcerer, TI et CPM. Sa
société, Adventure International, a publié quelques jeux très
appréciés entre 1978 et 1984 avant d'arrêter. Elle a récemment publié
un nouveau jeu (une version Linux n'est pas disponible) mais depuis
le déclin du jeu d'aventure, elle s'est plutôt tenue à l'écart de
l'industrie du jeu.
</p><p><span class="personname"><span class="firstname">Alan</span> <span class="surname">
Cox</span></span> a écrit
<span class="application">scottfree</span>, un interpréteur de fichier de
jeux d'aventure du type Scott Adams pour Unix. En utilisant
<span class="application">scottfree</span> et l'un des fichiers de données
du type Scott Adams qui peuvent être téléchargés depuis le <a class="ulink" href="http://www.msadams.com/" target="_top">site web de Scott</a>, vous pouvez
vous délecter de ces classiques.</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="d0e3373"/>11.6. Ultima Underworld : The Stygian Abyss (Origin, Blue
Sky Productions)</h3></div></div></div><p>Le projet <a class="ulink" href="http://uwadv.sourceforge.net/" target="_top">Underworld
Adventures</a> est un effort visant à porter le classique de
1992, <span class="productname"><span class="foreignphrase"><em class="foreignphrase">Ultima Underworld: The Stygian
Abyss</em></span></span>™ sur des systèmes d'exploitation
modernes comme Linux, MacOS X et Windows. Il utilise OpenGL pour les
graphiques 3D, SDL pour les tâches spécifiques à la plate-forme et
est publié sous la GNU GPL. Underworld Adventures fournit un système
graphique impressionnant qui utilise les fichiers de jeu originaux,
et vous avez donc besoin du disque de jeu original pour jouer.</p><p>Underworld Adventures offre également un tas d'outils pour
afficher les cartes de niveaux, examiner les scripts de conversation
uw1 et bien d'autres choses.</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="exult"/>11.7. Ultima 7 (Origin, Electronic Arts)</h3></div></div></div><p><span class="productname"><span class="foreignphrase"><em class="foreignphrase">Ultima
7</em></span></span>™ en en fait constitué de 2 jeux :
la partie I (<span class="productname"><span class="foreignphrase"><em class="foreignphrase">The Black
Gate</em></span></span>™) et la partie II
(<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Serpent
Island</em></span></span>™) qui utilise une version
légèrement améliorée du moteur de <span class="productname"><span class="foreignphrase"><em class="foreignphrase">The
Black Gate</em></span></span>™. De plus, une disquette
additionnelle a été publiée à la fois pour la partie I
(<span class="productname"><span class="foreignphrase"><em class="foreignphrase">The Forge Of
Virtue</em></span></span>™) et la partie II
(<span class="productname"><span class="foreignphrase"><em class="foreignphrase">The Silver
Seed</em></span></span>™). </p><p>Une équipe a développé <a class="ulink" href="http://exult.sourceforge.net/" target="_top"><span class="application">exult</span></a>,
un interpréteur <span class="foreignphrase"><em class="foreignphrase">open source</em></span> permettant
d'exécuter les deux parties de <span class="productname"><span class="foreignphrase"><em class="foreignphrase">Ultima
7</em></span></span>™ et leurs disquettes additionnelles.
<span class="application">Exult</span> est écrit en C++ et utilise SDL, et
compilera donc sur toute plate-forme pouvant compiler des programmes
SDL. Il offre également certaines améliorations par rapport aux
versions originales du moteur de <span class="productname"><span class="foreignphrase"><em class="foreignphrase">Ultima
VII</em></span></span>™. Vous devrez acheter une copie de
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Ultima 7</em></span></span>™
pour pouvoir jouer. Les développeurs n'ont pas l'intention d'étendre
<span class="application">Exult</span> pour interpréter les autres Ultima
étant donné que les moteurs ont changé radicalement entre les
différentes versions. </p><p>L'équipe d'<span class="application">Exult</span> a également
travaillé dur pour créer un éditeur de niveaux,
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Exult
Studio</em></span></span>™, et un compilateur de scripts
qui permettra aux utilisateurs de créer leurs propres RPG dans le
style
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Ultima</em></span></span>™.
</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="d0e3455"/>11.8. System Shock (Electronic Arts, Origin)</h3></div></div></div><p><span class="productname"><span class="foreignphrase"><em class="foreignphrase">System
Shock</em></span></span>™ est un jeu de combat à la
première personne/aventure classique datant de 1994, ce qui le place
en contemporain de
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Doom</em></span></span>™.
Néanmoins, son moteur est beaucoup plus évolué que celui du
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Doom</em></span></span>™
original : par exemple, <span class="productname"><span class="foreignphrase"><em class="foreignphrase">System
Shock</em></span></span>™ disposait d'acteurs
(<span class="foreignphrase"><em class="foreignphrase">sprites</em></span>) 3D, d'un angle de vue
modifiable (à la souris), et de la possibilité d'empiler des objets,
donnant l'illusion d'une carte 3D complète, comme
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Quake</em></span></span>™. Les
critiques que j'en ai lues sont très positives. Elles concordent pour
dire que ce jeu a les fonctionnalités de
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Quake</em></span></span>™ avec
une intrigue et un scénario plus convaincants que
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Half-life</em></span></span>™.
Le moteur de <span class="productname"><span class="foreignphrase"><em class="foreignphrase">System
Shock</em></span></span>™ était optimisé pour la
sophistication, alors que celui de
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Doom</em></span></span>™ était
optimisé pour vous balancer des tas de monstres à la figure :
une approche complètement différente. Très impressionnant pour un
vieux jeu !</p><p>Le <a class="ulink" href="http://madeira.physiol.ucl.ac.uk/tsshp/sshock.html" target="_top"><span class="foreignphrase"><em class="foreignphrase">System
Shock Hack Project</em></span></a> est une tentative de mise
à jour du jeu pour les systèmes d'exploitation modernes. Ce projet
utilise SDL, et est publié sous une licence BSD modifiée. Bien que
vous ayez besoin des fichiers de jeu originaux pour jouer à SSHP, il
devrait fonctionner avec la version de démonstration de
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">System
Shock</em></span></span>™, qui est disponible
gratuitement.</p></div></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title"><a id="d0e3508"/>12. Sites web et ressources</h2></div></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="d0e3511"/>12.1. Méta-sites web de jeux</h3></div></div></div><p>Voici quelques ressources générales pour les joueurs
Linux :</p><div class="variablelist"><dl class="variablelist"><dt><span class="term">Le <span class="foreignphrase"><em class="foreignphrase">Linux Game
Tome</em></span> : <a class="ulink" href="http://www.happypenguin.org" target="_top">http://www.happypenguin.org</a></span></dt><dd><p>Les jeux en eux-mêmes. </p></dd><dt><span class="term"><a class="ulink" href="http://www.linuxgames.com" target="_top">Linuxgames</a></span></dt><dd><p>Actualités sur les jeux Linux. </p></dd><dt><span class="term"> <a class="ulink" href="http://www.holarse.net" target="_top">http://www.holarse.net</a></span></dt><dd><p>Méta-site web sur les jeux Linux pour les
germanophones.</p></dd><dt><span class="term"><a class="ulink" href="http://www.mobygames.com" target="_top">Mobygames</a></span></dt><dd><p>Une base de données de tous les jeux vidéo
informatiques connus. C'est un site très complet et un des mes
favoris.</p></dd></dl></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="d0e3548"/>12.2. Jeux Linux commerciaux</h3></div></div></div><div class="sect3"><div class="titlepage"><div><div><h4 class="title"><a id="d0e3551"/>12.2.1. Où acheter des jeux commerciaux</h4></div></div></div><p><a class="ulink" href="http://www.ebgames.com" target="_top">ebgames</a> ne vend
plus de logiciels Linux. Ils ont cessé de vendre des jeux et des
distributions Linux à peu près au même moment où Loki Software a
fait aveu de faillite, ce qui est une honte car ils avaient les
plus bas prix sur les jeux Linux qu'il m'ait été donné de voir.
Néanmoins, de temps en temps, ils proposent des choses comme Code
Warrior ou Red Hat Linux.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><a class="ulink" href="http://www.tuxgames.com" target="_top">Tux Games</a>
</span></dt><dd><p>Votre magasin pour l'achat de jeux Linux
commerciaux (les vendeurs de logiciel comme Tribsoft et Loki
ont aussi des magasins en ligne sur leurs sites web).
</p></dd></dl></div></div><div class="sect3"><div class="titlepage"><div><div><h4 class="title"><a id="d0e3567"/>12.2.2. Qui publiait des jeux pour Linux</h4></div></div></div><p>Ce sont des sociétés qui publiaient des jeux pour Linux mais
qui pour des raisons diverses ne sont plus actives dans l'industrie
du jeu sous Linux. </p><div class="variablelist"><dl class="variablelist"><dt><span class="term">Loki Software : <a class="ulink" href="http://www.lokigames.com" target="_top">http://www.lokigames.com</a></span></dt><dd><p>En
tant que société qui a apporté
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">CTP</em></span></span>™ et
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Quake3</em></span></span>™
sous Linux, Loki était le père du jeu sous Linux. Ils étaient des
pionniers et avaient, de loin, le plus de titres (je les ai
tous). Loki a porté des jeux sous Linux, principalement en
utilisant la bibliothèque SDL. La mort de Loki en janvier 2002
était le plus grand revers subi par Linux dans sa tentative de
conquête du marché domestique. Linuxgames.com propose un bel
historique de Loki sur <a class="ulink" href="http://www.linuxgames.com/articles/lokitimeline/" target="_top">http://www.linuxgames.com/articles/lokitimeline/</a>
</p></dd><dt><span class="term">Tribsoft : <a class="ulink" href="http://www.tribsoft.com" target="_top">http://www.tribsoft.com</a></span></dt><dd><p>Tribsoft a publié <span class="productname"><span class="foreignphrase"><em class="foreignphrase">Jagged
Alliance 2</em></span></span>™, un excellent jeu de
rôle/stratégie qui a réclamé plus de 2 semaines de ma vie. Ils
devaient publier <span class="productname"><span class="foreignphrase"><em class="foreignphrase">Europai
Universalis</em></span></span>™,
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Majesty</em></span></span>™
et <span class="productname"><span class="foreignphrase"><em class="foreignphrase">Unfinished
Business</em></span></span>™. Néanmoins, en date du 3
janvier 2001, <span class="personname"><span class="firstname">Mathieu</span> <span class="surname"> Pinard</span></span> de Tribsoft a dit qu'il
faisait une pause et que Tribsoft ne publierait plus de jeux pour
le moment. Il continuera toujours l'assistance pour
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">JA2</em></span></span>™
mais ne vous attendez pas à des correctifs ou à des mises à jour.
</p></dd><dt><span class="term">MP Entertainment : <a class="ulink" href="http://www.hopkinsfbi.com" target="_top">http://www.hopkinsfbi.com</a></span></dt><dd><p>MP Entertainment a publié
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Hopkins
FBI</em></span></span>™, mon jeu préféré jamais publié
pour Linux. Plus violent que
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Quake</em></span></span>™.
Plus de nudité que Hustler. Plus de mauvais goût que <a class="ulink" href="http://www.flatwaremedia.com/liberace/gallery.cfm" target="_top">Liberace</a>.
C'est une bande dessinée sur votre moniteur. Il était prévu
qu'ils publient <span class="productname"><span class="foreignphrase"><em class="foreignphrase">Hopkins FBI
II</em></span></span>™ et quelques autres titres, mais
les annonces datent déjà de quelques années sans aucun signe
d'arrivée prochaine du jeu. Ils ont ignoré toutes mes demandes
d'informations, et j'en ai donc conclu que MP Entertainment est
dans la même situation que Tribsoft. Vous pouvez toujours acheter
ou télécharger une démo de <span class="productname"><span class="foreignphrase"><em class="foreignphrase">Hopkins
FBI</em></span></span>™ depuis leur site web. Si
quelqu'un a plus d'informations sur cette société ou sur l'auteur
de <span class="productname"><span class="foreignphrase"><em class="foreignphrase">Hopkins
FBI</em></span></span>™, veuillez me contacter.
</p></dd><dt><span class="term">Phantom EFX : <a class="ulink" href="http://www.phantomefx.com" target="_top">http://www.phantomefx.com</a></span></dt><dd><p>Ils proposent <span class="productname"><span class="foreignphrase"><em class="foreignphrase">Reel
Deal Slots</em></span></span>™, qui est très bien
fait ! Je ne suis pas trop amateur de jeux de cartes ou
d'argent, mais ce jeu est impressionnant ! Étant donné que
leur seul spécialiste Linux a quitté la société,
<span class="productname"><span class="foreignphrase"><em class="foreignphrase">Reel Deal
Slots</em></span></span>™ est leur seule, et à ce jour
dernière, publication pour Linux. </p></dd></dl></div></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="d0e3670"/>12.3. Autres ressources</h3></div></div></div><p>Cette section propose des URL qui devraient être mentionnées
mais qui ne trouvaient pas leur place dans une section séparée à
l'intérieur de ce guide, et que j'ai donc listées ici dans une sorte
d'annexe.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term">Linux Game Publishing : <a class="ulink" href="http://www.linuxgamepublishing.com" target="_top">http://www.linuxgamepublishing.com</a></span></dt><dd><p>Linux Publishing ne vend pas directement au
public, mais fournit des services professionnels de publication
de jeux aux éditeurs de jeux. Je pense que cela signifie la
réplication de disques, l'emballage et la vente aux
détaillants.</p></dd><dt><span class="term">Site officiel de
<span class="application">XFree86</span> : <a class="ulink" href="http://www.xfree86.org" target="_top">http://www.xfree86.org</a></span></dt><dd><p>Page
d'accueil de
<span class="application">XFree86</span>.</p></dd><dt><span class="term">Linux Game Development Center : <a class="ulink" href="http://lgdc.sunsite.dk/index.html" target="_top">http://lgdc.sunsite.dk/index.html</a></span></dt><dd><p>C'est le site web de référence pour qui veut
programmer des jeux sous Linux. C'est une montagne d'informations
contenant des articles bien écrits sur tous les aspects de la
programmation de jeux (pas nécessairement spécifiques à Linux), des
liens vers d'importantes ressources relatives à la programmation de
jeux, des interviews, tests, sondages et des tas d'autres trucs. Il
est difficile d'imaginer un meilleur site web sur le
sujet.</p></dd><dt><span class="term">La FAQ de Linux Gamers : <a class="ulink" href="http://www.icculus.org/lgfaq/" target="_top">http://www.icculus.org/lgfaq/</a></span></dt><dd><p>Malgré le fait sidérant qu'elle ne mentionne nulle
part ce présent guide comme une ressource dans leur texte, je
considère la FAQ comme un bon complément à ce guide. J'ai essayé de
ne garder que le strict minimum d'informations spécifiques à des
jeux particuliers dans ce guide. La FAQ prend l'approche
opposée : elle se concentre principalement sur les jeux
eux-mêmes, y compris des problèmes spécifiques à certains jeux et
l'endroit où les obtenir. La FAQ et le guide sont complémentaires à
cet égard, et j'ai essayé de ne pas reproduire leur contenu. Même
si les auteurs sont un peu hargneux, leur effort est à souligner.
Si vous voulez une source d'informations globale pour des questions
spécifiques à certains jeux, la FAQ est un excellent point de
départ. De plus, elle donne des informations sur un assez grand
nombre de jeux Linux.</p></dd><dt><span class="term">Le <span class="quote">« <span class="quote">Guide pratique de la qualité du son
sous Linux</span> »</span> (<span class="foreignphrase"><em class="foreignphrase">Linux Audio Quality
HOWTO</em></span>) : <a class="ulink" href="http://www.linuxdj.com/audio/quality/" target="_top">http://www.linuxdj.com/audio/quality/</a></span></dt><dd><p>Ce guide intéressera principalement les musiciens qui
utilisent des cartes professionnelles ou semi-professionnelles pour
l'enregistrement et la création de musique sur un ordinateur. Les
informations sont très détaillées, peut-être même trop pour les
joueurs.</p></dd></dl></div></div></div></div></body></html>
|