I'm too young for the 1960's original, but there was a Scientific American article about how to write a clone of Spacewar back in the late 80's, probably in one of the regular "Computer Recreations" articles. Most of the articles were interesting - this wasn't the only thing I learned from them. It might have been February 1987, but I'm not sure (the table of contents doesn't go into enough detail, I can't find a good index of the computer recreations articles online, and the printed version of this issue is missing from its place on my shelves - maybe because it is one I made relatively extensive use of?)
I did get a few versions of the game working on my hot new 80386, and it was kind of fun to play it against siblings. The development difficulties were more about the development tools and hardware I had, not with the game itself.
One option was GW-BASIC that came with MS-DOS 2.1. It had no knowledge whatsoever of the Hercules Graphics Card clone I had. Hercules was basically like a MDA (text-mode-only) adapter, but had some extra RAM and bypass circuitry around the core 6845 CRT controller chip to enable a "graphics mode" that basically dynamically reads font data out of character-position-based offsets into RAM rather than the intended font ROM, giving the appearance of a 1-bit-per-pixel graphics mode... However, basic didn't now anything about this card, and everything had to be done with individual peek's and poke's for individual pixels (no efficient line or polygon drawing utilities), which is extremely slow in an interpreted language...
Another difficulty was that the documentation I had (from a PC hardware books and a CRT controller book) for programming the HGC was incomplete. It mentioned the graphics enable bit in I/O port 0x3b8, but not the "enable the enable" bit in port 0x3bf, nor the altered 6845 settings when in graphics mode. As a result, I had to resort to a hack to get it into graphics mode to run my own programs, where I would run a demo/advertisement program for a CAD program that came with the computer, Control-C out of it while it was in graphics mode, and then blindly type the commands to run my own program. MS-DOS and BIOS didn't know about this graphics card to present prompts as text when in graphics mode. (Eventually, a couple of decades later, I finally stumbled over a website that described the missing details, although such details still seem to be hard to find today. Although I just now found this scan of what might be the original documentation: GB101_Owners-Manual_text.pdf.)
Another option was a UNIX system (Microport UNIX System V/386 rel 3, v 2.1). It has a C compiler that could generate reasonably fast and efficient code, but had no interactive graphics support at all (regardless of your hardware), and its memory protections/etc would make it far more difficult to hack graphics in than with MS-DOS (I never tried). However, partly motivated by a desire to write graphics programs, I used UNIX to develop a C compiler that would target MS-DOS. This compiler eventually worked reasonably well; I even worked on some of my college programming homework with it. If you are curious, I've posted doscc online under: Miscellaneous Software.
I had very limited assembler support for MS-DOS, using MS-DOS's "debug" program, which included a very limited assembler where you always had to supply addresses numerically (not symbolically) and it only supported 16-bit assembly. At one point I developed a hackish GS-BASIC wrapper that would give limited symbolic addressing support using multiple passes (insert placeholder bytes for instructions referencing symbolic addresses initially, then fill in correct addresses in a later pass based on addresses extracted from the first pass), but it was still awkward and very slow to assemble, and it still required really awkward hacks for 32 bit code (write the 16-bit equivalent with comments, add additional missing bytes between instructions (you needed to understand the machine language fairly well), etc). Later (roughly as the compiler was nearing completion), I wrote my own assembler and dissassembler in C, which were monumentally faster and easier to use... Even with a good assembler, assembly is still too low-level to develop anything substantial. The most notable thing I used these for was to develop my own "DOS extender" to support running 32-bit code (from my compiler) under 16-bit DOS.
Many decades ago most equipment (computer or otherwise) came with full documentation, circuit diagrams, development tools (for computers), etc. That was starting to die out by the 80's, and I still lament its demise. At least Linux, open source, and various documentation available online mitigates this somewhat.