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 ] [ --squareexplosions ] [ --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 Render the game in black and white, as if on graph paper.
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 multiplied 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 the squareexplosions option is not in effect.
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 --squareexplosions
113 Makes explosions square rather than round. By default spark
114 velocities are chosen by simply assigning independent uniformly
115 distributed random angle and velocity (polar coordinates). This
116 results in an explosion which is round in shape. If there
117 aren't too many sparks, you don't really notice. With larger
118 numbers of sparks, this round shape can become apparent. The
119 squareexplosions options causes a uniformly distributed random x
120 and y and velocity to be chosen for each spark. This saves the
121 computation of converting polar coordinates to cartesian. The
122 default used to be square explosions, with round explosions
123 available only through the old --roundexplosions option. Now
124 round explosions are the default, and the --roundexplosions
125 option was inverted and renamed --squareexplosions.
126
127
128 --rumbledevice d
129 Use the specified device for rumble effects (XBox 360 wired con‐
130 troller only, and linux 2.6.26 or better required.) The default
131 is /dev/input/event5. Your controller may show up elsewhere,
132 like /dev/input/event6, for example. Also, you will have to (as
133 root) chown this device node to the user you're running the game
134 as, and do this again after each boot, and each time you hotplug
135 the controller. There is probably a way to get udev to do this
136 for you automatically every time, but I don't know what it is
137 offhand, and it may differ from distro to distro.
138
139 --retrogreen
140 Does exactly what it sounds like.
141
142 --sounddevice n
143 Use alternate sound device n, where n is an integer. By
144 default, wordwarvi uses the "default" sound device as estimated
145 by the PortAudio library, which is 0. You can specify other
146 numbers if you have other sound cards, or a multichannel sound
147 card.
148
149 --starmotion x
150 Controls how the starfield moves. Possible values of x are
151 'astronomically-correct', 'wrong', 'wronger', and 'wrongest'.
152
153 --thicklines
154 Render everything with extra thick lines.
155
156 --version
157 Print the program's version number and exit.
158
159 --width w
160 Sets the window size to w pixels wide, scaling all graphics as
161 necessary. The default is 800 pixels.
162
163 --xmas Runs the program in xmas mode, if it is not near Christmas. If
164 it is near Christmas, runs the program in non-xmas mode.
165
167 Arrow keys control movement (or vi's hjkl keys will work too, of
168 course.)
169
170 Q puts in a quarter, and starts the game.
171
172 Z fires a laser
173
174 C drops chaff (to confuse heat seeking missiles).
175
176 B drops bombs.
177
178 G drops a gravity bomb, of which you start with 3.
179
180 Additionally, a game pad or joystick may be used. I have only tried
181 two controllers, the Microsoft XBox 360 wired controller, and a Log‐
182 itech Dual Action Rumble USB gamepad. On these, the first (left) joy‐
183 stick controls your ship. For other controls, just press all the but‐
184 tons to see what they do, as it's not the same from one controller to
185 the next. The rumble effect only works with the XBox 360 wired con‐
186 troller, and then only if you have linux kernel 2.6.26 or better. See
187 also the "--rumbledevice" option.
188
189 m toggles music on/off.
190
191 s toggles sound effects on/off.
192
193 1 toggles the audio missile lock-on alarm on/off.
194
196 Rockets. Avoid hitting them.
197
198 Jets, which fire heat seeking missiles. Avoid the missiles.
199
200 Heat seeking SAMs. Avoid.
201
202 Octo-viruses and tentacles. Shoot lightning. Avoid.
203
204 Blimps (representing emacs). Will shoot heat seeking missiles. Will
205 leak LISP code.
206
207 GDB processes. Will attempt to ptrace you with heat seeking probes.
208 Avoid and/or kill.
209
210 Cron Jobs. Will shoot projectiles at you. Will attempt to collect the
211 vi .swp files and carry them to caldera of the volcano, Mount
212 /dev/null.
213
214 Fuel tanks. Refuel by hovering over the fuel tanks momentarily.
215
216 Laser cannons. They will shoot laser bolts at you (obviously).
217
218 WINE bottles. Bill Gates's finest warship is outfitted with a giant
219 WINE bottle to enable it to travel through the linux CORE. Beware of
220 viruses which may be living inside.
221
223 /dev/input/js0, the joystick device node.
224
225 /dev/input/event5, the rumble effect device.
226
227 /usr/share/wordwarvi/sounds/*.ogg contain the audio data used by the
228 game.
229
230 ~/.wordwarvi/.highscores Contains high score data.
231
232 ~/.wordwarvi/.exrc This file can be used to customize default settings
233 for the game. Each line of the file controls one aspect of the game.
234 The following commands are understood.
235
236
237 set bw Render in black and white.
238
239 set blueprint
240 Render in the style of a blueprint.
241
242 set brightsparks
243 Render sparks brighter than usual.
244
245 set difficulty=x
246 Sets the difficulty level. Valid values are easy, medium, hard,
247 insane, and batshit-insane.
248
249 set explosionfactor=n
250 Produce explosions with the number of sparks multiplied by n.
251 Default is 1, integers up to 5 are permitted. Performance may
252 suffer with large values of n. This option only has an effect
253 when the squareexplosions option is not in effect.
254
255 set framerate=n
256 Attempt to render the game at n frames per second.
257
258 set fullscreen
259 Render the game in full screen mode.
260
261 set height y
262 Render the game y pixels high.
263
264 set joystick=dev
265 Use joystick input device dev.
266
267 set levelwarp=n
268 Warp ahead n levels (if compiled in).
269
270 set nomusic
271 Do not play, or even decode music data.
272
273 set nomissilealarm
274 Do not sound alarm for missile lock on.
275
276 set nostarfield
277 Do not render the background starfield.
278
279 set norumble
280 Do not use joystick rumble effects.
281
282 set nstars=n
283 Controls how many stars are rendered. Valid values for n must
284 be greater than or equal to zero, and less than or equal to 600.
285
286 set retrogreen
287 Render in the manner of a vector display from the '70's.
288
289 set randomize
290 Use a clock generated random seed to initialize levels.
291
292 set randomseed=n
293 Use the specified random seed to initialize levels.
294
295 set rumbledeviced=d
296 Use the specified device for rumble effects (XBox 360 wired con‐
297 troller only, and linux 2.6.26 or better required.) The default
298 is /dev/input/event5. Your controller may show up elsewhere,
299 like /dev/input/event6, for example. Also, you will have to (as
300 root) chown this device node to the user you're running the game
301 as, and do this again after each boot, and each time you hotplug
302 the controller. There is probably a way to get udev to do this
303 for you automatically every time, but I don't know what it is
304 offhand, and it may differ from distro to distro.
305
306 set squareexplosions
307 Makes explosions rectangular rather than round. See the
308 description of the --squareexplosions option for some explana‐
309 tion of why this even exists.
310
311 set sounddevice=n
312 Use the nth sound device for audio output.
313
314 set starmotion=x
315 Controls how the starfield moves. Possible values are 'astro‐
316 nomically-correct', 'wrong', 'wronger', and 'wrongest'.
317
318 set thicklines
319 Render everything with extra thick lines.
320
321 set width=x
322 Render the game x pixels wide.
323
324 map key action
325 valid actions are:
326 soundeffect down up left right
327 missilealarm bomb chaff quarter pause
328 2x 3x 4x 5x 6x
329 7x 8x suicide thrust music
330 fullscreen quit laser none reverse
331 gift
332 Valid keys are: a-z, A-Z, 0-9, and most printable characters.
333 Keypad numerals 0-9 may be specified as kp_0 through kp_9, and
334 function keys f1 through f12 can be specified f1 through f12
335 (obviously). In addition the following strings may be used to
336 specify the corresponding keys:
337 space enter return backspace delete
338 pause scrolllock escape sysreq left
339 right up down kp_home kp_down
340 kp_up kp_left kp_right kp_end kp_delete
341 kp_insert home down end delete
342 insert
343
344 map button n action
345 maps joystick button n (where 0 <= n <= 9) to the specified
346 action. Actions are the same as describe above, with the excep‐
347 tion of left, right, up and down, which are not yet implemented
348 due to laziness on my part. In any case, if your joystick has a
349 button pad you want to use to control the motion of the ship
350 (left/right/up/down), most likely it also has some sort of
351 switch to make this pad active instead of one of the sets of x/y
352 joystick axes. (e.g. my Logitech Dual Action Rumble is like
353 that.) If that's the case, then you don't need this feature
354 anyway, as the joystick will map those button presses onto the
355 appropriate axes for you.
356
357 set joystick-[xy]-axis=n. Allows specifying different axes for
358 control of the players ship for multi axis joysticks. By
359 default, the first x and first y axes are used (n = 0 for x, n=1
360 for y) A value of -1 disables control of an axis. See example
361 .exrc file below to find out why you might want to do that.
362 There are pictures at http://smcameron.github.com/wordwarvi
363 which show how the axis numbers and button numbers map to the
364 physical controls for the Microsoft XBox 360 controller and the
365 Logitech Dual Action Rumble controller
366
367
368 Example .exrc file:
369 set fullscreen
370 set retrogreen
371 map z chaff
372 map x bomb
373 map c laser
374 #
375 # to set up "Defender" style joystick
376 # controls, vertical motion controlled
377 # by joystick axis, horizontal motion
378 # controlled only by "reverse", and
379 # "thrust" buttons, with x axis joystick
380 # control disabled.
381 #
382 set joystick-x-axis=-1
383 set joystick-y-axis=0
384 map button 0 thrust
385 map button 1 reverse
386
388 You'll need it.
389
391 Written by Stephen M. Cameron
392
393
394
395wordwarvi Jul 2008 WORDWARVI(6)