20 ms·
Let's compile like it's 1992 (2014)
- aidos 3y agoAfter seeing it mentioned on here a bunch of times over the years, I finally read Master of Doom a couple of months back. Great book! The games they were producing were incredibly exciting to play at the time, but it’s even more inspiring looking back at the history to see what a handful of scrappy kids could create.
- busfahrer 3y agoAlso, Romero recently released his memoir “Doom Guy”, has anybody here read it? Wondering if it’s any good.
- Borg3 3y agoYeah, thats great in retro systems. If you gather the tools, you can rebuild them. I recently recompiled good old Uplink game for fun. All I needed is Visual Studio 6.0. The devel archive contained all necessary deps to build game. It was a bit tricky to do it right but after an hour of fixing deps (I got rusty) I made it and game works fine :) I even fixed some minor glitches and added little improvements here and there. Now imagine touching todays stuff.. Madness :)
- ido 3y agoThese days a lot of what you need is simply the right version of Unity or Unreal installed. You’re definitely correct for pre-unity times tho.
- saidinesh5 3y agoI think that's only with Linux's package management mess? Most commercial embedded/windows stuff I have seen usually vendored their dependencies in a thirdparty/ folder AND fixed the toolchains they use. So the setup is always reproducible.
- Borg3 3y agoDunno, but for example I tried to compile Stalker SoC and it was very messy adventure. It took me whole day to build it (deps problems, compile errors) and it was such an disappointment because game just crashed. Maybe I will try again one day.
- Levitating 3y agoWell that's the X-ray engine for you
- Borg3 3y agoHehe, yeah ;) I ended up disassembling it, then looking at disasm + source code I removed dynamic shadows in DX8 renderer (I have weak GFX card, and in DX8 shadows look not good anyway) and patched the binary :)
- bombcar 3y agoA ton of work has to be done to build old minecraft mods from source. Doable, but often tricky.
- dormento 3y agoI do it that way with toolchains for exotic architectures. Its easier. (I'm from the "Hey as long as it works" school of thought).
- anthk 3y agoLinux and most projects will just compile straight with few dependencies or have the dependencies as submodules. I compiled a 1994 game just straight with few header changes. With Windows your need a huge VB6 IDE. Or a DOS emulator. Also, Direct Draw stuff under Windows > 7 will run at atrocious speeds, slower than literally emulating Windows 95 on qemu with no hardware acceleration. And lots of DX 7-8 games will be glitchy as hell.
- sillywalk 3y ago> I recently recompiled good old Uplink game for fun. Cool. Cool game. I didn't know the source code was available.
- gattilorenz 3y agoIt’s available on the Internet Archive, and iirc there’s also a source-available multiplatform port/new engine on github
- davikr 3y ago> source-available multiplatform port/new engine on github Can you link it, please?
- gattilorenz 3y agohttps://www.ferrousmoon.com/forums/viewtopic.php?f=55&t=2777 https://www.ferrousmoon.com/forums/viewtopic.php?f=55&t=2777 My memory is not 100% correct apparently :) There is an archived repo on Github named Onlink too. I originally read about this in a past HN thread[1], and played with the game a bit [1] https://news.ycombinator.com/item?id=38048888 https://news.ycombinator.com/item?id=38048888
- pjmlp 3y agoSweet memories of Borland's MS-DOS IDEs.
- xyzelement 3y agoIf you have nostalgia for this, check out Free Pascal. It's an open-source Pascal/Delphi clone, and includes a clone of the blue DOS Turbo Pascal editor that will give you the vibe you crave. I used it for a few of the Advent of Code days this year, but man the nostalgia wore off. Both the limitations of the IDE and the verbosity of Pascal weren't "fun" to operate in daily coming from the modern world. But definitely sweet memories.
- datavirtue 3y agoI keep a box with the manuals on my very previous bookshelf space. Turbo C
- pjmlp 3y agoI have still all manuals from all Borland products, they were great. In rainy days, I still browse through them. For those that never saw them, they are available at the Internet Archive.
- Dwedit 3y agoI think RHIDE still has source code available, even if it's 23 years since the last update? Real problem with implementing such a terminal-mode GUI is that Unix/Linux terminals clung to a terminal standard which didn't provide all the features of an MS-DOS text mode program. In particular, it can't recognize the Alt key by itself, or Alt+Letter key combinations. Or Ctrl+Shift+Left/Right keys.
- yaky 3y agoI highly recommend his book on Wolfenstein 3D (mentioned at the end of the article). Even though it's technical, it is not dry or boring. And there are lots of old-school tricks and optimizations, like 64 unwrapped functions for scaling wall textures, storing the sprites "sideways", managing the wacky graphics card, and hacking the graphics modes to even be able to display something like a game in the first place.
- Pesthuf 3y agoThis one https://fabiensanglard.net/Game_Engine_Black_Book/index.php https://fabiensanglard.net/Game_Engine_Black_Book/index.php ? Looks like it's not out yet, is it?
- fredrikholm 3y agoThat post is from 2014. He released it in 2017: https://fabiensanglard.net/gebb/ https://fabiensanglard.net/gebb/ https://fabiensanglard.net/about/index.html https://fabiensanglard.net/about/index.html
- estebank 3y agoIt came out in 2017 https://www.amazon.com/Game-Engine-Black-Book-Wolfenstein/dp/1539692876 https://www.amazon.com/Game-Engine-Black-Book-Wolfenstein/dp... as per the bottom of https://fabiensanglard.net/about/index.html https://fabiensanglard.net/about/index.html
- bombcar 3y agohttps://fabiensanglard.net/about/ https://fabiensanglard.net/about/ has all of them at the bottom - there is one for Wolf3D and one for Doom - highly recommended. The CP-System is also interesting, even for someone like me who never used one. But not quite as interesting (to me) as the other two.
- raid2000 3y agoThanks for the recommendation. I just downloaded the 431 page pdf on the game engine. It's even got a foreward by John Carmack.
- sfc32 3y agoHad some problems opening the archive Archive: wolfsrc.zip End-of-central-directory signature not found. Either this file is not a zipfile, or it constitutes one disk of a multi-part archive. In the latter case the central directory and zipfile comment will be found on the last disk(s) of this archive. unzip: cannot find zipfile directory in one of wolfsrc.zip or wolfsrc.zip.zip, and cannot find wolfsrc.zip.ZIP, period.
- anta40 3y agoI'm on macOS. curl -O http://fabiensanglard.net/Compile_Like_Its_1992/tools/wolfsrc.zip http://fabiensanglard.net/Compile_Like_Its_1992/tools/wolfsr... gave a HTML file. $ file wolfsrc.zip wolfsrc.zip: HTML document text, ASCII text wget downloaded the file correctly, though. can be unzipped without problem.
- giantrobot 3y agoWith curl you'll likely need to give the '-L' flag to follow a redirect automatically. Yup. The link gives a 301 redirect to the HTTPS site. With wget it follows redirects automatically.
- ozymandias1337 3y agowget FTW.
- giantrobot 3y agoI don't dislike wget at all but I appreciate the explicit behavior of curl.
- ozymandias1337 3y agoFair 'nuff.
- pjc50 3y agoBorland C++ was extremely good: a C++ compiler, standard library, and IDE with debugger that fit in about five megabytes. With the cozy yellow-on-blue Borland colour scheme.
- jahnu 3y agoOWL was pretty good too.
- pjmlp 3y agoI was quite surprised how bad MFC was by comparison, then OWL got replaced by VCL, still quite good, while MFC continued bad as always. While Borland had an approach that we could get nice high level frameworks in C++ (a sentiment that Qt also shares), Microsoft C++ folks seemed keen in keeping their beloved MFC as low level as possible. I read somewhere that MFC originally was similar in concept, but faced too much resistance internally, thus the outcome and was rewriten. And to this day Microsoft hasn't been able to deliver a C++ framework that is as nice to use as those from Borland.
- mschaef 3y ago> I read somewhere that MFC originally was similar in concept, This is what AFX was. They reused some of the core pieces, so the AFX name persisted into MFC. > but faced too much resistance internally, thus the outcome and was rewriten. The concern was that developers who had just ascended the Win16 API learning curve would now have to ascend another totally different learning curve to understand the framework. MFC developed from a (supposedly) nice object oriented framework into a way to avoid explicitly passing handles to API calls. (It also replaced message cracking and a few other things.) By the time Visual C++ rolled around, Microsoft started adding higher level abstractions to MFC and building it back out a bit, but the underlying damage was done. > And to this day Microsoft hasn't been able to deliver a C++ framework that is as nice to use as those from Borland. ATL was supposedly quite nice, as was the mostly unsupported WTL derivative (that supported complete app development).
- Isamu 3y agoInstalling to the C drive! Luxury! We swapped those floppies back and forth out of the A and B drives because we had no hard drive and it kept prompting for the part of the compiler swapped out! And we enjoyed it! Kids these days don’t believe you when you rant about it!
- devoutsalsa 3y agoIn 1992, I had a 5.25 inch, double height hard drive with 8.9 MB of storage. I also had two 5.25 inch, 360 KB floppy drives. I was jealous of my friend's Mac w/ a 720 KB disk drive and 30 MB hard drive (although his system cost probably cost 6x what my PC cost).
- michaelcampbell 3y ago> although his system cost probably cost 6x what my PC cost How times have (not) changed, eh?
- toast0 3y agoLikely just full height, not double height. What has become the normal height for a 5.25" drive is half height. I've seen plenty of full height 5.25" hard drives, but I don't think I've seen double height (would take 4 bays in a modern computer case, if modern computer cases had 4 bays)
- devoutsalsa 3y agoIt's been a while. It was twice the size of two 5.25 floppy drives. Whatever size that is.
- o11c 3y agoI was going to say "my current desktop has 4 CD-capable bays", but I checked and it's actually only 3 bays followed by unused space (and then 2.5" and 3.5" bays below that).
- xorcist 3y agoThe full height drives were the 8" floppies. They hardly existed anymore in the 90s, not on PC systems. Wikipedia has a nice article with pictures: https://en.wikipedia.org/wiki/Floppy_disk https://en.wikipedia.org/wiki/Floppy_disk Even if you didn't have that 3.5" drive for your computer, perhaps you can take solace in the fact that you understand intuitively why the disks were called "floppy"!
- ecshafer 3y agoI learned to program in Borland Turbo C++. One thing from back then that I really miss is how easy it was to do some complex things. I was able to draw to the screen by just calling geometric shape functions, and it made pictures! I found out that if I drew a shape, then called the xor function on the shape a new but sligtly different shape, I could make animations. So making little sprites that looked like they were running made out of only 1000 lines of C++ code was awesome. Some friends and I we got together and made a final fantasy like game using these tricks, hand crafted sprites and a game world that you could walk across, every map was a whole screen, and you would go to an adjacent map when you hit the sides, and every step if you had a natural 1 you would go into a fight with some enemies. This was all pretty tedious and everything, but it was a lot of fun to high schoolers. And if we knew more computer science and software engineering we would have done more probably, and it would have worked better. But unlike today we didn't have to learn SFML or or activex or opengl to just start playing and get stuff working, we could just call circle.
- xyzelement 3y agoI suspect that if we wanted to find an environment for kids to do simple shape programming, we can find something like that. The difference seems to be that there's been a greater divergence between "professional" tools and "kids/intro tools" whereas Turbo C++ (or Turbo Pascal in my days) were kinda both.
- mikepurvis 3y agoI've been struggling with getting my ten-year-old across this gap. He's outgrown Scratch/Roblox and I don't think PICO-8 is quite the right set of abstractions (no built in entity system, seriously?); we're working with Godot right now and he's making progress, but it's definitely a lot more of a learning curve figuring out how to do stuff in a tool that has everything.
- xyzelement 3y agoI have a 3 and 1 year olds but starting to think about this. If we really think basic / turbo pascal has this right. Why don’t we just teach our kids those things. We can get the environments running I am sure.
- DeathArrow 3y ago[flagged]
- flohofwoe 3y agoDoom is actually quite easy to build with modern tooling because the source code is already structured to keep the platform-specific parts isolated and the source is mostly vanilla C89 (Doom was developed on NeXT workstations and then 'downported' to DOS). For instance here's my WASM port of the Doom shareware version. This is a fork of doomgeneric, which itself is a fork of fbDoom - but midway through I noticed that all the abstractions added by fbDoom and doomgeneric are actually not very helpful for a WASM port that should run in browsers, and that I probably would have been better off forking the original source code instead): Github repo: https://github.com/floooh/doom-sokol https://github.com/floooh/doom-sokol Hosted version: https://floooh.github.io/doom-sokol/ https://floooh.github.io/doom-sokol/
- jzwinck 3y agoThis is super cool, thank you. One thing I couldn't figure out is how to press "Y" to accept Nightmare difficulty.
- flohofwoe 3y agoOops good catch, I only check a small number of keys (AWSD etc...), and totally forgot about Y and N. I'll write a reminder ticket to myself to fix this sometime soon-ish.
- ndiddy 3y agoDespite your lack of interest, other users on the site may want to compile Wolfenstein. People don't submit links solely for your approval.
- demondemidi 3y ago[flagged]
- sebastianconcpt 3y agoOh the memories.. One thing that we need to rescue/reinvent from that are the TUIs which will look amazing in higher resolution screens.
- bombcar 3y agoThe speed you could get on those "box character TUIs with light up Alt-key shortcuts" was insane - I can remember going to Fry's Electronics, where everything was managed by some (probably mainframe) computer that was interacted with via terminals (later a terminal emulator on windows) and the employees who knew it could get you a printed out quote for the cage before the thing had even finished drawing the first screen.
- sebastianconcpt 3y agodot matrix printer background noises Sorry I didn't get the last part of what you said, come again?
- dang 3y agoRelated: Let's compile like it's 1992 (2014) - https://news.ycombinator.com/item?id=13750097 https://news.ycombinator.com/item?id=13750097 - Feb 2017 (80 comments)
- jpm_sd 3y agoGosh, I really miss that DOS text-based UI. Reminds me of my old reliable PS/2, which I kept using up until about 1997!
- einpoklum 3y agoYou can use midnight commander on your terminal, at least...
- visysl 3y agoIt is excellent book that can bring you throughout the game development in the old day again. I like the book very much and I finished reading it while waiting in the line in the cafeteria years ago.