Software: liquidwar-server Version: File: liquidwar-server.6 Patch: Yes Warnings from "groff -b -ww -mandoc -z ...": :2207: warning: macro `..to' not defined :2214: warning: macro `..which' not defined :2219: warning: macro `..Which' not defined Spelling corrected # Output from "nroff" should (usually) have only the left margin adjusted (".ad l"). Otherwise the space between words can be too long. Output for a manual should (usually) have the right margin ragged (".ad l"), as it is not (usually) intended for a book or other professional printing medium. # Each sentence should begin in a new line. a) The space between sentences is different between formatters. b) Changes in one line do then not affect others, and do therefore not appear as changed in the output of "diff". # Sometimes a small change in space between a roman and an italic character is needed (use ".RI" or ".IR" macros). # Remove spaces at end of lines. # Protect the last full stop (period) in abbreviations or ellipses (with \&) if it is not at the end of a sentence. # Protect the full stop (period) at the beginning of text (word) or ellipsis. # Protect a single quote (', apostrophe) (with \&) at the start of the quoted text. ## Patch: --- liquidwar-server.6 2012-10-25 20:05:23.416205033 +0000 +++ liquidwar-server.6.new 2012-10-25 21:38:17.320109956 +0000 @@ -78,7 +78,7 @@ Here are some more tips, kindly submitted by Jan Samohyl\. .TP 3 .B * -Try to cut your opponent off walls and surround him completely with your troops; when trying to penetrate his forces inside a tunnel, keep your troops at the wall (and force them ocassionaly to attack off the wall)\. I think this is a biggest weakness of the computer AI, that it doesn't know this\. +Try to cut your opponent off walls and surround him completely with your troops; when trying to penetrate his forces inside a tunnel, keep your troops at the wall (and force them occasionally to attack off the wall)\. I think this is a biggest weakness of the computer AI, that it doesn't know this\. .TP 3 .B * When luring your troops to outflank an enemy, always move your cursor through the enemy, not the other way around\. @@ -149,7 +149,7 @@ Cort Danger Stratton : helped me setting up network support\. .TP 3 .B * -Tim Chadburn : wrote midi files for the game\. His contribution has been truely appreciated since it's rather hard to find GNU GPL compliant artwork\. He also wrote documentation and helped with midi support in general\. +Tim Chadburn : wrote midi files for the game\. His contribution has been truly appreciated since it's rather hard to find GNU GPL compliant artwork\. He also wrote documentation and helped with midi support in general\. .TP 3 .B * Jan Gretschuskin : contributed 11 maps, and made the German translation\. So if you run Liquid War with German menus, you know who you have to thank \-> Jan! 8\-) Also do not forget to visit http://www\.game\-factor\.de @@ -221,11 +221,11 @@ This list is for general discussions about Liquid War\. Here you can make suggestions, submit bug reports, ask for help, find players, etc\.\.\. Basically, any question or remark which concerns the game is welcomed on this list\. .TP 0 -.B Practical informations +.B Practical information .HP 0 You can't send messages to the list without subscribing\. The only reason for this is that it's one of the only way to block spam efficiently\. I first thought it could be OK to allow anyone to post, but liquidwar\-user seems to have be harvested by robots, so now I need to restrict posters\. However, I insist on the fact that anyone can subscribe, and the subscription to the list is not moderated\. So if you are a human being and not a stupid spam robot, you're welcome on the list 8\-) .HP 0 -Here's a list of usefull URLs: +Here's a list of useful URLs: .TP 3 .B * To (un)subscribe: http://mail\.nongnu\.org/mailman/listinfo/liquidwar\-user @@ -250,7 +250,7 @@ .TP 0 .B IRC channels .HP 0 -I personnally spend some time on irc\.freenode\.net so you might use it to find other players \- though I'm not really an IRC addict\.\.\. \.\.\.not yet at least! +I personally spend some time on irc\.freenode\.net so you might use it to find other players \- though I'm not really an IRC addict\.\.\. \.\.\.not yet at least! .HP 0 Here are the channels I recommend: .TP 3 @@ -295,7 +295,7 @@ .HP 0 "Flawed?" came the reply\. .HP 0 -"Yes flawed, when the good Captain is finished devouring my army who do you think he will turn to next?", bluffed the General \- his hands worked quickly as he manoeuvred his hovering control ring, all that his troops ever saw of him, carefully towards the weakest section of his attackers\. If he could just break out a few units he could soon turn the tide against both Yellow and Orange\. +"Yes flawed, when the good Captain is finished devouring my army who do you think he will turn to next?", bluffed the General \- his hands worked quickly as he manoeuvered his hovering control ring, all that his troops ever saw of him, carefully towards the weakest section of his attackers\. If he could just break out a few units he could soon turn the tide against both Yellow and Orange\. .HP 0 "We have an alliance\.\.\." Orange's voice was unsure now\. .HP 0 @@ -376,7 +376,7 @@ .HP 0 You'll notice that on some maps the texture selection zones simply disappear\. This is because these maps are associated with a texture, so choosing a different texture is often not recommended for it won't look as nice as with the right one\. If you still want to override this behaviour you can click on the "on/off" button just right to the "Use default texture" label\. This is a toggle button which will allow you to use your own textures even on maps that normally come with their own skin\. .HP 0 -You'll also notice that a "Random map" button is available\. This button generates a new random map using an external program, "lwmapgen", developped by David Redick, available on http://www\.cs\.clemson\.edu/~dredick/lwmapgen/ +You'll also notice that a "Random map" button is available\. This button generates a new random map using an external program, "lwmapgen", developed by David Redick, available on http://www\.cs\.clemson\.edu/~dredick/lwmapgen/ .HP 0 This program supports many command line options, and if you want a very precise control on the generated maps, you'll need to run it separately\. Looking at LW's log file you should be able to see the commands LW issues when calling this program, this can give you ideas on how to launch it manually\. Alternatively using the "\-\-help" option (for instance "liquidwar\-mapgen \-\-help" under UNIX) should describe how to use it\. @@ -414,16 +414,16 @@ .HP 0 The "Menu res" slider allows you to set the resolution used by the menus\. There are currently 5 possible values, which depend on which platform you're running the game on\. .HP 0 -I personnaly think the menus look best with the 640x480 resolution, but some may prefer higher resolutions\. Lower resolutions should only be used if you have problems using SVGA video modes\. +I personally think the menus look best with the 640x480 resolution, but some may prefer higher resolutions\. Lower resolutions should only be used if you have problems using SVGA video modes\. .HP 0 The "Game res" slider allows you to set the resolution used during the game\. The allowed values are the same than those for the menus\. I recommend that you don't use resolution higher than 640x480, unless you have a Pentium VIII running a 10GHz\. .HP 0 -Page flipping can be toggled\. It is up to you to decide wether you keep this option or not\. The main disavantage of turning page flipping off is that the info bar and the battlefield can look rahter ugly if they overlap\. But if you turn page flipping on you will not easily reach the 166 frames per second I sometimes get on small levels with my K6\-225\. I personnaly always turn page flipping off\. +Page flipping can be toggled\. It is up to you to decide whether you keep this option or not\. The main disadvantage of turning page flipping off is that the info bar and the battlefield can look rather ugly if they overlap\. But if you turn page flipping on you will not easily reach the 166 frames per second I sometimes get on small levels with my K6\-225\. I personally always turn page flipping off\. .HP 0 The viewport size defines how much of your screen will be used by the battlefield\. .TP 3 .B * -If you set the slider on its left position, the batllefield will not be stectched at all\. Or if is strechted, it will be by a x2 or a x4 factor\. So this is the mode wich allows the fastest display\. +If you set the slider on its left position, the battlefield will not be stretched at all\. Or if is stretched, it will be by a x2 or a x4 factor\. So this is the mode which allows the fastest display\. .TP 3 .B * If you set the slider ont its right position, the game will run in fullscreen mode\. @@ -440,7 +440,7 @@ This section allows you to set the sound volumes\. There are 4 sliders, which are: .TP 3 .B * -"Sfx": sets the volume of all the sfx sounds, thats to say'the sounds you hear when the game starts, when you loose etc\.\.\. +"Sfx": sets the volume of all the sfx sounds, that's to say'the sounds you hear when the game starts, when you loose etc\.\.\. .TP 3 .B * "Click": sets the volume of the click, this nasty noise you hear each time your press on a button\. @@ -475,7 +475,7 @@ If it is centered, the cursor goes twice faster than the fighters\. .TP 3 .B * -If it is set on the right, the speed of the cursor is multiplicated by 3\. +If it is set on the right, the speed of the cursor is multiplied by 3\. .HP 0 Below is a "Min 160x100" box with a slider on its right\. This means that maps will automatically be magnified so that they have a size of at least 160x100\. Indeed, some of the maps that come with Liquid War were designed in 1995 when 486 Intel computers were common\. Therefore the maps were smalls\. Today, these maps are not really fun to play on fast computers, so Thomas Harte suggested this automatic magnifying feature, and that was IMHO a smart idea\. You can move the slider to the right to make maps use a higher resolution \- ie magnify them\. @@ -485,14 +485,14 @@ .TP 0 .B Speeds menu .HP 0 -The "frames/s" slider allows you to limit the number of frames per second\. If this slider is set on the left, there won't be any limit, so Liquid War will repaint your screen each time the fighters move\. But this can be a weird behaviour if your machine is really fast, for no one cares about 100 fps per second, one can not even see them\.\.\. So this paramters limits the refreshment rate, so that there can be several logical moves of the fichters for only one screen refreshing\. If it is set on its right, the display is limite to 10 fps, so you'll have to find your setting\. I personnally set it right in the middle, and get 40 fps\. If you press "F5", you'll get the number of frames per second, and if you press "F6", you'll get the number of logical moves per second\. You can also press "F7" or "F8", and you will get the percentage of time your computer spends on calculating or displaying the level\. +The "frames/s" slider allows you to limit the number of frames per second\. If this slider is set on the left, there won't be any limit, so Liquid War will repaint your screen each time the fighters move\. But this can be a weird behaviour if your machine is really fast, for no one cares about 100 fps per second, one can not even see them\.\.\. So this parameters limits the refreshment rate, so that there can be several logical moves of the fighters for only one screen refreshing\. If it is set on its right, the display is limited to 10 fps, so you'll have to find your setting\. I personally set it right in the middle, and get 40 fps\. If you press "F5", you'll get the number of frames per second, and if you press "F6", you'll get the number of logical moves per second\. You can also press "F7" or "F8", and you will get the percentage of time your computer spends on calculating or displaying the level\. .HP 0 -The "rounds/s" slider allows you to limit the number of rounds per second\. If this slider is set on the left, there won't be any limit, so Liquid War will run as fast as possible\. This setting will be of no use if you use Liquid War on a slow computer or if you play with hudge maps, but sometimes, with a high\-end Pentium class computer, it's simply impossible to play on small maps because things simply go too fast\. So this parameter is here to help you and avoid the "10000 moves per sec" problem\. +The "rounds/s" slider allows you to limit the number of rounds per second\. If this slider is set on the left, there won't be any limit, so Liquid War will run as fast as possible\. This setting will be of no use if you use Liquid War on a slow computer or if you play with huge maps, but sometimes, with a high\-end Pentium class computer, it's simply impossible to play on small maps because things simply go too fast\. So this parameter is here to help you and avoid the "10000 moves per sec" problem\. .TP 0 .B Waves menu .HP 0 -This is where the wave parameters are set\. The waves are just a graphic effect, which is not really usefull\. I don't often use waves, but I still think they can sometimes look nice\. Change these parameters if you really mean to do it, but if you don't understand what they mean, it is really OK\.\.\. +This is where the wave parameters are set\. The waves are just a graphic effect, which is not really useful\. I don't often use waves, but I still think they can sometimes look nice\. Change these parameters if you really mean to do it, but if you don't understand what they mean, it is really OK\.\.\. .HP 0 There are 4 different types of waves, each of them being defined by: .TP 3 @@ -506,7 +506,7 @@ A "Speed" parameter, to define how fast the waves should move\. .HP 0 -If you want to undestand what the "WX", "HY", "WY", and "HX" codes mean, try to pay with only one type of wave, the "Ampli" parameter of the 3 other types of wave being set to 0 (that is to say the slider is on its left position), and sea how it looks like\. +If you want to understand what the "WX", "HY", "WY", and "HX" codes mean, try to pay with only one type of wave, the "Ampli" parameter of the 3 other types of wave being set to 0 (that is to say the slider is on its left position), and sea how it looks like\. .HP 0 The wave effects can be toggled during the game by pressing the "F4" key\. @@ -515,7 +515,7 @@ .HP 0 This menu allows the user to change the behaviour of the fighters\. .HP 0 -The "Attack" slider sets the agressivity of the fighters\. If it is set on the right, fighters eat each other very fast\. If it is set on the left, it takes ages to fighters to change teams\. +The "Attack" slider sets the aggressivity of the fighters\. If it is set on the right, fighters eat each other very fast\. If it is set on the left, it takes ages to fighters to change teams\. .HP 0 The "Defense" slider sets the capacity that the fighters have to regenerate themselves\. The more it is on the right, the faster fighters regenerate\. .HP 0 @@ -541,7 +541,7 @@ If set to "Always", CPUs will always attack humans and will never try to attack another CPU, unless there are no humans left\. This used to be the default behavior in previous Liquid War versions, but some players remarked that it was rather unfair, so now this is an option\. .TP 3 .B * -If set to "Random", CPUs won't care wether their opponents are CPUs or humans, they'll attack anybody\. This is the default behavior\. +If set to "Random", CPUs won't care whether their opponents are CPUs or humans, they'll attack anybody\. This is the default behavior\. .TP 3 .B * It set to "Never", CPUs will attack each other before bothering human players\. @@ -561,7 +561,7 @@ F1: toggles the "info" zone where the game time and the state of each team is displayed\. .TP 3 .B * -F2: moves the "info" the zone arround, possible positions being top, right, bottom and left\. +F2: moves the "info" the zone around, possible positions being top, right, bottom and left\. .TP 3 .B * F3: pauses the game\. This function is disabled during network games\. @@ -576,10 +576,10 @@ F6: displays the number of rounds per second (*)\. .TP 3 .B * -F7: displays the precentage of CPU spent on the game logic, calculating where fighters must go for instance (*)\. +F7: displays the percentage of CPU spent on the game logic, calculating where fighters must go for instance (*)\. .TP 3 .B * -F8: displays the precentage of CPU spent on graphics (*)\. +F8: displays the percentage of CPU spent on graphics (*)\. .TP 3 .B * F9: turns on/off the "capture" mode\. In this mode, screenshots of each frame are taken, and written to the hard drive as bitmaps\. @@ -603,7 +603,7 @@ DOS only releases of Liquid War do not include network support, only Windows and GNU/Linux versions will allow you to set up a network game\. .TP 3 .B * -The game should run fine on any LAN, but there's no garantee the game will be playable on the Internet\. Indeed if your "ping delay" is not good enough, the game will be awfully slow\. Bandwidth is not an issue, since Liquid War rarely needs more than 2 Kb/sec\. +The game should run fine on any LAN, but there's no guarantee the game will be playable on the Internet\. Indeed if your "ping delay" is not good enough, the game will be awfully slow\. Bandwidth is not an issue, since Liquid War rarely needs more than 2 Kb/sec\. .TP 3 .B * You'll need to know what an IP address is\. @@ -624,7 +624,7 @@ .TP 0 .B Starting the server .HP 0 -Liquid War uses a very traditionnal client/server approach\. Basically, the server gets informations from all the clients and then dispatches the collected information to everybody\. +Liquid War uses a very traditional client/server approach\. Basically, the server gets information from all the clients and then dispatches the collected information to everybody\. .HP 0 So you'll need to start a server on computer A by running "liquidwar\-server" on GNU/Linux or "lwwinsrv\.exe" on windows\. This is a console application, ie it does not set up any graphic mode\. .HP 0 @@ -690,7 +690,7 @@ .HP 0 But this time you'll also need to change the server address, since the client is not running on the same computer than the server\. .HP 0 -Now click on "Start game" on computer A\. The server should play a "system beep", which is usefull if you run a server and want to be notified of client connections without watching the console all the time, and it should display messages like this: +Now click on "Start game" on computer A\. The server should play a "system beep", which is useful if you run a server and want to be notified of client connections without watching the console all the time, and it should display messages like this: .HP 0 2002\-06\-03 16:44:48: Connection from "127\.0\.0\.1:34677" .br @@ -757,7 +757,7 @@ .HP 0 In the main menu, click on "Net Game" and then "Search for internet games"\. .HP 0 -Now you should see a list of available servers\. You can click on the items in the list to get more informations about a given server\. Once you have chosen a server, click on "Join now"\. +Now you should see a list of available servers\. You can click on the items in the list to get more information about a given server\. Once you have chosen a server, click on "Join now"\. .HP 0 Now you get on a "Waiting for teams" screen\. You might be interested in using the "Start now" button\. Indeed, if you are 4 players connected on a server that accepts up to 6 players, maybe you'll want to start the game right away without waiting for 2 more players\. In this case, every player must click "Start now"\. A "*" character will replace the "\-" in the players list when a player clicks on "Start now"\. When all the players are displayed with a "*a, the game starts\. .HP 0 @@ -783,7 +783,7 @@ "\-port n" where "n" is an integer : allows you to change the IP port used by the server to listen to the clients\. if you omit this parameter, the default port is (8035) is used\. .TP 3 .B * -"\-log file\.log" : dumps all informations in "file\.log" instead of using the standard output\. +"\-log file\.log" : dumps all information in "file\.log" instead of using the standard output\. .TP 3 .B * "\-public" : skips the "Register on \.\.\." question, and registers the server automatically on the meta\-server, so that clients can find it easily\. @@ -807,10 +807,10 @@ These options work on both client and server, even if they are rather "server\-oriented"\. .TP 3 .B * -"\-metaserver url" : redefines the URL of the meta\-server\. Usefull if you want to use your own meta\-server\. +"\-metaserver url" : redefines the URL of the meta\-server\. Useful if you want to use your own meta\-server\. .TP 3 .B * -"\-netlog" : if you use this option, the server will dump all the network traffic on the standard output\. This is usefull for debugging\. +"\-netlog" : if you use this option, the server will dump all the network traffic on the standard output\. This is useful for debugging\. .TP 3 .B * "\-nobeep" : Disables the system beeps that the application might fire\. These beeps are mostly used on the server to notify clients connections\. @@ -831,9 +831,9 @@ The server can't talk simultaneously with several clients\. .HP 0 -I needed to use TCP sockets, since LW's algorithm can not cope with any data loss and it's not a reasonnable to try and anticipate what the map would be like if the player did not move etc\.\.\. +I needed to use TCP sockets, since LW's algorithm can not cope with any data loss and it's not a reasonable to try and anticipate what the map would be like if the player did not move etc\.\.\. .HP 0 -I did not implement any complex multithreaded stuff since I'm lazy and however, clients need to have informations about all the other before something can be done\. However, implementing a mutltithreaded server could have advantages over the current solution\. +I did not implement any complex multithreaded stuff since I'm lazy and however, clients need to have information about all the other before something can be done\. However, implementing a mutltithreaded server could have advantages over the current solution\. .TP 0 .B What is this lag stuff anyway? @@ -844,7 +844,7 @@ .HP 0 So what Liquid War does is that at the beginning of the game, the server sends a couple of "blank" key strokes to the clients\. This way, clients receive data from the server before thay have sent any\. The number of key strokes sent at the beginning of the game is called the "lag"\. .HP 0 -So if it takes 200 msec to send and then receive data from the server (approx the time returned by the "ping" command) then with a lag of 6, you can theorically play at a rate of (1/0\.2)*6=30 rounds/sec\. +So if it takes 200 msec to send and then receive data from the server (approx the time returned by the "ping" command) then with a lag of 6, you can theoretically play at a rate of (1/0\.2)*6=30 rounds/sec\. .HP 0 On one hand, setting the lag parameter to a high value will avoid many network errors and allow you to play at a very fast pace, but the big drawback is that there will be quite a long time between the instant you send a key stroke to the server and the moment it comes back to you\. On the other hand, setting the lag to a low value will limit drastically he number of rounds per second, but make the game more "responsive"\. .HP 0 @@ -855,13 +855,13 @@ .TP 0 .B Performance issues .HP 0 -Liquid War uses a "light" server, and one of the advantages of this solution is that it allows you to run the server on low\-end computers\. I personnally run a permanent server on a 486 DX2, and it runs like a charm\. +Liquid War uses a "light" server, and one of the advantages of this solution is that it allows you to run the server on low\-end computers\. I personally run a permanent server on a 486 DX2, and it runs like a charm\. .HP 0 The only thing you have to take care of when running a server is bandwidth\. Don't worry, you won't need a 10Mbit connection, basically, each clients sends and receives 12 bytes of data at each round\. If you add TCP/IP headers and the facts that stuff will probably be bundled in bigger packets, a client must deliver about 15 Kbit/sec (up and down) for a game that runs at 100 frames/sec\. A 56K V90 modem is enough for this\. .HP 0 So if you run a server with 2 clients connected, the server will need to deliver 30 Kbit/sec in both ways\. A 56K V90 modem _can_ do that, but your provider needs to be a good one 8\-) .HP 0 -And if you run a server with 6 clients, you simply won't be able to reach the 100 frames/sec with a 56K V90 modem\. It will necessarly drop to something less than 30 frames/sec, and is likely to drop to about 15 frames/sec\. OK this is not a big deal, since few Internet games run at more than 30 frames/sec, but well, if the server has troubles receiving/sending data, everyone will wait, and the fun will go away\. +And if you run a server with 6 clients, you simply won't be able to reach the 100 frames/sec with a 56K V90 modem\. It will necessarily drop to something less than 30 frames/sec, and is likely to drop to about 15 frames/sec\. OK this is not a big deal, since few Internet games run at more than 30 frames/sec, but well, if the server has troubles receiving/sending data, everyone will wait, and the fun will go away\. .HP 0 As a conclusion: if you have the choice, choose the friend who has the best bandwidth to run the server, without even considering the power of his computer\. @@ -905,7 +905,7 @@ .HP 0 Yes\. .HP 0 -Any program is likely to have security holes, especially when it's networked\. However, I have good reasons to think that Liquid War is safe enough for a game\. At least I find it safe enough to run a permanent public server on my personnal computer 8\-) +Any program is likely to have security holes, especially when it's networked\. However, I have good reasons to think that Liquid War is safe enough for a game\. At least I find it safe enough to run a permanent public server on my personal computer 8\-) .HP 0 FYI, here are some things which I think make Liquid War rather safe to run: .TP 3 @@ -919,7 +919,7 @@ Liquid War receives network packets in static buffers, and if the received data is too big, it is truncated\. One consequence is that Liquid War has a bunch of "limits"\. You can't send hudge maps over the network, you can't have long nicknames, and so on\. But another consequence is that if you try to send garbage in the buffer, it will be truncated\. Liquid War will protest with a "network error" message and the connection will be closed, but there will be no easy exploit possible here\. .TP 3 .B * -Liquid War does not use the sprintf, strcpy and strcat functions, which are known as being rather unsecure since they can lead to buffer overflows\. Instead, it uses the equivalent functions snprintf, strncpy and strncat\. On platforms where these functions are supported natively, the game will use the default system functions, otherwise it will use a free implementation by Mark Martinec\. FYI, Windows does not support snprintf\-like functions natively, that is, it's a piece of crap\. +Liquid War does not use the sprintf, strcpy and strcat functions, which are known as being rather insecure since they can lead to buffer overflows\. Instead, it uses the equivalent functions snprintf, strncpy and strncat\. On platforms where these functions are supported natively, the game will use the default system functions, otherwise it will use a free implementation by Mark Martinec\. FYI, Windows does not support snprintf\-like functions natively, that is, it's a piece of crap\. .TP 3 .B * Liquid War is Free Software, so I'm not likely to have put backdoors in it myself, since anyone can look at the source code 8\-) @@ -937,10 +937,10 @@ If you use passwords in network games, *never* choose a valuable password\. Use something simple like "hello" or "goodbye"\. .TP 3 .B * -Keep in mind that Liquid War is a game, and not a bullet proof professionnal server\. +Keep in mind that Liquid War is a game, and not a bullet proof professional server\. .HP 0 -Last point: you should be aware that version 5\.4\.5 of Liquid War has been proved to be vulnerable to a local buffer overflow, and one should run at least 5\.5\.9 to get rid of this problem\. FYI by the time the exploit was found on 5\.4\.5, 5\.5\.9 was already out 8\-) See http://www\.securityfocus\.com/bid/8629 and http://www\.securityfocus\.com/bid/9453 for more informations\. +Last point: you should be aware that version 5\.4\.5 of Liquid War has been proved to be vulnerable to a local buffer overflow, and one should run at least 5\.5\.9 to get rid of this problem\. FYI by the time the exploit was found on 5\.4\.5, 5\.5\.9 was already out 8\-) See http://www\.securityfocus\.com/bid/8629 and http://www\.securityfocus\.com/bid/9453 for more information\. .TP 0 .B Can people cheat when playing on the Net? @@ -965,7 +965,7 @@ .HP 0 This also explains why it's required to play with the very same versions of the game during network games\. If you plug a 5\.5\.2 with a 5\.5\.1, after a minute the screens will be completely different on each client, since there are subtle differences between the 5\.5\.1 and the 5\.5\.2 engine\. However, you shouldn't be able to do this, since a network error will stop you before you can start to play\. .HP 0 -Additionnally, versions 5\.5\.5 and higher have a checksum system\. Every 100 rounds, each client calculates a checksum with its local map, and sends it to the server\. If the checksum is incorrect, the server will log a message like: +Additionally, versions 5\.5\.5 and higher have a checksum system\. Every 100 rounds, each client calculates a checksum with its local map, and sends it to the server\. If the checksum is incorrect, the server will log a message like: .HP 0 Checksum error on client "192\.168\.1\.1:1098" .HP 0 @@ -992,12 +992,12 @@ .HP 0 lw \-option1 \-option2 parameter2 \-option3 parameter3 \-option4 \-option5 .HP 0 -Note that most of the options are legacy options which where usefull with the initial releases of Liquid War, when you had to run in a Windows DOS box, and when there were still plenty of 486 computers with only 8Mb ram\.\.\. +Note that most of the options are legacy options which where useful with the initial releases of Liquid War, when you had to run in a Windows DOS box, and when there were still plenty of 486 computers with only 8Mb ram\.\.\. .SS Version checking .HP 0 -These are basic options which can be usefull to figure out which release of Liquid War is installed\. +These are basic options which can be useful to figure out which release of Liquid War is installed\. .TP 3 .B * "\-v" : returns the version number of the program\. @@ -1009,7 +1009,7 @@ .SS Changing default paths .HP 0 -Very usefull options, especially if you can not install Liquid War in default directories or want to put the game in a special place\. +Very useful options, especially if you can not install Liquid War in default directories or want to put the game in a special place\. .TP 3 .B * "\-cfg myconfigfile\.cfg" : causes Liquid War to use the specified config file\. @@ -1084,13 +1084,13 @@ "\-stop" : If you set this option, Liquid War will prompt you for a key when the init process is completed\. .TP 3 .B * -"\-c" : This is a weird option, if you turn it on, the game will only use fonctions which are programmed in C langage\. The default behaviour is to use some functions I rewrote in assembly langage, so that the game is a little faster\. +"\-c" : This is a weird option, if you turn it on, the game will only use functions which are programmed in C language\. The default behaviour is to use some functions I rewrote in assembly language, so that the game is a little faster\. .SS Debug options .HP 0 -These options are usefull if you want to debug the game and trace what's happening\. +These options are useful if you want to debug the game and trace what's happening\. .TP 3 .B * "\-netlog" : Dumps all the network traffic on the standard output\. This can help finding problems when trying to connect to the server in a network game\. @@ -1107,10 +1107,10 @@ Everything else 8\-) .TP 3 .B * -"\-capture" : Activates the capture mode\. In this mode, the game will dump a \.bmp file on the disk several times per second, which is usefull if you want to create an mpeg movie of your game session afterwards\. You can also activate this mode interactively by pressing F9 within the game\. +"\-capture" : Activates the capture mode\. In this mode, the game will dump a \.bmp file on the disk several times per second, which is useful if you want to create an mpeg movie of your game session afterwards\. You can also activate this mode interactively by pressing F9 within the game\. .TP 3 .B * -"\-metaserver url" : redefines the URL of the meta\-server\. Usefull if you want to use your own meta\-server\. +"\-metaserver url" : redefines the URL of the meta\-server\. Useful if you want to use your own meta\-server\. .TP 3 .B * "\-nobeep" : Disables the system beeps that the application might fire\. These beeps are mostly used on the server to notify clients connections\. @@ -1134,7 +1134,7 @@ .HP 0 The idea behind lwmapgen is that you choose a function which sets the type of map generated, and then pass various arguments to this function\. If you do not explicitly choose a function, one will be picked up for you randomly, and all other parameters will use default values\. .HP 0 -The most usefull and common options are: +The most useful and common options are: .TP 3 .B * "\-\-help" : displays help\. @@ -1167,12 +1167,12 @@ .HP 0 As I said, I try to use the same code for all platforms\. This is in the long term the best choice\. Otherwise there would different branches of the source tree, and I don't think this is a very good solution\. .HP 0 -Therefore some optimizations that were performed in the old DOS\-only version have been totally removed, for they were 100% platform dependent (ie mode\-X asm coding)\. So the new versions are all a little slower than the old 5\.1 stuff, but the performance loss is only about 20%, which is not significant with today's PCs\. And anyways the performance loss is most of the time limited to the goog old VGA 320x200x8 mode\-X, which starts being kind of obsolete\. +Therefore some optimizations that were performed in the old DOS\-only version have been totally removed, for they were 100% platform dependent (ie mode\-X asm coding)\. So the new versions are all a little slower than the old 5\.1 stuff, but the performance loss is only about 20%, which is not significant with today's PCs\. And anyways the performance loss is most of the time limited to the good old VGA 320x200x8 mode\-X, which starts being kind of obsolete\. .SS DOS .HP 0 -This is the original version\. It's the fastest one as far as I know, the safest one and it will always be I think, since Allegro was first designed for DOS, and DOS allows a full unconditionnal access to all the hardware ressources LW requires\. LW doesn't use any hardware acceleration and it's not been designed to do so\. Unfortunately there's no network support for the DOS version of Liquid War\. +This is the original version\. It's the fastest one as far as I know, the safest one and it will always be I think, since Allegro was first designed for DOS, and DOS allows a full unconditional access to all the hardware resources LW requires\. LW doesn't use any hardware acceleration and it's not been designed to do so\. Unfortunately there's no network support for the DOS version of Liquid War\. .SS Windows @@ -1214,7 +1214,7 @@ .SS Mac OS X .HP 0 -There's currently a beta version of a Mac OS X port for Liquid War\. Ryan D\. Brown nicely managed to compile and run the game under Mac OS X, and the latest news was that it does basically work\. Still, this port did not go through intensive testing, so there might still be some bugs, expecially concerning networking\. +There's currently a beta version of a Mac OS X port for Liquid War\. Ryan D\. Brown nicely managed to compile and run the game under Mac OS X, and the latest news was that it does basically work\. Still, this port did not go through intensive testing, so there might still be some bugs, especially concerning networking\. .HP 0 There were some byte endianess problems in previous ( <=5\.5\.8 ) releases of LW, but I tried to fix them and they should be gone now\. .HP 0 @@ -1225,7 +1225,7 @@ .SS A piece of advice .HP 0 -You can use your own levels whith Liquid War 5\. The only thing you have to do is to put your own 256\-colors vbitmap files in a special directory, and the program will use them\. Currently, BMP, LBM, PCX, and TGA files are supported\. It is a good thing to use 256 colors bitmaps, for they waste less disk space than truecolor bitmaps, and Liquid War 5 converts all bitmaps to 32 colors bitmaps\. Additionnally, truecolor bitmaps might cause the DOS version to crash randomly\.\.\. 2\-color bitmaps will also cause the program to crash\. I warned you! +You can use your own levels with Liquid War 5\. The only thing you have to do is to put your own 256\-colors vbitmap files in a special directory, and the program will use them\. Currently, BMP, LBM, PCX, and TGA files are supported\. It is a good thing to use 256 colors bitmaps, for they waste less disk space than truecolor bitmaps, and Liquid War 5 converts all bitmaps to 32 colors bitmaps\. Additionally, truecolor bitmaps might cause the DOS version to crash randomly\.\.\. 2\-color bitmaps will also cause the program to crash\. I warned you! .HP 0 The best thing you can do to create your user levels is to have a look at the few user files I put in the \.zip file and try at first to do something that looks about the same! @@ -1250,7 +1250,7 @@ .SS Textures .HP 0 -As of Liquid War 5\.6\.x, it's possible to associate a map with a texture\. All you need is to call the maps with the same name (case is important, lowercase recommendend\.\.\.)\. Look at the "meditate" custom map which is shipped with Liquid War for instance\. +As of Liquid War 5\.6\.x, it's possible to associate a map with a texture\. All you need is to call the maps with the same name (case is important, lowercase recommended\.\.\.)\. Look at the "meditate" custom map which is shipped with Liquid War for instance\. .HP 0 This also works with internal builtin maps (those stored in the datafile) so for instance if you name a custom texture "world1\.bmp" it will automatically be associated to the builtin map world1 (to figure out internal names you have to unpack the source distribution and look in the \./data directory)\. This also works the other way, if you name a map "wood2\.bmp" it will be automatically associated with the builtin texture wood2\. .HP 0 @@ -1261,7 +1261,7 @@ .HP 0 Maybe you will find that the original levels are ugly and unplayable\. Well, if you have made user levels and think they are great, just send them to the Liquid War user mailing list\. Please use only 256 colors bitmap and zip them before sending them, or else they might be blocked by my provider\.\.\. .HP 0 -As of today, dozens of user maps have already been included in Liquid War, this is very nice for it happens that every map designer has his own personnal tastes, so the maps all look different\. +As of today, dozens of user maps have already been included in Liquid War, this is very nice for it happens that every map designer has his own personal tastes, so the maps all look different\. .HP 0 Still, to be included in Liquid War's mainstream distribution, your maps will need to be placed under the terms of the GNU General Public License, or at least a compatible license\. You should have received a copy of this license with Liquid War anyway\. Read it 8\-) .HP 0 @@ -1313,7 +1313,7 @@ You want to move one single point only\. .TP 3 .B * -> You want the exact (100% sure) path\. In fact, this algorithm finds solutions which approach the best one but you can never figure out if the solution you found is the best, and the algorithm never ends\. In the long term, the algo will always find the best solution or something really close but I don't know any easy way to figure out when you have reached this state\. +> You want the exact (100% sure) path\. In fact, this algorithm finds solutions which approach the best one but you can never figure out if the solution you found is the best, and the algorithm never ends\. In the long term, the algorithm will always find the best solution or something really close but I don't know any easy way to figure out when you have reached this state\. @@ -1435,7 +1435,7 @@ .HP 0 For each zone defined in the mesh, LW calculates an estimation of the distance between the cursor and this zone\. .HP 0 -The algorihm is based on the fact that to cross a zone which size is n, n movements are required\. Easy, eh? +The algorithm is based on the fact that to cross a zone which size is n, n movements are required\. Easy, eh? .TP 0 .B Description @@ -1454,7 +1454,7 @@ Compare the potential of the current zone with that of its neighbor zone\. The neighbor zone to be chosen is the one which corresponds to the direction which has been previously picked up, and by potential I mean "the distance to the cursor, estimated by the algorithm's last pass"\. .TP 3 .B * -If potential_of_the_neighbor_zone > (potential_of_the_current_zone + size_of_the_current_zone) then potentiel_of_the_neighbor_zone = potential_of_the_current_zone + size_of_the_current_zone +If potential_of_the_neighbor_zone > (potential_of_the_current_zone + size_of_the_current_zone) then potential_of_the_neighbor_zone = potential_of_the_current_zone + size_of_the_current_zone .TP 0 @@ -1462,7 +1462,7 @@ .HP 0 Well, just ask my friend thom\-Thom, he's the one who had the idea of this algorithm! .HP 0 -The basic idea is that by applying this simple rule to all the zones, after a certain amount of time, it's impossible to find any place in the mesh where the rule is not respected\. And at this time, one can consider the potiential is right in any point\. +The basic idea is that by applying this simple rule to all the zones, after a certain amount of time, it's impossible to find any place in the mesh where the rule is not respected\. And at this time, one can consider the potential is right in any point\. .HP 0 Of course when the cursor moves the potential has to be recalculated, but you see, cursors move really slowly in Liquid War, so the algorithm has plenty of time to find a new stable solution\.\.\. @@ -1506,13 +1506,13 @@ Acceptable directions: ok, one can use this direction, since the fighter shouldn't loose any time using it\. .TP 3 .B * -Unpossible directions: wether there's a wall or using this direction means the fighter will be farer from his cursor than before, it always means that this direction will not be used, never\. +Impossible directions: whether there's a wall or using this direction means the fighter will be farther from his cursor than before, it always means that this direction will not be used, never\. .TP 0 .B Rules .HP 0 -The fighters will try to find any matching situation in this list, and chose the first one\. +The fighters will try to find any matching situation in this list, and choose the first one\. .TP 3 .B * The main direction is available, no one on it, OK, let's follow it\. @@ -1524,7 +1524,7 @@ There's an acceptable direction with no one on it, OK, let's follow it\. .TP 3 .B * -The main direction is available, but there's an opponent on it, I attack! By attacking, one means that energy is drawned from the attacked fighter and transmitted to the attacker\. When the attacked fighter dies, he belongs to the team which killed him\. +The main direction is available, but there's an opponent on it, I attack! By attacking, one means that energy is drawn from the attacked fighter and transmitted to the attacker\. When the attacked fighter dies, he belongs to the team which killed him\. .TP 3 .B * A good direction is available, but there's an opponent on it, I attack! @@ -1539,7 +1539,7 @@ .TP 0 .B Tips and tricks .HP 0 -The behavior of the armies is quite tricky to set up\. I had myself to try many algorithms before I came to something nice\. In fact, I had to introduce some "random" behaviors\. They are not really random for I wanted the game to behave the same when given the same keyboard input, but for instance, fighters will prefer NNW to NNE sometimes, and NNE to NNW some other times\. By the way, I think Liquid War could stand as a nice example of the thoery of chaos\. +The behavior of the armies is quite tricky to set up\. I had myself to try many algorithms before I came to something nice\. In fact, I had to introduce some "random" behaviors\. They are not really random for I wanted the game to behave the same when given the same keyboard input, but for instance, fighters will prefer NNW to NNE sometimes, and NNE to NNW some other times\. By the way, I think Liquid War could stand as a nice example of the theory of chaos\. .SH Source code @@ -1554,7 +1554,7 @@ .TP 0 .B Coding style .HP 0 -To be honest, it's a big mess\. You won't find 2 files coded in the same maner\.\.\. OK, I'm exagerating a bit\. From now I try to make an effort and stick to basic rules such as: +To be honest, it's a big mess\. You won't find 2 files coded in the same manner\.\.\. OK, I'm exaggerating a bit\. From now I try to make an effort and stick to basic rules such as: .TP 3 .B * use the GNUish\-style indentation \- the default Emacs mode in fact @@ -1597,7 +1597,7 @@ .TP 0 .B Menus .HP 0 -The menus are coded using the Allegro GUI system\. While this system is very powerfull, it's IMHO not adapted to very complex GUIs, and one of its drawbacks is that it's not so easy to redesign something once you've coded it\. +The menus are coded using the Allegro GUI system\. While this system is very powerful, it's IMHO not adapted to very complex GUIs, and one of its drawbacks is that it's not so easy to redesign something once you've coded it\. .HP 0 Besides, when I started coding the GUI in 1998, I did it in a rather ugly way, and now I'm paying for my being lazy at that time, since I spent hours coding when I want to change something 8\-/ .TP 3 @@ -1647,7 +1647,7 @@ speeds\.c / speeds\.h: contains the code for the speeds menu\. .TP 3 .B * -team\.c / team\.h: code for the team menu, where one choses which teams will play\. +team\.c / team\.h: code for the team menu, where one chooses which teams will play\. .TP 3 .B * volume\.c / volume\.h: code for the sound menu\. @@ -1693,7 +1693,7 @@ grad\.c / grad\.h: this module calculates the gradient for each team\. One could say it's the "kernel" of the game, since most of the CPU time is spent in this module (except if you have a slow display\.\.\.)\. .TP 3 .B * -mesh\.c / mesh\.h: contains code to set up a usable mesh with a map\. Mesh are re\-calculated at each time a new game is started, the reason for this being that meshes are *very* big so it would not be reasonnable to save them directly on the HD\. +mesh\.c / mesh\.h: contains code to set up a usable mesh with a map\. Mesh are re\-calculated at each time a new game is started, the reason for this being that meshes are *very* big so it would not be reasonable to save them directly on the HD\. .TP 3 .B * monster\.s / monster\.h: assembly functions to speed\-up the game\. It's a replacement for some fighter\.c functions\. @@ -1717,7 +1717,7 @@ .TP 0 .B User input .HP 0 -Until 5\.4\.0, Liquid War did not have network support\. As it is designed to be multiplayer, one needed to have several players on the same computer\. The mouse also needed to be handled in a special way since cursors can *not* pass walls in Liquid War\. Additionnally, I wanted all input channels (keyboard mouse and joystick) to be handled in a unified way\. +Until 5\.4\.0, Liquid War did not have network support\. As it is designed to be multiplayer, one needed to have several players on the same computer\. The mouse also needed to be handled in a special way since cursors can *not* pass walls in Liquid War\. Additionally, I wanted all input channels (keyboard mouse and joystick) to be handled in a unified way\. .HP 0 This explains why there's so much code for user input, when one would think at first sight that "polling the keyboard is enough"\. .TP 3 @@ -1734,7 +1734,7 @@ .TP 0 .B Initialisations .HP 0 -These files contain functions to intialize various game components\. 100% boring code\. +These files contain functions to initialize various game components\. 100% boring code\. .TP 3 .B * area\.c / area\.h: contains functions to create the game area\. Basically it contains functions to create the data structures in which the level is stored during the game\. @@ -1743,7 +1743,7 @@ army\.c / army\.h: functions to create the armies, and place them on the battlefield\. .TP 3 .B * -asm\.c / asm\.h: various constants, macros and utilities to ensure that asembly code works correctly\. +asm\.c / asm\.h: various constants, macros and utilities to ensure that assembly code works correctly\. .TP 3 .B * bigdata\.c / bigdata\.h: I had a really hard time with the malloc function with DJGPP under Win95 dos box\. I tried to have it working for hours and hours but my program kept being buggy\. So I decided to allocate the memory myself, in a memory zone I create at startup\. This is what this module does: create a huge memory zone and then give parts of it to the rest of the program\. @@ -1839,7 +1839,7 @@ The random map generator within Liquid War \- which of course works on any platform support by LW \- uses for its greater part the same source code as the external lwmapgen program\. .TP 3 .B * -random\.c / random\.h: wrapper for the map generator written by David Redick\. It basically does the same as \./utils/lwmapgen/main\.c except that it does it within Liquid War as it is running and not in an external independant program\. +random\.c / random\.h: wrapper for the map generator written by David Redick\. It basically does the same as \./utils/lwmapgen/main\.c except that it does it within Liquid War as it is running and not in an external independent program\. .TP 0 @@ -1874,7 +1874,7 @@ code\.c / code\.h: This file contains the code to handle key presses during the game\. That's to say the pause key for instance\. .TP 3 .B * -profile\.c / profile\.h: provides tools to calculate how fast the game is runnning and what operations slow it down\. +profile\.c / profile\.h: provides tools to calculate how fast the game is running and what operations slow it down\. .TP 3 .B * watchdog\.c / watchdog\.h: this module waits for "secret codes" to be typed while the game is running, and traps them\. @@ -1925,7 +1925,7 @@ log\.h: common header for logcli\.c and logsrv\.c\. .TP 3 .B * -logcli\.c: contains code to display messages on the console\. It's usefull for console may have different behaviors when the games is used on different platforms\. This file is used to compile the client\. +logcli\.c: contains code to display messages on the console\. It's useful for console may have different behaviors when the games is used on different platforms\. This file is used to compile the client\. .TP 3 .B * logsrv\.c: contains code to display messages on the console\. This file is used to compile the server, which does not use Allegro at all\. @@ -1940,7 +1940,7 @@ .TP 0 .B Macros, utilities and string support .HP 0 -As usual, I needed to prepare a small set of usefull macros\. +As usual, I needed to prepare a small set of useful macros\. .TP 3 .B * macro\.h: contains basic wrappers/macros for snprintf like functions\. This mostly to ease up string manipulation which is \- as always \- a nightmare in standard C\. @@ -1954,7 +1954,7 @@ .TP 0 .B Byte order and endianess .HP 0 -As you might know, PC Intel based computers are "little\-endian" while Sun Sparc stations and Mac computers are "big\-endian"\. This is an issue for LW since in network games maps are transmitted in binary format\. Therefore I needed to set up some (un)serialization fonctions\. +As you might know, PC Intel based computers are "little\-endian" while Sun Sparc stations and Mac computers are "big\-endian"\. This is an issue for LW since in network games maps are transmitted in binary format\. Therefore I needed to set up some (un)serialization functions\. .TP 3 .B * serial\.c / serial\.h: code used to transform integers and map headers into an uniform cross\-platform byte stream which is readable by both little and big endian machines\. @@ -1965,7 +1965,7 @@ .HP 0 Liquid War does have thread support, but it is a "limited" thread support\. I mean that the game is generally monothreaded, but a few functions use threads\. For instance, calls to the meta\-server are done within threads\. .HP 0 -Basically, I do not really enjoy programming in a multithreaded environnement\. So when possible, I chose the monothread path, and used threads only where I simply would not be able to find another acceptable solution\. +Basically, I do not really enjoy programming in a multithreaded environment\. So when possible, I chose the monothread path, and used threads only where I simply would not be able to find another acceptable solution\. .HP 0 I also needed to use some mutexes to prevent crashes in the user interface\. .TP 3 @@ -2021,13 +2021,13 @@ .HP 0 This network code is not a masterpiece, it's just a little set of tools that have proven to work\. That's all\. .HP 0 -BTW, it's important to notice that when linking with Allegro, most blocking UNIX calls ("sleep" or "recv" for instance) stop working: they alwasys return immediately\. This led me to implement weird ugly hacks, like calling "recv" in a loop until it gets what it wants\.\.\. This is theorically and practically a performance killer, but I found no other way to fix this\. And FYI, this is not an Allegro bug, it's a feature 8\-) +BTW, it's important to notice that when linking with Allegro, most blocking UNIX calls ("sleep" or "recv" for instance) stop working: they always return immediately\. This led me to implement weird ugly hacks, like calling "recv" in a loop until it gets what it wants\.\.\. This is theoretically and practically a performance killer, but I found no other way to fix this\. And FYI, this is not an Allegro bug, it's a feature 8\-) .TP 3 .B * dnsutil\.c / dnsutil\.h: wrapper code to issue DNS requests, without having to handle the hostent struct\. .TP 3 .B * -sock2cli\.c: sode used to wrap low\-level network function on the client\. +sock2cli\.c: code used to wrap low\-level network function on the client\. .TP 3 .B * sock2gen\.h: header for sock2cli\.c and sock2srv\.c\. @@ -2072,7 +2072,7 @@ netmap\.c / netmap\.h: code to send and receive the maps over the network\. .TP 3 .B * -netmess\.c / netmess\.h: contains a parser to interpret plain text messages\. Used when exhanging information over the network\. +netmess\.c / netmess\.h: contains a parser to interpret plain text messages\. Used when exchanging information over the network\. .TP 3 .B * netplay\.c / netplay\.h: contains the code to set up and start network games\. @@ -2084,10 +2084,10 @@ ping\.c / ping\.h: code used on the client to estimate the average ping time with a server\. .TP 3 .B * -protocol\.c / protocol\.h: contains the sequence of messages send and recevied by the client when connecting on the server\. +protocol\.c / protocol\.h: contains the sequence of messages send and received by the client when connecting on the server\. .TP 3 .B * -startinf\.c / startinf\.h: contains struct and tools to handle some network informations while starting a network game\. +startinf\.c / startinf\.h: contains struct and tools to handle some network information while starting a network game\. .TP 0 @@ -2097,7 +2097,7 @@ .HP 0 The meta\-server itself is just a set of simple PHP scripts with a simple MySQL database\. I chose PHP because my provider allows execution of PHP pages, that's all\. .HP 0 -The protocol is *very* basic, and uses HTTP 1\.0 for requests\. Answers are received in plain text, with one information per line\. There's no garantee that this would work with any HTTP server, but experience proved that it works with my provider 8\-) +The protocol is *very* basic, and uses HTTP 1\.0 for requests\. Answers are received in plain text, with one information per line\. There's no guarantee that this would work with any HTTP server, but experience proved that it works with my provider 8\-) .TP 3 .B * httputil\.c / httputil\.h: low level functions to handle http requests\. @@ -2114,7 +2114,7 @@ .HP 0 The Liquid War server is a rather small program\. The only thing it does is accept new players, transmit map and game parameters between them, and then "replicate keys"\. .HP 0 -By "replicate keys" I mean that the server asks each client what keys have been pressed during the last round, and then dispatches this informations to all clients\. This implies that the server has absolutely no idea of who's loosing, who's winning, etc\.\.\. +By "replicate keys" I mean that the server asks each client what keys have been pressed during the last round, and then dispatches this information to all clients\. This implies that the server has absolutely no idea of who's loosing, who's winning, etc\.\.\. .HP 0 All the "logic" of the server is coded in these files, the rest is only utilities and helper functions\. .TP 3 @@ -2137,11 +2137,11 @@ .SS Report a new bug .HP 0 -If you have troubles with Liquid War 5, if you think it is a bug, and if it is not described in this file, then just send a (precise\.\.\.) decription of your problem to the Liquid War user mailing list\. +If you have troubles with Liquid War 5, if you think it is a bug, and if it is not described in this file, then just send a (precise\.\.\.) description of your problem to the Liquid War user mailing list\. .HP 0 Besides, it happens that now most bug reports come from the Debian tracking system "http://bugs\.debian\.org/cgi\-bin/pkgreport\.cgi?pkg=liquidwar"\. Thanks to the Debian users and maintainers, it's a very valuable feedback source\. .HP 0 -Additionnaly, on online bug tracking system has been set up\. It uses Flyspray http://flyspray\.rocks\.cc/\. It's accessible on http://www\.ufoot\.org/bugtracker/ or "http://www\.ufoot\.org/bugtracker/index\.php?project=2"\. I try to collect everything here : bugs reported on the mailing\-list, bugs from Debian, and bugs I found myself\. Alternatively you can report bugs directly on it 8\-) +Additionaly, on online bug tracking system has been set up\. It uses Flyspray http://flyspray\.rocks\.cc/\. It's accessible on http://www\.ufoot\.org/bugtracker/ or "http://www\.ufoot\.org/bugtracker/index\.php?project=2"\. I try to collect everything here : bugs reported on the mailing\-list, bugs from Debian, and bugs I found myself\. Alternatively you can report bugs directly on it 8\-) .SS Network @@ -2159,7 +2159,7 @@ Severe limitations in the Liquid War core algorithm\. .TP 3 .B * -The fact that moving the cursor "too fast" would really change the gameplay of Liquid War\. As a Liquid War integrist 8\-) I can tell you the game would really not be the same if you could move the cursor as fast as you wish\. It's part of the game that sometimes it takes you ages to recover from a strategical mistakes\. You need to think twice before going to the very end of a level\. That's strategy\. At least that's how I view things\.\.\. Anyways as I mentionned above there's a limitation in the core algorithm\. +The fact that moving the cursor "too fast" would really change the gameplay of Liquid War\. As a Liquid War integrist 8\-) I can tell you the game would really not be the same if you could move the cursor as fast as you wish\. It's part of the game that sometimes it takes you ages to recover from a strategical mistakes\. You need to think twice before going to the very end of a level\. That's strategy\. At least that's how I view things\.\.\. Anyways as I mentioned above there's a limitation in the core algorithm\. .HP 0 (*) This is not perfectly true, there's a way to control the cursor with the mouse, but it's designed for the case "4 people want to play on the same computer and one single keyboard is not enough"\. Controlling the cursor with the mouse in Liquid War is possible but yet rather hard to master 8\-/ Try it and you'll understand what I mean\. This mode can be set up in the "Teams" menu\. @@ -2169,12 +2169,12 @@ .HP 0 On non UNIX platforms such as Windows or DOS, Liquid War is distributed in a \.zip file\. It's IMPORTANT that you unzip the \.zip files with an "unzipper" which preserves the directory structure\. Most install problems under Windows come from broken unzipping programs which extract all files in the same directory\.\.\. WinZip 8\.x or the unzip32\.exe utility that comes with DJGPP are both able to uncompress Liquid War \.zip files correctly\. .HP 0 -On Liquid War 5\.5\.9 and later, the Windows version should detect this problem automatically and warn you with a message which basically says something like "Unable to load datafile\. Are you sure Liquid War is correctly installed?"\. If you get this message, you need to reinstall the game by unzipping it with a "correct" unzipping program which does not wreck directory structrure up\. +On Liquid War 5\.5\.9 and later, the Windows version should detect this problem automatically and warn you with a message which basically says something like "Unable to load datafile\. Are you sure Liquid War is correctly installed?"\. If you get this message, you need to reinstall the game by unzipping it with a "correct" unzipping program which does not wreck directory structure up\. .SS Interference with other Windows programs .HP 0 -It's been reported that Liquid War can run very slowly on Windows when some other programs (Mozilla for instance) are running\. So if Liquid War's menus seem to be really really slow, then try to shut down other applications and run the game again\. +It's been reported that Liquid War can run very slowly on Windows when some other programs (Mozilla for instance) are running\. So if Liquid War'sx menus seem to be really really slow, then try to shut down other applications and run the game again\. .HP 0 This problem does not seem to apply on GNU/Linux \- at least if you do not run 300 daemons together on your machine 8\-) @@ -2204,19 +2204,19 @@ .TP 0 .B Hack Allegro... .HP 0 -\.\.\.to implement wavetable midi on OSS :\-) +\&...to implement wavetable midi on OSS :\-) .HP 0 -and for the rest of us\.\.\. +and for the rest of us... .TP 0 .B Use Allegro's DIGMID midi driver... .HP 0 -\.\.\.which creates audio from MIDI using a set of patches (more info here: http://www\.talula\.demon\.co\.uk/allegro/digmid\.html) and plays back through your sound card's audio\. +\&...which creates audio from MIDI using a set of patches (more info here: http://www\.talula\.demon\.co\.uk/allegro/digmid\.html) and plays back through your sound card's audio\. .TP 0 .B Get an FM driver up and running... .HP 0 -\.\.\.Which is comprised of the following steps: +\&...Which is comprised of the following steps: .TP 3 .B * Find out which FM driver is appropriate for your sound card\. If you have distribution\-specific tools and docs for setting up sound, try those\. If not, you will need to be familiar with the knowledge in the Sound\-HOWTO and Kernel\-HOWTO i\.e\. know how to compile kernels and modules and deal with sound drivers\. @@ -2282,7 +2282,7 @@ .SS Liquid War 6 .HP 0 -Since summer 2005, Liquid War 6, a complete rewrite of Liquid War, is on its way\. See http://www\.gnu\.org/software/liquidwar6/ or http://www\.ufoot\.org/liquidwar/v6 for more informations\. +Since summer 2005, Liquid War 6, a complete rewrite of Liquid War, is on its way\. See http://www\.gnu\.org/software/liquidwar6/ or http://www\.ufoot\.org/liquidwar/v6 for more information\. .SH Work in progress @@ -2291,7 +2291,7 @@ .HP 0 Whenever Liquid War is released, I usually pass the good news to Freshmeat ( http://freshmeat\.net/projects/liquidwar/ )\. Then all releases are accessible from the main download page, which is http://www\.ufoot\.org/liquidwar/v5/download\. .HP 0 -Releasing the game takes time, for I want all binaries to install properly and sources to compile cleanly\. Therefore there might be some delay before the time coding is over and the time a release is actually ready\. So for impatients and/or for people who need to test out the very latest versions (eg someone who wants to compile the game on a new platform), it's possible to access the source repository directly\. +Releasing the game takes time, for I want all binaries to install properly and sources to compile cleanly\. Therefore there might be some delay before the time coding is over and the time a release is actually ready\. So for impatient and/or for people who need to test out the very latest versions (eg someone who wants to compile the game on a new platform), it's possible to access the source repository directly\. .SS About GNU Arch @@ -2316,9 +2316,9 @@ .br tla get \-A liquidwar@sv\.gnu\.org liquidwar6\-\-stable .HP 0 -If you are interested, I can open this repository in read/write mode, however one of the points of GNU Arch is that it allows cooperative developpement with multiple depots, so this isn't mandatory\. And anyways, importing myself patches received by email has never been a real burden\. +If you are interested, I can open this repository in read/write mode, however one of the points of GNU Arch is that it allows cooperative development with multiple depots, so this isn't mandatory\. And anyways, importing myself patches received by email has never been a real burden\. .HP 0 -Besides, most developpement is now done on Liquid War 6\. See http://www\.gnu\.org/software/liquidwar6/ or http://www\.ufoot\.org/liquidwar/v6 for more informations\. +Besides, most development is now done on Liquid War 6\. See http://www\.gnu\.org/software/liquidwar6/ or http://www\.ufoot\.org/liquidwar/v6 for more information\. .SH Copying