=== Hellband History and Information ===

=== Hellband as you play it now ===

Hellband like many variants had lost its maintainer on the way ( Real Life tends
to get in the way of Variant Maintainers ) but I still played it on a regular
basis. In December 2005 in a cosy cabin with a wood stove, a frozen lake outside
and screaming children inside I dusted off my copy of Hellband and started 
playing. And suddenly the light came; I had a whole week of unfettered access to
a computer without being sucked into the Internet. Thus came the idea of taking
over Hellband. I actually have a nineteenth century copy of Dante's work ( in 
French ) and I have always been fascinated by his story. I originally just 
modified r_info, I didnt want to go full out. Then of course I had monsters
from all circles walking together in the dungeon, so the moment I came home I
made shielded levels. And then of course, I needed to remove all Tolkien and Z
things, which required more coding. And from then on it dawned that I would be
stuck on this variant for a while... I do have three children and a wife so I
cant really say how long I can keep maintaining this variant, but so far it has
been nothing but joy.

Konijn

=== Hellband as maintained up to version 1.0.3 ===

Hellband is a variant of a variant of a variant of Angband. It is maintained by 
the original Cthangband author (me, Dean Anderson).
The reasons for the existence of Hellband lie in the history of Cthangband.

Cthangband underwent a significant change between versions 3.1.2 and 4.0.0 with 
the removal of levels and classes. After much playing (and a bugfix 4.0.1 
version), I became disillusioned with Cthangband. The 'experiment' that was the 
level-less skill system was - in my mind - a failure. I actually found that I 
preferred playing the standard Angband to playing Cthangband.

Although I was losing interest in continuing the development of Cthangband in 
the direction it was going, I didn't want to see it die - so I passed 
maintainership over to someone else. Citing the lack of time to develop the game 
due to other commitments, I dropped out of the rec.games.roguelike.angband 
newsgroup.

Now, four years later, I found myself with renewed interest in Angband. I now 
have a baby daughter, and Angband (being turn-based and generally silent) is an 
ideal game to play whilst she is asleep in that it doesn't disturb her and is 
easy to play for a short time and then come back to.

I decided I wanted to start programming and developing Angband again, but I had 
a dilemma, not only had I passed maintainership of 'my' variant to someone else 
(and it would not be fair to try to snatch it back again) but it would also put 
me straight back into the situation I was in before - maintaining a variant that 
I had lost interest in.

So... I decided to go make a *NEW* variant.

I needed a different theme from the Lovecraftian theme of Cthangband, and after 
mulling over a few ideas I came up with using Dante's Inferno. And so Hellband 
(Hell-Angband) was born, with creatures and concepts (very) loosely based on 
Dante's Inferno (part 2 of his 'Divine Comedy').

I took Cthangband 3.1.2 as a starting point, and the first thing I did was grab 
the features I liked from Cthangband 4.0.0/4.0.1. Once I had done that, it was 
just a matter of replacing the Cthuloid stuff with stuff more along the lines of 
Fallen Angels and Devils.

Naturally, a few extra changes sneaked in here and there...

Hellband 1.0.0 was never released, and was just written and played for my own 
enjoyment.

Hellband 1.0.1 mainly just involved the rewriting of the help system. However, 
whilst going through the game in detail in order to extract the information 
needed for the help files, it became apparent that there were various small 
'tweaks' needed - as well as the occasional new feature... so a re-release with 
new help files turned into a new version. This version was only released to a 
few friends.

Hellband 1.0.2 was necessary because a change of name was needed. This variant 
was originally going to be called 'Dangband' (a contraction of 'Dante-Angband') 
but that name was already in use by another Angband variant. Before making a 
proper public release, I renamed this variant to 'Hellband' - a name partly 
chosen because the variant involves a descent into hell and partly chosen as a 
pun on the word 'hellbound'. Naturally, a very small number of minor changes to 
the sourcecode sneaked in there as well...

=== Cthangband History and Information === 

Cthangband started life as version 2.1.0 of Zangband. Dean Anderson (me) had 
been playing Angband and its variants for years, ever since finding Moria on the 
old VMS computers at university in the '80s. While each one was good in its own 
way, none of them was 'just right'. So, he got out his trusty compiler, and set 
out to make the ideal Angband for himself.

He took Zangband as a base point, as he liked the changes in mechanics that it 
brought to the game, particularly the realms of magic. However, Zangband had far 
too many 'silly' or out-of-genre elements for his liking so he set about 
changing them. In particular, he was not a fan of the Zelazny 'Amber' setting 
that Zangband used, and being a big Lovecraft fan he was slightly offended that 
the Cthuloid entities were overshadowed by so many other monsters. He changed 
the setting to be Lovecraft's 'Dreamlands', and brought the Cthuloid entities to 
the top of the monster list, making them the toughest creatures in the game.

After a mainly cosmetic change, he released 'Cthangband 2.1.0' to the world, and 
was surprised to find that people liked it and wanted more. So, he wrote the 
'Multiple Town & Dungeon' system, as it was something that he had thought for a 
long time should be in the game. This, with more changes to the actual system 
(rather than the cosmetic changes of 2.1.0) became 'Cthangband 3.0.0'.

Cthangband 3.0.1 was supposed to be just a 'bug-fix' release, however it also 
incorporated a few extra routines that he could not resist putting in (like the 
'Quick-Start' option) and bits of code that a number of authors had added to 
Zangband since Cthangband had split off from it.

Cthangband 3.1.0 included a new speed system, as well as various tweaks and 
updates to the code.

Cthangband 3.1.1 and 3.1.2 were both bug-fix versions, but (as usual) extra 
features seem to have sneaked in.

Cthangband 4.0.0 saw more major changes - involving the removal of the entire 
class/level system and its replacement with a unified skill system.

Cthangband 4.0.1 is mainly a bug-fix version, tweaking the values used in the 
skill system for play balance.

=== Zangband History and Information === 

The seeds of Zangband lie in an obsolete and long ago vanished PC variant 
(somewhat misleadingly) dubbed Angband--. The variant was written by a hopeless 
Angband addict (previously Moria veteran and winner) who got bored with the 
standard monsters and wanted to introduce some new monsters.

Angband-- was based on the PC Angband 1.31 sources, and it was set in Roger 
Zelazny's 'Amber' universe. Later this individual got a better computer and 
learned to code, and produced the PC Zangband, and most Angband-- monsters 
survived into PC Zangband 1.0. PC Zangband 1.0 was the first PC Angband to 
introduce (simple, font- based) graphics, which were also used in the graphical 
PC Angband 1.40. Yet this individual was still not cured of his addiction... his 
almost as strong addiction to the Civilization style fantasy strategy game 
'Master of Magic' inspired him to write a new magic system.

The current version of Zangband (2.*) incorporates this magic system, as well as 
the best features from Angband-- and PC Zangband 1.0. It is based on the Angband 
2.8.1 sources (by Ben Harrison), and is therefore portable to other systems 
(unlike the earlier versions which were for dos-pc's only).

Incidentally, this person (me, Topi Ylinen) also thought that the standard 
Angband monsters were too easy, which led him to introduce such monsters as 
Death swords, Cyberdemons and Great wyrms of power...

Special thanks -- The current version of Zangband might not have come into 
existence without the significant help from these excellent Angband programmers:

Ben Harrison, for obvious reasons. Greg Wooledge, who pointed out a bug in the 
dos compiler, which was preventing my progress with the first 2.* version of 
Zangband. Julian Lighton, who must have sent me more ideas, patches, and bug 
reports, than all the others toghether. Robert Ruehlmann, whose nice new main-
ibm.c enables SVGA graphics and even windows in ms-dos. Paul Sexton, who is 
responsible for about 50% of the
new code in 2.1.0.

=== Brief Version History (of standard Angband) === 

First came "VMS Moria", by Robert Alan Koeneke (1985). Then came "Umoria" (Unix 
Moria), by James E. Wilson (1989). 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. Then Charles Swiger (cs4w+@andrew.cmu.edu) attempted to clean up 
the mess, resulting in several versions, starting sometime around November, 
1993, with Angband 2.5.1 (more or less) and leading up to Angband 2.6.2 in late 
1994.

Several people ported (the primarily Unix/NeXT centered) Angband 2.6.1 to other 
platforms, including Keith Randall, who made a Macintosh port that added support 
for color usage. Some of the changes during this period were based on 
suggestions from the "net", PC Angband 1.40, UMoria 5.5, and some of the Angband 
"variations", such as FAngband.

Finally, I (Ben Harrison) took over in late 1994 when Charles Swiger left. 
Initially my intention was simply to clean up what had become, after ten years, 
a rather unholy mess, but the deeper I delved into the code, the more it became 
apparent that drastic changes were needed, so, starting with MacAngband 2.6.1, I 
began a more or less total rewrite,
resulting, eventually, in Angband 2.7.0, released around January first, 1995.

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 
designed to supply another "stable" version that we can all give to our friends, 
with new "help files" and "spoiler files" for the "online help", plus a variety 
of minor tweaks and some new features.

Angband 2.7.9 optimized a few things, and tweaked a few other things, and 
cleaned up a few other things, and introduced a few minor semantic changes. It 
is very hard to pin down, along the way from 2.6.2 to 2.7.0, and thence to 
2.7.8, exactly what was added exactly when. Most of these steps involved so many 
changes as to make "diff files" not very useful, since often the diff files were 
as long as the code itself.

Most of the changes, with the notable exception of the creation of the new 
"main-xxx.c" files for the various new platforms, and a few other exceptions 
generally noted in the source, were written by myself, either spontaneously, or, 
more commonly, as the result of a suggestion or comment by an Angband player. So 
if you have any problems with anything that you do not recognize from older 
versions, you can blame them on me. And if you like the new features and such, 
you can send me a brief little "thank you" email (to benh@voicenet.com) or 
something...

The Official Angband Home Page ("http://www.voicenet.com/~benh/Angband/") was 
created along with Angband 2.7.9 to serve as an up to date description of any 
bugs found in various versions, and to list all of the people whose email 
addresses I kept having to look up.

=== Some of the changes from Angband 2.6.1 to Angband 2.7.9 === 

The most important modification was a massive "code level cleanup" that made all 
of my 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 "term.c" 
package, which allows Angband to be ported to a new machine with as few as 50 
lines of code. Angband 2.7.9 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 
Angband 2.7.9, 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 
visible 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 "lite_spot()" routines. The generic "Term" package yielded efficient screen 
updates, and enabled the efficient use of "color". But anyway, here are a few 
things that come to mind, in no particular order, and with very little time or 
effort.

Somehow I managed to put off updating this file to the very end, and it will 
just have to do for now. The recent changes (and bug fixes) can be found at the 
Official Angband Home Page.

color
macros
keymaps
user pref files
generic feature array, with template file
generic object array, with template file
generic artefact array, with template file
generic ego-item array, with template file
generic monster array, with template file
generic vault array, with template file
binary image files for the template files
special stat effect tables
a special table of spells
a special table of options
inventory tagging
inventory restrictions
using objects off the floor
various new runtime options
the new "destroy" command
the new "examine" command
the new "note" command
the new "dump screen" command
the new "load screen" command
the new "un-inscribe" command
the new "change visuals" command
the new "change colors" command
the new "change macros" command
the new "save game" command
the new "fire" vs "throw" commands
rearranged equipment slots
a standard bow slot
an extra inventory slot
an underlying keyset
refueling torches
better monster memory
nicer targetting mode
object stacking
the recall window
the choice window
the mirror window
new high score code
special lighting effects
intelligent monsters
new monster flags
text formatting code
much cleaner store code
generic spell projections
scrolls of *identify*
maximize mode
preserve mode
new inscription code
new message recall code
new spell and prayer code
massive cleanup of effects code
new object allocation routines
powerful (but simple) on line help
robust savefile
cheat preventers
new official cheating options
new blindness code
new hallucination code
optimized object description code
new keypress input routines
actual object discounts
fractional (assymptotic) speed
postponing updates/redraws
run-time price determination
better wizard commands
the automatic player
launchers of extra shots
elemental ignore flags
new ego-item types
new player ghost creation
no more sliding objects
no more sliding monsters
new object flags
new chest trap code
regularized the artifact code
regularized the ego-item code
new monster abilities
new monster spell attacks
some new store owners
run-time skill computation
player kills vs anscestor kills
better room illumination code
better group monster code
table access through pointers
more redefinable constants
slightly new screen layout
extreme code cleaning
extreme optimizations 

=== A Posting from the Original Author === 

From: koeneke@ionet.net (Robert Alan Koeneke)
Newsgroups: rec.games.roguelike.angband,rec.games.roguelike.moria
Subject: Early history of Moria
Date: Wed, 21 Feb 1996 04:20:51 GMT 

I had some email show up asking about the origin of Moria, and its relation to 
Rogue. So I thought I would just post some text on the early days of Moria.

First of all, yes, I really am the Robert Koeneke who wrote the first Moria. I 
had a lot of mail accussing me of pulling their leg and such. I just recently 
connected to Internet (yes, I work for a company in the dark ages where Internet 
is concerned) and was real surprised to find Moria in the news groups... Angband 
was an even bigger surprise, since I have never seen it. I probably spoke to its 
originator though...

I have given permission to lots of people through the years to enhance, modify, 
or whatever as long as they freely distributed the results. I have always been a 
proponent of sharing games, not selling them. Anyway... Around 1980 or 81 I was 
enrolled in engineering courses at the University of Oklahoma. The engineering 
lab ran on a PDP 1170 under an early version of UNIX. I was always good at 
computers, so it was natural for me to get to know the system administrators.

They invited me one night to stay and play some games, an early startrek game, 
The Colossal Cave Adventure (later just 'Adventure'), and late one night, a new 
dungeon game called 'Rogue'. So yes, I was exposed to Rogue before Moria was 
even a gleam in my eye. In fact, Rogue was directly responsible for millions of 
hours of play time wasted on Moria and its descendents...

Soon after playing Rogue (and man, was I HOOKED), I got a job in a different 
department as a student assistant in computers. I worked on one of the early VAX 
11/780's running VMS, and no games were available for it at that time. The 
engineering lab got a real geek of an administrator who thought the only purpose 
of a computer was WORK! Imagine... Soooo, no more games, and no more rogue! This 
was intolerable! So I decided to write my own rogue game, Moria Beta 1.0.

I had three languages available on my VMS system. Fortran IV, PASCAL V1.?, and 
BASIC. Since most of the game was string manipulation, I wrote the first attempt 
at Moria in VMS BASIC, and it looked a LOT like Rogue, at least what I could 
remember of it. Then I began getting ideas of how to improve it, how it should 
work differently, and I pretty much didn't touch it for about a year.

Around 1983, two things happened that caused Moria to be born in its 
recognizable form. I was engaged to be married, and the only cure for THAT is to 
work so hard you can't think about it; and I was enrolled for fall to take an 
operating systems class in PASCAL. So, I investigated the new version of VMS 
PASCAL and found out it had a new feature. Variable length strings! Wow...

That summer I finished Moria 1.0 in VMS PASCAL. I learned more about data 
structures, optimization, and just plain programming that summer then in all of 
my years in school. I soon drew a crowd of devoted Moria players... All at OU. I 
asked Jimmey Todd, a good friend of mine, to write a better character generator 
for the game, and so the skills and history were born. Jimmey helped out on many 
of the functions in the game as well. This would have been about Moria 2.0

In the following two years, I listened a lot to my players and kept making 
enhancements to the game to fix problems, to challenge them, and to keep them 
going. If anyone managed to win, I immediately found out how, and 'enhanced' the 
game to make it harder. I once vowed it was 'unbeatable', and a week later a 
friend of mine beat it! His character, 'Iggy', was placed into the game as 'The 
Evil Iggy', and immortalized... And of course, I went in and plugged up the 
trick he used to win...

Around 1985 I started sending out source to other universities. Just before a OU 
/ Texas football clash, I was asked to send a copy to the Univeristy of Texas... 
I couldn't resist... I modified it so that the begger on the town level was 'An 
OU football fan' and they moved at maximum rate. They also multiplied at maximum 
rate... So the first step you took and woke one up, it crossed the floor 
increasing to hundreds of them and pounded you into oblivion... I soon received 
a call and provided instructions on how to 'de-enhance' the game!

Around 1986 - 87 I released Moria 4.7, my last official release. I was working 
on a Moria 5.0 when I left OU to go to work for American Airlines (and yes, I 
still work there). Moria 5.0 was a complete rewrite, and contained many neat 
enhancements, features, you name it. It had water, streams, lakes, pools, with 
water monsters. It had 'mysterious orbs' which could be carried like torches for 
light but also gave off magical aura's (like protection from fire, or aggravate 
monster...). It had new weapons and treasures... I left it with the student 
assistants at OU to be finished, but I guess it soon died on the vine. As far as 
I know, that source was lost... I gave permission to anyone who asked to work on 
the game. Several people asked if they could convert it to 'C', and I said fine 
as long as a complete credit history was maintained, and that it could NEVER be 
sold, only given. So I guess one or more of them succeeded in their efforts to 
rewrite it in 'C'.

I have since received thousands of letters from all over the world from players 
telling about their exploits, and from administrators cursing the day I was 
born... I received mail from behind the iron curtain (while it was still 
standing) talking about the game on VAX's (which supposedly couldn't be there 
due to export laws). I used to have a map with pins for every letter I received, 
but I gave up on that!

I am very happy to learn my creation keeps on going... I plan to download it and 
Angband and play them... Maybe something has been added that will surprise me! 
That would be nice... I never got to play Moria and be surprised...

Robert Alan Koeneke koeneke@ionet.net 

=== Previous Versions (outdated) === 

VMS Moria Version 4.8 

Version 0.1 : 03/25/83
Version 1.0 : 05/01/84
Version 2.0 : 07/10/84
Version 3.0 : 11/20/84
Version 4.0 : 01/20/85 

Modules :

V1.0
Dungeon Generator - RAK
Character Generator - RAK & JWT
Moria Module - RAK
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 

Umoria Version 5.2 (formerly UNIX Moria)
Version 4.83 : 5/14/87
Version 4.85 : 10/26/87
Version 4.87 : 5/27/88
Version 5.0 : 11/2/89
Version 5.2 : 5/9/90

James E. Wilson,
U.C. Berkeley
wilson@ernie.Berkeley.EDU
...!ucbvax!ucbernie!wilson 

Other contributors:
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... 

Copyright (c) 1989 James E. Wilson, Robert A. Keoneke This software may be 
copied and distributed for educational, research, and not for profit purposes 
provided that this copyright and statement are included in all such copies. 

Umoria Version 5.2, patch level 1

Angband Version 2.0
Alex Cutler, Andy Astrand, Sean Marsh, Geoff Hill, Charles Teague.

Angband Version 2.4 : 5/09/93
Angband Version 2.5 : 12/05/93 Charles Swiger.
Angband Version 2.6 : 9/04/94
Angband Version 2.7 : 1/1/95 Ben Harrison
