home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Usenet 1994 October
/
usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso
/
games
/
nethack2.3
/
part12
/
Hackers.doc
< prev
next >
Wrap
Text File
|
1988-10-17
|
5KB
|
132 lines
NetHack Programmers' Guidelines
M. Stephenson
18-Feb-1988
Introduction:
This document is intended as a guide for programmers making changes
and additions to the existing NetHack code-base. It outlines (approximately)
my design philosophy and rules for inclusion of additions and changes to
the code. Please read it through and keep the basic concepts in mind when
writing new code for the game.
Bug Fixes:
I'll gladly accept almost ***anything*** in the form of a bug fix.
Please make sure you test your fix out before sending it in, however. Include
in the submission, how it was tested, as well as any side effects you may have
noticed due to or in spite of the changes, as they may indicate deficiencies
in the code to me.
Enhancements:
Please remember that this is supposed to be a D&D(tm) type game. Not
a modern day or space type adventure. Not that I will automatically reject
additions to the game of that type. I would simply like them to be presented
in a form similar to that which exists now. You can usually take any concept
for a game like this and modify it into a fantasy setting.
NEVER NEVER NEVER make something hardware dependent. Remember that for
all of those people out there with a beautiful "xyz" 20" 256 color super
terminal there are dozens of poor folk with plain old dumb ttys. Therefore,
make all uses of special characters, graphics and attributes TOTALLY optional.
If you are adding a brand new concept to the game, please try to do so
in a new file (eg. fountains produced fountain.c, spells produced spell.c).
Code Reduction:
Yes, yes, yes... If there is any way you can reduce the code while
maintaining portability and flexibility, please do so. Part of the work I
will be doing on 3.0 will concern three major sets of modifications:
- making some of the "optional" code standard, hence reducing out
other code in #ifdef / #else / #endif sets.
- attempting to merge DOS & Unix code into one routine whenever
possible.
- reorganization of routines into more source modules.
Please test your results as completely as possible.
Responses to E-Mail:
I try to respond to E-Mail coming into my account. For any large fix
or fixes requiring two or three separate files, I will usually generate a
response. I don't, however, respond to every bug fix due to time, or some-
times due to the fact that the mail I send back bounces twice or three times
while I am trying to get through. If you don't get a response from me, and
really want one, either indicate it in the mail, or, failing a response, send
a message through rec.games.hack. My Rnmail usually gets things through.
Additional OS Compatibility:
I am interested in getting NetHack working on as many machines as is
possible. MS-DOS, Unix V Rn and BSD4.n are known supported now. I have the
mods for OS/9 in my posession, and they will be included in 3.0. If you have
mods for any other type of OS, please send them in as soon as possible. Try
to use the existing code as much as possible, and introduce new copies of
existing files only when the alternative is an unreadable mess in the
original.
A Small Wish-List:
Here are some things I would like to see in the game, for 3.0, and if
anyone out there would like to make a stab at programming one of them, please
drop me some mail (my ***NEW*** address is at the bottom of this file) and
I will try to get you in touch with anyone else expressing like interests.
- True curses implementation of the display.
(termcap implementation will have to remain for backward
compatibility)
- More monsters! My initial algorithm is as follows:
- any given letter code will represent a "class" of monster
types.
- modify the generation code to generate stronger monster
types as the dungeon and player level increases.
- optionally, a game difficulty parameter can be introduced
into the code here (using HARD???).
- replace all of those uses of the letter code as monster
designation with a code returned from a single routine
which will determine monster type and a set of equates.
- add a command to "#look" and be told what monsters (and
possibly objects) are in the room with you. This means
you won't have to engage with a monster to find out what
it is.
- Artifacts (including "intelligent" or "aware" weapons). This
could really be a lot of fun; especially if you have talking
artifacts to cause you trouble, wake up sleeping monsters, etc.
- More asynchronous events, especially strange sounds. A real
dungeon would not be deathly silent, except in the area of
a morgue :-). There should be the sounds of various things
going on, like the bubbling of a fountain in the room you
haven't gone into yet, the dripping of water in a swamp, a
low rumble of conversation inside a throne room, etc...
- How about locked doors, locked chests, a "key" tool, and a
"thief" character class?
Mike Stephenson
Mail: Genamation Inc. Phone: (416) 475-9434
351 Steelcase Rd. W
Markham, Ontario. UUCP: uunet!{mnetor,utzoo}!genat!genpyr!mike
Canada L3R 3W1