HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
ESWAT
john-carmack-plan-archive
Games & Emulation2015–2026
ESWAT / john-carmack-plan-archive

john-carmack-plan-archive

Collection of John Carmack’s .plan files

41Distinct people
43Mentions
0Explicit recommenders
1.4KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Collection of John Carmack’s .plan files

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:56:07 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year43 dated mentions

Observed mentions: 2015-02-05 12:12:47 UTC to 2026-08-18 13:13:52 UTC.

024682015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 comments20152016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 4 mentions; 1 submissions, 3 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 8 mentions; 0 submissions, 8 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 5 mentions; 1 submissions, 4 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 6 mentions; 0 submissions, 6 comments20202021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 5 mentions; 3 submissions, 2 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 7 mentions; 0 submissions, 7 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC110
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC413
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC101
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC808
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC514
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC606
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC202
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC532
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC707
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC202
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC000
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC202

From the project README

An excerpt from the repository, fetched Nov 13, 2026.

Read the project’s introduction
John Carmack .plan Archive Mirror of the John Carmack .plan Archive on floodyberry.com. These are the exports of ZIP files for his .plan files, organized by day and year. If you appreciate this archive, then I would appreciate it if you checked out NTRPD, my digital product studio, and Reorient, my digital nomad event and workation aggregator.
Read the full README on GitHub

What Hacker News says

43 sources
TFA includes a link to an archive of John Carmack's .plan updates, 1996–2010: https://github.com/ESWAT/john-carmack-plan-archive/tree/mast... (1) Looks like great reading. (2) Who compiled the archive, and how? This feels like one of those situations where a person records the evening news onto VHS for decades; except here they were running finger every day for decades? (3) Is there a more mobile-friendly way to browse it?
In Finger: the 1971 social network that never died
Carmack is definitely someone who was determined -- and quick. When Carmack was working (I think on Quake), you could follow his todo list, which he kept stored in a .plan file on his server. If you used the Unix shell command "finger johnc@idsoftware.com" command, it would send the text of that file. It was pretty amazing to watch him crank through his tasks in near real time. The texts are archived here: https://github.com/ESWAT/john-carmack-plan-archive He is also pretty good at poker, apparently: http://www.ntk.net/1998/02/13/?l=114#l
In How much of a genius-level move was binary space partitioning in Doom? (2019)
I can shed some light on this. It's got little to do with physics in this case. Whereas QuakeWorld uses a network update model based on acknowledgement, Quake II pumped out complete states of all visible entities/objects at a steady 10 Hz and assumes the client interpolates between those states (Primarily to make animation easier for singleplayer, as variable animation rate plus interpolation can be a lot to keep track of per-entity). As Quake II uses UDP connections and has to deal with packet loss, it was seen as easy to just keep pumping out full entity/object states with no regard for deltas. This was later seen as a mistake by John Carmack [1] and they'd try a lot harder in Quake III Arena. This is still a bit of a thorn in many peoples eyes that make modifications to Quake II as you have to break compatibility with the entire mod ec
Read the rest
osystem if you wanted to address this. Would have been nice to see this rectified in the re-release. With the re-release you're basically sending out 4x the rate of the original and there's still slow connections which might chug on all that data. Some parts of the US still deal with speeds that are closer to modem than broadband. Anecdotal evidence: Some years ago I was advising a fellow Quake II modder on how they could fix some limitations of the network model. They took the easy way and changed the update rate to something higher that felt smooth enough for them and it'd render anything but listen/local games unplayable because they were sending out too much data over the network. Eventually they gave up and started on top of a QuakeWorld based engine to avoid reinventing the wheel. Also some fun trivia: In the original Quake II, physics are rounded down to network precision. They are not rounded to nearest, mind you - which results in a drunken walk. Unless you're around the [0,0,0] vector on the map's coordinate system, you will be unable to walk forward/back in a straight line. [1] https://github.com/ESWAT/john-carmack-plan-archive/blob/mast...
In Quake 2 is setting a new gold standard for remasters
I had to laugh at this https://github.com/ESWAT/john-carmack-plan-archive/blob/mast... ----------------------------------------- John Carmack's .plan for Jan 31, 1997 ----------------------------------------- I went down to the ferrari dealership today with Ann and American with the intention of buying a new f355 as a "sensible" car (in contrast to my other twin turbo monstrosities). There was an F40 sitting out front. Umm. Sensible car. F40. Sensible car. F40. Hmmmm. American played the evil conscience and Ann played the good conscience. For a while. Then Ann got infected by the Dark Side. :-) I bought the F40. Ok, I now have too many ferraris. I have a plan to fix that. This hasn't gone through all the legal crap necessary yet, but it is my intention to give away my first ferrari as the grand prize of a Quake tournement. Yes,
Read the rest
I am serious. DO NOT SEND ME ANY MAIL ABOUT THIS! When we have more to say about it, we will make a formal announcement. This would be a good time to start a heated debate in the newsgroups about what the fairest tourney rules would be, though. The specs: 1987 328 GTS with turbocharged engine. Feature in the january, 1994 issue of Turbo magazine. Made 360 HP at the rear wheels on a chassis dyno. New engine (I melted the first one...), new paint. The interior could use a little work. I plan to also include enough cash to cover tax and insurance.
In Source code for Quake 2 rerelease
This is not the engine code, this is the game code that was released even prior to Quake 2 being GPLd. ----------------------------------------- John Carmack's .plan for Dec 11, 1997 ----------------------------------------- The Quake 2 public code release is up at: ftp://ftp.idsoftware.com/idstuff/quake2/source/q2source_12_11.zip This source code distribution is only for hard-core people that are going to spend a lot of time pouring over it. This is NOT a how-to-make-levels-for-q2 type dsitribution! This should keep a bunch of you busy for a while. :) https://github.com/ESWAT/john-carmack-plan-archive/blob/mast...
In Source code for Quake 2 rerelease
there are a bunch of features in slack beyond the core chat stuff, like: 1. being connected to multiple communities and switching between them instantly this can be of course simply replaced by connecting to different servers in a tabbed terminal and use the terminal's built-in cmd-1/2/... shortcut, which happens to be the same as in slack. 2. meta data about others, like their timezone or how to pronounce their name is quite important for distributed team work this can be approximated by a world readable file on the chat server in every user's home, like .plan or motd files (https://github.com/ESWAT/john-carmack-plan-archive) 3. automatic idleness detection im actually not sure how reliable is this even in slack, but in general, it can be useful, but im not sure how to solve it elegantly, when the chat runs remotely... maybe we should ju
Read the rest
st spawn a loop at the background, which gathers idleness status from the OS and uploads it when it changes, into world readable files and the remote clients can just check those file whenever they want. 4. extra status indication with automatic expiry, eg when someone is away from the keyboard, coz they are having lunch we do use this feature often and it's a really helpful regarding when can we expect a response from someone. again, quite simple to model this as a plain text file and we can even use emojis, to have a very similar effect to setting " lunch" on slack. ppl would need to know what's the emoji selector shortcut though... like cmd-ctrl-space on macos. 5. text search across all channels/rooms assuming the chat is being logged into files, then a recursive (rip)grep could work to some extent, but then from the search results one might want to get back to the context of the result too. 6. threads this complicates implementation a lot more, but we found it an obvious improvement over the single threaded IRC model of communication 7. having threads open on the side, so ppl can track 2 streams of comms at once at least it would require starting the chat app multiple times and do some window management to see them side-by-side now obviously all this can be done a lot simpler, but those implementations typically always lack somehow. not sure why is that... see https://cancel.fm/ripcord/ or http://www.altme.com/what.html the REBOL 3 programming language even had a quite full featured, text-mode chat built in: http://www.rebol.com/r3/docs/functions/chat.html !
In Simple Unix Chat
You can read Carmack's .plan archive from 1996 here, if you're so inclined: https://github.com/ESWAT/john-carmack-plan-archive/blob/mast... It's a _fascinating_ snapshot into Quake's development. I have no idea if his .plan is a record of what he, specifically, was doing, or if he was just capturing what the programming team was doing, but at the very least, it makes clear that he was aware of huge amounts of very highly specific game code issues as they were being worked on and was almost certainly deeply involved.
In Quake's lightning gun bug explained [video]
Quake and id Software were pioneering things we just take for granted now. I remember playing QuakeWorld when it came out, on Linux, over a dial up modem. You had ping times of 200-300ms and it was playable. You have to remember at the time Doom and other games were LAN-only. John Carmack used to keep a .plan file with some really cool details behind Quake/QuakeWorld development. Check out Aug 02, 1996 for some detail behind the netcode[1]. You can read the future of gaming being invented right there. [1] https://github.com/ESWAT/john-carmack-plan-archive/blob/mast...
In Show HN: Quake 1 ported to the Apple Watch
https://github.com/ESWAT/john-carmack-plan-archive/blob/mast... is interesting. It transitions from todo list to a narrative format right after Quake launches :) In subsequent years you see Carmack opine on various high-perf platforms for gamers, and also for Quake level pre-processing (engine licensees had money to spend on productivity) Chapter 64 onwards of https://www.jagregory.com/abrash-black-book/ is Mike Abrash's detailing of Quake's development. (tl;dr - Quake was developed on NeXTSTEP + an MS-DOS port of GCC (DJGPP), Quake2 was on Visual Studio + Windows NT (this was the era of that Carmack giant-monitor photo), there was an in-between period of free updates to the original Quake, like WinQuake, QuakeWorld and glQuake).
In The computers used to do 3D animation for Final Fantasy VII in 1996

Showing the 15 most recent of 43 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.