Manual: Added a section to document Neverputt.
[neverball] / doc / MANUAL
1 \r
2                             * Neverball *\r
3 \r
4 \r
5 Tilt the  floor to roll a  ball through an obstacle  course within the\r
6 given time.  If the ball falls or time expires, the player must\r
7 restart the level.\r
8 \r
9 Collect coins to unlock the exit  and earn extra balls.  Red coins are\r
10 worth 5.   Blue coins are  worth 10.  A  free ball is awarded  for 100\r
11 coins.\r
12 \r
13 \r
14 * INSTRUCTIONS\r
15 \r
16 Click Play  to begin.   Mouse motion tilts  the floor.   Mouse buttons\r
17 rotate the  viewpoint.  The  following keyboard controls  are defined.\r
18 See below for details.\r
19 \r
20     SPACE  Pause and resume / Release mouse grab\r
21     ESC    End a game / Exit\r
22     SHIFT  Fast camera rotation\r
23 \r
24     F1     Default Camera                            (configurable)\r
25     F2     Lazy Camera                               (configurable)\r
26     F3     Static Camera                             (configurable)\r
27 \r
28     F7     Toggle wire mode\r
29     F8     Toggle nice mode\r
30     F9     Toggle frame counter\r
31     F10    Snap a screenshot\r
32     F12    Toggle look-around mode\r
33 \r
34 \r
35 \r
36 * USER DATA FILES\r
37 \r
38 Neverball creates a directory in which it stores user data files.  These\r
39 files include high scores, replays, and configurations.  Under Unix,\r
40 Linux, and OSX this directory is called ".neverball" and it is created\r
41 in your home directory (specifically, the directory set in the HOME\r
42 environment variable).  Under Windows it is called "Neverball" and it is\r
43 created in the user's application data directory or, if the game is\r
44 unable to determine the location of this directory, it is assumed that\r
45 the user has permission to write to the game data directory, and the\r
46 user data directory is created within.\r
47 \r
48 \r
49 \r
50 * HIGH SCORES\r
51 \r
52 The top three fastest times through each level, and the top three coin\r
53 scores for each  level are stored in files  named neverballhs-* in the\r
54 user data directory.\r
55 \r
56 The top  three fastest  times and  most coins scores  for each  set of\r
57 levels are also stored.  To achieve  a set score, the player must play\r
58 through all 25 levels of a set in one attempt.\r
59 \r
60 The total set time will  include time spent during both successful and\r
61 unsuccesful level  plays, thus  time-outs and fall-outs  count against\r
62 the total time.\r
63 \r
64 The  total  set  coin  count  will include  only  coins  collected  on\r
65 successful  level plays.   This  prevents unbounded  coin scores  from\r
66 being collected on levels with more than 100 coins.\r
67 \r
68 \r
69 \r
70 * REPLAYS\r
71 \r
72 Neverball  includes a  mechanism for  recording and  replaying levels.\r
73 The player may enter  a name for each replay at the  end of the level.\r
74 By default, the most recent unsaved  level will be saved to the replay\r
75 file named "Last.nbr".\r
76 \r
77 Replay  files are  stored in  the user  data directory.   They  may be\r
78 copied freely.  To  view a replay you have  downloaded, simply move it\r
79 to  the user  data directory  and it  will appear  in the  Replay menu\r
80 in-game.\r
81 \r
82 \r
83 \r
84 * NEVERPUTT\r
85 \r
86 Neverputt is Neverball's mini-game.   What you do is that you put your\r
87 ball over a course and you are to get it in the hole as few strokes as\r
88 possible, if you can get less strokes than par, you are a good player.\r
89 If you can get the ball in one stroke, that is even better.\r
90 \r
91 The scores add up to make the total score for the course. Try to avoid\r
92 going over par if you can help it.\r
93 \r
94 \r
95 \r
96 * CONFIGURATION\r
97 \r
98 Game  settings are stored  in the  file neverballrc  in the  user data\r
99 directory.  This file is created  when the game exits.  It consists of\r
100 key /  value pairs.  Some of  these values are  configurable using the\r
101 in-game  options  screen.  Other  meaningful  keys  and their  default\r
102 values follow.\r
103 \r
104     mouse_sense 300\r
105 \r
106         This  key controls  mouse  sensitivity.  The  value gives  the\r
107         number of screen pixels the  mouse pointer must move to rotate\r
108         the floor  through its entire  range.  A smaller  number means\r
109         more sensitive.\r
110 \r
111     mouse_invert 0\r
112 \r
113         This key inverts the vertical mouse axis if set to 1.\r
114 \r
115     key_camera_1 f1\r
116     key_camera_2 f2\r
117     key_camera_3 f3\r
118     key_camera_l left\r
119     key_camera_r right\r
120 \r
121         These keys  define keyboard mappings for  camera selection and\r
122         rotation.  Key  names are specified using  SDL's canonical key\r
123         naming convention.  The three camera behaviors are as follows:\r
124 \r
125         1 - Strict  camera stays behind the ball by  cueing off of the\r
126         velocity of the  ball.  It is very  responsive,  but sometimes\r
127         confusing.\r
128 \r
129         2 - Lazy  camera chases a point a set  distance from the ball.\r
130         It is seldom  surprising, but at times it  is not sufficiently\r
131         responsive.\r
132 \r
133         3 - Locked camera  does not rotate  except by  player command.\r
134 \r
135     view_fov 50\r
136     view_dp  75\r
137     view_dc  25\r
138     view_dz  200\r
139 \r
140         These keys  define the view of the ball.  They give  the field\r
141         of view in degrees,  the height of the view point,  the height\r
142         of the view center,  and the horizontal distance from the ball\r
143         in centimeters, respectively.  (The ball is  50 centimeters in\r
144         diameter in most levels.)\r
145 \r
146         The default values  for these keys changed with version 1.2.6.\r
147         Some players may be interested in using the  old values.  They\r
148         were as follows:\r
149 \r
150             view_fov 40\r
151             view_dp  400\r
152             view_dc  0\r
153             view_dz  600\r
154 \r
155     rotate_fast 200\r
156     rotate_slow 100\r
157 \r
158         These keys control the rate of camera rotation.  Roughly, they\r
159         give  the rate  of lateral  camera motion  in  centimeters per\r
160         seconds,  so the  actual rotation  rate depends  upon view_dz,\r
161         above.  The fast rate is used when the Shift key is held down.\r
162 \r
163     fps 0\r
164 \r
165         This key enables an on-screen frames-per-second counter. Press\r
166         F9 to toggle this flag in-game.\r
167 \r
168     nice 1\r
169 \r
170         This  key  enables  a  delay  function  after  each  frame  is\r
171         rendered, forcing a context  switch and ensuring that the game\r
172         does not utilize 100% of the CPU.  0 is off, 1 is on.\r
173 \r
174         If the  frame rate is not  fast enough for you,  or you simply\r
175         want to  test the  performance of the  game on  your hardware,\r
176         disable it.\r
177 \r
178         Press F8 to toggle this flag in-game.\r
179 \r
180     coin png/coin.png\r
181     ball png/ball.png\r
182 \r
183         These keys determine the texture image applied to the coin and\r
184         ball.  If  you prefer collecting euros  to collecting dollars,\r
185         set:\r
186 \r
187             coin png/euro_coin.png\r
188 \r
189     stereo 0\r
190 \r
191         This key  enables quad-buffered stereo viewing  for those with\r
192         the hardware to support it.  It gives an angle in degrees that\r
193         determines the  interocular distance.  0  is normal non-stereo\r
194         viewing.  2 gives  a  good  stereo effect.   If  the eyes  are\r
195         swapped, give a negative value, like -2.\r
196 \r
197     joystick 0\r
198 \r
199         This key  enables joystick control.  0  is off, 1  is on.  The\r
200         game may still be controlled with the mouse even while gamepad\r
201         control  is enabled.   However,  random noise  from an  analog\r
202         controller at rest can disrupt normal mouse input.\r
203 \r
204     joystick_device 0\r
205 \r
206         This  number selects  which joystick  to use if  more than one\r
207         joystick is  found. 0 is the first  joystick, 1 is the  second\r
208         and so on.\r
209 \r
210     joystick_axis_x 0\r
211 \r
212         Joystick horizontal axis number\r
213 \r
214     joystick_axis_y 1\r
215 \r
216         Joystick vertical axis number\r
217 \r
218     joystick_button_a 0\r
219 \r
220         Joystick menu select button\r
221 \r
222     joystick_button_b 1\r
223 \r
224         Joystick menu cancel button\r
225 \r
226     joystick_button_r 2\r
227 \r
228         Joystick counter-clockwise camera rotation button\r
229 \r
230     joystick_button_l 3\r
231 \r
232         Joystick clockwise camera rotation button\r
233 \r
234     joystick_button_exit 4\r
235 \r
236         Joystick exit button\r
237 \r
238 \r
239 \r
240 Contact: <robert.kooima@gmail.com>\r