home *** CD-ROM | disk | FTP | other *** search
/ vsiftp.vmssoftware.com / VSIPUBLIC@vsiftp.vmssoftware.com.tar / FREEWARE / FREEWARE40.ZIP / flying618 / flying.hlp < prev    next >
Text File  |  1995-08-21  |  16KB  |  306 lines

  1. 1 FLYING 
  2. Pool/snooker/carrom/hockey/curling simulator
  3.  
  4. SYNOPSIS
  5.  
  6.   $ flying [-options ...]
  7.  
  8. 2 DESCRIPTION
  9.  
  10. flying was actually meant to be a test program to implement some classes
  11. to control flying objects on the screen. After the classes were
  12. implemented there was the need of some real tests and a game of billard
  13. was just the first idea. By now, many subgame-classes are already more
  14. or less completely defined. They can either be selected by the options
  15. or by making a link to the original with a special name. Unfortunately
  16. having so many subclasses means that the classes themselves can't be too
  17. complicated. (There's just too less time in the world :( ) Therefore the
  18. games don't have any rules yet. This means you have to play fair and
  19. watch your opponent.
  20.  
  21. Anyway, the main thing was animation and controlling and that works
  22. fine, especially with the -deluxe version of pool-billard. Since the
  23. main intention was to get an excellent billard game, I will mainly
  24. describe the pool-version in the following pages. The other subgames are
  25. similar to control (and there are no special rules anyway).
  26.  
  27. 2 STATUS
  28. The flying package contains many subgames, that are more or less in an
  29. experimental stage. Here is a tiny summary of version 6
  30.  
  31.    Pool, Snooker, Cannon 
  32.  
  33. As already mentioned above, pool is the most
  34. comprehensive subgame, especially due to the deluxe version. It is very
  35. playable even though spin is not implemented. Rules will have to be
  36. added in later revision.
  37.  
  38.     Carrom
  39. Very similar to pool, just with another background (and more friction)
  40.  
  41.    Hockey
  42. experimental air-hockey implementation (see option -in2 to
  43. set the display for the input-pointer for the second player), which is worth
  44. looking at because of the unconventional control mechanism. The players
  45. have to select one of the big discs before they can play.
  46.  
  47.    Curling
  48. experimental curling implementation, which is even more worth to look at
  49. because of the control: Hold the left button to take one curl.
  50. Move it in the right direction and let it go...
  51.  
  52. 2 CONTROLS
  53.  
  54. The pointer (or pointers) run fully simultaenously and are like the hand
  55. of the players. At every time it's possible to pick one of the objects
  56. to select it as the cue-object (It should better be the cueball, if you
  57. don't want to lose some friends). After you have aimed in the desired
  58. direction there are 2 ways to play the ball:
  59.  
  60.    Easy: 
  61. Press and hold down the left button to increase the strength of
  62. your shot. Release the button to shoot. There is a maximum power! If you
  63. hold down the button too long, you will just make a very poor shot as a
  64. penalty.
  65.  
  66.    Tricky: 
  67. You might notice on that the queue stays on the table for a
  68. moment. This is a problem, if you are very close to the cushion. Then,
  69. the cueball might hits the queue again. Therefor you can alternatively
  70. gather power by pressing the right pointer button and shot by
  71. simultaenously pressing the left button. When you release the left
  72. button after the shot, the queue is removed from the table and you can
  73. therefore remove it earlier.
  74.  
  75. After shooting, you can only wait and see what will happen. By the way,
  76. there actually are some tiny rules implemented. The billard classes
  77. know, that cueballs shouldn't stay in the pocket after a shot. When they
  78. are back on the table, you can roll them to the position you like by
  79. using the right pointer button.
  80.  
  81. By the way, if you picked the wrong ball as the cue-object, you can get
  82. rid of it by just clicking the right button once.
  83.  
  84. To overcome the hurdle of the mouse resolution, you can use the middle
  85. pointer button for fine adjustments. With that help, you can actually
  86. position the mouse in fractions of pixels. To make shoting a thrill,
  87. you've got to release the button again for shoting. (The fraction is
  88. stored in that case)
  89.  
  90. Summary:
  91.  
  92.     left
  93. select cueball
  94. introduce easy shot
  95. pick ball from pocket
  96.  
  97.  
  98.     middle
  99. fine adjustment via interpixel motion
  100.  
  101.     right
  102. deselect cueball
  103. introduce tricky shot
  104. move ball
  105.  
  106. Additional Key-Controls:
  107.  
  108.     SPACE
  109. reset game
  110.  
  111.     Q,Esc
  112. quit game
  113.  
  114.     R 
  115. restart game
  116.  
  117.     ^L 8
  118. redraw screen
  119.  
  120. 2 OPTIONS
  121. X11:
  122.  
  123.    -size n
  124. window size
  125.  
  126.    -root
  127. full screen (the default)
  128.  
  129.    -no_override
  130. don't use OverrideRedirect for the background window, when the
  131. -root option is used.
  132.  
  133.    -no_grabs
  134. don't grab the server, when problems with the colormap occur.
  135.  
  136.    -display  name
  137. the output-display (default is contents of $DISPLAY)
  138.  
  139.    -in1  name
  140. name of the main display for input (default is: same as the output display)
  141.  
  142.    -in2  name
  143. name of a second input display. If given, a second pointer object will
  144. be installed in the program and can be controlled by the pointer of
  145. the given display. (The pointer will get invisible on that display as it
  146. is grabbed anything)
  147.  
  148. As for every display connection, you have to make sure that all displays
  149. are accessible from your host. (by using xhost ...)
  150.  
  151.    -sound
  152. a subprocess is started, which gives some clicks when balls hit together,
  153. but the smooth motion gets distorted in that way, at least
  154. on my workstation.
  155.  
  156. ADDITIONAL:
  157.  
  158.    -deluxe
  159. a special version of the pool with animated balls by using hundreds of
  160. precalculated pixmaps. The construction of the pixmaps at game start
  161. is very time consuming. Therefore the computed pixmaps are cached in files
  162. fly*-*.dta in a special data-directory (usually just /tmp) for
  163. reusability.
  164.  
  165.    -tv
  166. since the deluxe-option is default, this can be used to switch back to the
  167. set of TV-balls.
  168.  
  169.    -ft n
  170. sets the size of the table in pool-billard to n foot. The value
  171. should be in a range of 6 to 9 feet. If not given, the size is selected
  172. randomly, except in the deluxe-version, where it default to 8 feet.
  173. This was done because every size would need other pixmaps for the balls.
  174.  
  175. DEBUG:
  176.  
  177.    -mode n
  178. selects the update mode for the animation in the deluxe version of pool.
  179. There are 3 (internal) different implementations of the ball animation, which
  180. depend on the implementation of some specific routines of the x-server. Since
  181. mode 2 is usually the fastest one, it is turned on by default.
  182.  
  183.    -chkmode
  184. runs a small benchmark with the available update modes. If a mode other
  185. than the second is the fastest on the current machine, you should use the
  186. mode-option to select it.
  187.  
  188.    -time  s
  189. stop process after s seconds
  190.  
  191.    -demo
  192. demonstration (without pockets). By the way, there are some tiny meters on the
  193. bottom of the screen (when using the full screen and the binary was compiled
  194. with statistic features), which have the following
  195. meanings:
  196.  
  197.  
  198. rate:
  199. shows the number of cycles per second. A cycle means the loop for doing
  200. collision detection and recomputing the corrent position of all objects.
  201.  
  202. moves:
  203. show the number of ball moves, that were neccessary in one seconds. If all
  204. objects are moving, this would be <object number> x <rate>
  205.  
  206. offset:
  207. if shown, it tells you, how much the real time has gone ahead of the current
  208. internal calculation time. It should never light up during the game, except
  209. probably at the first shot into the triangle.
  210.  
  211.    -maxspeed
  212.  
  213. the collision calculation is done only in those moments, when a
  214. collision takes place. In the intermediate time, only the motion
  215. graphics are updated as fast as possible. The switch disables that
  216. intermediate calculation to get measures for the speed of the collision
  217. calculation. (Good combinations to check the speed of your machine would
  218. be: -demo -maxspeed -time 10)
  219.  
  220.    -presets
  221. shows the current internal values of static variables on stdout.
  222. The values can be dynamically altered by setting them in the file
  223. presets.txt with the same syntax as in this output.
  224.  
  225. There are many additional debugging options, when the executable was compiled
  226. for debugging. They are shown when no argument or -h is given at the
  227. commandline. You can try flying -pool -deluxe Intro (if you're lucky) to see
  228. the some information about the pixmap-usage.
  229.  
  230. 2 FILES
  231.  
  232. presets.txt
  233. file to overwrite internal static values
  234.  
  235. fly*-*.dta
  236. files containing the pixmaps for the ball animation in deluxe-pool.
  237. They are created automatically when they are missing.
  238.  
  239. 2 BUGS
  240. As I told, this is a very uncompleted version without any rules, but
  241. you can perfectly play billard, so why worrying ...
  242.  
  243. The friction is not exactly integrated in the computations, since
  244. that would have cost too much performance. Instead the objects move without
  245. friction for a given amount of time. Then their speed is re-adjusted. When the
  246. granularity gets smaller, the friction gets more exact. But that works against
  247. a caching-mechanism and therefore would extremely increase computation time,
  248. if many objects are on the table.
  249.  
  250. Spin is not implemented
  251.  
  252. There seem to be problems, when moving objects directly with the pointer (like
  253. in hockey or curling or with the right button in billard) when the host
  254. is not fast enough. At least I can not use it on my 386.
  255.  
  256. There are some minor problems when drawing static parts of the screen.
  257. Sometimes they are misplaced for 1 pixel, e.g. there is a one pixel gap below
  258. the line representing the pocket
  259.  
  260. There is a problem in the start-shot of carrom. Due to the weight of the
  261. striker, the other stones might get pushed so close together, that the
  262. collision detection will fail and objects will overlap (or the algorithm
  263. gets stuck in a loop, only to be escaped by entering 'q'). Sorry for that.
  264.  
  265. Usually, the program needs it's private colormap. To get a nicer appearance,
  266. a black OverrideRedirect window is placed above everything else when the
  267. -root option is given. This confuses some window managers and a struggle for
  268. the colormap
  269. begins. If anythings else fails, flying will grab the server and installs the
  270. map on it's own ...
  271.  
  272. 2 COPYRIGHT
  273. Copyright 1995, Helmut Hoenig, Mettmann/Bad Camberg
  274.  
  275. email (for any comments):
  276. Helmut.Hoenig@hub.de
  277.  
  278. smail (for gifts):
  279.    Helmut Hoenig
  280.    Hopfenstrasse 8a
  281.    65520 Bad Camberg
  282.    GERMANY
  283.  
  284.    ********************************************************
  285.  
  286.    By the way, I am collecting banknotes! If you want 
  287.    to join into my collection, get any bill of your
  288.    country, sign it on the backside and send it to me
  289.    so I will pin it on my world map.
  290.    (Don't forget the exact location for the pin :-)
  291.    But you can also just send me a picture postcard ...
  292.  
  293.    ********************************************************
  294.  
  295. Permission to use, copy, modify, and distribute this
  296. software for any purpose and without
  297. fee is hereby granted, provided that the above copyright
  298. notice appear in all copies.
  299.  
  300. 2 VMS_PORT
  301.  
  302. Patrick Moreau - CENA/Athis-Mons - France  - August 1995
  303. pmoreau@cena.dgac.fr
  304. moreau_p@decus.fr
  305.