Timeline — Research Notes
The Crossfire Development Timeline was reconstructed from primary sources rather than written from memory. This page records where the material came from, what it turned up, which of the timeline's own claims had to be corrected along the way, and what was not examined. It exists so the timeline can be checked, extended, or disagreed with.
Sources examined
| Source | Coverage | What it yielded |
|---|---|---|
| rec.games.programmer | 1992 | The three earliest public records of the game. Moved the timeline's start back four months and supplied Johansen's own statement of design intent. |
| Early mailing list archives | 1992–1996 | Release announcements for 0.88.0 through 0.92.7, verbatim, with send dates. |
| Release announcement pages | 55 pages, 0.91.7–1.75.0 | Per-release summaries in the maintainer's own words; the backbone of the pre-2000 entries. |
| crossfire-announce archives | 34 periods, Jun 2000–Aug 2025 | Authoritative send dates for every announced release. Corrected 13 dates and revealed four client releases the timeline was missing. |
| Release tarballs | 448 files | The CHANGES files the announcements kept referring to — 50 server archives, cumulative, the 1.3.0 copy running to 7,394 lines and covering 1994–2002. |
| Map archives (same directory) | 0.91.8–1.75.0 | Diffed by file count and top-level region to date content additions the announcements never mentioned. |
| Git repositories | 13 repos, ~42k commits | server, arch, maps, client, jxclient, metaserver, sounds, gridarta, retro-arch, web-client, Flathub packaging, Spell Shuffle and ElvenLands branches. |
| Project news archive | 29 years, 1999–2027 | Client releases, community infrastructure and convention appearances that leave no trace in any commit history. |
| Screenshot archive | clients and editors | The Gridarta, JXClient, GTK-v2 and DockWindow images used on the timeline. |
DEVELOPERS file | added 1999, removed 2014 | Recovered from git history; identifies contributors by full name and self-described role. |
| Map creator headers | whole map set | Created: / Modified: lines giving per-map authorship and dates. |
| Windows client archives | 1999 | Four builds of a native Win32 client, with its readme. |
| Website git repository | 1,810 commits from 2016 | Creation dates for site sections — how the Discord page was dated. |
Principal findings
Origins
1992·May·04The game's first public appearance
A Usenet post headed "Co-developers for X-Windows game wanted", offering version 0.2
as a 176,582-byte tarball from a borrowed /tmp directory on ftp.uu.net. Four months
earlier than any record the project itself retains.
1992·Jun·29v0.8, and the move to Oslo
Distribution moves to ftp.ifi.uio.no:/pub/crossfire, its home for the rest of the
decade. The post also proves the mailing list already existed — three months before the
earliest message the project's own archive preserves — and that Kjetil Torgrim Homme
administered it.
1992·Sep·25Johansen states the design intent
Answering "what are you all doing?", he describes the lineage the project still claims — Gauntlet first, then Nethack, then Ultima — and, four months before 0.88.0 shipped, the architecture:
"I'm trying to write the game in a way that makes it fairly easy to expand, trying to move stuff from the code into separate data-files, hoping to make editors for those data-files in the future."
That is the archetype system, described as an intention before it existed. Everything downstream — crossedit, Gridarta, the classic and retro image sets — follows from it.
rec.games.programmerThings the release notes did not mention
Announcements track code. Content arrived quietly in the maps tarball, and is only visible by diffing the archives.
1998·Jan·05Pup Land
The 0.93.7 announcement says there is "no real notable change worth mentioning". The map archive grew from 677 files to 1,040 in that release — a 54% jump — because Pup Land arrived. The largest content addition of the 1990s, entirely unremarked.
maps archive, 0.93.6 vs 0.93.71996 & 1998Lake Country and Dragon Island
Both regions appear in the map archives (0.92.5 and 0.95.1 respectively) with no mention in either release announcement.
maps archivesSystems dated from the CHANGES files
1994·Feb·17Crossfire had forked, and was repaired by hand
The 0.90.1 CHANGES records that "crossedit 0.7 was merged in with the 0.90.0 source. This once again creates a common distribution." Mark Wedel's first release as maintainer was a reunification: artifact code and cursed items from one line, font filepaths and bitmap handling from the other, many patches "implemented by hand". The archetype directory structure adopted in that merge is still the shape of the arch tree.
CHANGES (0.90.1)1994·Mar·08"Changes from the Berkeley Folks", and runes
A section heading in the 0.90.2 CHANGES marks a distinct contribution stream from Peter Mardahl and
others at Berkeley: spell level-dependency tunable at runtime, superimposing protection spells with
diminishing returns, an invoke casting interface — and runes, magical traps into
which any spell can be stored.
1999·Jan·30The random map generator
"Random map code by Peter Mardahl added." The maps archive gains a styles/ tree in the
same release — floor, wall, monster and decor styles — the template library that makes a
generated dungeon read as a place. Direct ancestor of the Crawl generator added in 2026.
People
2001David Hurst and the classic image set
1,459 files in one commit: an alternate artwork set, "now called classic or clsc … in
preparation for support of arbitrary sets." It is the point at which Crossfire stopped having one
look. 1,845 .clsc.* files remain in the tree, and they are the first place the 2020
retro image set project looks for art to downscale.
He signs commits "dnh" under the account darth_bob, which is why the connection was
invisible until the DEVELOPERS file — deleted in 2014, recovered from git history
— supplied the full name and his own summary of his work: "gods rebalancing, images for
classes and other images, spell testing and concepts". He wrote exactly one map, the Dry Well
beneath Scorn, created 6 November 2001 and last modified in July 2026.
Infrastructure recovered from the announce list
2000·Dec·22The original metaserver
Went live at crossfire.real-time.com port 13326, opt-in per server via
metaserver_notification on. The same announcement brought the mailing list web archives
online — the archives this timeline is partly built from.
2006·Mar·09The 1.9.0 maps shipped wrong
"Due to a packaging error, the maps for the 1.9.0 release contained the smallworld maps." Corrected
archives were reissued eleven days later with a -1 suffix — which is why
crossfire-1.9.0-1.maps.tar.gz sits beside the original in the download archive.
2025·Aug·28The most recent release
GTKv2 client 1.75.5, a bugfix for a 1.75.4 that was tagged but never announced. It brought map labels, client-side ticks, and the first native macOS disk images in the project's history, for both Intel and Arm64.
crossfire-announceCorrections applied to the timeline
Release dates originally came from repository release-preparation commits. The announcement send time is the actual release, so the announce archive supersedes them.
| Entry | Was | Corrected to | Why |
|---|---|---|---|
| 0.95.8 — race and class system | c. 2000-12-15 | 2000-11-29 | Announce list; also promoted from approximate to exact |
| 0.96.0 — partial resistances | 2001-01-28 | 2001-02-13 | Announce list |
| 1.11.0 | 2008-02-10 | 2008-02-01 | Announce list |
| 1.70.0 | 2012-03-18 | 2012-03-26 | Announce list |
| 1.75.3 client | 2024-05-05 | 2024-04-17 | Announce list; entry also split from an unrelated same-day item |
| 1.10.0, 1.60.0, 1.71.0, 1.75.0 | — | — | Moved 2–8 days by the same evidence |
| 1.0.0, 1.3.0, 1.9.0, 1.50.0, 0.95.7 | — | — | Moved 1–5 days |
| #crossfire IRC channel | c. 2001 | 2003-08-13 | Supplied by the project maintainer; see caveat below |
| Forum and wiki | 2003 only | 2003 and 2008 | The 2003 sites were replaced; the current forum and wiki date from 2008 |
| Source link, 1992 post | …9Atr80lttCk | …9Atr80IttCk | Lowercase L mistranscribed for capital I from a screenshot; the original link was dead |
Method
- CHANGES files are cumulative and newest-first. Each release prepends its own
section, so the newest copy that still carries one — 1.3.0 — contains the entire history
to that point. From 1.4.0 onward the file is a stub and the record moves to
ChangeLog. - Archives were read without unpacking.
tar -tzfto list andtar -xzOfto stream single files out, which is what made 448 archives tractable. - Content additions were found by diffing map archives on file count and top-level directory between consecutive releases, then confirmed against the announcements.
- Announcement date beats commit date. Where a repository release-prep commit and an announcement disagree, the announcement is the release.
- Precision is marked, not assumed. An exact date means a dated source exists. A grey c. means the date is inferred from a changelog tail, a follow-up post, or a prep commit. A bare year means only a year is known.
Limits and known weaknesses
One entry rests on testimony rather than a document. The IRC channel's founding date was supplied by the project maintainer. It corrected an earlier inference of c. 2001, which had been drawn from a "(formerly Open Project Network)" note on the site's IRC page — a remark about the network's history that was misread as evidence about the channel's age. No local source records the founding date.
- Not every archive was opened. Client, image and sound tarballs carry no changelogs, and server tarballs from 1.4.0 onward contain only stub NEWS files. These were listed but not read in full.
- The announce list is sparse by design. 34 periods across 25 years; it records releases, not development. Everything between releases comes from commit history or the news log.
- Four entries carry year-only dates. They describe periods — peak map activity, the quiet years, the revival, the 2025 maintenance pass — rather than events, and no finer date exists.
- Pre-1999 code history is reconstructed, not observed. The oldest repository begins on 2 April 1999. Everything earlier comes from release tarballs, announcements and mailing list traffic, so attribution before that point is only as good as what the CHANGES files recorded.
- Contributor identity is fragile. Handles, CVS accounts and real names do not line
up. One contributor appears as
dnh,darth_boband David Hurst in three different sources, and was only connected because a deleted file was recovered from git history. Others are certainly still unlinked.
Compiled August 2026 alongside the Crossfire Development Timeline. The changelog records how the page was built, pass by pass. A dark, self-contained version of the timeline is also available as index-dark.html.