The current version is 3.4. Detailed information about this version and previous versions can be found at http://rephial.org. Also additional information can be found at the angband forums (http://angband.oook.cz) or the newsgroup (rec.games.roguelike.angband).
This file was last updated for Angband 3.1.2 and remains here mainly for historical purposes.
Angband has an incredibly complex history, and is the result of a lot of work by a lot of people, all of whom have contributed their time and energy for free, being rewarded only by the pleasure of keeping alive one of the best freeware games available anywhere.
The version control files, if they existed, would span more than ten years time, and more than six different primary developers. Without such files, we must rely on simpler methods, such as change logs, source file diffs, and word of mouth. Some of this information is summarised in this file.
Please be sure to read the copyright information contained in the file 'copying.txt'.
First came "VMS Moria", by Robert Alan Koeneke (1985).
Then came "Umoria" (Unix Moria), by James E. Wilson (1989).
Details about the history of the various flavors of "Moria", the direct ancestor to Angband, can be found elsewhere, and a note from Robert Alan Koeneke is included in this file. Note that "Moria" has been ported to a variety of platforms, and has its own newsgroup, and its own fans.
In 1990, Alex Cutler and Andy Astrand, with the help of other students at the University of Warwick, created Angband 1.0, based on the existing code for Umoria 5.2.1. They wanted to expand the game, keeping or even strengthening the grounding in Tolkien lore, while adding more monsters and items, including unique monsters and artifact items, plus activation, pseudo-sensing, level feelings, and special dungeon rooms.
Over time, Sean Marsh, Geoff Hill, Charles Teague, and others, worked on the source, releasing a copy known as "Angband 2.4.frog_knows" at some point, which ran only on Unix systems, but which was ported by various people to various other systems. One of the most significant ports was the "PC Angband 1.4" port, for old DOS machines, which added color and various other significant changes, only some of which ever made it back into the official source.
Then Charles Swiger (firstname.lastname@example.org) took over, sometime in late 1993, cleaning up the code, fixing a lot of bugs, and bringing together various patches from various people, resulting in several versions of Angband, starting with Angband 2.5.1 (?), and leading up to the release of Angband 2.6.1 (and Angband 2.6.2) in late 1994. Some of the changes during this period were based on suggestions from the "net", and from various related games, including "UMoria 5.5", "PC Angband 1.4", and "FAngband".
Angband 2.6.1 was primarily targetted towards Unix/NeXT machines, and it required the use of the low level "curses" commands for all screen manipulation and keypress interaction. Each release had to be ported from scratch to any new platforms, normally by creating visual display code that acted as a "curses" emulator. One such port was "Macintosh Angband 2.6.1", by Keith Randall, which added support for color, and which formed the basis for the first release of Angband 2.7.0.
During the last half of 1994, Ben Harrison had been playing with the Angband source, primarily to investigate the possibility of making some kind of automatic player for Angband, like the old "rogue-o-matic" program for the game "Rogue". The difficulty of compiling a version for the Macintosh, and the complexity of the code, prevented this, and so Ben began cleaning up the code in various ways for his personal use.
In late 1994, Charles Swiger announced that he was starting a real job and would no longer be able to be the Angband maintainer. This induced some amount of uproar in the Angband community (as represented by the Angband newsgroup), with various people attempting to form "committees" to take over the maintenance of Angband. Since committees have never given us anything but trouble (think "COBOL"), there was very little resistance when, on the first day of 1995, Ben made his code available, calling it "Angband 2.7.0", and by default, taking over as the new maintainer of Angband.
Angband 2.7.0 was a very clean (but very buggy) rewrite that, among other things, allowed extremely simple porting to multiple platforms, starting with Unix and Macintosh, and by the time most of the bugs were cleaned up, in Angband 2.7.2, including X11, and various IBM machines. Angband 2.7.4 was released to the "ftp.cis.ksu.edu" site, and quickly gained acceptance, perhaps helped by the OS2 and Windows and Amiga and Linux ports. Angband 2.7.5 and 2.7.6 added important capabilities such as macros and user pref files, and continued to clean up the source. Angband 2.7.8 was released to the major ftp archives as the first "stable" version in a year or so, with new "help files" and "spoiler files" for the "online help", plus a variety of minor tweaks and some new features.
After Angband 2.7.8 was released, Ben created a web site to keep track of all the changes made in each version (though a few may have been missed), and acquired the use of a new developement ftp server to supplement the official "mirror" server. This web site is now permanently located at the Official Angband Home Page (http://www.thangorodrim.net/). Unfortunately, the next six versions were numbered Angband 2.7.9v1 to Angband 2.7.9v6, but really each were rather major updates. Angband 2.8.0 and 2.8.1 were released using a more normal version scheme. Angband 2.8.2 and 2.8.3 add a few random features, clean up some code, and provide graphics support and such for a few more platforms.
After the release of Angband 2.8.3 Ben's free time was more and more occupied by his work. He released a beta version of Angband 2.8.5, introducing many new features, but couldn't give as much attention to maintaining the game as he wanted to. Meanwhile, an "unofficial" version by Robert Ruehlmann, incorporating three popular patches (the "Easy Patch" by Tim Baker, for opening doors and disarming traps without specifying the direction: Greg Wooledge's "Random Artifacts" patch: and Keldon Jones's "Optional Monster AI Improvement"), named "2.8.3h", was gaining popularity.
So in March 2000, Robert Ruehlmann offered to take over Angband and started to fix the remaining bugs in the Angband 2.8.5 beta. The resulting version was to be released as Angband 2.9.0. Further bugfixes and a couple of new features - including many in the realms of user-customizability, with greater control over ego-items, player races and classes, monsters, items and artifacts - have led to the current version.
And with the greater amount of user-customizability that is now possible, it was inevitable that SOMEBODY would eventually go and actually do something with it. Jonathan Ellis started customizing the user-editable text files in the 'edit' directory for his own personal use - originally, only by fixing bugs and inconsistencies (less powerful monsters being worth more experience per kill than more powerful ones, dragons doing a decent amount of damage in melee, monsters with two claws and one mouth getting one claw and three bite attacks, and so on).
At first, this was all that could really be done with it: adding new monsters and items was impossible, as the limits were fixed. And so only three new monsters made an appearance, each of them replacing an existing monster in the order: and one new artifact - "The Palantir of Westernesse". Gameplay balance could be tweaked somewhat, by changing the level, power and rarity of certain items and monsters: and some changes were made, mostly with the attempt to reduce the notorious "triple whammy" effect of needing poison, confusion and nether resistance (or over 550 hps, if without nether resistance) all at once, straight after passing 2000', forcing excessive scumming before this depth or risking unavoidable instant death: and then having nothing left to do but dive straight to 4000' and scum for speed items, missing out on some of the most interesting depths of the dungeon. This problem, at least, could be addressed, but actual new things were less easy to add...
That all changed with Angband 2.9.1, which for the first time moved the limits themselves to a separate user-editable file, and allowed more monsters and items to be created without removing the old ones. At the same time, a patch by Matthias Kurzke was incorporated which allowed the creation of new ego-items. Various new powers, for the player and monsters, were added to the game - but no items or monsters yet had these powers (resist fear, poison brand, lose charisma, summon greater demons, and so on): indeed, arguably it could be said that the game had not even adjusted properly to Ben Harrison's fractional speed system (Angband 2.7.0) or the addition of the other attack forms such as shards, sound, chaos, nexus and so on (even before Ben.)
The Official Angband Home Page (http://rephial.org/) serves not only as the most up to date description of Angband, but also lists changes made between versions, and changes planned for upcoming versions, and lists various email addresses and web sites related to Angband.
It is very hard to pin down, along the way from 2.6.2 to 3.0.6, exactly what changes were made, and exactly when they were made. Most releases involved so many changes from the previous release as to make "diff files" not very useful, since often the diff files are as long as the code itself. Most of the changes, with the notable exception of the creation of some of the new 'main-xxx.c' files for the various new platforms, and a few other minor exceptions generally noted directly in comments in the source, were written by Ben or Robert, either spontaneously, or, more commonly, as the result of a suggestion or comment by an Angband player.
The most important modification was a massive "code level cleanup" for 2.7.x, largely completed in 2.7.8, that made all other modifications much simpler and safer. This cleanup was so massive that in many places the code is no longer recognizable, for example, via "diff -r", often because it was rewritten from scratch.
The second most important modification was the design of a generic 'z-term.c' package, which allows Angband to be ported to a new machine with as few as 50 lines of code. Angband 2.9.3 thus runs without modification on many machines, including Macintosh, PowerMac, Unix/X11, Unix/Curses, Amiga, Windows, OS2-386, DOS-386, and even DOS-286.
It would be difficult to list all of the changes between Angband 2.6.1 and 3.0.6, because many of them were made in passing during the massive code level cleanup. Many of the changes are invisible to the user, but still provide increased simplicity and efficiency, and decreased code size, or make other more visable changes possible. For example, the new 'project()' code that handles all bolts, beams, and balls, the new 'update_view()' code that simplifies line of sight computation, or the new 'generate()' code that builds new levels in the dungeon. Many changes have been made to increase efficiency, including the new 'process_monsters()' and 'update_monsters()' functions, and the new 'objdes()' and 'light_spot()' routines. The generic 'z-term.c' package yielded efficient screen updates, and enabled the efficient use of color.
The most visible (to ordinary players) changes that happened as a result of Ben Harrison's maintainership were:
It should also be pointed out at this point that the far cleaner nature of Ben's code as compared to previous versions has given many other people the opportunity to base code for their own Angband variants on it. And so a plethora of new variants have appeared, many of them far more different from Angband now than Angband ever was from Moria, and yet still based on Ben's coding ideals for Angband.
For Angband 2.9.0, the first few new visible features were a random artifact generator (originally developed from a variant by Greg Wooledge), an option to improve monster AI (believed to have originally started out life in a patch written by Keldon Jones), and a patch to allow easier handling of opening and closing doors and disarming traps (by Tim Baker). For Angband 2.9.1 has also come such things as the ability to increase the size of the editable textfiles and thus the number of monsters, artifacts, items, ego-items and vaults in the game (many new vaults were written by Chris Weisiger, some by others, and the number of vaults in the game at this time was doubled), and much greater customizability of ego-items has become possible thanks to a patch written by Matthias Kurzke. It is also now possible to add new character races to the game, and to edit the shopkeepers with respect to their greed, tolerance of haggling and reactions to the character based on his race. Angband 2.9.2 adds support for poison branded weapons to the game. Angband 2.9.3 made the character class itself customizable to an extent.
|Character Generator||RAK & JWT|
|Miscellaneous||RAK & JWT|
|V2.0||Town Level & Misc||RAK|
|V3.0||Internal Help & Misc||RAK|
|V4.0||Source Release Version||RAK|
|Robert Alan Koeneke||Jimmey Wayne Todd Jr.|
|Student/University of Oklahoma||Student/University of Oklahoma|
|D. G. Kneller||MSDOS Moria port|
|Christopher J. Stuart||recall, options, inventory, and running code|
|Curtis McCauley||Macintosh Moria port|
|Stephen A. Jacobs||Atari ST Moria port|
|William Setzer||object naming code|
|David J. Grabiner||numerous bug reports, and consistency checking|
|Dan Bernstein||UNIX hangup signal fix, many bug fixes|
|and many others...|
Peter Berger, "Prfnoff", Arcum Dagsson, Ed Cogburn, Matthias Kurzke, Ben Harrison, Steven Fuerst, Julian Lighton, Andrew Hill, Werner Baer, Tom Morton, "Cyric the Mad", Chris Kern, Tim Baker, Jurriaan Kalkman, Alexander Wilkins, Mauro Scarpa, John I'anson-Holton, "facade", Dennis van Es, Kenneth A. Strom, Wei-Hwa Huang, Nikodemus, Timo Pietilä, Greg Wooledge, Keldon Jones, Shayne Steele, Dr. Andrew White, Musus Umbra, Jonathan Ellis