home *** CD-ROM | disk | FTP | other *** search
/ Amiga Games Extra 1996 May / Amiga_Games_Extra_CD_5-96.bin / spiele / publicdomain / angband / help / version.txt < prev   
Text File  |  1996-02-23  |  17KB  |  391 lines

  1. === Version Information ===
  2.  
  3. This file was last updated for Angband 2.7.9.
  4.  
  5. Make sure to read the newsgroup "rec.games.roguelike.angband" if possible.
  6.  
  7. Angband 2.7.9 is the result of a lot of work by a lot of people, and as such
  8. has a rather complicated version history.  Worse yet, this version history
  9. spans more than ten years (!) time, and multiple platforms.  But some history
  10. is better than none, so here we go...
  11.  
  12.  
  13. === Brief Version History ===
  14.  
  15. First came "VMS Moria", by Robert Alan Koeneke (1985).
  16.  
  17. Then came "Umoria" (Unix Moria), by James E. Wilson (1989).
  18.  
  19. In 1990, Alex Cutler and Andy Astrand, with the help of other students
  20. at the University of Warwick, created Angband 1.0, based on the existing
  21. code for Umoria 5.2.1.  They wanted to expand the game, keeping or even
  22. strengthening the grounding in Tolkien lore, while adding more monsters
  23. and items, including unique monsters and artifact items, plus activation,
  24. pseudo-sensing, level feelings, and special dungeon rooms.
  25.  
  26. Over time, Sean Marsh, Geoff Hill, Charles Teague, and others, worked on
  27. the source, releasing a copy known as "Angband 2.4.frog_knows" at some
  28. point, which ran only on Unix systems, but which was ported by various
  29. people to various other systems.
  30.  
  31. Then Charles Swiger (cs4w+@andrew.cmu.edu) attempted to clean up the mess,
  32. resulting in several versions, starting sometime around November, 1993, with
  33. Angband 2.5.1 (more or less) and leading up to Angband 2.6.2 in late 1994.
  34. Several people ported (the primarily Unix/NeXT centered) Angband 2.6.1 to
  35. other platforms, including Keith Randall, who made a Macintosh port that
  36. added support for color usage.  Some of the changes during this period were
  37. based on suggestions from the "net", PC Angband 1.40, UMoria 5.5, and some
  38. of the Angband "variations", such as FAngband.
  39.  
  40. Finally, I (Ben Harrison) took over in late 1994 when Charles Swiger left.
  41. Initially my intention was simply to clean up what had become, after ten
  42. years, a rather unholy mess, but the deeper I delved into the code, the
  43. more it became apparent that drastic changes were needed, so, starting
  44. with MacAngband 2.6.1, I began a more or less total rewrite, resulting,
  45. eventually, in Angband 2.7.0, released around January first, 1995.
  46.  
  47. Angband 2.7.0 was a very clean (but very buggy) rewrite that, among other
  48. things, allowed extremely simple porting to multiple platforms, starting
  49. with Unix and Macintosh, and by the time most of the bugs were cleaned up,
  50. in Angband 2.7.2, including X11, and various IBM machines.  Angband 2.7.4
  51. was released to the "ftp.cis.ksu.edu" site, and quickly gained acceptance,
  52. perhaps helped by the OS2 and Windows and Amiga and Linux ports.  Angband
  53. 2.7.5 and 2.7.6 added important capabilities such as macros and user pref
  54. files, and continued to clean up the source.  Angband 2.7.8 was designed
  55. to supply another "stable" version that we can all give to our friends,
  56. with new "help files" and "spoiler files" for the "online help", plus a
  57. variety of minor tweaks and some new features.  Angband 2.7.9 optimized
  58. a few things, and tweaked a few other things, and cleaned up a few other
  59. things, and introduced a few minor semantic changes.
  60.  
  61. It is very hard to pin down, along the way from 2.6.2 to 2.7.0, and thence
  62. to 2.7.8, exactly what was added exactly when.  Most of these steps involved
  63. so many changes as to make "diff files" not very useful, since often the diff
  64. files were as long as the code itself.  Most of the changes, with the notable
  65. exception of the creation of the new "main-xxx.c" files for the various new
  66. platforms, and a few other exceptions generally noted in the source, were
  67. written by myself, either spontaneously, or, more commonly, as the result of
  68. a suggestion or comment by an Angband player.  So if you have any problems
  69. with anything that you do not recognize from older versions, you can blame
  70. them on me.  And if you like the new features and such, you can send me a
  71. brief little "thank you" email (to benh@voicenet.com) or something...
  72.  
  73. The Official Angband Home Page ("http://www.voicenet.com/~benh/Angband/")
  74. was created along with Angband 2.7.9 to serve as an up to date description
  75. of any bugs found in various versions, and to list all of the people whose
  76. email addresses I kept having to look up.
  77.  
  78.  
  79. === Some of the changes from Angband 2.6.1 to Angband 2.7.9 ===
  80.  
  81. The most important modification was a massive "code level cleanup" that made
  82. all of my other modifications much simpler and safer.  This cleanup was so
  83. massive that in many places the code is no longer recognizable, for example,
  84. via "diff -r", often because it was rewritten from scratch.
  85.  
  86. The second most important modification was the design of a generic "term.c"
  87. package, which allows Angband to be ported to a new machine with as few as 50
  88. lines of code.  Angband 2.7.9 thus runs without modification on many machines,
  89. including Macintosh, PowerMac, Unix/X11, Unix/Curses, Amiga, Windows, OS2-386,
  90. DOS-386, and even DOS-286.
  91.  
  92. It would be difficult to list all of the changes between Angband 2.6.1 and
  93. Angband 2.7.9, because many of them were made in passing during the massive
  94. code level cleanup.  Many of the changes are invisible to the user, but still
  95. provide increased simplicity and efficiency, and decreased code size, or make
  96. other more visable changes possible.  For example, the new "project()" code
  97. that handles all bolts, beams, and balls, the new "update_view()" code that
  98. simplifies line of sight computation, or the new "generate()" code that builds
  99. new levels in the dungeon.  Many changes have been made to increase efficiency,
  100. including the new "process_monsters()" and "update_monsters()" functions, and
  101. the new "objdes()" and "lite_spot()" routines.  The generic "Term" package
  102. yielded efficient screen updates, and enabled the efficient use of "color".
  103.  
  104. But anyway, here are a few things that come to mind, in no particular order,
  105. and with very little time or effort.  Somehow I managed to put off updating
  106. this file to the very end, and it will just have to do for now.  The recent
  107. changes (and bug fixes) can be found at the Official Angband Home Page.
  108.  
  109.     color
  110.     macros
  111.     keymaps
  112.     user pref files
  113.     generic feature array, with template file
  114.     generic object array, with template file
  115.     generic artifact array, with template file
  116.     generic ego-item array, with template file
  117.     generic monster array, with template fils
  118.     generic vault array, with template file
  119.     binary image files for the template files
  120.     special stat effect tables
  121.     a special table of spells
  122.     a special table of options
  123.     inventory tagging
  124.     inventory restrictions
  125.     using objects off the floor
  126.     various new runtime options
  127.     the new "destroy" command
  128.     the new "examine" command
  129.     the new "note" command
  130.     the new "dump screen" command
  131.     the new "load screen" command
  132.     the new "un-inscribe" command
  133.     the new "change visuals" command
  134.     the new "change colors" command
  135.     the new "change macros" command
  136.     the new "save game" command
  137.     the new "fire" vs "throw" commands
  138.     rearranged equipment slots
  139.     a standard bow slot
  140.     an extra inventory slot
  141.     an underlying keyset
  142.     refueling torches
  143.     better monster memory
  144.     nicer targetting mode
  145.     object stacking
  146.     the recall window
  147.     the choice window
  148.     the mirror window
  149.     new high score code
  150.     special lighting effects
  151.     intelligent monsters
  152.     new monster flags
  153.     text formatting code
  154.     much cleaner store code
  155.     generic spell projections
  156.     scrolls of *identify*
  157.     maximize mode
  158.     preserve mode
  159.     new inscription code
  160.     new message recall code
  161.     new spell and prayer code
  162.     massive cleanup of effects code
  163.     new object allocation routines
  164.     powerful (but simple) on line help
  165.     robust savefile cheat preventers
  166.     new official cheating options
  167.     new blindness code
  168.     new hallucination code
  169.     optimized object description code
  170.     new keypress input routines
  171.     actual object discounts
  172.     fractional (assymptotic) speed
  173.     postponing updates/redraws
  174.     run-time price determination
  175.     better wizard commands
  176.     the automatic player
  177.     launchers of extra shots
  178.     elemental ignore flags
  179.     new ego-item types
  180.     new player ghost creation
  181.     no more sliding objects
  182.     no more sliding monsters
  183.     new object flags
  184.     new chest trap code
  185.     regularized the artifact code
  186.     regularized the ego-item code
  187.     new monster abilities
  188.     new monster spell attacks
  189.     some new store owners
  190.     run-time skill computation
  191.     player kills vs anscestor kills
  192.     better room illumination code
  193.     better group monster code
  194.     table access through pointers
  195.     more redefinable constants
  196.     slightly new screen layout
  197.     extreme code cleaning
  198.     extreme optimizations
  199.  
  200.  
  201. === Here is a posting from the original author ===
  202.  
  203. From: koeneke@ionet.net (Robert Alan Koeneke)
  204. Newsgroups: rec.games.roguelike.angband,rec.games.roguelike.moria
  205. Subject: Early history of Moria
  206. Date: Wed, 21 Feb 1996 04:20:51 GMT
  207.  
  208. I had some email show up asking about the origin of Moria, and its
  209. relation to Rogue.  So I thought I would just post some text on the
  210. early days of Moria.
  211.  
  212. First of all, yes, I really am the Robert Koeneke who wrote the first
  213. Moria.  I had a lot of mail accussing me of pulling their leg and
  214. such.  I just recently connected to Internet (yes, I work for a
  215. company in the dark ages where Internet is concerned) and 
  216. was real surprised to find Moria in the news groups...  Angband was an
  217. even bigger surprise, since I have never seen it.  I probably spoke to
  218. its originator though...  I have given permission to lots of people
  219. through the years to enhance, modify, or whatever as long as they
  220. freely distributed the results.  I have always been a proponent of
  221. sharing games, not selling them.
  222.  
  223. Anyway...
  224.  
  225. Around 1980 or 81 I was enrolled in engineering courses at the
  226. University of Oklahoma.  The engineering lab ran on a PDP 1170 under
  227. an early version of UNIX.  I was always good at computers, so it was
  228. natural for me to get to know the system administrators.  They invited
  229. me one night to stay and play some games, an early startrek game, The
  230. Colossal Cave Adventure (later just 'Adventure'), and late one night,
  231. a new dungeon game called 'Rogue'.
  232.  
  233. So yes, I was exposed to Rogue before Moria was even a gleam in my
  234. eye.  In fact, Rogue was directly responsible for millions of hours of
  235. play time wasted on Moria and its descendents...
  236.  
  237. Soon after playing Rogue (and man, was I HOOKED), I got a job in a
  238. different department as a student assistant in computers.  I worked on
  239. one of the early VAX 11/780's running VMS, and no games were available
  240. for it at that time.  The engineering lab got a real geek of an
  241. administrator who thought the only purpose of a computer was WORK!
  242. Imagine...  Soooo, no more games, and no more rogue!
  243.  
  244. This was intolerable!  So I decided to write my own rogue game, Moria
  245. Beta 1.0.  I had three languages available on my VMS system.  Fortran
  246. IV, PASCAL V1.?, and BASIC.  Since most of the game was string
  247. manipulation, I wrote the first attempt at Moria in VMS BASIC, and it
  248. looked a LOT like Rogue, at least what I could remember of it.  Then I
  249. began getting ideas of how to improve it, how it should work
  250. differently, and I pretty much didn't touch it for about a year.
  251.  
  252. Around 1983, two things happened that caused Moria to be born in its
  253. recognizable form.  I was engaged to be married, and the only cure for
  254. THAT is to work so hard you can't think about it; and I was enrolled
  255. for fall to take an operating systems class in PASCAL.
  256.  
  257. So, I investigated the new version of VMS PASCAL and found out it had
  258. a new feature.  Variable length strings!  Wow...
  259.  
  260. That summer I finished Moria 1.0 in VMS PASCAL.  I learned more about
  261. data structures, optimization, and just plain programming that summer
  262. then in all of my years in school.  I soon drew a crowd of devoted
  263. Moria players...  All at OU.
  264.  
  265. I asked Jimmey Todd, a good friend of mine, to write a better
  266. character generator for the game, and so the skills and history were
  267. born.  Jimmey helped out on many of the functions in the game as well.
  268. This would have been about Moria 2.0
  269.  
  270. In the following two years, I listened a lot to my players and kept
  271. making enhancements to the game to fix problems, to challenge them,
  272. and to keep them going.  If anyone managed to win, I immediately found
  273. out how, and 'enhanced' the game to make it harder.  I once vowed it
  274. was 'unbeatable', and a week later a friend of mine beat it!  His
  275. character, 'Iggy', was placed into the game as 'The Evil Iggy', and
  276. immortalized...  And of course, I went in and plugged up the trick he
  277. used to win...
  278.  
  279. Around 1985 I started sending out source to other universities.  Just
  280. before a OU / Texas football clash, I was asked to send a copy to the
  281. Univeristy of Texas...  I couldn't resist...  I modified it so that
  282. the begger on the town level was 'An OU football fan' and they moved
  283. at maximum rate.  They also multiplied at maximum rate...  So the
  284. first step you took and woke one up, it crossed the floor increasing
  285. to hundreds of them and pounded you into oblivion...  I soon received
  286. a call and provided instructions on how to 'de-enhance' the game!
  287.  
  288. Around 1986 - 87 I released Moria 4.7, my last official release.  I
  289. was working on a Moria 5.0 when I left OU to go to work for American
  290. Airlines (and yes, I still work there).  Moria 5.0 was a complete
  291. rewrite, and contained many neat enhancements, features, you name it.
  292. It had water, streams, lakes, pools, with water monsters.  It had
  293. 'mysterious orbs' which could be carried like torches for light but
  294. also gave off magical aura's (like protection from fire, or aggrivate
  295. monster...).  It had new weapons and treasures...  I left it with the
  296. student assistants at OU to be finished, but I guess it soon died on
  297. the vine.  As far as I know, that source was lost...
  298.  
  299. I gave permission to anyone who asked to work on the game.  Several
  300. people asked if they could convert it to 'C', and I said fine as long
  301. as a complete credit history was maintained, and that it could NEVER
  302. be sold, only given.  So I guess one or more of them succeeded in
  303. their efforts to rewrite it in 'C'.
  304.  
  305. I have since received thousands of letters from all over the world
  306. from players telling about their exploits, and from administrators
  307. cursing the day I was born...  I received mail from behind the iron
  308. curtain (while it was still standing) talking about the game on VAX's
  309. (which supposedly couldn't be there due to export laws).  I used to
  310. have a map with pins for every letter I received, but I gave up on
  311. that!
  312.  
  313. I am very happy to learn my creation keeps on going...  I plan to
  314. download it and Angband and play them...  Maybe something has been
  315. added that will surprise me!  That would be nice...  I never got to
  316. play Moria and be surprised...
  317.  
  318. Robert Alan Koeneke
  319. koeneke@ionet.net
  320.  
  321.  
  322. === Here is some old information about previous versions ===
  323.  
  324.  
  325.                           VMS Moria Version 4.8
  326. Version 0.1  : 03/25/83
  327. Version 1.0  : 05/01/84
  328. Version 2.0  : 07/10/84
  329. Version 3.0  : 11/20/84
  330. Version 4.0  : 01/20/85
  331.  
  332. Modules :
  333.      V1.0  Dungeon Generator      - RAK
  334.            Character Generator    - RAK & JWT
  335.            Moria Module           - RAK
  336.            Miscellaneous          - RAK & JWT
  337.      V2.0  Town Level & Misc      - RAK
  338.      V3.0  Internal Help & Misc   - RAK
  339.      V4.0  Source Release Version - RAK
  340.  
  341. Robert Alan Koeneke               Jimmey Wayne Todd Jr.
  342. Student/University of Oklahoma    Student/University of Oklahoma
  343.  
  344.  
  345.  
  346.  
  347.  
  348.                         Umoria Version 5.2 (formerly UNIX Moria)
  349. Version 4.83 :  5/14/87
  350. Version 4.85 : 10/26/87
  351. Version 4.87 :  5/27/88
  352. Version 5.0  :  11/2/89
  353. Version 5.2  :   5/9/90
  354.  
  355. James E. Wilson, U.C. Berkeley
  356.                  wilson@ernie.Berkeley.EDU
  357.                  ...!ucbvax!ucbernie!wilson
  358.  
  359. Other contributors:
  360. D. G. Kneller         - MSDOS Moria port
  361. Christopher J. Stuart - recall, options, inventory, and running code
  362. Curtis McCauley       - Macintosh Moria port
  363. Stephen A. Jacobs     - Atari ST Moria port
  364. William Setzer        - object naming code
  365. David J. Grabiner     - numerous bug reports, and consistency checking
  366. Dan Bernstein         - UNIX hangup signal fix, many bug fixes
  367. and many others...
  368.  
  369.  
  370.  
  371.  
  372. Copyright (c) 1989 James E. Wilson, Robert A. Keoneke
  373.   This software may be copied and distributed for educational, research, and
  374.   not for profit purposes provided that this copyright and statement are
  375.   included in all such copies.
  376.  
  377. Umoria Version 5.2, patch level 1
  378.  
  379. Angband Version 2.0   Alex Cutler, Andy Astrand, Sean Marsh, Geoff Hill, 
  380.                       Charles Teague.
  381.  
  382. Angband Version 2.4   :  5/09/93
  383.  
  384. Angband Version 2.5   : 12/05/93 Charles Swiger.
  385.  
  386. Angband Version 2.6   :  9/04/94
  387.  
  388. Angband Version 2.7   :  1/1/95  Ben Harrison
  389.  
  390.  
  391.