home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload / ShartewareOverload.cdr / games / gkit.zip / GRULES.DOC < prev    next >
Text File  |  1988-05-05  |  15KB  |  277 lines

  1.          Top Secret Document: GRULES.DOC
  2.             Project Codename: GATEWAYS
  3.  Required Security Clearance: Ability to write in (or learn) the C language
  4.           Last Revision Date: May 5, 1988
  5.                       Author: David M. Larson  (codename: JUPITER)
  6.                   Source BBS: (916)753-8788 Opus
  7.                         Baud: 300/1200/2400/9600 HST
  8.                 Fidonet Node: 203/955
  9.                      Address: P.O. Box 915, Davis, CA  95617
  10.  
  11.               --- WHAT IS THE GATEWAYS PROJECT? ---
  12.  
  13. It is a project for C programmers or those aspiring to learn C to exercise and
  14. develop their creative skills by designing and writing games, simulators,
  15. educational programs, or similar programs that can support scoring techniques.
  16.  
  17. These games will be linked together (using an overlay linker) into 1 huge
  18. program.  Interactions between the games is encouraged.  The programs will be
  19. written to run in a BBS environment where players will call up with a modem to
  20. play (normally one player at a time).  Obviously any graphics will be limited
  21. or very creative in order to support the variety of computer equipment used to
  22. call a bbs.  There is a lot more to a good program than graphics, and I know
  23. we will have an exciting game system to prove it.
  24.  
  25. Some of the side benefits you can look forward to are:
  26.  
  27. to meet people with an interest in C, to create some new and interesting games
  28. that interact with each other, to explore new concepts in programming, to expand
  29. your opportunities, to have fun.
  30.  
  31. Anyone is welcome to join the project. If you are an experienced C programmer or
  32. a beginner...If you have a lot of time or just a little time once in a while.
  33.  
  34.      --- THE OVERGAME CONCEPT AND THE GKIT DEVELOPMENT ENVIRONMENT ---
  35.  
  36. Their will be an overgame control program that will provide functions for
  37. your game and will allow the player to move from game to game. The overgame
  38. will be a game in itself and the player will have to develop skills to reach
  39. the games he or she wants to go to.  When your game function is called, it
  40. will be passed the current player #, the max number of players, and the
  41. current entry gate number for your game and the max number of gates in your
  42. game.  When you return from your game, you return a gate number.
  43.  
  44. Functions are provided for you to access information about a player from the
  45. overgame using a player number.  
  46.  
  47. You can use the gate number for whatever purpose you can dream up. A suggested
  48. use is to think of it as representing which of several entry points in your
  49. game a player comes in by or exits by.  A function is even provided for the
  50. player to interact with the overgame to decide if he or she is going to
  51. continue with your game or go somewhere else.
  52.  
  53. Whether you make use of the gate numbers or not, the overgame will use them
  54. to map your game into its concept of space.  The mapping may be dynamic or
  55. static depending on the skill of the player and who knows what other factors.
  56.  
  57. The Gkit development environment I am providing will simulate the bbs
  58. environment and the overgame for you to develop your game with. The kit will
  59. be simple in the beginning and progress at the same time your game progresses.
  60. Additions and changes to the kit that you and other participants request will
  61. be given a higher priority than other enhancements that I may have in mind.
  62.  
  63. I may ask some of the participants to help with the actual overgame, providing
  64. functions or small games or ideas.  If you think you can help in this area,
  65. let me know.
  66.  
  67.    --- RULES AND STEPS FOR PARTICIPATING IN THE GATEWAYS GAME PROJECT ---
  68.      
  69.  0. This project is only in the C language. You must be prepared to submit your
  70.     C source code written according to the rules involved.
  71.  
  72.  1. Find the nearest Opus or Fido Compatible BBS that is carrying the GATEWAYS
  73.     echomail area. If you cant find one call my bbs (916)753-8788 (or sent
  74.     netmail to 203/955) and I will arrange for a bbs near you to carry it if
  75.     possible.
  76.  
  77.  2. Get a C compiler and a full screen editor for your computer. If you have an
  78.     IBM Compatible, I recommend Turbo C.  It includes an editor and you should
  79.     be able to find a copy for less than $70. If this is too expensive for you,
  80.     Mix Power C is under $20.   If you have a different type of computer, try to
  81.     find a compiler that supports the latest ansi function prototyping methods
  82.     and has advanced lint like warnings (It will save you a lot of grief if you
  83.     are a novice).
  84.    
  85.  3. Find a book on the C language that you can understand.  You may be able to
  86.     use the manual that comes with Mix Power C, but don't count on it.
  87.  
  88.  4. Get the LATEST GKIT.ARC file or its contents.  It should be available on bbs
  89.     systems carrying the GATEWAYS echomail area. This is your development
  90.     environment and you should download it whenever you find one with a later
  91.     date.  There may also be other files of use there such as C tutorials.
  92.  
  93.  5. Read the GKIT.DOC documentation and other documentation files.
  94.  
  95.  6. Look for a #define line in GATEWAYS.H for your compiler. If you don't find
  96.     it, leave me a message and be prepared to help me adapt GKIT to your
  97.     compiler. If you do find your compiler, set that #define to 1 and all other
  98.     compilers to 0.  Also look at the other #define macros that specify what
  99.     features your compiler supports that GKIT wants to use and change them if
  100.     necessary.  The kit is configured for TURBO C when distributed. There may be
  101.     tips for setting it up for other compilers in GSETUP.DOC.
  102.  
  103.  7. Compile the example game D0MAIN.C, the G0KIT.C module and any other C
  104.     modules listed in GKIT.DOC. Link these files together. If you  get any
  105.     errors, resolve them or ask for help.  There may be a document file for
  106.     setting up your compiler for the kit (like GTURBO.DOC).  Also there may be a
  107.     makefile or project file for your compiler (like D0MAIN.PRJ).
  108.    
  109.  8. Run the resulting program. It should validate itself and then allow you to
  110.     play a simple number guessing game. Whenever you guess correctly, it will
  111.     quiz you on a concept of the Gateways project (using a list of questions in
  112.     D0QUEST).  Do not be alarmed if you see a simulated carrier loss (its there
  113.     to give you a realistic testing environment).
  114.  
  115.  9. Look over the D0MAIN.C file with a magnifying glass and add comments for
  116.     each statement. Feel free to ask me about anything you don't fully
  117.     understand.
  118.  
  119. 10. Make 3 or 4 improvements to the example game, compile and test them.
  120.  
  121. 11. Start thinking about game themes. You can start with a game you enjoy or a
  122.     favorite object, place or activity. Write down as many ideas as come to your
  123.     mind, whether they are small, big, old, original, or silly. Don't judge them
  124.     at this point.  This is your private list. Make it as big as possible.
  125.     
  126. 12. As an exercise, design and implement these string handling functions:
  127.     (I use the name "string", when I really mean array of characters or 
  128.      character pointers that point to a string of characters that is
  129.      terminated by a zero (null) byte.)
  130.        A) Truncate a string at a position N.
  131.        B) Copy the N leftmost characters to another string.
  132.        C) Copy the N rightmost characters to another string.
  133.        D) Copy N number of characters starting at position S to
  134.           another string.
  135.        E) Center 1 string inside a larger string.
  136.        F) Change all the copy functions so that the destination and
  137.           the source strings can be at the same memory location.
  138.        G) Given a string that contains 2 words separated by 1 or more
  139.           spaces, reverse the order of the words.   
  140.     In each of the above, do the following:
  141.        U) Pass all arguments to your functions including N and S and
  142.           the char pointers or char arrays (which are automatically passed 
  143.           by address). For example, B could be leftcopy(dest,source,n).
  144.        V) Do not call any library functions to accomplish any part of the
  145.           job. If you call other functions, you must provide them. Do not
  146.           call other functions from inside a loop (avoid the overhead).
  147.        W) Use pointer variables instead of integer indexes to arrays. They
  148.           are more efficient.
  149.        X) Avoid using temporary char array memory. A low level function
  150.           should use very little memory.  Also, if your temporary
  151.           memory is overwritten by an oversized string, the program will
  152.           malfunction or crash.
  153.        Y) Compile and test your functions.
  154.     If you are confused or don't understand something, try to isolate the
  155.     specific details of your confusion.  Make use of the C tutorials and
  156.     manuals available.  If you are still confused or would like someone
  157.     to confirm your grasp of a concept, please leave a message (on the 
  158.     GATEWAYS echo) asking specific questions and including any guesses you 
  159.     have about the item (or include examples).
  160.           
  161. 13. Arrange to send me a copy of your changes to the example game and
  162.     your string functions. You can do this 3 ways:
  163.       A) Use PKARC or ARC to archive your files into 1 file that has
  164.       your initials in the name. Upload this file to the nearest bbs
  165.       carrying Gateways and ask the sysop if he or she will pass the
  166.       file along. 
  167.       B) Put your files on a 5.25 or 3.5 in MSDOS format disk and mail
  168.       them to  David Larson, P.O. Box 915, Davis CA 95617
  169.       C) Call my bbs at (916)753-8788 and upload them files.
  170.     Also leave me a message in the GATEWAYS area telling me to look for
  171.     the file(s).
  172.  
  173. 14. Request your two letter code..It will probably be your initials.
  174.     You must use this code to prefix all your c files, function names,
  175.     global variables and data filenames. This way there will be no
  176.     conflicts with other games (at least with names anyway).
  177.  
  178. 15. Take you private list of game ideas. Add any more ideas that come
  179.     to mind at this time.  Now go through and cross out the ideas you
  180.     don't like and circle your favorite ones (the ones you would enjoy
  181.     the most).  Can you think of a way to combine any of the ideas?
  182.     Pick one of your ideas and write a description of what the game
  183.     would be like. Discuss your ideas on the GATEWAYS echomail area. If 
  184.     you have trouble thinking up an idea, we can help. Or we may have 
  185.     some more ideas to add to yours.  You can change your game theme
  186.     anytime, but you need to pick a theme early for a focus for your
  187.     design.
  188.  
  189. 16. Start designing the details of your game.. 
  190.         A) What will be the functional parts of the game (break it down)?
  191.         B) What will you be outputting to the user?
  192.         C) What will you be inputting from the user?
  193.         D) Are there interactions between players?
  194.         E) Are there interactions with other games?
  195.         F) What is the cycle of the game? Does it start and end with each
  196.            player session?  Does it run forever?  Does it need to restart
  197.            itself at some point?
  198.         G) What data will you be maintaining? (in memory and in disk files). 
  199.         H) What data has to be initialized before or during a game?
  200.            (Your game must be able to do this automatically)
  201.         I) Do you need to provide an installation program or editor to allow 
  202.            a sysop to customize anything in your game?
  203.         J) What kind of documentation do you need to provide for a player
  204.            to figure out how to play? Can a player learn everything from
  205.            just playing your game?
  206.         K) How will scoring work in your game?
  207.         L) How will game fit in with the overgame?   
  208.         M) Start designing the details: the data structures and functions to
  209.            maintain them, the main functions of the game and all the supporting
  210.            functions that you need to write.
  211.     Feel free to ask for HELP!  If you think your game is too difficult for
  212.     you to handle, try simplifying it or pick a simpler game to start with.
  213.     If you have a complex game, you may want to team up with other participants
  214.     nearby and get together to have creative sessions and split up the work.
  215.  
  216. 17. Please inform me of all your data needs.. including global variables,
  217.     og_malloc() memory, any arrays of anything (that means strings too). I need
  218.     to keep track of this to make sure I can link all the games together.
  219.  
  220. 18. If you send me a copy of your program in progress every once in a while
  221.     (even if its not compilable), I can provide feedback so that you wont
  222.     have a lot of changes to make after you submit your game.  Also send
  223.     your documentation from step 16.
  224.  
  225. 19. Only use your compiler's library functions if they are on the approved
  226.     list in the latest GKIT.DOC file.  If there is something you need that
  227.     you feel should be in the kit, contact me.
  228.  
  229. 20. Make sure that your game program will compile and run under large
  230.     or small data memory models.  For instance, do not make any assumptions 
  231.     about the size of a pointer.
  232.  
  233. 21. If your compiler supports function prototyping, use it! Create a
  234.     header file similar to D0MAIN.H that defines all your functions and
  235.     their parameters.
  236.     
  237.  ------------------------------------------------------------------------
  238.  
  239.          --- GKIT.ARC contains the following doc files ---
  240.   
  241.   *** IMPORTANT: ALWAYS WATCH FOR A NEW GKIT.ARC WITH A LATER DATE ***
  242.  
  243. GRULES.DOC     This file introduces you to the project and gives
  244.                you the basic rules for joining the project. This
  245.                file is the only file that will not change much.
  246.                You are reading this file.
  247.  
  248. GTERMS.DOC     This file contains definitions of terms as they are
  249.                understood at the time.
  250.  
  251. GSETUP.DOC     Tips on changing GKIT to work with a new C compiler
  252.  
  253. GTURBO.DOC    Instructions for setting up a Turbo C environment for GKIT.
  254.               Other participants may contribute similar files for other
  255.               compilers.
  256.  
  257. GNOVICE.DOC   Tips for the novice to the C language.
  258.  
  259. GTIPS.DOC     Tips for all participants.
  260.  
  261. GKIT.DOC      The main documentation file that includes documentation
  262.               on the development kit files and what functions you can
  263.               use in your game.  The latest changes will be listed here
  264.               also.
  265.  
  266.                 --- COMING IN A SEPARATE ARC FILE ---
  267.                 
  268. GNEWS???.TXT  Some current interesting topics from the GATEWAYS echomail
  269.               area.  If you have something you would like to submit, send
  270.               it to me.
  271.                
  272. G_ADS         Special offers, advertisements and opportunities will appear
  273.               here.  If you have something you would like to put here, tell
  274.               me about it.
  275.               
  276. ???????????   There may be other files added for special projects.
  277.