home *** CD-ROM | disk | FTP | other *** search
/ BCI NET 2 / BCI NET 2.iso / archives / programming / source / apilot.lha / APilot / README < prev   
Encoding:
Text File  |  1994-12-12  |  7.3 KB  |  180 lines

  1.  
  2. ================================================
  3.   APilot
  4.  -------------------
  5.   Casper Gripenberg (Casper.Gripenberg@hut.fi)
  6.   Kjetil Jacobsen   (kjetilja@stud.cs.uit.no)
  7. ================================================
  8.  
  9.  
  10. What's this?
  11. ------------
  12.  
  13. This is about a year old project that I'm (Casper) too busy or too 
  14. lazy to finish. APilot is an attempt to make an xpilot like native 
  15. game for the Amiga. Anyone who has ever played xpilot on an X window 
  16. terminal knows what I'm talking about, and those of you who don't know
  17. I suggest you grab yourself the nearest X terminal and start learning, 
  18. you'll love it :) (Check out the newsgroup alt.games.xpilot)
  19.  
  20. APilot has nothing more in common with xpilot than the map format and
  21. idea. All code was written from scratch utilizing Amiga OS functions.
  22. The game is completely OS friendly (well almost, more on this below)
  23. and multitasks beautifully among all your other applications. Whoever
  24. said you couldn't make multitasking action games on the Amiga?!?
  25.  
  26. The reason I release the code to the public is that I hope someone
  27. out there will want to continue to develop it. Also I beleive this
  28. is the first real example on how to use the OS double buffering
  29. routines (this is one of the FAQ's in c.s.a.programmer). I hope I
  30. used the DB routines right, I know I didn't use all their features, 
  31. but it should serve as a good (?) example.
  32.  
  33.  
  34. Before you get too excited
  35. --------------------------
  36.  
  37. The game is by no means finished. The original game is a complex
  38. multiplayer action game and APilot is only a very small part of
  39. what xpilot is. There are room for _LOTS_ of improvements in the
  40. structure of the program, the game just 'accidentally' growed
  41. from a quick hack :-/ APilot doesn't have multiplayer cabapilities
  42. nor is it very complex, but I beleive it could be made to something
  43. similar...
  44.  
  45. The original idea was to make APilot an Amiga client for the
  46. real xpilot server, to be able to play xpilot from you own Amiga.
  47. Ah..what dreams ;)
  48.  
  49. The game feautures explosions with 'shock waves', cannons that
  50. shoot back, ship exhaust that can push things around (right now
  51. only the dummy ship, try to direct some exhaust on it and see
  52. what happens). That's about it :) You can also make your own
  53. maps easily, just look at APilot.mapfile and you'll get the
  54. idea. The red line from the center of the ship is your speed
  55. vector, it shows the direction you are traveling. The longer 
  56. the line the faster you are moving.
  57.  
  58.  
  59. Wanna give it a try?
  60. --------------------
  61.  
  62. In the 'Bin' directory I've put a compiled version of the APilot_Opt
  63. version. What you need is:
  64.  
  65.     o Atleast a 020 processor.
  66.     o OS 3.x.
  67.     o The SystemThin font in your fonts: drawer. (hope it's PD).
  68.     o APilot.mapfile in the current directory
  69.  
  70. The keys are as follows:
  71.  
  72.     a,s         turn ship
  73.     shift       thrust
  74.     enter       shoot
  75.     space       shields
  76.     f           check fuel status and fuel at fuelpod (if close enough).
  77.     q           quit
  78.  
  79.     keypad +,-  change framreate
  80.  
  81.     If the game is compiled with CPU_USAGE defined then you can use
  82.     keypad * to toggle cpu-usage meter on/off. (APilot_Opt in bin
  83.     is not compiled with CPU_USAGE).
  84.  
  85. Also the version in 'Bin' is not compiled with DYN_SCR so you won't
  86. be able to choose a screenmode..Or you will be able, but the game
  87. doesn't 'resize' itself correctly. The omission of all these options
  88. are just to get maximum speed out of the demo binary. Perhaps it
  89. is even playable on an A1200.
  90.  
  91. NOTE: It may take a few seconds before the game starts on slower
  92.       machines. This is because APilot precalculates some tables
  93.       before starting the game. People with a math co-processor
  94.       may want to recompile the binary with 'MATH 881', it'll
  95.       just speed up the startup, not the game.
  96.  
  97.  
  98. Technical info
  99. --------------
  100.  
  101. The game has been developed and tested on an A3000/25 with static
  102. ram. On this machine the game runs 25fps 95% of the time. The real
  103. bottleneck of the game is the CHIP-RAM bus. The collision calculations
  104. etc. don't take much time. The thing that sucks all the cpu power
  105. is the drawing of the lines and points. The Amiga CHIP-RAM bus is
  106. just too slow. :( I hope it will run better on AGA machines. Anyways
  107. you shouldn't run it over 25fps anyway since on a double buffered
  108. interlace display it is the max speed possible. At 50fps you loose
  109. half of the information on the display due to the fact that it
  110. double buffers at the same rate as the display is interlaced....
  111.  
  112. For the same reason the interlace also makes horizontal lines
  113. flicker even on a flicker fixer. They only flicker when you move
  114. the ship at certain horizontal speeds, this is all the fault
  115. of the interlacing...But hey..my 3000 can't display high resoutions
  116. on anything less. Any non i-lace mode makes the flicker disappear.
  117.  
  118. The game could very easily be made frame rate independant. That
  119. means that even on a slower machine the game 'speed' would be the
  120. same, the screen UPDATES would just come more seldom. Actually
  121. it is frame rate independant right now. The only difference is
  122. that the game does not do the adjustment automatically, instead
  123. you have to do it by hand with the +/- keys. A few lines should
  124. be changed in main.c in the main loop and then it should work.
  125. It's really very simple, just a matter of taste I guess if one
  126. wants it automatic or not.
  127.  
  128. Also the keyboard reading routine should be moved to the start
  129. of the main loop. Now on lower framerates you can notice an
  130. annoying delay between pressing a key and something happening.
  131. Sorry, haven't had time to fix it.
  132.  
  133. The screen has a title even though it is not visible, AGA owners
  134. may want to try and promote the screen to something else. I'm not
  135. sure it will work though..
  136.  
  137. !!USERS OF 3RD PARTY GRAPHICS CARDS!!
  138. The game uses non OS routines for line and point drawing and the
  139. game probably will work, but you just won't see much..The makefile
  140. has an option to use ONLY OS routines, but this naturally slows
  141. down the game..Check the smakefile.
  142.  
  143. Kjetil Jacobsen was in the process of developing graphics card
  144. support but I haven't heard from him in a while. Kjetil also told
  145. me he had some code for making enemy robots..
  146.  
  147.  
  148. Why 2 source directories?
  149. -------------------------
  150.  
  151. The APilot_Ser directory contains a bare bones serial version of the 
  152. game. Yahoo! :) You can play against your friend via modem. The only
  153. thing is that it doesn't work very good at all, it has no error
  154. recovery and you can't have cannons in your map when you play
  155. 2 player games. 
  156.  
  157. Also the APilot_Ser has command line handling a little bit more like
  158. normal Amiga games. I don't really remember anymore which source
  159. files are newer in APilot_Ser and APilot_Opt. The two should really 
  160. be combined somehow. Atleast APilot_Opt has got some optimizations 
  161. in the map.c file, which APilot_Ser hasn't got. APilot_Ser on the 
  162. other hand has a little more advanced UserPrefs structure and as
  163. mentioned better command line handling (prefs.c). One might also
  164. have some improvements in the hline.asm file. Sorry, it was a long
  165. time since I last touched the source.
  166.  
  167. Genrally APilot_Ser has the newer source, and less bugs :)
  168.  
  169. Well, not much more to tell, take a look at the source for more
  170. information. You can also send me or Kjetil mail if you want to
  171. know more.
  172.  
  173.  
  174. Standard disclaimers apply..
  175. And please inform us if you are going to use the code for anything
  176. commercial :)
  177.  
  178. ------------------------------------------------------------------------------
  179.  
  180.