1WORDWARVI(6) Games WORDWARVI(6)
2
3
4
6 wordwarvi - Old school '80's style side scrolling space shoot'em up
7 game.
8
10 wordwarvi [ --bw ] [ --blueprint ] [ --brightsparks ] [ --difficulty
11 easy|medium|hard|insane|batshit-insane ] [ --explosionfactor n ] [
12 --fullscreen ] [ --joystick device ] [ --nomusic ] [ --nomissilealarm ]
13 [ --norumble ] [ --nostarfield ] [ --nstars n ] [ --randomize ] [
14 --randomseed n ] [ --roundexplosions ] [ --rumbledevice device ] [
15 --sounddevice n ] [ --thicklines ] [ --width w ] [ --height h ] [
16 --framerate f ] [ --retrogreen ] [ --version ] [ --xmas ]
17
19 wordwarvi, or "Word War vi", is an old school '80's style side
20 scrolling space shoot'em up video game.
21
22 You pilot your "vi-per" craft through core memory, trying to avoid OS
23 defenses and wipe out the memory hogging emacs processes and rescue
24 lost vi-per pilots (.swp files) stranded from crashed vi sessions
25 before heading through the socket to the next node in the cluster to do
26 it all over again.
27
29 --bw No color, just black and white.
30
31 --blueprint
32 Render the game to look like a blueprint.
33
34 --brightsparks
35 Enables a visual effect for sparks to be rendered bigger and
36 brighter than usual, at the cost of some performance. It is a
37 matter of personal preference whether it looks better or worse.
38
39 --difficulty easy|medium|hard|insane|batshit-insane
40 Sets the difficulty level to one of easy, medium, hard, insane,
41 or batshit-insane.
42
43 --explosionfactor n
44 Produce explosions with the number of sparks mulitplied by n.
45 Default is 1, integers up to 5 are permitted. Performance may
46 suffer with large values of n. This option only has an effect
47 when used in conjunction with the roundexplosions option.
48
49 --framerate f
50 Sets the target frame rate to f frames per second. The default
51 is 30 frames per second. If your computer is too slow to
52 achieve the specified (or default) frame rate at the specified
53 (or default) resolution, decreasing the frame rate may make the
54 game respond better. Likewise, at lower resolutions, higher
55 framerates may be possible, or lower resolutions may make the
56 game perform better at a given frame rate. It should be noted
57 that The game is designed (and tested) to be played at 30 frames
58 per second.
59
60 --fullscreen
61 Expand the window to fill the screen. This option overrides the
62 --width and --height options, if either of those are also speci‐
63 fied, and scales the graphics to the size of the screen. You
64 can also use the F11 key to toggle between fullscreen and win‐
65 dowed mode after the program is started. If the --fullscreen
66 option is used, then the F11 key has no effect.
67
68 --height h
69 Sets the window size to h pixels high, scaling all graphics as
70 necessary. The default is 600 pixels.
71
72 --joystick joystick-device
73 Use the specified device node joystick-device to access the joy‐
74 stick. The default device if this option is not used is
75 /dev/input/js0. If you have more than one joystick, or if your
76 OS presents joysticks at device nodes other than /dev/input/js0,
77 that's what this option is for.
78
79 --nomusic
80 Don't play music, or even decode the music files into memory.
81 Cuts down considerably on memory usage.
82
83 --nomissilealarm
84 Don't sound an alarm when a missile locks on to your ship. Some
85 people find the sound of the alarm incredibly annoying. (Alarms
86 are supposed to be annoying.) The audio alarm can also be tog‐
87 gled on and off with the '1' key.
88
89 --norumble
90 Don't use joystick rumble effects.
91
92 --nostarfield
93 Don't draw a starfield in the background.
94
95 --nstars n
96 Controls how many stars are rendered. Valid values for n must
97 be greater than or equal to zero, and less than or equal to 600.
98
99 --randomize
100 Uses the microseconds value of the clock as the random seed for
101 generating terrain, enemy placement etc. If you get tired of
102 the regular levels, and knowing where everything is, this will
103 get you levels that you haven't seen before.
104
105 --randomseed n
106 Uses the specified value, n, as the random seed for generating
107 terrain, enemy placement etc. This allows access to new levels
108 which you may play again by specifying the same random seed
109 value. The default random seed value the game uses if none is
110 specified is 31415927.
111
112 --roundexplosions
113 Makes explosions round rather than rectangular. By default
114 spark velocities are chosen by simply assiging independent uni‐
115 formly distributed random x and y velocities. This results in
116 an explosion which is rectangular in shape. If there aren't too
117 many sparks, you don't really notice. With larger numbers of
118 sparks, this rectangular shape can become apparent. The round‐
119 explosions options causes a uniformly distributed random angle
120 and velocity to be chosen for each spark, and then x and y
121 velocities are computed from those values. In this way, x and y
122 velocities are no longer independent, and the explosion takes
123 on a more natural looking round shape.
124
125 --rumbledevice d
126 Use the specified device for rumble effects (XBox 360 wired con‐
127 troller only, and linux 2.6.26 or better required.) The default
128 is /dev/input/event5. Your controller may show up elsewhere,
129 like /dev/input/event6, for example. Also, you will have to (as
130 root) chown this device node to the user you're running the game
131 as, and do this again after each boot, and each time you hotplug
132 the controller. There is probably a way to get udev to do this
133 for you automatically every time, but I don't know what it is
134 offhand, and it may differ from distro to distro.
135
136 --retrogreen
137 Does exactly what it sounds like.
138
139 --sounddevice n
140 Use alternate sound device n, where n is an integer. By
141 default, wordwarvi uses the "default" sound device as estimated
142 by the PortAudio library, which is 0. You can specify other
143 numbers if you have other sound cards, or a multichannel sound
144 card.
145
146 --starmotion x
147 Controls how the starfield moves. Possible values of x are
148 'astronomically-correct', 'wrong', 'wronger', and 'wrongest'.
149
150 --thicklines
151 Render everything with extra thick lines.
152
153 --version
154 Print the program's version number and exit.
155
156 --width w
157 Sets the window size to w pixels wide, scaling all graphics as
158 necessary. The default is 800 pixels.
159
160 --xmas Runs the program in xmas mode, if it is not near Christmas. If
161 it is near Christmas, runs the program in non-xmas mode.
162
164 Arrow keys control movement (or vi's hjkl keys will work too, of
165 course.)
166
167 Q puts in a quarter, and starts the game.
168
169 Z fires a laser
170
171 C drops chaff (to confuse heat seeking missiles).
172
173 B drops bombs.
174
175 G drops a gravity bomb, of which you start with 3.
176
177 Additionally, a game pad or joystick may be used. I have only tried
178 two controllers, the Microsoft XBox 360 wired controller, and a Log‐
179 itech Dual Action Rumble USB gamepad. On these, the first (left) joy‐
180 stick controls your ship. For other controls, just press all the but‐
181 tons to see what they do, as it's not the same from one controller to
182 the next. The rumble effect only works with the XBox 360 wired con‐
183 troller, and then only if you have linux kernel 2.6.26 or better. See
184 also the "--rumbledevice" option.
185
186 m toggles music on/off. s toggles sound effects on/off.
187
188 1 toggles the audio missile lock-on alarm on/off.
189
191 Rockets. Avoid hitting them.
192
193 Jets, which fire heat seeking missiles. Avoid the missiles.
194
195 Heat seeking SAMs. Avoid.
196
197 Octo-viruses and tentacles. Shoot lightning. Avoid.
198
199 Blimps (representing emacs). Will shoot heat seeking missiles. Will
200 leak LISP code.
201
202 GDB processes. Will attempt to ptrace you with heat seeking probes.
203 Avoid and/or kill.
204
205 Cron Jobs. Will shoot projectiles at you. Will attempt to collect the
206 vi .swp files and carry them to caldera of the volcano, Mount
207 /dev/null.
208
209 Fuel tanks. Refuel by hovering over the fuel tanks momentarily.
210
211 Laser cannons. They will shoot laser bolts at you (obviously).
212
213 WINE bottles. Bill Gates's finest warship is outfitted with a giant
214 WINE bottle to enable it to travel through the linux CORE. Beware of
215 viruses which may be living inside.
216
218 /dev/input/js0, the joystick device node.
219
220 /dev/input/event5, the rumble effect device.
221
222 /usr/share/wordwarvi/sounds/*.ogg contain the audio data used by the
223 game.
224
225 ~/.wordwarvi/.highscores Contains high score data.
226
227 ~/.wordwarvi/.exrc This file can be used to customize default settings
228 for the game. Each line of the file controls one aspect of the game.
229 The following commands are understood.
230
231
232 set bw Render in black and white.
233
234 set blueprint
235 Render in the style of a blueprint.
236
237 set brightsparks
238 Render sparks brighter than usual.
239
240 set difficulty=x
241 Sets the difficulty level. Valid values are easy, medium, hard,
242 insane, and batshit-insane.
243
244 set explosionfactor=n
245 Produce explosions with the number of sparks mulitplied by n.
246 Default is 1, integers up to 5 are permitted. Performance may
247 suffer with large values of n. This option only has an effect
248 when used in conjunction with the roundexplosions option.
249
250 set framerate=n
251 Attempt to render the game at n frames per second.
252
253 set fullscreen
254 Render the game in full screen mode.
255
256 set height y
257 Render the game y pixels high.
258
259 set joystick=dev
260 Use joystick input device dev.
261
262 set levelwarp=n
263 Warp ahead n levels (if compiled in).
264
265 set nomusic
266 Do not play, or even decode music data.
267
268 set nomissilealarm
269 Do not sound alarm for missile lock on.
270
271 set nostarfield
272 Do not render the background starfield.
273
274 set norumble
275 Do not use joystick rumble effects.
276
277 set nstars=n
278 Controls how many stars are rendered. Valid values for n must
279 be greater than or equal to zero, and less than or equal to 600.
280
281 set retrogreen
282 Render in the manner of a vector display from the '70's.
283
284 set randomize
285 Use a clock generated random seed to initialize levels.
286
287 set randomseed=n
288 Use the specified random seed to initialize levels.
289
290 set rumbledeviced=d
291 Use the specified device for rumble effects (XBox 360 wired con‐
292 troller only, and linux 2.6.26 or better required.) The default
293 is /dev/input/event5. Your controller may show up elsewhere,
294 like /dev/input/event6, for example. Also, you will have to (as
295 root) chown this device node to the user you're running the game
296 as, and do this again after each boot, and each time you hotplug
297 the controller. There is probably a way to get udev to do this
298 for you automatically every time, but I don't know what it is
299 offhand, and it may differ from distro to distro.
300
301 set roundexplosions
302 Makes explosions round rather than rectangular. By default
303 spark velocities are chosen by simply assiging independent uni‐
304 formly distributed random x and y velocities. This results in
305 an explosion which is rectangular in shape. If there aren't too
306 many sparks, you don't really notice. With larger numbers of
307 sparks, this rectangular shape can become apparent. The round‐
308 explosions options causes a uniformly distributed random angle
309 and velocity to be chosen for each spark, and then x and y
310 velocities are computed from those values. In this way, x and y
311 velocities are no longer independent, and the explosion takes
312 on a more natural looking round shape.
313
314 set sounddevice=n
315 Use the nth sound device for audio output.
316
317 set starmotion=x
318 Controls how the starfield moves. Possible values are 'astro‐
319 nomically-correct', 'wrong', 'wronger', and 'wrongest'.
320
321 set thicklines
322 Render everything with extra thick lines.
323
324 set width=x
325 Render the game x pixels wide.
326
327 map key action
328 valid actions are:
329 soundeffect down up left right
330 missilealarm bomb chaff quarter pause
331 2x 3x 4x 5x 6x
332 7x 8x suicide thrust music
333 fullscreen quit laser none reverse
334 gift
335 Valid keys are: a-z, A-Z, 0-9, and most printable characters.
336 Keypad numerals 0-9 may be specified as kp_0 through kp_9, and
337 function keys f1 through f12 can be specified f1 through f12
338 (obviously). In addition the following strings may be used to
339 specify the corresponding keys:
340 space enter return backspace delete
341 pause scrolllock escape sysreq left
342 right up down kp_home kp_down
343 kp_up kp_left kp_right kp_end kp_delete
344 kp_insert home down end delete
345 insert
346
347 map button n action
348 maps joystick button n (where 0 <= n <= 9) to the specified
349 action. Actions are the same as describe above, with the excep‐
350 tion of left, right, up and down, which are not yet implemented
351 due to laziness on my part. In any case, if your joystick has a
352 button pad you want to use to control the motion of the ship
353 (left/right/up/down), most likely it also has some sort of
354 switch to make this pad active instead of one of the sets of x/y
355 joystick axes. (e.g. my Logitech Dual Action Rumble is like
356 that.) If that's the case, then you don't need this feature
357 anyway, as the joystick will map those button presses onto the
358 appropriate axes for you.
359
360 set joystick-[xy]-axis=n. Allows specifying different axes for
361 control of the players ship for multi axis joysticks. By
362 default, the first x and first y axes are used (n = 0 for x, n=1
363 for y) A value of -1 disables control of an axis. See example
364 .exrc file below to find out why you might want to do that.
365 There are pictures at http://wordwarvi.sourceforge.net which
366 show how the axis numbers and button numbers map to the physical
367 controls for the Microsoft XBox 360 controller and the Logitech
368 Dual Action Rumble controller
369
370
371 Example .exrc file:
372 set fullscreen
373 set retrogreen
374 map z chaff
375 map x bomb
376 map c laser
377 #
378 # to set up "Defender" style joystick
379 # controls, vertical motion controlled
380 # by joystick axis, horizontal motion
381 # controlled only by "reverse", and
382 # "thrust" buttons, with x axis joystick
383 # control disabled.
384 #
385 set joystick-x-axis=-1
386 set joystick-y-axis=0
387 map button 0 thrust
388 map button 1 reverse
389
391 You'll need it.
392
394 Written by Stephen M. Cameron
395
396
397
398wordwarvi Jul 2008 WORDWARVI(6)