|
|
| |
WORDWARVI(6) |
Games |
WORDWARVI(6) |
wordwarvi - Old school '80's style side scrolling space shoot'em up game.
wordwarvi [ --bw ] [ --blueprint ] [ --brightsparks ] [ --difficulty
easy|medium|hard|insane|batshit-insane ] [ --explosionfactor n ] [
--fullscreen ] [ --joystick device ] [ --nomusic ] [ --nomissilealarm ] [
--norumble ] [ --nostarfield ] [ --nstars n ] [ --randomize ] [ --randomseed n
] [ --squareexplosions ] [ --rumbledevice device ] [ --sounddevice n ] [
--thicklines ] [ --width w ] [ --height h ] [ --framerate f ] [ --retrogreen ]
[ --version ] [ --xmas ]
wordwarvi, or "Word War vi", is an old school '80's style side
scrolling space shoot'em up video game.
You pilot your "vi-per" craft through core memory,
trying to avoid OS defenses and wipe out the memory hogging emacs processes
and rescue lost vi-per pilots (.swp files) stranded from crashed vi sessions
before heading through the socket to the next node in the cluster to do it
all over again.
- --bw
- Render the game in black and white, as if on graph paper.
- --blueprint
- Render the game to look like a blueprint.
- --brightsparks
- Enables a visual effect for sparks to be rendered bigger and brighter than
usual, at the cost of some performance. It is a matter of personal
preference whether it looks better or worse.
- --difficulty easy|medium|hard|insane|batshit-insane
- Sets the difficulty level to one of easy, medium, hard, insane, or
batshit-insane.
- --explosionfactor n
- Produce explosions with the number of sparks multiplied by n. Default is
1, integers up to 5 are permitted. Performance may suffer with large
values of n. This option only has an effect when the squareexplosions
option is not in effect.
- --framerate f
- Sets the target frame rate to f frames per second. The default is 30
frames per second. If your computer is too slow to achieve the specified
(or default) frame rate at the specified (or default) resolution,
decreasing the frame rate may make the game respond better. Likewise, at
lower resolutions, higher framerates may be possible, or lower resolutions
may make the game perform better at a given frame rate. It should be noted
that The game is designed (and tested) to be played at 30 frames per
second.
- --fullscreen
- Expand the window to fill the screen. This option overrides the --width
and --height options, if either of those are also specified, and scales
the graphics to the size of the screen. You can also use the F11 key to
toggle between fullscreen and windowed mode after the program is started.
If the --fullscreen option is used, then the F11 key has no effect.
- --height h
- Sets the window size to h pixels high, scaling all graphics as necessary.
The default is 600 pixels.
- --joystick joystick-device
- Use the specified device node joystick-device to access the joystick. The
default device if this option is not used is /dev/input/js0. If you have
more than one joystick, or if your OS presents joysticks at device nodes
other than /dev/input/js0, that's what this option is for.
- --nomusic
- Don't play music, or even decode the music files into memory. Cuts down
considerably on memory usage.
- --nomissilealarm
- Don't sound an alarm when a missile locks on to your ship. Some people
find the sound of the alarm incredibly annoying. (Alarms are supposed to
be annoying.) The audio alarm can also be toggled on and off with the '1'
key.
- --norumble
- Don't use joystick rumble effects.
- --nostarfield
- Don't draw a starfield in the background.
- --nstars n
- Controls how many stars are rendered. Valid values for n must be greater
than or equal to zero, and less than or equal to 600.
- --randomize
- Uses the microseconds value of the clock as the random seed for generating
terrain, enemy placement etc. If you get tired of the regular levels, and
knowing where everything is, this will get you levels that you haven't
seen before.
- --randomseed n
- Uses the specified value, n, as the random seed for generating terrain,
enemy placement etc. This allows access to new levels which you may play
again by specifying the same random seed value. The default random seed
value the game uses if none is specified is 31415927.
- --squareexplosions
- Makes explosions square rather than round. By default spark velocities are
chosen by simply assigning independent uniformly distributed random angle
and velocity (polar coordinates). This results in an explosion which is
round in shape. If there aren't too many sparks, you don't really notice.
With larger numbers of sparks, this round shape can become apparent. The
squareexplosions options causes a uniformly distributed random x and y and
velocity to be chosen for each spark. This saves the computation of
converting polar coordinates to cartesian. The default used to be square
explosions, with round explosions available only through the old
--roundexplosions option. Now round explosions are the default, and the
--roundexplosions option was inverted and renamed --squareexplosions.
- --rumbledevice d
- Use the specified device for rumble effects (XBox 360 wired controller
only, and linux 2.6.26 or better required.) The default is
/dev/input/event5. Your controller may show up elsewhere, like
/dev/input/event6, for example. Also, you will have to (as root) chown
this device node to the user you're running the game as, and do this again
after each boot, and each time you hotplug the controller. There is
probably a way to get udev to do this for you automatically every time,
but I don't know what it is offhand, and it may differ from distro to
distro.
- --retrogreen
- Does exactly what it sounds like.
- --sounddevice n
- Use alternate sound device n, where n is an integer. By default, wordwarvi
uses the "default" sound device as estimated by the PortAudio
library, which is 0. You can specify other numbers if you have other sound
cards, or a multichannel sound card.
- --starmotion x
- Controls how the starfield moves. Possible values of x are
'astronomically-correct', 'wrong', 'wronger', and 'wrongest'.
- --thicklines
- Render everything with extra thick lines.
- --version
- Print the program's version number and exit.
- --width w
- Sets the window size to w pixels wide, scaling all graphics as necessary.
The default is 800 pixels.
- --xmas
- Runs the program in xmas mode, if it is not near Christmas. If it is near
Christmas, runs the program in non-xmas mode.
Arrow keys control movement (or vi's hjkl keys will work too, of course.)
Q puts in a quarter, and starts the game.
Z fires a laser
C drops chaff (to confuse heat seeking missiles).
B drops bombs.
G drops a gravity bomb, of which you start with 3.
Additionally, a game pad or joystick may be used. I have only
tried two controllers, the Microsoft XBox 360 wired controller, and a
Logitech Dual Action Rumble USB gamepad. On these, the first (left) joystick
controls your ship. For other controls, just press all the buttons to see
what they do, as it's not the same from one controller to the next. The
rumble effect only works with the XBox 360 wired controller, and then only
if you have linux kernel 2.6.26 or better. See also the
"--rumbledevice" option.
m toggles music on/off.
s toggles sound effects on/off.
1 toggles the audio missile lock-on alarm on/off.
Rockets. Avoid hitting them.
Jets, which fire heat seeking missiles. Avoid the missiles.
Heat seeking SAMs. Avoid.
Octo-viruses and tentacles. Shoot lightning. Avoid.
Blimps (representing emacs). Will shoot heat seeking missiles.
Will leak LISP code.
GDB processes. Will attempt to ptrace you with heat seeking
probes. Avoid and/or kill.
Cron Jobs. Will shoot projectiles at you. Will attempt to collect
the vi .swp files and carry them to caldera of the volcano, Mount
/dev/null.
Fuel tanks. Refuel by hovering over the fuel tanks
momentarily.
Laser cannons. They will shoot laser bolts at you (obviously).
WINE bottles. Bill Gates's finest warship is outfitted with a
giant WINE bottle to enable it to travel through the linux CORE. Beware of
viruses which may be living inside.
/dev/input/js0, the joystick device node.
/dev/input/event5, the rumble effect device.
/usr/share/wordwarvi/sounds/*.ogg contain the audio data used by
the game.
~/.wordwarvi/.highscores Contains high score data.
~/.wordwarvi/.exrc This file can be used to customize default
settings for the game. Each line of the file controls one aspect of the
game. The following commands are understood.
- set bw
- Render in black and white.
- set blueprint
- Render in the style of a blueprint.
- set brightsparks
- Render sparks brighter than usual.
- set difficulty=x
- Sets the difficulty level. Valid values are easy, medium, hard, insane,
and batshit-insane.
- set explosionfactor=n
- Produce explosions with the number of sparks multiplied by n. Default is
1, integers up to 5 are permitted. Performance may suffer with large
values of n. This option only has an effect when the squareexplosions
option is not in effect.
- set framerate=n
- Attempt to render the game at n frames per second.
- set fullscreen
- Render the game in full screen mode.
- set height y
- Render the game y pixels high.
- set joystick=dev
- Use joystick input device dev.
- set levelwarp=n
- Warp ahead n levels (if compiled in).
- set nomusic
- Do not play, or even decode music data.
- set nomissilealarm
- Do not sound alarm for missile lock on.
- set nostarfield
- Do not render the background starfield.
- set norumble
- Do not use joystick rumble effects.
- set nstars=n
- Controls how many stars are rendered. Valid values for n must be greater
than or equal to zero, and less than or equal to 600.
- set retrogreen
- Render in the manner of a vector display from the '70's.
- set randomize
- Use a clock generated random seed to initialize levels.
- set randomseed=n
- Use the specified random seed to initialize levels.
- set rumbledeviced=d
- Use the specified device for rumble effects (XBox 360 wired controller
only, and linux 2.6.26 or better required.) The default is
/dev/input/event5. Your controller may show up elsewhere, like
/dev/input/event6, for example. Also, you will have to (as root) chown
this device node to the user you're running the game as, and do this again
after each boot, and each time you hotplug the controller. There is
probably a way to get udev to do this for you automatically every time,
but I don't know what it is offhand, and it may differ from distro to
distro.
- set squareexplosions
- Makes explosions rectangular rather than round. See the description of the
--squareexplosions option for some explanation of why this even
exists.
- set sounddevice=n
- Use the nth sound device for audio output.
- set starmotion=x
- Controls how the starfield moves. Possible values are
'astronomically-correct', 'wrong', 'wronger', and 'wrongest'.
- set thicklines
- Render everything with extra thick lines.
- set width=x
- Render the game x pixels wide.
- map key action
- valid actions are:
soundeffect down up left right
missilealarm bomb chaff quarter pause
2x 3x 4x 5x 6x
7x 8x suicide thrust music
fullscreen quit laser none reverse
gift
Valid keys are: a-z, A-Z, 0-9, and most printable characters. Keypad
numerals 0-9 may be specified as kp_0 through kp_9, and function keys f1
through f12 can be specified f1 through f12 (obviously). In addition the
following strings may be used to specify the corresponding keys:
space enter return backspace delete
pause scrolllock escape sysreq left
right up down kp_home kp_down
kp_up kp_left kp_right kp_end kp_delete
kp_insert home down end delete
insert
- map button n action
- maps joystick button n (where 0 <= n <= 9) to the specified action.
Actions are the same as describe above, with the exception of left, right,
up and down, which are not yet implemented due to laziness on my part. In
any case, if your joystick has a button pad you want to use to control the
motion of the ship (left/right/up/down), most likely it also has some sort
of switch to make this pad active instead of one of the sets of x/y
joystick axes. (e.g. my Logitech Dual Action Rumble is like that.) If
that's the case, then you don't need this feature anyway, as the joystick
will map those button presses onto the appropriate axes for you.
- set joystick-[xy]-axis=n. Allows specifying different axes for
- control of the players ship for multi axis joysticks. By default, the
first x and first y axes are used (n = 0 for x, n=1 for y) A value of -1
disables control of an axis. See example .exrc file below to find out why
you might want to do that. There are pictures at
http://smcameron.github.com/wordwarvi which show how the axis numbers and
button numbers map to the physical controls for the Microsoft XBox 360
controller and the Logitech Dual Action Rumble controller
- Example .exrc file:
-
set fullscreen
set retrogreen
map z chaff
map x bomb
map c laser
#
# to set up "Defender" style joystick
# controls, vertical motion controlled
# by joystick axis, horizontal motion
# controlled only by "reverse", and
# "thrust" buttons, with x axis joystick
# control disabled.
#
set joystick-x-axis=-1
set joystick-y-axis=0
map button 0 thrust
map button 1 reverse
Written by Stephen M. Cameron
Visit the GSP FreeBSD Man Page Interface. Output converted with ManDoc. |