FPCGAMES.TXT 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279
  1. The FPC ModeX docs...
  2. --------------------------------------------------------------------
  3. NOTICE:
  4. The ported games (see below) were found on a site that claims to only have
  5. PD stuff, and the webmaster said that everything he published was sent to
  6. him with that purpose. We tried finding the persons mentioned in the mail
  7. over internet, but that failed.
  8. If there is somebody that claims authorship of these programs, please mail
  9. [email protected], and the sources will be removed from our websites.
  10. SameGame can also use the API for mousecontrol. This because the RTL mouseunit
  11. MsMouse only exists under Go32V2. The API mouse routines work with Linux, but
  12. have (right now) a problem with GPM version 1.17. Use a different version if
  13. you can 1.15 works according to the developpers.
  14. The source code of FPCTRIS and SAMEGAME) are written by Marco van de Voort
  15. and are donated to the FPC project. The FPC project distributes all sources
  16. under a modified GNU license (much like the so called LGPL) see copying.fpc.
  17. --------------------------------------------------------------------
  18. REQUEST:
  19. As a developper team, we don't want spend 90% of our time in creating demoes.
  20. If you have something nice, which explains not yet demonstrated features or
  21. technicques, mail contact us via [email protected], or add it to the
  22. contrib page.
  23. The readers are also encouraged to explore FPC's excellent documentation
  24. with many examples!!!!!
  25. ------------------------------------------------------------------------------
  26. What are the FPC games?
  27. The FPC-games are a series of simple, small games written or ported by
  28. Marco van de Voort ([email protected]) as demos for the
  29. Free Pascal compiler (FPC) and its Run Time Libraries (RTL).
  30. The "ported" games were first used to test the compability of the GRAPH
  31. unit. Since we had them, and they were very likely PD or GPL, we decided
  32. to use them when we couldn't contact the authors
  33. Currently the games are
  34. (Games written by Marco van de Voort)
  35. - FPCTris (v0.08) Tetr'ish game.
  36. - Samegame (v0.03) As found on e.g. GNOME.
  37. Other games:
  38. - Gravwars (Sohrab Ismail-Beigi?) Simple angle and shoot game
  39. (like TANK distributed with QBasic)
  40. - Maze (Randy Ding) Maze generator and "game"
  41. - Quad (Justin and Whitney Pierce) Memory game but with 4 cards each.
  42. move.
  43. All "other games" games are simpler than my ones, though Quad has overall
  44. the most sophisticated graphics, and Maze a reasonably complicated algoritm
  45. (compared to the other ones)
  46. Most of these games use Gameunit.pp which contains some very simple
  47. generic routines:
  48. - textual and graphics mode safe input dialogue (replacement for readkey)
  49. - highscores (show, helper routines for entering scores etc)
  50. - wrappers for mouse via msmouse or API on other targets
  51. - Some routines needed for BP compability. (Go32 and cursor routines in Crt)
  52. To compile the games on non dos targets you have to change DEFINE the
  53. MouseAPI conditional in gameunit.pp (automatical for Linux).
  54. To get the graphics versions of fpctris and samegame, compile using
  55. -dUsegraphics, the makefile should automatically build both.
  56. Future
  57. --------
  58. - Some cards games (BlackJack, Poker, and two Dutch games called "Rikken" and
  59. "Toepen") are in preparation
  60. - A server for Linux, so that Linux clients can connect to it for multiplayer
  61. services. One server for all games, otherwise small games like this clog up
  62. the number of free ports ;-)
  63. This is also important because most of the cardsgames (except BlackJack)
  64. can't be played against the computer, the AI is to difficult. (Poker is maybe
  65. also possible)
  66. - More games
  67. - A fortune clone (far more sophisticated than everything here) to complete
  68. the BSD games analogy
  69. ---------
  70. FPCTRIS
  71. Fpctris is a tetris class game, originally designed
  72. - to be distributed with FPC as Crt demo,
  73. - Keeping possible integration in the IDE in mind (would add 15k or so)
  74. - Svgalib version etc etc. Anyway, the engine is quite platform independant,
  75. and can be ported to different platforms (also TUI,GUI) if needed.
  76. (this has now be done. Graph seems fast enough)
  77. The current versions are still under development, but already playable even
  78. under telnet.
  79. TODO list:
  80. - (difficult, also interesting for Crt and IDE), get more terminals supported
  81. under Linux. Specially I don't want to issue the escape sequence that rapes
  82. your console to an IBM compat charset. Linux users don't like that.
  83. (temporarily solved by doing this only on user request)
  84. - (Linux) Sockets multiplayer client system :-). Have actually started on it,
  85. but are getting nowhere. The server will be separate and support more than
  86. one game. So you get one port for several games.
  87. - Setup screen ((create) alternate blocks etc)
  88. - Commandline options/config file. (.rctetris per user :-))
  89. KNOWN BUGS:
  90. - Upperrow not used with some chars. (Requires shifting up). Possibly related
  91. that very rarely "game over" appears when there's still one or two rows to
  92. go. (Since the 5x5 version some of this has been removed. If you get a
  93. L-shaped character and immediately rotate, the upper line is used)
  94. - Biggest problem at the moment is the delay procedure and its init on machines
  95. under heavy load. Can't change that though. Only under heavy load, so a
  96. less big problem on heavy machines.
  97. - Selection of colors don't take screen attribs into account. So figures can
  98. seem to disappear on weird TTY's or 4Dos people using strange ANSI prompts.
  99. History:
  100. v0.00 First version with working gameplay, created during the Brussels
  101. meeting. published on tflily.
  102. v0.01 Some work done, first version on my page. Most improvements done in
  103. Brussels, too many to name here.
  104. v0.02 - Got rid of binary encoding, and calculating shapes etc when a new
  105. figure is created. All is done on startup now. Adding characters
  106. is simpler now.
  107. - A lot of parameters are variables instead of constants.
  108. - Experienced tetrissers press "e" once.
  109. - Colors! Linux has the color default off (press "C")
  110. v0.03 (Only used at Stack, not on web)
  111. - Keep on pushing arrow down no longer freezes FPCTris.
  112. - Basic level system implemented.
  113. - High ascii background in color mode.
  114. v0.04 (Only used at Stack, not on web)
  115. - The push-down arrow fix removed the possibility to move the character
  116. after arrow-down, which I liked much. Fixed. # of possible moves after
  117. arrow-down also adjustable.
  118. - Tried compiling with W32 compiler. RTE 216 (which is gpf I believe)
  119. Is Crt unit. Hello World "Use crt" also gpf's.
  120. - Removed the first, forgotten bugfix for the hickup problem. Now the
  121. "feel" of the game is ok. When you push down, it goes down, but you
  122. have the change to do one more move.
  123. v0.05 (Never used anywere, backup version before movement to 5x5 figures)
  124. - More Score info
  125. - Help possiblity
  126. - Highscores. (also saved to file, and searched in the path)
  127. - Entering highscores uses inputstr. Size boosts to 1200 lines. Yuck.
  128. - Most functionality now implemented.
  129. v0.06 (To Peter)
  130. - 5x5 figures including "The Cross". Worked almost rightaway, but figures
  131. rotate a bit weird.
  132. - Better rotation 5x5 system. Only smallest square around figure is
  133. rotated.
  134. - Better scores. Incl quadratic (progressive is a better word) scores for
  135. multiple lines. Now it does matter if you remove 2 x 1 line or 2
  136. lines at once.
  137. - Some small other fixes.
  138. - 'q' is also exit.
  139. v0.07 - Highscore table routines moved to gameunit. Gameunit.pp now required.
  140. v0.08 - FileMode in GameUnit fixed.
  141. - Small error that never popped up fixed. Pierre found it by compiling with
  142. checks on.
  143. - Graph mode implemented. Hopefully it also works under Linux (read the
  144. Graph unit is platform independant enough) Compile with -dUseGraphics.
  145. ----------
  146. SameGame.
  147. Principle copied from KDE/GNOME.
  148. The principle: The playfield is a grid consisting out of 3 colors.
  149. You can mark a certain spot on the playfield, and all adjacent grid-cubes
  150. (horizontally or vertically) will also get marked by the computer.
  151. When you press the left button, and two or more cubes are marked, the marked
  152. cubes will disappear, and the playfield will colapse to the bottom left.
  153. This can be repeated until there are no more agregates. If the field is empty
  154. then, you receive a bonus.
  155. The trick is that the score for each disappearing aggregate of cubes is more
  156. than linear (0.25* quadratic right now) dependant on the number of cubes it
  157. contains.
  158. This means that removing 5 times an aggregate of 2 cubes will result in a far
  159. smaller score than one aggregate of 10 cubes. ( 5*2^2 < 10^2)
  160. TODO:
  161. [none]
  162. BUGS:
  163. - Maybe better algoritm for initial filling of playfield.
  164. - Runtime sizable playfield.
  165. HISTORY:
  166. v0.01 :
  167. - Initial version.
  168. - Slightly improved initial algoritm.
  169. v0.02 - Using gameunit. GPM support via API, but whole thing GPF's under Linux,
  170. but works under Go32V2.
  171. - Highscores,helpscreen, all small things that come with a decent finishing
  172. of the concept
  173. v0.03 - Fix to game unit that upset configuration files under 0.99.13
  174. - q,x and Escape now exit.
  175. - Weirdly enough, mouse cursor disappears when moving over a black spot.
  176. Playing with delays was unsuccesfull.
  177. - Graphical support. Compile with -dUseGraphics
  178. ----------
  179. Gravwars (author:Sohrab Ismail-Beigi)
  180. Specify angle and speed, and try to hit the other spaceship. Some planetoids
  181. exist that can bend the curve of the bullet/ray.
  182. The game uses is designed for TP4.0 and uses Turtle'ish drawing. So we
  183. use it as a test for TP4.0 Graph compability.
  184. TODO:
  185. - Use InputStr for input.
  186. BUGS/FLAWS : None, except that it is very basic (and not worth extending)
  187. HISTORY:
  188. v0.01 :
  189. - Initial FPC port.
  190. ----------
  191. MAZE (Author Randy Ding)
  192. Nothing special, but from all FPC-games the one with a real algoritm.
  193. (some form of shortest path through a maze I guess) The others are much
  194. simpler as far as algoritms are concerned.
  195. The programs asks some simple parameters, and creates a more or less complex
  196. MAZE. The task for the player is to go from one side to the other:
  197. Use I,J,K,M or arrow keys to walk through the maze
  198. Hit X when you give up!
  199. TODO:
  200. - Use InputStr for input.
  201. - Help on screen if there is enough room?
  202. - Big mazes/very high resolutions?
  203. (bigger than the current max 200x200 is unreadable on 1024/768)
  204. HISTORY
  205. v0.01 :
  206. - Initial FPC port.
  207. ------------
  208. QUAD
  209. My favorite of the other games, and by far the most work to port/clean up.
  210. The program deals some cards blind. It flips over maximal 4 cards, and if
  211. the 4 turned are the same, it removes them. (the game exists as a card game
  212. called MEMORY too, but only with two cards at the same time)
  213. You have to remove all the cards to win, and the highscore record
  214. the time. QUAD loads some pictures from quaddata.dat.
  215. TODO:
  216. - Use graphical versions of highscore.
  217. HISTORY
  218. v0.01 :
  219. - Initial FPC port.