/usr/share/doc/xevil/instructions/instructions.html is in xevil 2.02r2-10.
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 | <!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="Mozilla/4.61 [en] (Win98; I) [Netscape]">
<meta name="Author" content="Steve Hardt">
<title>XEvil Instruction Manual</title>
</head>
<body>
<h1>
The XEvil 2.X Instruction Manual</h1>
Copyright © 1999 Steve Hardt
<p><font size=-1>Last Modified 1/19/2000</font>
<br><font size=-1>Most recent version is at <a href="http://www.xevil.com/docs/instructions.html">http://www.xevil.com/docs/instructions.html</a>.</font>
<br><font size=-1>Visit <a href="http://www.xevil.com">www.xevil.com</a>
for downloads, source code, screen shots, and more documentation.</font>
<p>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or (at
your option) any later version.
<p>
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
<a href="http://www.xevil.com/docs/gpl.txt">General Public License</a> for more details.
<p>
<hr WIDTH="100%">
<h1>
<a NAME="intro"></a>Introduction</h1>
XEvil is a side-view, single or network-multiplayer, fast-action, kill-everything,
game for Windows and UNIX.
<p>You have sinned in life. Now, you die and go to Hell. XEvil
is the contest that determines your fate in Hell for all eternity.
At the end of a game, you receive one of many possible rankings.
A poor player, for example, may spend the rest of time as "Satan's Earwax
Remover", while a good one might achieve a prestigious title such as "VP
of Hell Marketing" or even "Lead Software Engineer of Hell".
<p>
<hr WIDTH="100%">
<h1>
<a NAME="contents"></a>Contents</h1>
<ol type="I">
<li>
<a href="#userinterface">User Interface</a></li>
<li>
<a href="#gameplay">Game Play</a></li>
<li>
<a href="#appendix">Appendix</a></li>
</ol>
<p><br>
<hr WIDTH="100%">
<h1>
<a NAME="userinterface"></a>Part I: User Interface</h1>
The XEvil user interface is designed to be as simple and direct as possible.
We're not trying to win any awards for fancy GUI gizmos, we just want to
get you to the death-and-gore of XEvil itself.
<br>
<h3>
<a NAME="unixvswin"></a>UNIX and Windows Differences</h3>
Although game play, graphics, networking, and pretty much everything else
is the same between the UNIX and Windows versions, the user interfaces
are quite different. From here on, we will mark sections that apply
only to UNIX or only to Windows with with "<i>UNIX:</i>" or "<i>Windows:</i>",
respectively.
<p><i>UNIX:</i>
<br>Menu Bar
<br><img SRC="UNIXmenu.gif" ALT="UNIX Menu" height=39 width=761>
<p><i>Windows</i>:
<br>Options Dialog
<br><img SRC="optionsdlg.gif" ALT="Windows Options Dialog" height=319 width=405>
<br>
<h3>
<hr WIDTH="50%"></h3>
<h3>
<a NAME="graphicops"></a>Graphics Options</h3>
At startup, the XEvil License Agreement Dialog appears and gives you several
graphics options. XEvil is designed to run on a variety of machines,
with widely varying graphics capabilities. So, most of these options
are meant to allow fast machines to use all the whiz-bang graphics features,
while still allowing slow machines to play full speed (with fewer features
enabled).
<p><i>UNIX:</i>
<ol>
<li>
[Large Viewport] chooses between large- and small-viewport modes.
Large-viewport mode is the default, playing XEvil in full resolution.
Small-viewport plays XEvil at half-resolution (similar to XEvil 1.x), shrinking
all graphics to half normal size. Two uses: With small-viewport,
you can fit two XEvil windows on one display to play two players on the
same machine. And, small-viewport mode is much faster on machines
with slow graphics.</li>
<li>
[Smooth Scroll] chooses between smooth-scroll and discrete-scroll modes.
In smooth-scroll, your character is always at the center of the screen,
with the world scrolling to follow you. However, smooth-scroll requires
a machine with very fast graphics, so discrete-scroll is the default.
In the latter, the viewport shifts in discrete chunks, only scrolling when
your character gets to the edge of the screen.</li>
<li>
Turn off [Draw Background] to speed up smooth-scroll mode. Instead
of the appropriate world-background, the background will be solid black.
This switch does nothing in discrete-scroll mode.</li>
</ol>
<i>Windows</i>:
<ol>
<li>
[Full Screen] chooses between full-screen and windowed modes. Full-screen
is generally faster, running in 800x600, 256-color mode. But, windowed
mode allows you to easily switch between XEvil and other applications.</li>
<li>
Turn off [Draw Background] to speed up drawing. Instead of the appropriate
world-background, the background will be solid black.</li>
</ol>
<hr WIDTH="50%">
<h3>
<a NAME="controls"></a>Controls</h3>
XEvil uses keyboard controls, 9 keys for movement, 3 keys each for weapons
and items, and one key for network chat. We use the same default
keyboard layout on both UNIX and Windows to assist multi-platform users.
The default setting uses the 9-key number pad for movement, the "insert-home-pageup-delete-end-pagedn"
block of six keys for weapons and items, and the space bar for network
chat.
<p>Movement:
<br>For Walking characters, press right-left to walk. Up and up-diagonals
to jump, down and down-diagonals to duck and crawl. Middle key to
stop moving.
<br>For Sticky (wall-crawling) characters, press the appropriate diagonal
towards the wall to climb, away-diagonal to jump off the wall.
<br>Press up-down to climb ladders. If you are jumping through the
air, you can grab a ladder by pressing up or down while passing over the
ladder.
<br>For Flying characters, press the direction you would like to fly.
Middle key to stop in place.
<p>Weapons/Items:
<br>To fire a weapon, or attack hand-to-hand, <i>hold</i> down the weapon-use
key and tap the direction you would like to attack. Movement will
not be affected as long as the weapon-use key is held down. Thus,
you can move in one direction while firing in another.
<br>Tap weapon-change to cycle through available weapons, and weapon-drop
to drop your current weapon.
<br>Item use, change, and drop keys allow you to use items, cycle through
available items, and drop items, respectively.
<p>Network chat is described in the Network XEvil section.
<br>
<p><a NAME="wincontrols"></a><i>Windows</i>:
<p>The [Settings | Keyboard Controls...] menu activates the Keyboard Controls
Dialog:
<br><img SRC="keysdlg.gif" ALT="Windows Keyboard Controls" height=319 width=455>
<br>Click on a button to set the key for that command. On Windows,
keyboard controls are saved persistently between sessions.
<br>
<p><a NAME="unixcontrols"></a><i>UNIX</i>:
<p>Keyboard controls set via user interface are not saved between sessions.
However, they can be set permanently via <a href="#xresources">X Resources</a>.
<p>To pause, hit F1, then any key to resume.
<h4>
<a NAME="unixviewcntrls"></a><i>UNIX: </i>Viewing current keyboard controls</h4>
Cllick the [Show Controls] button on the menu to view the current keyboard
controls.
<br><img SRC="UNIXShowControls.gif" ALT="UNIX Show Controls" height=299 width=728>
<br>A few tricky things. On UNIX, you can have a two player game
on a single machine, by sharing the same keyboard. The first player
uses the right side of the keyboard, the second player the left.
If you are playing one-player, or are connecting to a server as a client,
you only need to think about keys on the right side.
<p>Another tricky things is that UNIX XEvil allows you to map one-or-two
different keys to each function. Here's why. The default left
keyboard mapping use nine-keys centered on the 'L' key. Put your
right hand on the keyboard with middle finger on 'L' and you'll notice
that up-right and down-left both have two nearby possible keys. So,
XEvil allows you to hit either 'P' or '[' for up-right and either 'M' or
'<' for down-left. In these cases, two different keys are mapped
to the same function.
<p>And, yet another tricky thing (YATT) is the X Window System key naming
convention. Most of the key names, e.g. "period" or "comma", are
obvious. But, some are more obscure. "Prior" and "Next" generally
mean "Page Up" and "Page Down". Anything starting with "KP_" means
a key on the numeric keypad. If you are really stuck, read "/usr/include/X11/keysymdef.h"
or the "X" man pages.
<h4>
<a NAME="unixsetcntrls"></a><i>UNIX: </i>Setting Keyboard Controls via
User Interface</h4>
Click the [Set Controls] button to change the keyboard controls.
<br><img SRC="UNIXSetControls.gif" ALT="UNIX Set Controls" height=162 width=590>
<br>The dialog will ask you, in order, for all keyboard controls.
Click on the Set Controls Dialog, and type in the requested keys.
Now, there is the whole two-keys-to-one-function thing described above,
so you have the option to enter two different keys for each function.
But, <i>most of the time, you will just hit the same key twice</i>.
<p>Changes take effect immediately, so you don't always have to cycle through
all controls. In particular, if you are playing one-player, dismiss
the dialog after setting controls for the right side. To dismiss
the dialog, click the close-window button (usually) in the upper-right
corner, or unselect [Set Controls] from the XEvil menu. If you type
an incorrect key, dismiss the dialog and start again.
<br>
<h4>
<a NAME="xresources"></a><i>UNIX: </i>Setting Keyboard Controls via X Resources</h4>
If you're sick of going through the [Set Controls] dialog every time you
run XEvil, set the controls once via X Resources (part of the X Window
System). Generally, you add lines to the ".Xdefaults" or ".Xresources"
file in your home directory. See the man pages for X(1) and xrdb(1)
to learn more about setting/viewing X resources.
<p>Remember, there are separate sets of controls for the right and left
sides of the keyboard. If you are playing one-player mode, or running
as a client connecting to a server, you only need think about the right
hand set. Also remember, up to two keys can be mapped to each function.
<p>The easiest way to show this is with a few examples. The possible values
for each function are the keys in "/usr/include/X11/keysymdef.h" with the
"XK_" prefix stripped, e.g. "XK_asterisk" becomes "asterisk".
<p>"XEvil.right_weapon_use: Insert"
<br>The keysym for weapon-use on the right side controls is the insert
key.
<p>"XEvil.right_left: KP_Left"
<br>The keysym for move-left on the right side controls is the left-arrow
key on the numerical keypad ("KP_" means numerical keypad).
<p>"XEvil.left_up_right_2: bracketleft"
<br>The second keysym for move-up-right on the left side controls is the
left-square-bracket.
<br>
<p>A sample resource file. Further examples are in the "x11/app-defaults"
directory in the XEvil source distribution.
<blockquote>
<pre>! XEvil resources for a sun4 SPARC station 1
!
! Right side of keyboard
XEvil.right_center: F31
XEvil.right_right: Right
XEvil.right_down_right: F35
XEvil.right_down: Down
XEvil.right_down_left: F33
XEvil.right_left: Left
XEvil.right_up_left: F27
XEvil.right_up: Up
XEvil.right_up_right: F29
XEvil.right_weapon_use: F21
XEvil.right_weapon_change: F22
XEvil.right_weapon_drop: F23
XEvil.right_item_use: F24
XEvil.right_item_change: F25
XEvil.right_item_drop: F26
! Left side of keyboard
XEvil.left_center: l
XEvil.left_right: semicolon
XEvil.left_down_right: slash
XEvil.left_down: period
XEvil.left_down_left: m
XEvil.left_down_left_2: comma
XEvil.left_left: k
XEvil.left_up_left: i
XEvil.left_up: o
XEvil.left_up_right: p
XEvil.left_up_right_2: bracketleft
XEvil.left_weapon_use: a
XEvil.left_weapon_change: s
XEvil.left_weapon_drop: d
XEvil.left_item_use: z
XEvil.left_item_change: x
XEvil.left_item_drop: c</pre>
</blockquote>
<hr WIDTH="50%">
<h3>
<a NAME="gamestyle"></a>Game Style</h3>
There are six "Styles" of XEvil game play, controlled by the "Game Style"
toggle buttons.
<ul>
<dl>
<dt>
<b>Levels</b></dt>
<dd>
The default style for single-player games. Kill all enemies on each
level to advance to the next more difficult level. Every five levels,
you must complete a scenario. A scenario is a mission with a specific
goal, e.g. "Capture the Flag", "Hive"-find the exit before the hoards of
Aliens kill you, "Kill the Baby Seals", or "The Pound"-survive an onslaught
of rabid dogs.</dd>
<dt>
<b>Scenarios Only</b></dt>
<dd>
No normal levels, you only play scenarios.</dd>
<dt>
<b>Kill, Kill, Kill</b></dt>
<dd>
Everything attacks everything, machine players even attack each other.
Game is over when there is one (or fewer) survivors. Also makes a
good screen-saver, set zero human players and watch the machines fight
it out.</dd>
<dt>
<b>Duel</b></dt>
<dd>
Good for multi-player tournaments. Each player has three lives.</dd>
<dt>
<b>Extended Duel</b></dt>
<dd>
The default "Death Match" style for multi-player network games. Humans
have infinite lives and the game keeps track of the number of kills per
player.</dd>
<dt>
<b>Training</b></dt>
<dd>
No enemies, good for learning the controls (and debugging).</dd>
</dl>
</ul>
You can further specify the type of game by setting values for [Human Players],
[Enemy Players], [Regenerate Enemies], and [Cooperative]. Depending
on the Game Style setting, certain of these controls will be ghosted out
because their values are unused.
<ul>
<dl>
<dt>
[Human Players]</dt>
<dd>
Set the number of players on this machine. On Windows, this is zero
or one. You can set zero players then sit back and watch the machines
kill each other. On UNIX, this can be zero to six. Two players
can share the same machine, each using half of the keyboard. Or,
you can open windows on multiple X Displays with the -display<N> command
line option, to play up to six players. Note: multiplayer by opening
multiple X Displays is different than true client/server network play,
described in the "Network XEvil" section. This control is unused
for true network play, because the value is set implicitly by the number
of machines connected to the server.</dd>
<dt>
[Enemy Players]</dt>
<dd>
Only used for certain Game Styles, set the number of enemy players in the
game. E.g. for a human vs. human duel, you may or may not want to
have computer players running around in the game.</dd>
<dt>
[Regenerate Enemies]</dt>
<dd>
Only used for certain Game Styles, choose whether enemy players are automatically
regenerated. E.g. if [Enemy Players] is set to ten, and all but four
have been killed, six new ones will soon appear to take the place of their
fallen comrades.</dd>
<dt>
[Cooperative]</dt>
<dd>
You can choose a [Cooperative] game, where all humans work together.
Your dogs and doppelgangers will not attack other humans, human-fired missiles
will not track other humans, humans will not bump into each other, and
you all share the same set of lives.</dd>
</dl>
</ul>
<h3>
<hr WIDTH="50%"></h3>
<h3>
<a NAME="network"></a>Network XEvil</h3>
For ease of use and distribution, the XEvil client, server, and standalone
games are bundled in the same executable.
<p>XETP, the XEvil Transport Protocol, is platform independent. You can
connect Windows clients to UNIX servers and vice versa. Even though
UNIX XEvil has no sound (yet), Windows clients connected to UNIX servers
will get correct sound effects. XETP works over standard TCP/IP connections
(using UDP and TCP packets), so XEvil can be played over the internet,
a LAN, or a dialup connection.
<p>Network XEvil provides a simple chat mode, facilitating taunts and other
important modes of inter-player communication. On either Client or
Server, press the chat key (default is spacebar), enter your message, then
"Enter" to send the message or "Esc" to abort the message and return to
normal controls.
<br>
<h4>
<a NAME="netclient"></a>Client</h4>
<i>Windows:</i>
<br>You can run an XEvil client from the user interface at run time.
Select the "Network | Connect to Server..." menu. Enter the hostname
or IP address of the server along with the port number (if different than
the default port 6066). Optionally, enter a player name. If
you do not choose a player name, your name will be chosen randomly each
game. Hit "OK" to connect.
<p><i>UNIX</i>:
<br>Use the command line options described below.
<p><i>Windows and UNIX</i>:
<br>You can run an XEvil client from the command line. Type "xevil
-connect <server_name> {server_port}" to connect to a specific server,
optionally specifying the server port number, e.g. "xevil -connect xevil.notgod.com".
<p>While connected, you can hit [New Game] to restart. The server
will end your old game and start you with a new character.
<br>
<h4>
<a NAME="netserver"></a>Server</h4>
The server has the option to either be a regular "Player" in the game,
or to run in "Observer" mode with a scrollable window watching the action.
"Player" mode makes it very easy to set up, say, two player games.
One machine runs the server, the other connects to it, done.
<p><i>Windows</i>:
<br>You can run an XEvil server from the user interface at run time.
Select the "Network | Run as Server..." menu. You may change the
port number to run on a port other than the default, 6066. Choose
either "Player" or "Observer" mode and hit "OK". Clients can
now to connect to your machine.
<p><i>UNIX</i>:
<br>Use the command line options described below to run a UNIX XEvil server.
<p><i>Windows and UNIX</i>:
<br>You can run an XEvil server from the command line. Type "xevil
-server {port_number}" to run an XEvil server in "Player" mode, optionally
specifying a server port number. Add the "-observer" flag to run
in "Observer" mode.
<p><i>Windows</i>:
<br>Windows XEvil provides a dedicated server mode, with a small window
to control game options and view server logs. Dedicated-Server mode
performs no drawing, so inflicts little slowdown on other applications.
<br>Run "xevil -server -dedicated" from the command line. Dedicated
servers are always in "Observer" mode.
<p><i>UNIX</i>:
<br>UNIX XEvil provides a non-graphical command-line-only server interface.
This allows XEvil servers to be run in startup scripts or remotely via
telnet when no graphical interface is available.
<br>Run "xevil -server -no_ui" from the command line. Command-line
servers are always in "Observer" mode.
<p>You can record a server log by redirecting the output to a file, say
"log.txt".
<br>"xevil -server -no_ui > log.txt"
<br>or
<br>"xevil -server -no_ui | tee log.txt"
<br>The second form will copy the log to "log.txt" while still displaying
it on the command line.
<h4>
<a NAME="servermonitoring"></a>Remote Server Monitoring</h4>
You can remotely monitor an XEvil server with the "serverping" utility
program. serverping queries a server for certain information, including
the list of players on the server, and their kills. serverping can
be used to make web pages that actively monitor XEvil servers.
<p>Currently the only way to obtain serverping is to download the XEvil
source code and compile it on a UNIX machine. serverping will be
generated in the same directory as the XEvil executable. I haven't
tried building serverping.cpp on a Windows machine, but it is all cross-platform
code and shouldn't be too hard to make it work.
<h3>
<hr WIDTH="50%"><a NAME="difficulty"></a>Difficulty</h3>
There are four levels of difficulty, "Trivial", "Normal", "Hard", and "Bend
Over".
<p><i>UNIX</i>:
<br>You will be prompted for the level of difficulty at the start of the
first game. Press the key for the desired level of difficulty.
Or, hit space or click a mouse button as a shortcut for "Normal".
<p><i>Windows</i>:
<br>The [Settings | Keyboard Controls...] menu will activate the Difficulty
dialog. Changing level of difficulty will not effect a game currently
in progress. Start a new game to play with the new level of difficulty.
<br>
<hr WIDTH="50%">
<h3>
<a NAME="gamespeed"></a>Game Speed</h3>
<i>UNIX</i>:
<br>The [Speed] control in the upper-right corner sets the time (in milliseconds)
between turns, e.g. 40ms implies a frame rate of 25 fps. A little
counter-intuitive in that smaller numbers give higher speeds. Set
[Speed] to zero to play at the max speed supported by your machine.
<p><i>Windows</i>:
<br>Move the [Game Speed] slider in the Options Dialog to the right to
go faster, left to go slower.
<p><i>UNIX and Windows</i>:
<br>Run "xevil -speed <speed_in_ms>" to set the exact speed in milliseconds,
similar to the UNIX [Speed] control.
<p>If playing a network game, it's best to leave the speed at default.
If a client and server are running at different speeds, the client-side
dead-reckoning algorithm will be off, resulting in objects jumping around
the screen more than necessary.
<br>
<hr WIDTH="50%">
<h3>
<a NAME="sound"></a>Sound (Windows only)</h3>
The Options Dialog provides several options for controlling XEvil sound:
<ol>
<li>
Set the volume of the background music with the "Soundtrack" slider.</li>
<li>
Set the volume of the sound effects (gunshots, screams, and the like) with
the "Effects" slider.</li>
<li>
Turn sound on/off altogether with the "Sound" toggle button.</li>
<li>
Set background music to play from the built-in MIDI files (default).</li>
<li>
Set background music to play random tracks from an audio CD.</li>
</ol>
In general, changes will take effect when you click "OK" on the Options
Dialog.
<p>Sometimes, even with the "Soundtrack" slider all the way up, the MIDI
sound is still too quiet. Two ways to deal with this:
<ol>
<li>
Open the Windows Volume Controls by right-clicking on the speaker icon
in the lower-right corner of your screen. Then crank the "Synth Volume"
all the way up.</li>
<li>
Turn down the "Effect" volume in the XEvil Options Dialog. Then increase
the master volume on your speakers.</li>
</ol>
<p><br>UNIX XEvil has no sound. But, with the source freely available,
I'm sure some industrious soul could write it (hint, hint).
<p>
<hr WIDTH="100%">
<h1>
<a NAME="gameplay"></a>Part II: Game Play</h1>
<h3>
<a NAME="world"></a>World</h3>
The XEvil World is a randomly generated two-dimensional map composed of
walls, floors, ladders, horizontal and vertical movers(elevators), and
doors. The maze algorithm guarantees every character that can at
least walk and climb ladders can get from any room to any other room.
Each level randomly chooses one of several graphical "themes", e.g.
a "Mayan" theme, a "Medieval" theme, an "Industrial" theme.
<br>
<h3>
<a NAME="characters"></a>Characters</h3>
XEvil characters walk, climb ladders, climb on walls and ceilings, fly,
use weapons and items, and/or fight hand-to-hand depending on their specific
set of abilities. At the start of each life, you are randomly given
one of the characters to play. One time you may be a "Ninja", next
time a "Chopper-Boy". To succeed in XEvil, you need to learn all the major
characters. The <a href="http://www.xevil.com/xevil/profiles" target="_top">XEvil
Character Profiles</a> gives a full description of each.
<p>You can build up characters with more powerful weapon and items, with
shields, or by earning bonuses like double health, double speed, hellfire
powers (light enemies on fire by touching them), or healing powers.
But, life is cheap, and often very short. A much less pumped character,
controlled by a clever and fast opponent, might just find the right weapon/item
combination to nail you where you least expect it.
<br>
<h3>
<a NAME="weapsitems"></a>Weapons and Items</h3>
Next to the characters themselves, weapons and items are the heart of XEvil
gameplay. We include many of the standard video game weapons and
items (hand-to-hand combat, melee weapons, projectile weapons, throwing
weapons, shields, MedKit), but also a number of more creative devices (Soul-Swapper,
Frog-Gun, Transmogifier, Doppelganger, Dog-Whistle, drugs, Cloak, and heat
weapons). The <a href="http://www.xevil.com/xevil/armory" target="_top">XEvil
Armory</a> lists all the weapons and items in XEvil.
<p>We implemented a system where it is fairly easy to find weapons, but
not too easy, and where it is impossible to hoard weapons from other players.
If you pick up a weapon you already have, your character will take the
ammunition from the new weapon. After killing an opponent, you may
loot all the weapons and items from the corpse (assuming you didn't blow
up the entire area with a Bomb or Grenade).
<p>Don't get too attached to your body, you never know when it might get
snatched from under you. The XEvil Soul-Swapper lets you swap souls
between your body and someone else's. The Soul-Swapper is good for
taking over powerful enemies, or getting rid of your current near-death
body. The frog-gun temporarily turns an enemy into a harmless, hopping,
little amphibian. Be sure to catch and nail the critter before he
turns back. The Transmogifier (based on "transmogrify"), randomly
turns its user into a different Creature. It's good if your current
body is weak or wounded, or if you just feel like a change.
<p>Doppelgangers and Dog-Whistles give you followers. Your followers
help you out, protecting you and attacking your enemies. And, you
even get the credit for all your followers' kills. Using a Doppelganger
generates a copy of your current body. It is largely independent,
wandering around the world attacking your enemies. Blowing a Dog-Whistle
summons two loyal and obedient Dogs. Unless ordered otherwise, Dogs
follow nearby protecting their master, attacking nearby targets and fetching
weapons and items. You can use the Dog-Whistle to order your Dogs
to seek in a certain direction or to return to your side.
<p>XEvil has more drugs than a elementary school playground. Caffine
is the legal drug, keeps you awake and makes you go faster. No really
bad side-effects, although the shaking may make you fall off ladders and
such. Crack and PCP make you faster and stronger. But, they
come with a chance of overdose. If you do drugs and die, well, you
should've listened to Nancy Reagan. As long as you keep constantly
high, feeding your habit with more drugs, you won't suffer the negative
effects of the come-down. If you see your opponents shaking, twitching,
and jumping all over the place, be careful, they may be strung out on Crack.
<p>The "Cloak" gives limited invisibility. The background shimmers
in the shape of your character, so only very observant players can see
you. Cloaking effects last for quite a while (not infinite, don't
want cowards to hide in the corners forever), but end as soon as you fire
a weapon. Cloak is perfect for ambush attacks.
<p>Now, what would Hell be without fire? Flame-Throwers, Napalm-Grenades,
and Fireballs allow you to have a barbecue with your unwanted guests.
The more you hit 'em, the hotter they get, the longer they burn, and the
more damage they take. Sometimes you can hit someone with enough
fire so that after they kill you, they still burn to death. Vengeance
from the grave. Of course, all Demons and Demonic objects are immune
to heat attacks. "Gee, that tickles."
<p>XEvil has <i>no</i> personal hand-held or built-in teleporters.
I hate games where your quarry magically beams away right before you kill
them. Stationary teleporters are ok. Doors and teleportation
booths set into in the world background move you instantly from one fixed
location to another.
<p>
<hr WIDTH="100%">
<h1>
<a NAME="appendix"></a>Part III: Appendix</h1>
<h3>
<a NAME="title"></a>Title</h3>
The title, "XEvil", reflects the game's early UNIX roots, the X Window
naming convention of applications like XTerm, XClock, XTrek, and
XEmacs. Now, with cross-platform support, the title is read as "XEvil"
== "eXtremely Evil", "eXceptionally Evil", "eXcessively Evil", "eXtraordinarily
Evil", "eXclusively Evil", "eXquisitely Evil", "eXorbitantly Evil", etc,
etc.
<br>
<hr WIDTH="50%">
<h3>
<a NAME="hints"></a>Hints</h3>
The combination of weapons and items in XEvil allows for a number of creative,
"classy" kills and strategies, many we never thought of while writing the
game. Here are a few examples:
<ol>
<li>
While an enemy is shooting at you, hit him with the Soul-Swapper.
After switching bodies, his own bullets will kill him.</li>
<li>
Drop a Transmogifier on an Alien or some other tough enemy. It will
probably turn him into something easier to kill.</li>
<li>
Trigger a Bomb, but don't drop it. Then soul-swap an enemy.
He will find himself holding the hot-potato when it goes off.</li>
<li>
Activate Doppelgangers and Dogs as living shields when being pursued by
a really nasty enemy, say a FireDemon.</li>
<li>
Drop drugs on your enemies until they die from overdose.</li>
<li>
Use a Transmogifier to change bodies when missiles are tracking you.
They will lose the lock-on and fly into a wall.</li>
</ol>
<h3>
<hr WIDTH="50%"></h3>
<h3>
<a NAME="commline"></a>Command Line Arguments</h3>
Throughout the bulk of this manual, we mention command line arguments only
when they are especially relevant. Here we give an exhaustive list of all
XEvil command line arguments.
<p>Values in <> are required, values in {} are optional. Arguments
that say (<i>UNIX)</i> or (<i>Windows)</i>, are only meaningful for that
platform.
<p><i>Windows</i>:
<br>UNIX users, of course, are intimately familiar with the command line.
Some Windows users may not be. On Win 95/98/NT, there are several
ways to run a program from the command line.
<ol>
<li>
From the "Start" menu, click "Run...". In the dialog, type the command
line to run XEvil,</li>
<br>e.g. "c:\xevil2.0\xevil <some_list_of_command_line_arguments>"
<li>
"Start | Programs | MS-DOS Prompt". Then type the command line in
the MS-DOS window.</li>
<li>
Create a shortcut to XEvil. Right-click on the shortcut icon and
bring up the Properties dialog. Choose the "Shortcut" tab, then add
any command line arguments to the "Target" field. Click "OK", then
double click the shortcut to execute.</li>
</ol>
<p><br><i>UNIX and Windows</i>:
<ul>
<li>
Arguments applicable to all modes of playing, StandAlone, Client, or Server.</li>
<ul>
<li>
-debug_info</li>
<br>Extra debugging information. On Windows this adds a menu for
debugging the SurfaceManager.
<li>
-name <player_name></li>
<br>Set the name for the first player, i.e. player number 0.
<li>
-name<N> <player_name></li>
<br>Set the name for player number N, N starts at 0,
<br>e.g. "xevil -name0 bob -name1 fred -name2 jane".
<li>
-reduce_draw</li>
<br>Don't draw backgrounds.
<li>
-speed <time_in_ms></li>
<br>Set the time for each turn in milliseconds.
<li>
-display <display_name></li>
<br><i>(UNIX)</i> Run all XEvil windows on the given X Display. See
the "X" man pages for info on display names. Remember to include
the ":<screen_number>" after the machine name, e.g. "somemachine:0".
<li>
-display<N> <display_name></li>
<br><i>(UNIX) </i>Associate player number N with the given X Display.
N starts at zero.
<br>E.g. "xevil -display0 chainsaw.domain.com:0 -display1 fthrower.anotherdomain.edu:0"
will play a game where player number 0 is on the machine "chainsaw" while
player 1 is on the machine "fthrower".
<li>
-draw_rects</li>
<br><i>(UNIX)</i> Debugging tool for discrete-scroll mode. Show the
exact rectangles being drawn.
<li>
-help or -h</li>
<br><i>(UNIX) </i>Print out a help message.
<li>
-info</li>
<br><i>(UNIX)</i> Print out license agreement text, including credits.
<li>
-keys <keyset_name></li>
<br><i>(UNIX)</i> Use one of the built-in default keyboard settings.
Possible values are "alpha", "decmips", 'iris", "linux", "mac", "ncd",
"rsaix", "sun3", "sun4", "sun4_sparc", "tektronix". The default is
set at compile-time with the -DXEVIL_KEYSET flag.
<li>
-large_viewport</li>
<br><i>(UNIX)</i> Start in large-viewport mode.
<li>
-no_buffer</li>
<br><i>(UNIX)</i> Don't use double-buffer for smooth-scroll mode.
<li>
-no_smooth_scroll</li>
<br><i>(UNIX)</i> Turn smooth scroll off.
<li>
-old_draw</li>
<br><i>(UNIX) </i>Use an older drawing algorithm.
<li>
-small_viewport</li>
<br><i>(UNIX)</i> Start in small-viewport mode.
<li>
-smooth_scroll</li>
<br><i>(UNIX)</i> Turn smooth scroll on.
<li>
-stats</li>
<br><i>(UNIX) </i>Periodically print out a few useful statistics about
timing and events.
<li>
-use_averaging</li>
<br><i>(UNIX) </i>For small viewport mode, set the image reduction algorithm
to take the average of the source pixels. Default is sub-sampling.
<li>
-use_buffer</li>
<br><i>(UNIX)</i> Use a double-buffer for smooth-scroll mode.
<li>
-cd</li>
<br><i>(Windows)</i> Set soundtrack to play an audio CD.
<li>
-full_screen</li>
<br><i>(Windows)</i> Run XEvil in full-screen mode.
<li>
-gen_xpm <directory_name></li>
<br><i>(Windows) </i>Auto-generate UNIX XPM images for XEvil into the given
directory. Used for development work.
<li>
-midi</li>
<br><i>(Windows)</i> Set soundtrack to play the built-in MIDI music
<li>
-no_init_graphics</li>
<br><i>(Windows) </i>Don't initialize all graphics at startup. Initialize
graphics lazily, load images when they are first needed.
<li>
-no_soundtrack</li>
<br><i>(Windows) </i>Turn off the soundtrack.
<li>
-window_screen</li>
<br><i>(Windows)</i> Run XEvil in windowed mode.</ul>
<li>
Arguments for StandAlone or Server.</li>
<ul>
<li>
-cooperative</li>
<br>Turn on "Cooperative" mode.
<li>
-difficulty <difficulty_level></li>
<br>Set difficulty level, possible values are "trivial", "normal", "hard",
or "bend-over".
<li>
-duel</li>
<br>Set game style to "Duel".
<li>
-extended</li>
<br>Set game style to "Extended Duel".
<li>
-enemies <enemies_num></li>
<br>Set number of enemy players.
<li>
-kill</li>
<br>Set game style to "Kill, Kill, Kill".
<li>
-levels</li>
<br>Set game style to "Levels".
<li>
-no_demo</li>
<br>Don't show a demo at game startup. Mostly for debugging.
<li>
-no_items</li>
<br>No weapons or items will be added to the XEvil world. Mostly
for debugging.
<li>
-no_level_title</li>
<br>Don't pause at the beginning of each level, displaying the level title.
<li>
-no_movers</li>
<br>No horizontal or vertical movers(elevators) in the game.
<li>
-no_new_level</li>
<br>Never advance to the next level. Only useful for debugging.
<li>
-one_item <item_name></li>
<br>Only put one item in the XEvil world, an instance of the named class.
For debugging.
<li>
-regenerate_enemies</li>
<br>Turn on auto-regenerate enemies.
<li>
-rooms <N>x<M></li>
<br>Set the dimensions of the XEvil world to be N rooms across and M rooms
down. Only used for certain game styles and scenarios.
<li>
-scenario <scenario_name></li>
<br>For the "Scenarios" game style, always play the named scenario.
<li>
-scenarios</li>
<br>Set game style to "Scenarios".
<li>
-training</li>
<br>Set game style to "Training".</ul>
<li>
Arguments for Client Only.</li>
<ul>
<li>
-connect <server_name> {server_port}</li>
<br>Run XEvil as a client, connecting to the given server. Server
port number may optionally be specified, default is 6066.
<li>
-client_port <port_number></li>
<br>Manually specifiy the UDP port used on the client side. Use this
if you get an error like "Could not bind local UDP port".
<li>
-no_dead_reckoning</li>
<br>Disable client-side dead reckoning. Objects will jump around
on the screen more.
<li>
-skip <skip_turns></li>
<br>Manually specify the rate of data flow from the connected XEvil server.
"-skip 1" means send data at full rate no matter what. "-skip 2"
means only send every other turn, "-skip 3" means only send every three
turns, etc. "-skip 0" means automatically adjust the rate (default).</ul>
<li>
Arguments for Server Only.</li>
<ul>
<li>
-server {server_port}</li>
<br>Run an XEvil server. Optionally specify the server port number,
default is 6066.
<li>
-disconnect_time <time_in_ms></li>
<br>Specify time in milliseconds before disconnecting clients that do not
respond.
<li>
-no_adjust_skip</li>
<br>Don't adjust the data flow rate to clients.
<li>
-no_disconnect</li>
<br>Never disconnect clients, even if they don't respond. Useful
for debugging.
<li>
-observer</li>
<br>Run the server in "Observer" mode. Default is "Player" mode.
<li>
-target_delay <num_turns></li>
<br>Server will adjust rate of data flow to Clients to keep latency <=
this number of turns.
<li>
-no_ui</li>
<br><i>(UNIX)</i> Run a command-line XEvil server. Implies "-observer".
<li>
-dedicated</li>
<br><i>(Windows)</i> Run a dedicated XEvil server. Implies "-observer".</ul>
<li>
Arguments for Client or Server.</li>
<ul>
<li>
-buggy</li>
<br>Purposely drop packets, scramble packets, and send duplicate packets.
Simulate a crappy network connection to assist debugging.
<li>
-net_stats</li>
<br>Print out stats on network packets.</ul>
</ul>
</body>
</html>
|