14 ms·
How Id built Wolfenstein 3D using Commander Keen tech
- scarface74 7y agoAnd notice that they used an IDE. So that kind of gives credence to the idea and the HN meme that “10x developers don’t use IDE’s” is BS....
- FraKtus 7y agoYep, I started with Apple II and UCSD Pascal and kept using IDE since then... I can dive in the terminal and use make if needed but it feels unnatural to me.
- SteveBash 7y agoThey didn't use IDEs that consumed all of their RAM though.
- scarface74 7y agoWhat was the typical amount of RAM for PCs around 1990-1992? In 1992, I had 10MB of RAM for my Mac but that was considered a lot.
- bonzini 7y agoYou are not making an equal comparison. DOS at the time didn't have multiple windows or multitasking. People that don't use IDEs these days still use multiple terminals or windows. Using the Borland C++ IDE in 1991 is way more similar to using Emacs these days, than Visual Studio Code.
- scarface74 7y agoThe source code for Doom 3 (circa 2004) was released on Github - it was a Visual Studio solution. http://fabiensanglard.net/doom3/ http://fabiensanglard.net/doom3/
- SmellyGeekBoy 7y agoFWIW, I've had an account here for 5 years (last month in fact) and am typically here for an hour or so every day and have never seen anyone make this claim.
- pjmlp 7y agoI loved a recent quote from James Gosling regarding his love for IDEs. He just wants to get work done, doesn't feel the need to prove anything. Specially interesting, given XEmacs.
- snvsn 7y ago"Masters of Doom: How Two Guys Created an Empire and Transformed Pop Culture" has an excellent account of how Romero and Carmack built these games.
- gmmeyer 7y agoIt's a bit hagiographic, but it's overall a very good book.
- hyperman1 7y agoI had to look that one up. hagiography (webster): 1 : biography of saints or venerated persons 2 : idealizing or idolizing biography Yep, he's right
- AlchemistCamp 7y agoIt is? I thought Romero sounded like a nutcase! If him blasting music and destroying things with various weapons while devs were trying to code and running ads telling customers he was "about to make you his bitch" was a hagiographic gloss, then reality must have been truly dark.
- chihuahua 7y agoI think the "bitch" part was later, when his own company was developing "Daikatana", which was a famous disaster. Maybe he was more reasonable earlier on.
- UberMouse 7y agoThat advertising campaign wasn't Romero's idea; it was the idea of someone else at Ion Storm. Romero was initially a bit hesitant on the slogan but caved to pressure. At least that was how it was presented in (iirc) Masters of Doom, who knows what the actual truth is.
- AlchemistCamp 7y ago
- bitwize 7y agoA version of Keen's tile editor was used to create maps for games as recent as Rise of the Triad, which was itself built on a modified Wolfenstein engine.
- jonny_eh 7y ago> as recent as Rise of the Triad Released December 21, 1994
- gmueckl 7y agoThat game got a remake a couple of years ago. I don't know if they were referring to that.
- SketchySeaBeast 7y agoIf they were still using the Keen Tile Editor that'd be amazing.
- bitwize 7y agoI was referring to the original -- which was still released after Doom came out.
- jonny_eh 7y agoWhy would someone remake a game using the same engine?
- Jayschwa 7y agoHovertank and Catacomb, the games between Keen and Wolfenstein, are both open-sourced: https://github.com/FlatRockSoft/Hovertank3D https://github.com/FlatRockSoft/Hovertank3D https://github.com/CatacombGames/Catacomb3D https://github.com/CatacombGames/Catacomb3D I'm the current owner of the Catacomb games, and have been working on improving and porting them in my spare time (not publicly available yet, but will be When It's Done). Fabien's Game Engine Black Book has been an invaluable resource for me. I highly recommend it!
- abeisgreat 7y agoHow did you become the current owner? I'm very curious about how you went about obtaining the rights.
- Jayschwa 7y agoThe original publisher, Softdisk sold many of its assets to Flat Rock Software in the 2000s. Flat Rock sold off bits and pieces over the years, and the Catacomb games were one of the last things it held [1]. In 2017, I wrote a toy implementation of Catacomb 3D in WebGL [2]. Since the project used art that was under copyright, I contacted Richard at Flat Rock to ask permission to use it. That conversation eventually led to me deciding to buy the overall game ownership from him [3]. [1]: https://web.archive.org/web/20150101022225/http://www.flatrocksoft.com/ https://web.archive.org/web/20150101022225/http://www.flatro... [2]: https://github.com/jayschwa/CatacombWebGL https://github.com/jayschwa/CatacombWebGL [3]: https://web.archive.org/web/20170623155041/http://www.flatrocksoft.com/ https://web.archive.org/web/20170623155041/http://www.flatro...
- jackpirate 7y agoWow! Mind if I ask what the price is to the rights of an old game like Catacomb?
- loceng 7y agoThe most important factor is likely the current owner wanting to making sure it's going into the hands of someone who will do something caring with the rights.
- bluedino 7y ago>> Everybody was working witht he best PC money could buy, a high end 386DX/33MHz with 4MB of RAM According to a May 15, 1990 issue of PC Magazine, that was a $3,500-4,000 USD machine back then. Used to develop Wolf3D, but only good for about 8fps when Doom (ID's next hit) came out.
- beautifulfreak 7y agoTheir one NeXT computer cost even more, $6500 base price.
- bluedino 7y agoFrom the book: Carmack stepped into the local bank and requested a cashier's check for $11,000. The money was for a NeXT computer, the latest machine from Steve Jobs, cocreator of Apple.
- beautifulfreak 7y agoCarmack: Over the entire course of Doom and Quake 1’s development we probably spent $100,000 on NeXT computers https://www.forbes.com/sites/quora/2016/09/01/why-john-carmack-chose-next-for-developing-doom-and-other-favorites/#1c6643e314d1 https://www.forbes.com/sites/quora/2016/09/01/why-john-carma...
- SmellyGeekBoy 7y agoThe sad thing is that the NeXT never had a native port of DOOM until very recently.
- sneakernets 7y agoI remember Doom pushing a much higher frame rate than that with those specs. The real issue was that you needed L2 cache!
- deleted 7y ago[deleted]
- doomlaser 7y agoImpressive id went through development of Quake 3 with no version control. When I was interning at Apple back in the day I had a side project of porting wolf3d to OS X, and it was the first occasion I had where I came to admire John Carmack's code directly. His game source code is something I recommend checking out to coders interested in gamedev. Also, I have fond memories of poking around making DOS experiments in Borland C++ as a teen. But speaking of version control — I guess that's just how things were done in the 90s. I read recently that not only was Final Fantasy 7 developed and shipped without it, but Squaresoft contemporaneously lost the final PlayStation source code and art assets. The studio contracted to port it to PC was supplied with a mishmash of non-final code and assets.
- ltc5505 7y agoWhere could I find his code to take a look at? Is there a reputable source or should I just Google it?
- doomlaser 7y agoid Software has a public GitHub and many of their classics are open sourced (Doom, Quake, etc): https://github.com/id-Software/ https://github.com/id-Software/
- ltc5505 7y agoAwesome, thank you for the link!
- deleted 7y ago[deleted]
- rofo1 7y agoCheck out https://github.com/id-Software https://github.com/id-Software they've published a lot of things there. I really liked reading DOOM's source code :)
- nickjj 7y agoIf you're going to go down memory lane, take a detour and read John Carmack's plan files. It's a daily blog of progress / lessons learned on whatever he was working on during the listed years. The whole archive is at: https://github.com/ESWAT/john-carmack-plan-archive/tree/master/by_year https://github.com/ESWAT/john-carmack-plan-archive/tree/mast... The 1990s is when it was most active.
- bcheung 7y agoWow, those screenshots bring back memories. Used that same exact IDE to make games when I was a kid. It was an amazing time to be programming.
- Yajirobe 7y agoWhat is the blue-yellow IDE/editor called?
- pjmlp 7y agoIt is quite clear on the figure captions, Borland C++ 3.1.
- gmueckl 7y agoYou could even license the UI library from Borland for use in your own programs. And Turbo Pascal had the exact same look. Later, there was a near clone of the Borland IDE called RHIDE which wrapped DJGPP, a GCC port for DOS/DPMS. I had some fun times with that.
- 0815test 7y agoThe Free-Pascal text-mode IDE (FPIDE) also uses that look, even on Linux. But there is no C/C++ version that I know about. TUI-style editors (with GUI-like menus, widgets, overlapped frames etc.) in general seem to be unpopular on Unix/Linux, the only ones I can find (besides the one mentioned above which is part of Free-Pascal) are essentially unmantained. Of course the quickest way to get a working TUI-mode editor that is stably maintained is probably to add support to Emacs, which already has text-mode working with things like a global menu, widgets, multiple "frames" etc. many of which were directly lifted from the "GUI" version.
- deleted 7y ago[deleted]
- antod 7y ago> You could even license the UI library from Borland for use in your own programs. And Turbo Pascal had the exact same look. Turbo Vision?
- gmueckl 7y ago
- btilly 7y agoI remember playing Wolfenstein 3D for many hours back in grad school. Then Doom came out, and I found out the hard way that I get motion sickness from playing immersive games with good graphics. :-( I've not been able to play first person shooters since. But I sure loved Wolfenstein 3D.
- lostmyoldone 7y agoUsed to get severe motion sickness too until I figured out it went away at high FPS. At least for well made games with low input latency. With a good 1000Hz wired mouse and games I where I get at least 100fps, preferably >144fps, I don't feel anything at all when I play. Still can't watch others play though.
- btilly 7y agoMy curiosity is not sufficient to test whether the same is true for me. Particularly not since if I get immersed in the game, by the time I realize it is happening it is too late. The potential upside just isn't there to make it worthwhile. However I've also found that 3-D systems that everyone else oohs over whose operators promise don't cause motion sickness any more, always do. Really fast. So I'm apparently on the sensitive end of motion sickness from computer systems.
- zamalek 7y agoHigh FOV (>90 degrees) also alleviates motion sickness. Most games default to around 75, which is suitable only for television distances.
- filereaper 7y agoJohn Romero mentions this in his talk - "The Early Days of Id Software" https://www.youtube.com/watch?v=KFziBfvAFnM https://www.youtube.com/watch?v=KFziBfvAFnM
- filereaper 7y agoJohn talks about Id's Software Principles, one of the YouTube commenters (Sean Ramey) summarized them below: 1. No prototypes. Just make the game. Polish as you go. Don't depend on polish happening later. Always maintain constantly shippable code. (Large teams require more planning though.) 2. It's incredibly important that your game can always be run by your team. Bulletproof your engine by providing defaults (for input data) upon load failure. 3. Keep your code absolutely simple. Keep looking at your functions and figure out how you can simplify further. 4. Great tools help make great games. Spend as much time on tools as possible. 5. We are our own best testing team and should never allow anyone else to experience bugs or see the game crash. Don't waste others' time. Test thoroughly before checking in your code. 6. As soon as you see a bug, you fix it. Do not continue on. If you don't fix your bugs your new code will be built on a buggy codebase and ensure an unstable foundation. 7. Use a development system that is superior to your target. 8. Write your code for this game only - not for a future game. You're going to be writing new code later because you'll be smarter. 9. Encapsulate functionality to ensure design consistency. This minimizes mistakes and saves design time. 10. Try to code transparently. Tell your lead and peers exactly how you are going to solve your current task and get feedback and advice. Do not treat game programming like each coder is a black box. The project could go off the rails and cause delays. 11. Programming is a creative art form based in logic. Every programmer is different and will code differently. It's the output that matters. Extra advice: 1. Only program for a few minutes and test code immediately. Try not to code for even as long as 30 minutes. This is will help to avoid debugging because you will catch bugs sooner, and won't have as wide an area of code to look through for the bug.
- LocalH 7y agoInteresting how they make sure to mention the use of 320x200 during graphic editing to maintain proper aspect ratio, then display screenshots from the game in improper aspect ratio
- leshokunin 7y agoIt can’t be understated how much impact Wolfenstein 3D and Doom had. Commander Keen was already quite the tech demo, with scrolling on a PC without dedicated hardware; the most advanced platforming you’d see at the time would be Price of Persia. Wolf 3D felt like a next gen tech demo out of time. It was great fun, it was violent, it looked unlike anything else (besides Ultima Underworld). Of course, that monumental achievement looks insignificant when compared with Doom, which single-handedly added stairs, different floors, multiplayer (!) and modding. Most of us here work in software. To see software so casually come in, introduce never seen before concepts, it’s so impressive to me. I don’t think That I know of something having quite this impact in other aspects of software.
- BurningFrog 7y agoI've played much "better" games than Doom in many ways, but never one so revolutionary for its time, and I've never been so genuinely afraid when playing. But seriously: Overstated! You mean overstated!
- hnzix 7y ago> so genuinely afraid As a little tyke I used to actually duck left of my monitor when an imp threw a fireball with my heart thumping. Replaying as an adult I'm like wtf that's just a lumpy mass of pixels, how could I have been so scared?
- hef19898 7y agoThe original Alien vs. Predator vs. pretty scary, too. Especially the Marine missions. I once didn't move in the game for what felt like an hour or so and refused to go down a particularly bad lit corridor.
- ygra 7y agoI remember watching my father play Descent and that was pretty much the first real 3D game I've seen (Germany, so there was a bit of trouble with Doom and Wolfenstein). And I was constantly trying to peek around corners by moving my head.
- cgrealy 7y ago"We didn’t have a version control system. Surprisingly, we went all the way to Quake 3 without one, then we started using Visual Source Safe." That is both impressive and terrifying. I'm old enough to remember when I first started using VSS, and being amazed at how awesome source control was :D These days, it's hard to look back at SourceSafe with anything other than horror....
- alain94040 7y agoThere was a transition from the 80s to late 90s: until you had some kind of network, the important thing was to backup your machine. Daily if you can. Even if you had been running a local revision control on your local machine, you wouldn't be protected enough, so backups were more important. Once networking and servers became more prevalent, it slowly made sense that backups turned into revision control. If your machine crashes, there is a remote repo you can connect to and get back to where you were.
- m3kw9 7y agoNow that’s a flex!
- Endy 7y agoI miss Keen.
- acjohnson55 7y agoMy dad brought copies of both of these games home on floppy disk, which is what got me into computers.
- QuadrupleA 7y agoGreat article - cool to get an inside look at tools, IDE environments, art sketches etc. Such an exciting time for PC games, with ID way out at the forefront - highly recommend the Masters of Doom book mentioned in the article too, it's a deep dive into the making and eventual impact of Doom. Great snapshot of the ID guys and of that time period.
- x3ro 7y agoShameless plug: this reminds me of how I once spent an afternoon compiling the open sourced version of Keen Dreams using Borland C++ 3.1 :D http://x3ro.de/2014/09/18/keen-dreams-dosbox.html http://x3ro.de/2014/09/18/keen-dreams-dosbox.html
- m12k 7y agoFor anyone curious about the technical details, there's a decent description of how Adaptive Tile Refresh works in the wikipedia article: https://en.wikipedia.org/wiki/Adaptive_tile_refresh https://en.wikipedia.org/wiki/Adaptive_tile_refresh
- mobilemidget 7y agoThese two titles in one sentence, make me wonder how a 3d shooter version of Commander Keen would be with current day graphics.....