17 ms·
Id Software
- vertexFarm 8y agoId's move back in the day to open their software enough to allow a modding community was an early stroke of genius. I still play quake mods from time to time. It's amazing how much longevity they got out of those games, let alone the engines. Modding quake was one of my first great bursts of curiosity and creativity. I really remember those days fondly.
- gukov 8y agoAdding your own skins, modifying the config files... it was so easy to feel a creator.
- SmellyGeekBoy 8y agoAs an example, Half-Life and Counterstrike started life as Quake mods!
- kchr 8y agoFor anyone interested further, the CS precursor was called "Urban Warfare" and was a Quake 2 mod.
- LambdaComplex 8y ago> Half-Life I think you mean Team Fortress? Although Half-Life does use a modified Quake engine, it was a commercial game that used none of the assets of Quake, so I don't think calling it a "mod" is really appropriate. (Side note: my username is a Half-Life reference)
- sliken 8y agoI don't see anything new, last commit was 2012. maybe add "(2012) to the title?
- shurcooL 8y agoCommit dates don’t necessarily correspond 1:1 to the dates they became public though, so it might be hard to tell.
- sliken 8y agoFrom the OpenArena page on wikipedia: "The OpenArena project was established on August 19, 2005, one day after the id Tech 3 source code released under GNU GPL license." The id Tech 3 wikipedia page "id Tech 3, popularly known as the Quake III Arena engine" Someone tried for a pull request in Oct 2017 with 3,275 commits, still pending. I can't find any evidence that anything new has happened.
- voltagex_ 8y agoThe "canonical" open source version of Quake 3 (Arena?) is ioquake - https://github.com/ioquake/ioq3 https://github.com/ioquake/ioq3 / https://ioquake3.org https://ioquake3.org. Last commit 18 hours ago.
- scruffyherder 8y agoIt's the Zenimax buyout and John Carmack stepping down & out. It's the end of the iD era.
- exikyut 8y ago
- Scott_Sanderson 8y agoHas anyone tried compiling on os x?
- ovao 8y agoI don't think any of the projects will compile on macOS as-is. You'll want to look at project forks if you're looking for something that'll compile out of the box.
- scruffyherder 8y agoI've cross compiled the MS-DOS stuff from OS X. From the PowerPC days even. If you want native doom, check out the source ports like Chocolate DooM. Doing ports to stuff like SDL is somewhat straight forward, or you can do a Cocoa one yourself, but I'd start with something known to work first..
- jquast 8y agoDidn't Carmack himself port X11 to OS X? What is now "XQuartz". Anyway, great work scruffy!
- geocar 8y agoXQuartz is an X11 server. https://www.xquartz.org/ https://www.xquartz.org/
- parasubvert 8y agoCarmack did the original XFree86 3.3.x port to Mac OS X Server beta back in 1999 (Which still had the OpenStep GUI!). This eventually evolved into the XFree86 mainline, and then into XQuartz
- geocar 8y agoHow strange. I could have sworn I was replying to Didn't Carmack himself port it to OS X? What is now "XQuartz".
- jameskegel 8y agoThis is a gift, just to have. Thanks for posting it. I have very fond memories of playing Wolf3d years ago on DOS. It will be fun to read through the source of the classics.
- ovao 8y agoIf you're looking for a high-level overview of some of id's source code releases, check out Fabien Sanglard's guides[0]. He's also written a book that goes into greater detail about the Wolf 3D engine. [0]: http://fabiensanglard.net http://fabiensanglard.net
- megaman22 8y agoHis Wolf3D book is gorgeous (full-color, lots of great screenshots and illustrations). Well worth the price. Plus a lot of great info about the vagaries of sound, graphics, and memory architectures on the machines of the era.
- CaliforniaKarl 8y agoFor some of the history of that time, I suggest checking out "Masters of Doom : how two guys created an empire and transformed pop culture", by David Kushner. The book is 15 years old (!!!) at this point, but I think it's still a compelling read.
- movedx 8y agoI also recommend the NoClip documentary on Id Software and on the back of that, virtually any interview with John Romeo -- the guy is awesome and so willing to share his thoughts, ideas, history, anything...
- bitexploder 8y agoJohn Romero for anyone looking him up.
- westoncb 8y agoI can second that—it's an excellent book. It put a clear image in my mind of the sort of environment I'd like to develop software in: primarily just a group of friends who have a shared idea of something cool they want to build together. I've been disillusioned that that will happen at a Silicon Valley type startup (not that it's impossible—but far more likely that the founders will segregate themselves from employees in such a way that everyone involved can't feel the same passion, commitment, interest, etc.—or even just the knowledge that they're going through the same struggle at the same time. Also the big stakes and investor pressure etc. are almost certainly gonna drain the fun.), but I'm still hopeful I can find or create similar circumstances elsewhere.
- thinkingkong 8y agoWhere’s the commander keen?
- acheron 8y agoI was going to say Apogee probably still owns it, but Wolf3D is up there. It’s possible id got the Wolf3D source but not Keen, I suppose. It would be fun to see Keen source code if it’s out there!
- billsix 8y agoI believe that they lost the source long ago
- scruffyherder 8y agoBack in 2014 John Hall found the source to some of the old stuff, including Keen 4,5,6 https://games.slashdot.org/story/14/09/17/133228/commander-keen-keen-dreams-source-code-released https://games.slashdot.org/story/14/09/17/133228/commander-k... The game was bought by fans, the source was released and Keen Dreams was published on steam. https://github.com/keendreams/keen https://github.com/keendreams/keen https://store.steampowered.com/app/356200/Keen_Dreams/ https://store.steampowered.com/app/356200/Keen_Dreams/ The ownership of the older stuff is quite fragmented.
- acheron 8y agoOh cool, I hadn't heard about this. Thanks!
- chrisparton1991 8y agoThere are so many interesting tidbits tucked away in the code, things the devs had to consider that have never crossed my mind whilst playing. For instance, the idclev cheat handling in st_stuff.c has to check if the game is shareware and restrict level changes beyond a certain range.
- kchr 8y agoI never quite grasped how that shareware check worked. Always thought the WAD file was what you bought, not the engine/executable itself?
- chrisparton1991 8y agoFrom doomstat.h line 60: // Game Mode - identify IWAD as shareware, retail etc. extern GameMode_t gamemode; I haven't done a deep dive on the code, but it looks like gamemode is set based on something in the WAD file.
- scruffyherder 8y agoDooM is not only fun, but it's great fun to play around with from the inside, or even to port. I've helped bring Doom to the x68000, which was quite the mission as the only compiler we had that could build 'large' executables was GCC 1.39 which had been translated into Japanese. But it's been fun doing ports to OS/2, DJGPP v1, Watcom C, and of course various other Unix via the X11 code. The GPL'd code was 'cleaned up' and kind of bugged up on the way, sadly what was released really wasnt' all that pure. For anyone wanting something more 'pure' for MS-DOS I'd highly suggest: Mara'akate's DooM-New https://bitbucket.org/maraakate/doomnew-for-dos https://bitbucket.org/maraakate/doomnew-for-dos And then there is Quake, which I compiled with the excellent MS-DOS based TCP/IP stack WATTCP so that I could bring native TCP/IP networking to Quake. https://virtuallyfun.com/wordpress/2011/01/05/quake1-with-wattcp-built-with-djgpp-on-dosbox/ https://virtuallyfun.com/wordpress/2011/01/05/quake1-with-wa... And on the heels of that, I did a QuakeWorld client for MS-DOS https://virtuallyfun.com/wordpress/2011/01/06/quakeworld-client-for-ms-dos/ https://virtuallyfun.com/wordpress/2011/01/06/quakeworld-cli... which kind of took a life on it's own here: http://dk.toastednet.org/QDOS/index.html http://dk.toastednet.org/QDOS/index.html And of course with the source to Quake 2 available, it only seemed proper to port it to MS-DOS. https://virtuallyfun.com/wordpress/2015/06/02/porting-quake-ii-to-ms-dos-pt1/ https://virtuallyfun.com/wordpress/2015/06/02/porting-quake-... https://virtuallyfun.com/2015/06/03/porting-quake-ii-to-ms-dos-pt2/ https://virtuallyfun.com/2015/06/03/porting-quake-ii-to-ms-d... https://virtuallyfun.com/2015/06/07/porting-quake-ii-to-ms-dos-pt3/ https://virtuallyfun.com/2015/06/07/porting-quake-ii-to-ms-d... https://virtuallyfun.com/2015/06/26/porting-quake-ii-to-ms-dos-pt4/ https://virtuallyfun.com/2015/06/26/porting-quake-ii-to-ms-d... https://virtuallyfun.com/2015/09/17/porting-quake-ii-to-ms-dos-pt5-3dfx-gamespy-quake-2-and-the-universe/ https://virtuallyfun.com/2015/09/17/porting-quake-ii-to-ms-d... So yes, there is GREAT fun to be had in the iD source. Also don't forget some of their earlier games: https://github.com/CatacombGames https://github.com/CatacombGames https://github.com/FlatRockSoft/ https://github.com/FlatRockSoft/
- Nican 8y agoSome of the porting-quake links are broken. You have to add the "/wordpress" bit.
- deckarep 8y agoI burned many hours on the original Doom, in my bedroom as a young teenager with headphones on in the dark. Remember the No Clipping cheat code? Here’s the source code check to turn it on: https://github.com/id-Software/DOOM/blob/77735c3ff0772609e9c8d29e3ce2ab42ff54d20b/linuxdoom-1.10/st_stuff.c#L429 https://github.com/id-Software/DOOM/blob/77735c3ff0772609e9c...
- danieldk 8y agoAnother fun (90ies) fact: the noclip cheat code (idspispopd) stands for Smashing Pumpkins Into Small Piles Of Putrid Debris. The Smashing Pumpkins paid tribute by using a Doom sample on their Melon Collie and the Infinite Sadness album. http://doom.wikia.com/wiki/SPISPOPD http://doom.wikia.com/wiki/SPISPOPD
- glenneroo 8y agoAnd apparently the comment includes a small typo: // Smashing Pumpkins Into Samml Piles Of Putried Debris. I kept wondering what "samml" meant... in German "sammeln" means to gather and "semmel" in Austrian slang is a local kind of roll or bun.
- westoncb 8y agoIf you'd like to try out Doom now, there is an OpenGL port called Doomsday[0] which is very complete and loyal to the original, while smoothing out/modernizing things enough to make it genuinely fun for modern players. For instance, you can look in all directions with 'mouse look' and jump and run faster while pressing shift, and there are dynamic spot lights attached to certain things (e.g. fireballs), even though the original sprites are still the primary visual. It also supports Hexen and Heretic and adds a more modern multiplayer interface. (Also allows swapping alternate game assets, so some people have done mods with 3d models.) Gameplay video: https://www.youtube.com/watch?v=V2Ddl4CM4ao https://www.youtube.com/watch?v=V2Ddl4CM4ao [0] http://dengine.net/ http://dengine.net/
- SmellyGeekBoy 8y agoAs someone who grew up playing Doom I have to admit that video makes me uneasy - almost like an "uncanny valley" effect. Although I can see why it might be easier on the eyes for modern gamers and if it introduces more people to the game then that can only be a good thing. For those looking for a more period correct experience there's Chocolate Doom: https://www.chocolate-doom.org/wiki/index.php/Chocolate_Doom https://www.chocolate-doom.org/wiki/index.php/Chocolate_Doom Though I have to admit I generally just fire up my 486 to play. I've already had one complete playthrough of Ultimate Doom and Doom 2 this year and I'm sure it won't be the last. :)
- westoncb 8y agoActually I get that now too when I skip through quickly. For me it's because he mostly uses 3d character models during the video—although that's not the default setup. I mostly just watched the beginning earlier and didn't realize how much was using the 3d character set.
- j1elo 8y agoI'm so glad the 3D models can be disabled, to experience the enemies sprites as their original creators envisioned. Those 3D enemies that show up in the video, come walking towards the player as if they had a strong stomach ache! Also explosions look too "fluffy"... Doom is not a game that needs to be reworked, IMHO.
- kar1181 8y agoWe owe a lot to John Carmack in many ways - but I hope one of his enduring legacies will be the amount of programmers he inspired with both the games he helped make, and the code he made available. It helped many of us to get started somewhere. I never ended up going into games myself, but in no small part I owe my career to him. As well as the Doom book, his plan files are a fascinating time capsule to go back over, particularly if you 'came of age' during that golden age of PC games development. https://github.com/ESWAT/john-carmack-plan-archive https://github.com/ESWAT/john-carmack-plan-archive
- DEADBEEFC0FFEE 8y agoCurious that you think it was a golden age.
- SmellyGeekBoy 8y agoNot GP, but I agree. The world of PC gaming was moving so fast in the 90s - sound cards, CD-ROM, "multimedia", the internet, 3D accelerators etc. (I appreciate that most of these technologies were invented earlier, but the 90s was when they really came of age and hit mass adoption). I grew up in that era and agree that it was a golden age, but of course I'm aware that nostalgia plays a big part in that. If you look at, say, 2000-2010 or even 2010 to now it seems things have slowed down - which isn't necessarily a bad thing.
- ehnto 8y agoI would agree to the 90s having huge fundamental leaps. For more recently, on the innovative technology side you do have VR, SSDs, steady performance increases across the board. But I would say the biggest leaps have come with better code and asset generation rather than brute hardware improvements. PBR was a massive change in the way assets are generated and how real they can look and feel. Likewise games are reaching really impressive levels of mechanical fidelity and visual depth. GTAV still looks amazing today, and that's down to the sheer amount of unique assets and texture variance in the game. Games now tend to flourish due to gameplay depth, scale and freedom over every impressive visuals. Which is great.
- nailer 8y agoHave id officially stopped their policy of releasing 'current - 2' game source as Open Source? Shouldn't Doom 3, Quake 4 and maybe Rage 1 be up here?
- chupasaurus 8y agoThere are Doom 3 + BFG Edition source codes, ctrl+f "DOOM-3".
- floatboth 8y agoAlso, an id employee ported DOOM 3 to Vulkan https://github.com/DustinHLand/vkDOOM3 https://github.com/DustinHLand/vkDOOM3 https://www.khronos.org/assets/uploads/developers/library/2018-gdc-webgl-and-gltf/4-Vulkan-Getting-explicit-How-hard-is-Vulkan-really-GDC_Mar18.pdf https://www.khronos.org/assets/uploads/developers/library/20...
- ddtaylor 8y agoHere is the famed "Fast Inverse Square Root" trick: https://github.com/id-Software/Quake-III-Arena/blob/dbe4ddb10315479fc00086f08e25d968b4b43c49/code/game/q_math.c#L561 https://github.com/id-Software/Quake-III-Arena/blob/dbe4ddb1... https://en.wikipedia.org/wiki/Fast_inverse_square_root https://en.wikipedia.org/wiki/Fast_inverse_square_root
- kchr 8y agoThanks for lifting this up!
- philbarr 8y agoMy favourite part of the wiki page is: i = 0x5f3759df - ( i >> 1 ); // what the fuck?
- ddtaylor 8y agoI like how they rewrite the code in different ways (type punning) and keep the "what the fuck?" comment intact.
- toolslive 8y agoThat trick was published in Graphics Gems V (1995) by Ken Turkowski.
- Someone1234 8y agoIt seems to pre-date that: https://en.wikipedia.org/wiki/Fast_inverse_square_root#History_and_investigation https://en.wikipedia.org/wiki/Fast_inverse_square_root#Histo...
- cup-of-tea 8y agoCan I use this to play Doom 3 BFG edition on Linux? I'd love to just buy it on Steam but sadly it's Windows only. By the way, I love this from the readme: > If you have obtained this source code several weeks after the time of release, it is likely that you can find modified and improved versions of the engine in various open source projects across the internet.
- pjc50 8y agoSee https://www.gamingonlinux.com/articles/playing-doom-3-on-linux-in-2017.10561 https://www.gamingonlinux.com/articles/playing-doom-3-on-lin...
- cup-of-tea 8y agoI wish I hadn't looked. It doesn't look anywhere near as good as Doom 3 in my memory looked. I've had this when playing old games from my childhood before. In my memory they were perfect, beautiful. Then I looked again and my memories were shattered. I didn't expect it to happen with Doom 3.
- ksec 8y agoThere used to be sort of an Engine War in the late 90s and early 00s, Id tech, Source Engine, Unreal. Now ID is basically gone. And it is interesting both Valve and EPIC manage to create a platform, valve created Steam, and EPIC made Unreal almost like de facto standard. ( Yes I know there is Unity ). I wonder why ID didn't continue to compete with Unreal in the middleware engine. Why Valve decide to leave what was at the time possibly the best game engine. How Unreal went from some mediocre engine to an insanely great engine and still improving rapidly. Doom ( Or John Carmack ) used to be the sole cheer leader for OpenGL. I still loved 3Dfx, Voodoo and Glide though. The API was small and fast, in an era when Direct3D was .... really not very good. And Interesting times, Intel is now coming back to GPU market again after i740, it was the first Graphics card to use AGP Slot. May be instead of GPGPU which we should go back to graphics with AGP; Advance Graphics Processor.
- aktau 8y agoI wonder why you said that Unreal (I assume for the first, single-player, Unreal) was a mediocre engine. AFAIK it was competitive with Quake II and released only a couple of months later. Care to detail?
- bluedino 8y agoCarmack was the engine guy at ID, and he basically said he got bored with game engines and was out of things to do.
- badsectoracula 8y ago> I wonder why ID didn't continue to compete with Unreal in the middleware engine. IIRC from one of his later talks, Carmack wasn't interested in tech licensing and it was mostly the other owners pushing the idea. I remember even before Doom 3 was released and the Quake 3 engine was in its apex in terms of licensing (basically the most licensed of their engines by far), their licensing page wrote that all the support you'd get was a day with Carmack to explain some bits. > How Unreal went from some mediocre engine Unreal was never a mediocre engine, even from its first release it had amazing tools and a very flexible architecture. I'd say that even if the rendering tech wasn't sometimes behind id (i always noticed that id would come up with a neat new idea and the next UE would polish it up - the only time this didn't happen was with Rage and UE4), their toolset and architecture is what made other devs go after them and their stance to support (you'd get constant updates and documentation and i think at some point they set up an internal "community site" for people licensing their engine) was the icing on the cake.
- fsiefken 8y agoThanks to the Quake engine being open source and LordHavoc's source port we have a very efficient VR shooter running on all VR devices, like the Oculus Go. https://quakewiki.org/wiki/DarkPlaces https://quakewiki.org/wiki/DarkPlaces
- err4nt 8y agoLove seeing LordHavoc mentioned. I collaborated a little bit with LordHavoc while helping build the open source shooter game Nexuiz (~2004-2005) and he is truly a brilliant game engine programmer!
- nineteen999 8y agoRecently I saw watched his QuakeCon talk from 2013, "Principles of Light and Rendering" at QuakeCon. It helped me solidify a lot of the basic understanding of 3D rendering I already had and provided a lot of additional knowledge as well. https://www.youtube.com/watch?v=IyUgHPs86XM https://www.youtube.com/watch?v=IyUgHPs86XM
- nakedne 8y agoIs there a good entry point into quake mods these days? When I was a kid in 1996 I toyed with Quake C but really had no idea what I was doing. I'd love to toy with mods again but not really sure if there is a good way to get started. Most of the resources I knew of 22 years ago are gone or significantly outdated.
- badsectoracula 8y agoCheck Quaddicted[1] for some singleplayer maps. The most common engine by far is Quakespasm[2] which keeps the original style but fixes bugs, reintroduces some features from the software renderer that were lost in the original OpenGL version (fullbrights, lightmaps that go above 100%, non-power-of-two textures, etc) and removes and raises some hardcoded limits. You probably also want QuakeInjector[3], which is a "quake mod installer" that handles dependencies. You may also want MiniQL[4] (made by me) as a more straightforward and minimalistic launcher (you can also launch QuakeInjector from MiniQL if it is installed in the same directory). This is all you need for playing maps and mods. For making maps (the most common type of mod) you'll also need a map editor - currently the most common seems to be Tenchbroom[5], but it is far from the only option and a lot of people use other editors, such as BSP[6], QuArK[7], GtkRadiant[8] and some people even use either the original Worldcraft 1.3 (i think) or a modded Hammer (from Valve) to make maps. I think some also use J.A.C.K.[9], which is basically a Hammer clone, although i think it is abandoned now. The map editor isn't enough, you also need the command line tools to "compile" the map (this is how the Quake engine can support multiple and different editors: by decoupling the tools from the engine and the individual types of tools from each other - which to me is one of the best ways to architect and engine and its tools, but sadly most popular engines have forgotten it). There are several variations, depending on the features you want. But i think these days most people are using ericw's tools[10] since they support some advanced features from modified engines (like the BSP2 format for larger maps and colored lightmaps). Beyond mapping, if you want to delve in QuakeC (the game's scripting language) you need the original QuakeC source code[11] and a QuakeC compiler - while you can probably use the original QCC, i've seen FTEQCC[12] from the FTE engine to be mentioned way more often. Some tutorials can be found here [13] (the Inside3D site which was a sort of 'nexus' for QuakeC modders was shut down some time ago and while the community create InsideQC[14] it looks like not everything survived the transition). [1] https://www.quaddicted.com/ https://www.quaddicted.com/ [2] http://quakespasm.sourceforge.net/download.htm http://quakespasm.sourceforge.net/download.htm [3] https://www.quaddicted.com/tools/quake_injector https://www.quaddicted.com/tools/quake_injector [4] http://runtimeterror.com/rep/miniql http://runtimeterror.com/rep/miniql [5] http://kristianduske.com/trenchbroom/ http://kristianduske.com/trenchbroom/ [6] http://www.bspquakeeditor.com/ http://www.bspquakeeditor.com/ [7] http://quark.sourceforge.net/ http://quark.sourceforge.net/ [8] http://icculus.org/gtkradiant/ http://icculus.org/gtkradiant/ [9] http://jack.hlfx.ru/en/ http://jack.hlfx.ru/en/ [10] https://ericwa.github.io/ericw-tools/ https://ericwa.github.io/ericw-tools/ [11] https://www.doomworld.com/idgames/idstuff/unsup/progs106 https://www.doomworld.com/idgames/idstuff/unsup/progs106 [12] https://sourceforge.net/projects/fteqw/files/FTEQCC/ https://sourceforge.net/projects/fteqw/files/FTEQCC/ [13] https://web.archive.org/web/20120526014134/http://www.inside3d.com/showtutorial.php?id=129 https://web.archive.org/web/20120526014134/http://www.inside... [14] http://www.insideqc.com/ http://www.insideqc.com/
- paradigmshiv 8y agoIn case anyone doubts how revolutionary some of these games were, check out these fan letters from the Wolfenstein source: As a former POW (Vietnam), I hesitated to play WOLF for over a month after downloading as I feared flashbacks. I didn't want to remember all that I had been through all those years ago, when, as POW's, my friend and I decided an escape attempt would be better than a slow death by torture and starvation. My friend and I made crude maps and hoarded food. The day of the escape we clubbed the guard with stones, took his gun and fought our way through two levels of underground tunnels (only a few guards and had to crawl). I made it, my friend didn't. Dreams...NO! NIGHTMARES...YES!! However, the more I play WOLF the less frequently I have nightmares. The chilling part is turning a corner and seeing a guard with his gun drawn. WOLF is a powerful game. Fearful as well. I believe that a person should face the past. So... when I can play EPISODE 1 comfortably (no nightmares), I plan on ordering the full series. There's also a letter from a Microsoft manager requesting a multiplayer version. https://github.com/id-Software/wolf3d/blob/master/WOLFSRC/GOODSTUF.TXT https://github.com/id-Software/wolf3d/blob/master/WOLFSRC/GO...
- kinleyd 8y agoAs you say, that is an extremely moving letter. I would never have associated Doom with therapy - thanks for sharing. (I am a big fan of John Carmack and the id team.)