Angband 3.0.9b.
[angband.git] / lib / help / version.txt
blob5dafb8e5b770a2545676e643e86641d37f9b849f
1 === Version Information ===
3 This file was last updated for Angband 3.0.1.
5 Make sure to read the newsgroup ("rec.games.roguelike.angband"), and to visit
6 the Official Angband Home Page ("http://www.thangorodrim.net") for the most
7 up to date information about Angband.
9 Angband 3.0.1 has an incredibly complex history, and is the result of a
10 lot of work by a lot of people, all of whom have contributed their time
11 and energy for free, being rewarded only by the pleasure of keeping alive
12 one of the best freeware games available anywhere.
14 The version control files, if they existed, would span more than ten years
15 time, and more than six different primary developers.  Without such files,
16 we must rely on simpler methods, such as change logs, source file diffs, and
17 word of mouth.  Some of this information is summarized in this file.
19 Please be sure to read the copyright information at the end of this file.
21 === Brief Version History ===
23 First came "VMS Moria", by Robert Alan Koeneke (1985).
25 Then came "Umoria" (Unix Moria), by James E. Wilson (1989).
27 Details about the history of the various flavors of "Moria", the direct
28 ancestor to Angband, can be found elsewhere, and a note from Robert Alan
29 Koeneke is included in this file.  Note that "Moria" has been ported to
30 a variety of platforms, and has its own newsgroup, and its own fans.
32 In 1990, Alex Cutler and Andy Astrand, with the help of other students
33 at the University of Warwick, created Angband 1.0, based on the existing
34 code for Umoria 5.2.1.  They wanted to expand the game, keeping or even
35 strengthening the grounding in Tolkien lore, while adding more monsters
36 and items, including unique monsters and artifact items, plus activation,
37 pseudo-sensing, level feelings, and special dungeon rooms.
39 Over time, Sean Marsh, Geoff Hill, Charles Teague, and others, worked on
40 the source, releasing a copy known as "Angband 2.4.frog_knows" at some
41 point, which ran only on Unix systems, but which was ported by various
42 people to various other systems.  One of the most significant ports was
43 the "PC Angband 1.4" port, for old DOS machines, which added color and
44 various other significant changes, only some of which ever made it back
45 into the official source.
47 Then Charles Swiger (cs4w+@andrew.cmu.edu) took over, sometime in late
48 1993, cleaning up the code, fixing a lot of bugs, and bringing together
49 various patches from various people, resulting in several versions of
50 Angband, starting with Angband 2.5.1 (?), and leading up to the release
51 of Angband 2.6.1 (and Angband 2.6.2) in late 1994.  Some of the changes
52 during this period were based on suggestions from the "net", and from
53 various related games, including "UMoria 5.5", "PC Angband 1.4", and
54 "FAngband".
56 Angband 2.6.1 was primarily targetted towards Unix/NeXT machines, and
57 it required the use of the low level "curses" commands for all screen
58 manipulation and keypress interaction.  Each release had to be ported
59 from scratch to any new platforms, normally by creating visual display
60 code that acted as a "curses" emulator.  One such port was "Macintosh
61 Angband 2.6.1", by Keith Randall, which added support for color, and
62 which formed the basis for the first release of Angband 2.7.0.
64 During the last half of 1994, Ben Harrison had been playing with
65 the Angband source, primarily to investigate the possibility of making
66 some kind of automatic player for Angband, like the old "rogue-o-matic"
67 program for the game "Rogue".  The difficulty of compiling a version
68 for the Macintosh, and the complexity of the code, prevented this, and
69 so Ben began cleaning up the code in various ways for his personal use.
71 In late 1994, Charles Swiger announced that he was starting a real job
72 and would no longer be able to be the Angband maintainer.  This induced
73 some amount of uproar in the Angband community (as represented by the
74 Angband newsgroup), with various people attempting to form "committees"
75 to take over the maintenance of Angband.  Since committees have never
76 given us anything but trouble (think "COBOL"), there was very little
77 resistance when, on the first day of 1995, Ben made his code available,
78 calling it "Angband 2.7.0", and by default, taking over as the new
79 maintainer of Angband.
81 Angband 2.7.0 was a very clean (but very buggy) rewrite that, among other
82 things, allowed extremely simple porting to multiple platforms, starting
83 with Unix and Macintosh, and by the time most of the bugs were cleaned up,
84 in Angband 2.7.2, including X11, and various IBM machines.  Angband 2.7.4
85 was released to the "ftp.cis.ksu.edu" site, and quickly gained acceptance,
86 perhaps helped by the OS2 and Windows and Amiga and Linux ports.  Angband
87 2.7.5 and 2.7.6 added important capabilities such as macros and user pref
88 files, and continued to clean up the source.  Angband 2.7.8 was released
89 to the major ftp archives as the first "stable" version in a year or so,
90 with new "help files" and "spoiler files" for the "online help", plus a
91 variety of minor tweaks and some new features.
93 After Angband 2.7.8 was released, Ben created a web site to keep track of
94 all the changes made in each version (though a few may have been missed),
95 and acquired the use of a new develoepement ftp server to supplement the
96 official "mirror" server.  This web site is now permanently located at
97 the Official Angband Home Page (http://www.thangorodrim.net/).
98 Unfortunately, the next six versions were numbered Angband 2.7.9v1 to
99 Angband 2.7.9v6, but really each were rather major updates.  Angband 2.8.0
100 and 2.8.1 were released using a more normal version scheme.  Angband 2.8.2
101 and 2.8.3 add a few random features, clean up some code, and provide
102 graphics support and such for a few more platforms.
104 After the release of Angband 2.8.3 Ben's free time was more and more
105 occupied by his work.  He released a beta version of Angband 2.8.5,
106 introducing many new features, but couldn't give as much attention to
107 maintaining the game as he wanted to.  Meanwhile, an "unofficial" version
108 by Robert Ruehlmann, incorporating three popular patches (the "Easy Patch" 
109 by Tim Baker, for opening doors and disarming traps without specifying 
110 the direction: Greg Wooledge's "Random Artifacts" patch: and Keldon Jones's
111 "Optional Monster AI Improvement"), named "2.8.3h", was gaining popularity.
113 So in March 2000, Robert Ruehlmann offered to take over Angband and
114 started to fix the remaining bugs in the Angband 2.8.5 beta.  The
115 resulting version was to be released as Angband 2.9.0. Further 
116 bugfixes and a couple of new features - including many in the realms
117 of user-customizability, with greater control over ego-items, player
118 races and classes, monsters, items and artifacts - have led to the 
119 current version.
121 And with the greater amount of user-customizability that is now possible,
122 it was inevitable that SOMEBODY would eventually go and actually do 
123 something with it.  Jonathan Ellis started customizing the user-editable
124 text files in the "edit" directory for his own personal use - originally, 
125 only by fixing bugs and inconsistencies (less powerful monsters being worth
126 more experience per kill than more powerful ones, dragons doing a decent 
127 amount of damage in melee, monsters with two claws and one mouth getting 
128 one claw and three bite attacks, and so on).  
130 At first, this was all that could really be done with it: adding new 
131 monsters and items was impossible, as the limits were fixed. And so only 
132 three new monsters made an appearance, each of them replacing an existing 
133 monster in the order: and one new artifact - "The Palantir of Westernesse". 
134 Gameplay balance could be tweaked somewhat, by changing the level, power and 
135 rarity of certain items and monsters: and some changes were made, mostly 
136 with the attempt to reduce the notorious "triple whammy" effect of needing 
137 poison, confusion and nether resistance (or over 550 hps, if without nether 
138 resistance) all at once, straight after passing 2000', forcing excessive 
139 scumming before this depth or risking unavoidable instant death: and then
140 having nothing left to do but dive straight to 4000' and scum for speed
141 items, missing out on some of the most interesting depths of the dungeon.
142 This problem, at least, could be addressed, but actual new things were less
143 easy to add...
145 That all changed with Angband 2.9.1, which for the first time moved the 
146 limits themselves to a separate user-editable file, and allowed more 
147 monsters and items to be created without removing the old ones. At the 
148 same time, a patch by Matthias Kurzke was incorporated which allowed the 
149 creation of new ego-items.  Various new powers, for the player and 
150 monsters, were added to the game - but no items or monsters yet had these 
151 powers (resist fear, poison brand, lose charisma, summon greater demons,
152 and so on): indeed, arguably it could be said that the game had not even
153 adjusted properly to Ben Harrison's fractional speed system (Angband 2.7.0)
154 or the addition of the other attack forms such as shards, sound, chaos, 
155 nexus and so on (even before Ben.) 
158 The Official Angband Home Page ("http://www.thangorodrim.net/") serves
159 not only as the most up to date description of Angband, but also lists
160 changes made between versions, and changes planned for upcoming versions,
161 and lists various email addresses and web sites related to Angband.
163 === Some of the changes between Angband 2.6.1 and now ===
165 It is very hard to pin down, along the way from 2.6.2 to the current
166 version, exactly what changes were made, and exactly when they were made.
167 Most releases involved so many changes from the previous release as to make
168 "diff files" not very useful, since often the diff files are as long as the
169 code itself. Most of the changes, with the notable exception of the creation
170 of some of the new "main-xxx.c" files for the various new platforms, and a
171 few other minor exceptions generally noted directly in comments in the
172 source, were written by Ben or Robert, either spontaneously, or, more
173 commonly, as the result of a suggestion or comment by an Angband player.
175 The most important modification was a massive "code level cleanup" for 2.7.x, 
176 largely completed in 2.7.8, that made all other modifications much simpler 
177 and safer.  This cleanup was so massive that in many places the code is no 
178 longer recognizable, for example, via "diff -r", often because it was 
179 rewritten from scratch.
181 The second most important modification was the design of a generic "z-term.c"
182 package, which allows Angband to be ported to a new machine with as few as 50
183 lines of code.  Angband 2.9.3 thus runs without modification on many machines,
184 including Macintosh, PowerMac, Unix/X11, Unix/Curses, Amiga, Windows, OS2-386,
185 DOS-386, and even DOS-286.
187 It would be difficult to list all of the changes between Angband 2.6.1 and
188 the current version, because many of them were made in passing during the
189 massive code level cleanup.  Many of the changes are invisible to the user,
190 but still provide increased simplicity and efficiency, and decreased code
191 size, or make other more visable changes possible.  For example, the new
192 "project()" code that handles all bolts, beams, and balls, the new
193 "update_view()" code that simplifies line of sight computation, or the new
194 "generate()" code that builds new levels in the dungeon.  Many changes have
195 been made to increase efficiency, including the new "process_monsters()"
196 and "update_monsters()" functions, and the new "objdes()" and "lite_spot()"
197 routines.  The generic "z-term.c" package yielded efficient screen updates,
198 and enabled the efficient use of "color". 
200 The most visible (to ordinary players) changes that happened as a result of 
201 Ben Harrison's maintainership were (a) a far greater degree of user-
202 customizability as shown by the info.txt files, (b) the "fractional" speed
203 system, with +10 in the new scheme equalling +1 in old money, and
204 (c) object stacking, the ability to have more than one object in a square:
205 first tried in 2.7.9, completed in 2.8.2.
207 It should also be pointed out at this point that the far cleaner nature of 
208 Ben's code as compared to previous versions has given many other people the 
209 opportunity to base code for their own Angband variants on it. And so a 
210 plethora of new variants have appeared, many of them far more different from 
211 Angband now than Angband ever was from Moria, and yet still based on Ben's 
212 coding ideals for Angband.
214 For Angband 2.9.0, the first few new visible features were a random artifact 
215 generator (originally developed from a variant by Greg Wooledge), an option to 
216 improve monster AI (believed to have originally started out life in a patch 
217 written by Keldon Jones), and a patch to allow easier handling of opening and 
218 closing doors and disarming traps (by Tim Baker). For Angband 2.9.1 has also 
219 come such things as the ability to increase the size of the editable textfiles
220 and thus the number of monsters, artifacts, items, ego-items and vaults in 
221 the game (many new vaults were written by Chris Weisiger, some by others, and 
222 the number of vaults in the game at this time was doubled), and much greater 
223 customizability of ego-items has become possible thanks to a patch written by 
224 Matthias Kurzke. It is also now possible to add new character races to the 
225 game, and to edit the shopkeepers with respect to their greed, tolerance of 
226 haggling and reactions to the character based on his race. Angband 2.9.2 adds 
227 support for poison branded weapons to the game.  Angband 2.9.3 made the
228 character class itself customizable to an extent.
231 === A Posting from the Original Author ===
233 From: koeneke@ionet.net (Robert Alan Koeneke)
234 Newsgroups: rec.games.roguelike.angband,rec.games.roguelike.moria
235 Subject: Early history of Moria
236 Date: Wed, 21 Feb 1996 04:20:51 GMT
238 I had some email show up asking about the origin of Moria, and its
239 relation to Rogue.  So I thought I would just post some text on the
240 early days of Moria.
242 First of all, yes, I really am the Robert Koeneke who wrote the first
243 Moria.  I had a lot of mail accussing me of pulling their leg and
244 such.  I just recently connected to Internet (yes, I work for a
245 company in the dark ages where Internet is concerned) and 
246 was real surprised to find Moria in the news groups...  Angband was an
247 even bigger surprise, since I have never seen it.  I probably spoke to
248 its originator though...  I have given permission to lots of people
249 through the years to enhance, modify, or whatever as long as they
250 freely distributed the results.  I have always been a proponent of
251 sharing games, not selling them.
253 Anyway...
255 Around 1980 or 81 I was enrolled in engineering courses at the
256 University of Oklahoma.  The engineering lab ran on a PDP 1170 under
257 an early version of UNIX.  I was always good at computers, so it was
258 natural for me to get to know the system administrators.  They invited
259 me one night to stay and play some games, an early startrek game, The
260 Colossal Cave Adventure (later just 'Adventure'), and late one night,
261 a new dungeon game called 'Rogue'.
263 So yes, I was exposed to Rogue before Moria was even a gleam in my
264 eye.  In fact, Rogue was directly responsible for millions of hours of
265 play time wasted on Moria and its descendents...
267 Soon after playing Rogue (and man, was I HOOKED), I got a job in a
268 different department as a student assistant in computers.  I worked on
269 one of the early VAX 11/780's running VMS, and no games were available
270 for it at that time.  The engineering lab got a real geek of an
271 administrator who thought the only purpose of a computer was WORK!
272 Imagine...  Soooo, no more games, and no more rogue!
274 This was intolerable!  So I decided to write my own rogue game, Moria
275 Beta 1.0.  I had three languages available on my VMS system.  Fortran
276 IV, PASCAL V1.?, and BASIC.  Since most of the game was string
277 manipulation, I wrote the first attempt at Moria in VMS BASIC, and it
278 looked a LOT like Rogue, at least what I could remember of it.  Then I
279 began getting ideas of how to improve it, how it should work
280 differently, and I pretty much didn't touch it for about a year.
282 Around 1983, two things happened that caused Moria to be born in its
283 recognizable form.  I was engaged to be married, and the only cure for
284 THAT is to work so hard you can't think about it; and I was enrolled
285 for fall to take an operating systems class in PASCAL.
287 So, I investigated the new version of VMS PASCAL and found out it had
288 a new feature.  Variable length strings!  Wow...
290 That summer I finished Moria 1.0 in VMS PASCAL.  I learned more about
291 data structures, optimization, and just plain programming that summer
292 then in all of my years in school.  I soon drew a crowd of devoted
293 Moria players...  All at OU.
295 I asked Jimmey Todd, a good friend of mine, to write a better
296 character generator for the game, and so the skills and history were
297 born.  Jimmey helped out on many of the functions in the game as well.
298 This would have been about Moria 2.0
300 In the following two years, I listened a lot to my players and kept
301 making enhancements to the game to fix problems, to challenge them,
302 and to keep them going.  If anyone managed to win, I immediately found
303 out how, and 'enhanced' the game to make it harder.  I once vowed it
304 was 'unbeatable', and a week later a friend of mine beat it!  His
305 character, 'Iggy', was placed into the game as 'The Evil Iggy', and
306 immortalized...  And of course, I went in and plugged up the trick he
307 used to win...
309 Around 1985 I started sending out source to other universities.  Just
310 before a OU / Texas football clash, I was asked to send a copy to the
311 Univeristy of Texas...  I couldn't resist...  I modified it so that
312 the begger on the town level was 'An OU football fan' and they moved
313 at maximum rate.  They also multiplied at maximum rate...  So the
314 first step you took and woke one up, it crossed the floor increasing
315 to hundreds of them and pounded you into oblivion...  I soon received
316 a call and provided instructions on how to 'de-enhance' the game!
318 Around 1986 - 87 I released Moria 4.7, my last official release.  I
319 was working on a Moria 5.0 when I left OU to go to work for American
320 Airlines (and yes, I still work there).  Moria 5.0 was a complete
321 rewrite, and contained many neat enhancements, features, you name it.
322 It had water, streams, lakes, pools, with water monsters.  It had
323 'mysterious orbs' which could be carried like torches for light but
324 also gave off magical aura's (like protection from fire, or aggrivate
325 monster...).  It had new weapons and treasures...  I left it with the
326 student assistants at OU to be finished, but I guess it soon died on
327 the vine.  As far as I know, that source was lost...
329 I gave permission to anyone who asked to work on the game.  Several
330 people asked if they could convert it to 'C', and I said fine as long
331 as a complete credit history was maintained, and that it could NEVER
332 be sold, only given.  So I guess one or more of them succeeded in
333 their efforts to rewrite it in 'C'.
335 I have since received thousands of letters from all over the world
336 from players telling about their exploits, and from administrators
337 cursing the day I was born...  I received mail from behind the iron
338 curtain (while it was still standing) talking about the game on VAX's
339 (which supposedly couldn't be there due to export laws).  I used to
340 have a map with pins for every letter I received, but I gave up on
341 that!
343 I am very happy to learn my creation keeps on going...  I plan to
344 download it and Angband and play them...  Maybe something has been
345 added that will surprise me!  That would be nice...  I never got to
346 play Moria and be surprised...
348 Robert Alan Koeneke
349 koeneke@ionet.net
352 === Previous Versions (outdated) ===
355                           VMS Moria Version 4.8
356 Version 0.1  : 03/25/83
357 Version 1.0  : 05/01/84
358 Version 2.0  : 07/10/84
359 Version 3.0  : 11/20/84
360 Version 4.0  : 01/20/85
362 Modules :
363      V1.0  Dungeon Generator      - RAK
364            Character Generator    - RAK & JWT
365            Moria Module           - RAK
366            Miscellaneous          - RAK & JWT
367      V2.0  Town Level & Misc      - RAK
368      V3.0  Internal Help & Misc   - RAK
369      V4.0  Source Release Version - RAK
371 Robert Alan Koeneke               Jimmey Wayne Todd Jr.
372 Student/University of Oklahoma    Student/University of Oklahoma
378                         Umoria Version 5.2 (formerly UNIX Moria)
379 Version 4.83 :  5/14/87
380 Version 4.85 : 10/26/87
381 Version 4.87 :  5/27/88
382 Version 5.0  :  11/2/89
383 Version 5.2  :   5/9/90
385 James E. Wilson, U.C. Berkeley
386                  wilson@ernie.Berkeley.EDU
387                  ...!ucbvax!ucbernie!wilson
389 Other contributors:
390 D. G. Kneller         - MSDOS Moria port
391 Christopher J. Stuart - recall, options, inventory, and running code
392 Curtis McCauley       - Macintosh Moria port
393 Stephen A. Jacobs     - Atari ST Moria port
394 William Setzer        - object naming code
395 David J. Grabiner     - numerous bug reports, and consistency checking
396 Dan Bernstein         - UNIX hangup signal fix, many bug fixes
397 and many others...
402 Copyright (c) 1989 James E. Wilson, Robert A. Keoneke
403   This software may be copied and distributed for educational, research, and
404   not for profit purposes provided that this copyright and statement are
405   included in all such copies.
407 Umoria Version 5.2, patch level 1
409 Angband Version 2.0   Alex Cutler, Andy Astrand, Sean Marsh, Geoff Hill, 
410                       Charles Teague.
412 Angband Version 2.4   : 05/09/1993
414 Angband Version 2.5   : 12/05/1993 Charles Swiger
416 Angband Version 2.6   : 09/04/1994 Charles Swiger
418 Angband Version 2.7   : 01/01/1995 Ben Harrison
420 Angband Version 2.8   : 01/01/1997 Ben Harrison
422 Angband Version 2.9   : 10th April 2000 Robert Ruehlmann
426 Copyright (c) 1997 Ben Harrison, James E. Wilson, Robert A. Koeneke
428 This software may be copied and distributed for educational, research,
429 and not for profit purposes provided that this copyright and statement
430 are included in all such copies.  Other copyrights may also apply.
433 All changes made by Ben Harrison and Robert Ruehlmann are also available
434 under the GNU GENERAL PUBLIC LICENSE.  Note that this doesn't influence
435 the current distribution, since parts of the source are still only
436 available under the old Moria/Angband license.  Until all parts of
437 Angband are distributed under the GPL the only valid license remains
438 the original Moria/Angband license.
441 === Contributors (incomplete) ===
443 Peter Berger, "Prfnoff", Arcum Dagsson, Ed Cogburn, Matthias Kurzke,
444 Ben Harrison, Steven Fuerst, Julian Lighton, Andrew Hill, Werner Baer,
445 Tom Morton, "Cyric the Mad", Chris Kern, Tim Baker, Jurriaan Kalkman,
446 Alexander Wilkins, Mauro Scarpa, John I'anson-Holton, "facade",
447 Dennis van Es, Kenneth A. Strom, Wei-Hwa Huang, Nikodemus, Timo Pietilä,
448 Greg Wooledge, Keldon Jones, Shayne Steele, Dr. Andrew White, Musus Umbra,
449 Jonathan Ellis