home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / games / nethack2.3 / part12 / Hackers.doc < prev    next >
Text File  |  1988-10-17  |  5KB  |  132 lines

  1.                    NetHack Programmers' Guidelines
  2.  
  3.                             M. Stephenson
  4.  
  5.                              18-Feb-1988
  6.  
  7.  
  8.     Introduction:
  9.  
  10.      This document is intended as a guide for programmers making changes
  11. and additions to the existing NetHack code-base.  It outlines (approximately)
  12. my design philosophy and rules for inclusion of additions and changes to
  13. the code.  Please read it through and keep the basic concepts in mind when
  14. writing new code for the game.
  15.  
  16.  
  17.     Bug Fixes:
  18.  
  19.      I'll gladly accept almost ***anything*** in the form of a bug fix.
  20. Please make sure you test your fix out before sending it in, however.  Include
  21. in the submission, how it was tested, as well as any side effects you may have
  22. noticed due to or in spite of the changes, as they may indicate deficiencies
  23. in the code to me.
  24.  
  25.  
  26.     Enhancements:
  27.  
  28.      Please remember that this is supposed to be a D&D(tm) type game.  Not
  29. a modern day or space type adventure.  Not that I will automatically reject
  30. additions to the game of that type.  I would simply like them to be presented
  31. in a form similar to that which exists now.  You can usually take any concept
  32. for a game like this and modify it into a fantasy setting.
  33.  
  34.      NEVER NEVER NEVER make something hardware dependent.  Remember that for
  35. all of those people out there with a beautiful "xyz" 20" 256 color super
  36. terminal there are dozens of poor folk with plain old dumb ttys.  Therefore,
  37. make all uses of special characters, graphics and attributes TOTALLY optional.
  38.  
  39.      If you are adding a brand new concept to the game, please try to do so
  40. in a new file (eg. fountains produced fountain.c, spells produced spell.c).
  41.  
  42.  
  43.     Code Reduction:
  44.  
  45.      Yes, yes, yes...  If there is any way you can reduce the code while
  46. maintaining portability and flexibility, please do so.  Part of the work I
  47. will be doing on 3.0 will concern three major sets of modifications:
  48.  
  49.     - making some of the "optional" code standard, hence reducing out
  50.       other code in #ifdef / #else / #endif sets.
  51.  
  52.     - attempting to merge DOS & Unix code into one routine whenever
  53.       possible.
  54.  
  55.     - reorganization of routines into more source modules.
  56.  
  57.      Please test your results as completely as possible.
  58.  
  59.  
  60.     Responses to E-Mail:
  61.  
  62.      I try to respond to E-Mail coming into my account.  For any large fix
  63. or fixes requiring two or three separate files, I will usually generate a
  64. response.  I don't, however, respond to every bug fix due to time, or some-
  65. times due to the fact that the mail I send back bounces twice or three times
  66. while I am trying to get through.  If you don't get a response from me, and
  67. really want one, either indicate it in the mail, or, failing a response, send
  68. a message through rec.games.hack.  My Rnmail usually gets things through.
  69.  
  70.  
  71.     Additional OS Compatibility:
  72.  
  73.      I am interested in getting NetHack working on as many machines as is
  74. possible.  MS-DOS, Unix V Rn and BSD4.n are known supported now.  I have the
  75. mods for OS/9 in my posession, and they will be included in 3.0.  If you have
  76. mods for any other type of OS, please send them in as soon as possible.  Try
  77. to use the existing code as much as possible, and introduce new copies of
  78. existing files only when the alternative is an unreadable mess in the
  79. original.
  80.  
  81.     A Small Wish-List:
  82.  
  83.      Here are some things I would like to see in the game, for 3.0, and if
  84. anyone out there would like to make a stab at programming one of them, please
  85. drop me some mail (my ***NEW*** address is at the bottom of this file) and
  86. I will try to get you in touch with anyone else expressing like interests.
  87.  
  88.     - True curses implementation of the display.
  89.       (termcap implementation will have to remain for backward
  90.        compatibility)
  91.  
  92.     - More monsters!  My initial algorithm is as follows:
  93.  
  94.       - any given letter code will represent a "class" of monster
  95.         types.
  96.  
  97.       - modify the generation code to generate stronger monster
  98.         types as the dungeon and player level increases.
  99.  
  100.       - optionally, a game difficulty parameter can be introduced
  101.         into the code here (using HARD???).
  102.  
  103.       - replace all of those uses of the letter code as monster
  104.         designation with a code returned from a single routine
  105.         which will determine monster type and a set of equates.
  106.  
  107.       - add a command to "#look" and be told what monsters (and
  108.         possibly objects) are in the room with you.  This means
  109.         you won't have to engage with a monster to find out what
  110.         it is.
  111.  
  112.     - Artifacts (including "intelligent" or "aware" weapons).  This
  113.       could really be a lot of fun; especially if you have talking
  114.       artifacts to cause you trouble, wake up sleeping monsters, etc.
  115.  
  116.     - More asynchronous events, especially strange sounds.  A real
  117.       dungeon would not be deathly silent, except in the area of
  118.       a morgue :-).  There should be the sounds of various things
  119.       going on, like the bubbling of a fountain in the room you
  120.       haven't gone into yet, the dripping of water in a swamp, a
  121.       low rumble of conversation inside a throne room, etc...
  122.  
  123.     - How about locked doors, locked chests, a "key" tool, and a
  124.       "thief" character class?
  125.  
  126.                         Mike Stephenson
  127.  
  128. Mail:    Genamation Inc.        Phone:    (416) 475-9434
  129.     351 Steelcase Rd. W
  130.     Markham, Ontario.    UUCP:    uunet!{mnetor,utzoo}!genat!genpyr!mike
  131.     Canada   L3R 3W1
  132.