home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 5 / Amiga Tools 5.iso / tools / developer-tools / andere sprachen / gamesmaster / docs / introduction.txt < prev   
Encoding:
Text File  |  1996-07-16  |  7.1 KB  |  166 lines

  1.  
  2.                T H E   G A M E S   M A S T E R   S Y S T E M
  3.  
  4.  
  5.                        A N   I N T R O D U C T I O N
  6.  
  7.  
  8.  
  9.        This introductory text is taken directly from the web pages:
  10.  
  11.                 http://www.compkarori.co.nz/amiga/gameslib/
  12.  
  13.  
  14.  
  15.  
  16.                         WHAT IS THE GAMES.LIBRARY? 
  17.  
  18.  
  19. The Games.Library is a solution to one of the biggest problems the Amiga
  20. community has faced.  As high end machines move over to graphics cards, how
  21. do we maintain compatibility between all the different hardware...  we were
  22. bad enough when we just had OCS and ECS!!  There have been mentions of
  23. libraries specifically tailored to handling graphics cards, but these are
  24. missing the big picture.
  25.  
  26.                              The Big Picture 
  27.  
  28. Hardware bashing is fast, sometimes many times as fast as an equivalent
  29. system legal routine.  However hardware bashing is not very compatible with
  30. other hardware types, resulting in unpredictable results on other systems.
  31. No programmer can be expected to support dozens of obscure hardware
  32. configurations...  just look at what it did to the PC, you can't install a
  33. game without going through and setting IRQs for sound cards.  Let's face
  34. it, if the problem isn't dealt with directly, then the situation is just
  35. going to get worse as new hardware is released.
  36.  
  37. But how are *we* going to deal with this ever increasing problem?  No-one
  38. has ever come up with an acceptable solution for our little Amiga.  Maybe
  39. we are getting close to retargettable graphics, but what about
  40. retargettable sound?  What about user support?  What about networking?
  41. Where's our support for all those different joysticks?  Where's the real
  42. support for writing games in an OS?  What about all the other stuff people
  43. keep moaning about?  Well after a lot of design and investigation into
  44. this, a solution is already on its way.  A clever system that uses some
  45. simple common sense and technical know-how has evolved into what has now
  46. been dubbed as...
  47.  
  48.                           THE GAMES MASTER SYSTEM
  49.  
  50.  
  51. The "Games Master System" solves all the problems developers have faced in
  52. the past, and are still facing today.  Project GMS encompasses not only the
  53. games.library but also all the GPI's, documentation, developer information,
  54. and most importantly the user prefences program (GMS Prefs).  All these
  55. things have been designed to work together and will achieve the following:
  56.  
  57. * Erradication of the need to bash the hardware from within games.
  58. * Make it easier to migrate from the current Amigas to the new Power Amigas.
  59. * Make games programming, easier, faster, and more productive.
  60. * Give users the ability to modify any game to suit their requirements.
  61.  
  62.  
  63.                               How does it work?
  64.  
  65.  
  66. First lets look at the way games are written on the Amiga today.  A lot of
  67. experienced coders would tell you that a lot of their source is automated,
  68. put into macros, drawing routines, sound routines, and so it goes on.
  69. Rather interestingly, this is usually the same stuff that is doing all the
  70. hardware hacking.
  71.  
  72. By taking these commonly used routines and putting them into a library we
  73. remove the hardware compatibility problem immediately.  Unfortunately for
  74. us, although it works this method is just not fast enough for the speed
  75. that games require.  Enter the use of GPI's!
  76.  
  77. A GPI (short for "Games Programming Interface") is a collection of library
  78. functions specifically designed to perform a task for just one hardware
  79. device.  Each GPI can therefore be built to do whatever it wants without
  80. having to worry about compatibility problems.  New versions of an existing
  81. GPI can be written for different hardware devices, so graphics cards, sound
  82. cards, 3D chips etc can be supported.
  83.  
  84. The benefit of this is that the user gets the best possible speed, while
  85. the programmer can simply utilise the built-in routines and know that not
  86. only will their game be fast, but also be compatible with Amigas
  87. everywhere.  Amazing!
  88.  
  89.                                User Support
  90.  
  91.  
  92. If you're a games player then there have probably been a number of times
  93. where you've thought "Why can't I use my Sega Joypad?", "I want to run in a
  94. DBLPAL screen!", "I want multi-tasking!", "I want to turn the music off!",
  95. "I want, I want, I want!".  Well that's what it sounds like to developers
  96. who don't have time to support all these things!
  97.  
  98. Luckily an important feature of the Games Master System is the level of
  99. support given to the user.  The GMS Prefs program allows the user to select
  100. levels of mode promotion, type of joystick used, vector detail, networking,
  101. C2P routines, music re-direction, task priorities, and much much more.
  102. This solves a lot of the moans and gripes that users have had in the past,
  103. and as this is all transparent to the programmer user support is easily
  104. achieved.  Hopefully this news will make you all very happy!
  105.  
  106.  
  107.                               Anything else?
  108.  
  109.  
  110. Well that just about sums up the Games Master System rather well.  Look
  111. around the rest of the site to get more detail on the things mentioned
  112. here, and other things that we haven't gone into yet.  Remember to ask us
  113. if you have any questions about the project!
  114.  
  115.  
  116.  
  117. ---------------------------------------------------------------------------
  118.  
  119.  
  120.  
  121.                               GPI INFORMATION
  122.  
  123.  
  124.  
  125. As you my have read in the Introduction, GPI's are the key components
  126. behind the games.library.  In fact the only thing contained in the
  127. games.library are some standard system functions.  Otherwise the library
  128. just serves as a "skeleton" of function calls, rather than having the code
  129. residing within the library itself.  The library is "filled out" on opening
  130. by loading the GPI's from disk, with each GPI consisting of a group of
  131. function calls pertaining to one particular area of games programming.  For
  132. example, the Screens.GPI contains routines for opening and closing a
  133. screen, altering the screen's palette, placing sprites onto a screen, etc.
  134. Other GPI's are purely optional, and must be initialised before use, e.g
  135. the Vectors.GPI.  This saves a lot of memory as you only have to load in
  136. what you need.
  137.  
  138. Only three GPI's are loaded as standard (these are considered essential
  139. game components), and they are:
  140.  
  141.   Screens.GPI
  142.   Blitter.GPI
  143.   Sound.GPI
  144.  
  145. Each GPI is written for one particular hardware device only.  Currently the
  146. Screens, Blitter and Sound GPI's are being written for OCS/ECS/AGA
  147. machines, and when their functions are finalised new GPI's for other
  148. hardware devices can then be written.  Anyone is allowed to write a GPI for
  149. a hardware device so long as they obtain our permission first (so we can
  150. keep track of who is doing what).  Write to us if you're interested!
  151.  
  152. You might also be wondering what other GPI's are planned.  The current list
  153. stands as follows:
  154.  
  155.   Network.GPI
  156.   Vectors.GPI
  157.   C2P GPI(s)
  158.  
  159. We are looking for people to help write or donate routines that could be
  160. used in the construction of these GPI's.  We don't have the time to do all
  161. of this ourselves with the amount of work to be done on the rest of the
  162. project!  If you make a significant enough contribution to a GPI's
  163. development, you get full registered developer privileges to this project,
  164. for *life*.  Mail Paul right away if you can help.
  165.  
  166.