Do you ever 'need to go deeper?'

I did that for years; I ended up gaining a whole lot of knowledge I don’t really apply nowadays. There is so much relevant stuff to learn, I would spend my time on that first unless you are really looking for a complicated hobby for which there is little tooling to make your life easier :slight_smile:

Its cool to understand how game developers had to do it “back in the day” of course.

On a technical level, no. I prefer not to go deeper.
On a design level, yes. I want to be perfect.
On a gameplay, yes. I want to play to the best I can.
On sex, yes indeed.
Lucid dreams? Oh yes.
Programming? Not unless you’re really committed to doing things from scratch. (I wished that’s the case for me.)
Anything else? If time and interests are allowable, yes.

I thought about the same thing when I came back here.

It’s no fun anymore with current processor architectures. But as you said, at times it’s good to get a feeling for what is really happening “under the hood”. Still I wouldn’t recommend learning assembly anymore these days. Better leave that to the compilers and code generators.

I never learned assembly that way. Well, I don’t know assembly of current processor architectures either ^^

I learned assembly - or better: whats really happening “under the hood” - by using logisim, a logic simulator, where it’s possible to build and simulate almost every logic circuit, including simple CPUs. Combining knowledge from minecraft and a couple of youtube videos I was able to build some CPUs. It’s one of the experiences I’d recommend the most! :slight_smile:

If one were to go assembly and wanted to go even deeper than that, I would encourage that person to go emulate a hardware device.

As far as I know, there’s only one famous person who has ever achieved that: Martin Korth, the creator of no$gba and other no-cash programs. The reason he’s famous is due to the fact he single-handedly wrote an assembly program that emulates Nintendo DS on a near-perfect accuracy back in 2006, which is the only emulator capable of playing most commercial games on old operating systems and old hardwares, such as MS-DOS.

I had replied already, but a new point came to my mind.

Java has limits, not only in the question how close to the iron you can get, but also in some other areas.

C++ has less limits, but it has a whole lot of traps for programmers. I keep being told, that skilled programmers will learn to avoid them, but I find my productivity with Java being conatntly higher than with C++. For me, one of the reasons for higher produzctivity is that fact that Java has limits. These limits streamline the way of development to some extend, and make it easier to read and maintain code, also easier to find bugs.

If you ever had to work with a piece of C++ code where magicians went rampant on template and overloeaded operator use, macros and obscure syntactical tricks in the preprocessor, you know why the limits in Java are good.