home *** CD-ROM | disk | FTP | other *** search
/ Amiga Special: Spiele Hits / Hits-CD.iso / aminet / spiele / ammud1_1.lha / AmigaMUD / Doc / Decisions.txt < prev    next >
Text File  |  1997-06-28  |  22KB  |  386 lines

  1. Some Rambling Thoughts on Various Things
  2.  
  3.  
  4. Could have a size on objects. Then, a container would have a maximum size
  5. that it could handle, and its size would be its base size plus the size of
  6. everything in it. => Don't bother. It might add a bit of realism, but likely
  7. doesn't do much for gameplay.
  8.  
  9. Could put a digital clock in the title bar of the MUD program. => Don't bother.
  10. It doesn't add much and is kinda tacky.
  11.  
  12. Might be nice in the proving grounds to have:
  13.     place to buy speed/strength/hits  (suggest prices each of 50000/50000/1000)
  14.     very occasionally find gems lying around
  15.     need place to sell them
  16.  
  17. If a picture is loaded that has no palette, it would often be useful to
  18.     reset to the default palette at that time. Then again, if a scenario
  19.     is consistently using a different palette, you wouldn't want to.
  20.     So, let's not. The scenario can force a palette if needed.
  21.  
  22. Might want to add an 'ActionToString' builtin, to return a string containing
  23. the text of a routine. The resulting string would be a pain to process,
  24. however (essentially have to write part of a proc parser in MUD code), so
  25. I don't think it would really be useful.   *** DONE ***
  26.  
  27. Could conceivably add a 'resynch' packet to the serial protocol. This could
  28. be used to re-establish a connection that MUDAgent thinks is still there,
  29. but that went away on the client end. This would only work on a direct line,
  30. however, since MUDAgent normally pays attention to CD. It could also be a
  31. big security hole - there is no way to check that the person reattaching
  32. is the same one that detached.
  33.  
  34. In the build stuff, could have button-driven entries for destroy object,
  35. move symbol, rename symbol and delete symbol. Decided not to - they are
  36. less likely to be needed and can be potentially dangerous.
  37.  
  38. Some "spam" preventing stuff can be done. Set up a clock tick to go off
  39. every second. When it does, check the number of inputs that
  40. have come from a client in that second (keep a count, and reset on the
  41. ticks). If it is over a threshold that is settable by a builtin call, then
  42. mark that client as spamming. In that mode, send failing replies to any
  43. request that needs a reply. For requests that don't (most), just chuck
  44. them. Hmm. Perhaps just handle the ones that need replies - they are
  45. wizard mode stuff mostly. Have another builtin-settable parameter which is
  46. how long they stay in "spamming" mode. Need to set the first to a very high
  47. value for the initial sourcing of the scenario (or anything similar).
  48.  
  49. Might also want to put limits on the number of rooms or objects that can
  50. be created by a character using the build stuff. Give some kind of message
  51. like "apply to SysAdmin for more". SysAdmin can just clear their counters.
  52.  
  53. Thought of having a 'FlashButton' graphics effect, so that when the user
  54. uses a function key for moving, I could "flash" the on-screen image of
  55. the corresponding button. I decided against this, since with a slow
  56. connection or a slow server, the flashing would be too long after the
  57. keypress to have the right feedback effect.
  58.  
  59. Had a note suggesting adding an AreaEnterCheck/AreaLeaveCheck action list.
  60. I believe this was to be used when teleporing in/out of an area, to do
  61. whatever cleanup was necessary. E.g. if a wizard teleports out of Questor's
  62. office, no-one else can go in. Decided not to do this for now - the wizard's
  63. will have to be careful.
  64.  
  65. Could add a flag to MUD and MUDAgent for "-reliable", which would indicate
  66. that the serial connection is fully reliable. Then, don't need to use CRC,
  67. ACK/NAK or sequence numbers. Decided not to do this. The gain would likely
  68. not be that much, either in CPU usage or amount of data transmitted. Also,
  69. any error or glitch encountered would hang the connection permanently.
  70.  
  71. Parser Extensions:
  72.     Would like to be able to properly parse things like:
  73.  
  74.     take a picture of the book
  75.     sit down on the bench        [currently kludged]
  76.  
  77.     This could be done either by allowing a multi-word separator
  78.     ("a,picture;of") or by allowing multi-word verbs ("take,a,picture,of").
  79.     Either requires some changes to the data structures used in-memory and
  80.     in-database for grammars and verbs.
  81.  
  82.     Put off until later, if ever. (How important is it?)
  83.  
  84. Out on the nets is the concept of "Tiny-Mail", where a player can mail
  85. commands to a MUD and get the results back. Could do this for AmigaMUD.
  86. Is there any point? (It would be VERY slow to play!)
  87.  
  88. Want some kind of more intelligent/realistic NPC. This could be a lot
  89. of work. Have to think about it. Not for this release.
  90.  
  91. It might be possible to do some kind of mazewars type game with AmigaMUD.
  92. Experiments show that this would not be feasible at 2400 baud, even with
  93. effects routines. To do this, might want to increase the resolution of
  94. 'After' to 1/100 second instead of 1 second. Maybe later.  *** The
  95. parameter to 'After' is now a fixed-point value, allowing subsecond
  96. timing. ***
  97.  
  98. Could add a 'CreateThingWithSpace(thing parent; int propCount)', which
  99. would create a thing in the database with space pre-allocated for 'propCount'
  100. properties. Might reduce fragmentation. Probably not worth it.
  101.  
  102. The MUD client can end up temporarily suspended after typing a RETURN, so
  103. that further typing works, but hitting RETURN again doesn't work. This is
  104. carefully done in the text I/O code, but I don't quite remember the reason
  105. for it. An extra level of recursion would happen if it were allowed, and
  106. too many of these could cause problems. The situation is that the client
  107. is busy doing something (like editing, or processing effects stuff), not
  108. that the client is waiting for the server (input lines are not acknowledged).
  109. *** The simple case of the client being busy handling stuff from the server,
  110. while waiting inside the recursion-locked code has been mostly fixed. You
  111. will still lock if you are parsing code from the edit buffer in wizard
  112. mode and you try to enter a direct wizard-mode command at the same time -
  113. that would take two simultaneous parses to handle! ***
  114.  
  115. Could have ANSI terminal output stuff. Then, players without the remote
  116. client could get a bit more than just straight text. Would need routines
  117. like ANSIOn, ANSIMove, ANSIClearLine, etc. One problem is the nature of
  118. MUDs in general - output can come at any time. A possible approach to
  119. handling this is to require that the ANSI emulator support a scrolling
  120. region, which would be used for all output not specifically directed to
  121. other parts of the screen. The scenario would have to make sure that any
  122. non-scrolling output sequences leave the cursor at the bottom left of the
  123. scrolling region. Descision: no ANSI support - we are trying to move to
  124. graphics support - ANSI support doesn't help that goal and might even
  125. hinder it.
  126.  
  127. Some MUDs have a "snoop" facility, which can let wizards or sysadmins
  128. directly watch what players are doing. This includes displaying all of
  129. their input and output. I could add such a facility to the AmigaMUD server
  130. without too much trouble, but have decided not to. The only legitimate
  131. uses of snoop that I can think of are a sysadmin watching for abusers;
  132. and for wizards to watch people playing their creations, looking for
  133. problems with them. Both of these can be handled by proper reporting.
  134. The possible abuses of a snoop facility are many.
  135.  
  136. Under V1.3 it is possible to select multiple menu items at once, by holding
  137. down the shift key. In doing so, it is possible to select any number of
  138. the items in a set which are supposed to be mutually exclusive. Because
  139. of the way Intuition reports these events, some will be missed if a given
  140. item is selected more than once. If a program just follows the codes in
  141. the menu events given to it, it can then be out of step with the checkmarks
  142. in a set of items. This can be fixed by checking the state of the checkmark
  143. flag bit before doing anything. I started to do this, but it was adding
  144. too much code to handle a rare and not fatal case. Also, later versions
  145. of the system handle this better. So, I do not handle this situation, and
  146. do not plan to do so.
  147.  
  148. Fighting in the dark is currently not allowed. Changing this, and keeping
  149. darkness consistent (i.e. you can't see where you are or who/what is there
  150. with you) would