HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
id-Software
DOOM
C++2012–2026
id-Software / DOOM

DOOM

DOOM Open Source Release

45Distinct people
51Mentions
0Explicit recommenders
19.9KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

DOOM Open Source Release

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

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 8–Nov 15 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/15/2026, 2:04:58 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 year51 dated mentions

Observed mentions: 2012-11-26 21:45:03 UTC to 2026-06-09 20:21:40 UTC.

0510152012-01-01 00:00:00 UTC to 2013-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments20122013-01-01 00:00:00 UTC to 2014-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2014-01-01 00:00:00 UTC to 2015-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 7 mentions; 1 submissions, 6 comments2016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 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): 5 mentions; 1 submissions, 4 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments20192020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 4 mentions; 1 submissions, 3 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 3 mentions; 1 submissions, 2 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 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): 14 mentions; 1 submissions, 13 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 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
20122012-01-01 00:00:00 UTC2013-01-01 00:00:00 UTC101
20132013-01-01 00:00:00 UTC2014-01-01 00:00:00 UTC101
20142014-01-01 00:00:00 UTC2015-01-01 00:00:00 UTC101
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC716
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC101
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 UTC514
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC202
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC413
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC312
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC202
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 UTC14113
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC101
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC101

From the project README

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

Read the project’s introduction
Here it is, at long last. The DOOM source code is released for your non-profit use. You still need real DOOM data to work with this code. If you don't actually own a real copy of one of the DOOMs, you should still be able to find them at software stores. Many thanks to Bernd Kreimeier for taking the time to clean up the project and make sure that it actually works. Projects tends to rot if you leave it alone for a few years, and it takes effort for someone to deal with it again. The bad news: this code only compiles and runs on linux. We couldn't release the dos code because of a copyrighted sound library we used (wow, was that a mistake -- I write my own sound code now), and I honestly don't even know what happened to the port that microsoft did to windows. Still, the code is quite portable, and it should be straightforward to bring it up on just about any platform. I wrote this code a long, long time ago, and there are plenty of things that seem downright silly in retrospect (using polar coordinates for clipping comes to mind), but overall it should still be a usefull base to experiment and build on. The basic rendering concept -- horizontal and vertical lines of constant Z with fixed light shading per band was dead-on, but the implementation could be improved dramatically from the original code if it were revisited. The way the rendering proceded from walls to floors to sprites could be collapsed into a single front-to-back walk of the bsp tree to collect information, then draw all the contents of a subsector on the way back up the tree. It requires treating floors and ceilings as polygons, rather than just the gaps between walls, and it requires clipping sprite billboards into subsector fragments, but it would be The Right Thing. The movement and line of sight checking against the lines is one of the bigger misses that I look back on. It is messy code that had some failure cases, and there was a vastly simpler (and faster) solution sitting in front of my face. I used the BSP tree for rendering things, but I didn't realize at the time that it could also be used for environment testing. Replacing the line of sight test with a bsp line clip would be pretty easy. Sweeping volumes for movement gets a bit tougher, and touches on many of the challenges faced in quake / quake2 with edge bevels on polyhedrons. Some project ideas: Port it to your favorite operating system. Add some rendering features -- transparency, look up / down, slopes, etc. Add some game features -- weapons, jumping, ducking, flying, etc. Create a packet server based internet game. Create a client / server based internet game. Do a 3D accelerated version. On modern hardware (fast pentium + 3DFX) you probably wouldn't even need to be clever -- you could just draw the entire level and get reasonable speed. With a touch of effort, it should easily lock at 60 fps (well, there are some issues with DOOM's 35 hz timebase...). The biggest issues would probably be the non-power of two texture sizes and the walls composed of multiple textures. I don't have a real good guess at how many people are going to be playing with this, but if significant projects are undertaken, it would be cool to see a level of community cooperation. I know that most early projects are going to be rough hacks done in isolation, but I would be very pleased to see a coordinated 'net release of an improved, backwards compatable version of DOOM on multiple platforms next year. Have fun. John Carmack 12-23-97 Copyright (c) ZeniMax Media Inc. Licensed under the GNU General Public License 2.0.
Read the full README on GitHub

What Hacker News says

51 sources
Compared to many other countries, UK has a computer science culture that's very open about how technology is used in every day lives, and it invites public participation in new tech. This shows a lot in the government as well as its services like BBC and NHS, and the academia. It's a very broad topic to cover so I'll be terse with evidence/examples only. UK government provides a lot of open data and APIs for the country [0], [1]. They are free and pretty much not throttled. They have a license [2] for a lot of this data which is formal but nearly as free as John Carmack's legendary hacker-friendly "have fun" license [3]. There is also a lot of historical Ordnance Survey data and historical legislation data from the National Archives. And of course, you can see the openness in how they have built gov.uk, as blog articles appear on HN about
Read the rest
it quite often. There is also a lot of government infrastructure provided to local governments, such as gov.uk Notify [4] or a freely available NHS website CMS (which is why many NHS websites work the same). There is a guide [5] mostly intended for government services but free for others to use on building accessible, secure and quite good-looking websites. Most other governments I lived under are either technically behind UK or they have very advanced tech capabilities in certain branches of the government only (such as the armed forces) but keep it out of the public eye. Ultimately, I think it is the culture of welcoming everyone's participation in technology that makes UK gov so forthcoming and open with their tech and data. Doing this is seen as kind and civilised, which is how governments want to be seen. Of course, there are still areas of improvement in how UK gov provides data, as there always are in everything. Finally, I should mention you can find many BBC technology outreach programmes from the early days of home computing. They are all over YouTube if you search for "BCC home computing". There was and continues to be a lot of techno-optimism in the country. It is one of the admittedly not many things that persist from the pre-austerity times. [0] https://www.data.gov.uk [1] https://www.api.gov.uk/index/#index [2] https://www.nationalarchives.gov.uk/doc/open-government-lice... [3] https://github.com/id-Software/DOOM/blob/master/README.TXT (before GPL became popular, id software code was distributed with this readme that said "Have fun") [4] https://www.notifications.service.gov.uk [5] https://frontend.design-system.service.gov.uk
In Why Gov.uk's Exit this Page component doesn't use the Escape key
Don't read the readme to figure out what the license says. Read the license: the readme only tells you what license. It doesn't tell you the terms of that license. The actual license used explicitly allows later versions of the GPL to be specified in place of GPLv2. https://github.com/id-Software/DOOM/blob/master/LICENSE.TXT > Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation.
In Doomretro – The classic, refined DOOM source port. For Windows PC
That's not what the license says. It explicitly allows derivative works to be redistributed under subsequent versions of the GPL, including GPLv3. > This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. https://github.com/id-Software/DOOM/blob/master/LICENSE.TXT
In Doomretro – The classic, refined DOOM source port. For Windows PC
This meme is based on a premise that copying others is bad. But I would argue the opposite: why keep reinventing what already exists? Take software engineers, for example. Most spend their entire lives rewriting code that's already been written at many companies simply because sharing is verboten. They might go their entire lives redoing what's already been done for a revolving door of bosses, without ever creating something truly new. The scale of wasted potential is stupendous. If we all agreed on a mindset of more sharing and copying, those engineers could focus their efforts on real innovation and build the future. And there are hundreds of thousands if not millions of them. This is not a radical new idea. This was the mindset many software engineers had in the gaming industry (my industry) in the 90s and 00s. Carmack famously release
Read the rest
d his code under what you might call a "have fun" license[0]. Around late 90s it was re-licensed under GPL to promote open-source/hacker development. This is why DOOM (and Quake) has been hacked to run on everything and used as a base for many games and game engines – real innovation instead of reinventing the same game. Today game companies guard their code fiercely. I'm not only talking about serious trade secrets, but most frivolous basic libraries, like they would go bankrupt if they shared. Well, guess what, EA shares EASTL[1] and that didn't make them any less dominant in games. Source Engine is also available under a fairly permissive license, as is Unreal Engine's source code. What's the common denominator? They both were written by people very closely aligned with Carmack's hacker culture. Source was born out of Quake, for example. The hubris of this closed-off approach is evident when new tech like Copilot arrives. Many tech companies panic about it "using their code" when in reality, that code already exists in numerous open-source libs. And Copilot can write 80% of what a mid level engineer writes in games anyways. Even for a principal/fellow level engineer, it is helpful in boilerplate. You can't escape the absurdity of rewriting what's already been written. How many ways can you allocate memory for a dynamically allocated array anyways? How many ways to implement the PID controller to steer an AI car in games? How many ways to do occlusion culling in graphics? A few, but not many. Yet every company guards it like it's their own secret sauce. So yeah, it would be pretty mature to revisit our values and go back to what worked in computing. [0] https://github.com/id-Software/DOOM?tab=readme-ov-file – still has the "have fun" readme. [1] https://github.com/electronicarts/EASTL
In China Is Rapidly Becoming a Leading Innovator in Advanced Industries
I think we're talking specifically test automation like unit tests, integration tests, and end to end tests. You can't write software without ever trying to run it, which is functional testing. A solo developer e.g. has to be doing these sorts of "QA"/functional manual testing. Let's look at the source code for Doom: https://github.com/id-Software/DOOM How many _test files do you see? Millions of people played Doom for endless hours and the quality beats a lot of modern software with tests. Again, tests certainly have their place in modern software development, but the kind of thinking that if you have tests that means your quality is good is wrong and actually leads to worse software quality. Tests are just a part of an overall approach to quality software. EDIT: Re hiring. I would be looking for people that understand the nuances and th
Read the rest
e why vs. people that approach things through a religious lens. I.e. they understand the tradeoffs. If you're writing tests then your tests are code. Should you write tests for your tests? If not why not? How do you know that your tests are correct? If your religion says 100% unit test coverage for all code then it's pretty clear this is a religious belief not subject to reason (because otherwise you'd be also asking for 100% coverage for your unit test code by other unit tests). There are situations where unit tests have a ton of leverage. There are situations where they have less. Testing happens in other disciplines, e.g. mechanical engineering, where certain things get tested (including with automation) and others do not. The decisions depend on the function of the component, the impact of failure, preexisting knowledge about the technologies, etc. software engineering can learn something from some of those other engineering disciplines...
In How I Program in 2024
Yeah, OP's example of Doom had the original sound engine library ripped out of the source code for release: https://github.com/id-Software/DOOM/blob/master/README.TXT#L... Similarly Doom 3's source code release had features ripped out: https://github.com/id-Software/DOOM-3-BFG/blob/master/README... And that's a 20 year old game which id made the engine for. A 10 year old game that used Unreal Engine 3 would need permissions for Unreal Engine 3 for the source code to not be useless.
In Ask HN: Why do games companies not release source code for old games?
AFAIK before the commit Doom was under a more restrictive license [1] " For educational purposes only, you, the end-user, may use portions of the Source Code, such as particular routines, to develop your own software, but may not duplicate the Source Code, except as noted in paragraph" [...] " Under no circumstances shall you, the end-user, be permitted, allowed or authorized to commercially exploit the Software. Neither you nor anyone at your direction shall do any of the following acts with regard to the Software, or any portion thereof: Rent; Sell; Lease; Offer on a pay-per-play basis; Distribute for money or any other consideration; or In any other manner and through any medium whatsoever commercially exploit or use for any commercial purpose." [1] https://github.com/id-Software/DOO
Read the rest
In Doom Released Under GPLv2

Showing the 15 most recent of 51 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.