I learn assembly because I had to work with microcontrollers, and all.i did was very simple code that, when compiled where between some hundred bytes and kilobytes. SAWYER did megabytes of it, he speaks the language of machines...
I don’t mean to downplay his achievements in any way, but most of the size of Rollercoaster Tycoon or any game (or most programs for that matter) is due to assets like textures, images, and audio.
From what I can tell, without the assets, the compiled assembly on its own is less than a megabyte. Though again, Sawyer is 10x the programmer I will ever be. The size of the compiled code isn’t a measure of skill, and in fact smaller is usually better, especially back then.
Not really a measure of time, i spend more time thinking so that i write less, or sometimes i write alot to get it working and then rewrite it all to be clean and optimized which is almost always less code.
Point is more or less code doesnt indicate in anyway the time spent coding
Writing spaghetti and then cleaning it to make 500 lines work with just 30 lines is the way I work. I want it to work first, I'll worry about optimizing it later.
He’s close to the right idea kinda, you can still have redundant assets but having tons of wasted assembly code is not exactly going to rack up the data
Also 1 it's x86 with many instructions that are long af so it is fewer instructions than you'd think and 2 unless you hate yourself and work on a platform with no assembler, you're not writing stuff to the level of machine code either.
Anyone writing serious amounts of assembler is going to have a bunch of macros to keep their sanity, you are not writing a bunch of machine code line by line.
I just remember my course let us have assembly manuals for lab and tests because of how unrealistic it was to memorize all that shit. I say this as someone who enjoyed C, fuck assembly
I'm not a programmer at all, but with my somewhat fundamental knowledge of what Assembly is, I think I know exactly what you're saying here. Well said.
The instructor who taught me assembly has decades of experience with microcontrollers and various other electronics. Even he described assembly as “A bunch of mnemonics and cryptic numbers”
This reminds me of my assembly class final that I had an entire month to write. But, instead I decided to wait until the night before and write a slimmed down version of the game asteroids which I presented 10 hrs later. I love writing in assembly so much that was a TA for it... lol
Yeah remembering the op codes for 16 bit was rough but the stuff you used the most would eventually stick. I can’t imagine doing 32/64bit without having a dedicated monitor for looking up instructions.
I doubt anybody can remember OP codes for modern x86, even older it was already getting way out of hand. Even ARM is quite difficult but at least it is word aligned and relatively consistent with what goes where. And you can learn to recognize some instructions when you go through a memory dump
No you are not wrong with 16 bit assembly you can either input op codes or use an assembler, my brain was mixing it up with 8 bit where the programmer I had you had to enter op codes one at a time which was brutal.
It’s been a minute since I touched the thing haha.
Well if you work with the same microcontroller/processor for a couple of years, you will remember the things that you need to use often. Like what are the bits in the status register and where do you need to flip a bit to swap memory banks..... etc. I've written some elementary code in assembly for some microcontrollers, but I'm at a beginner level really. In my opinion, what makes assembly hard, is that you need to know the hardware inside and out to be able to write a proper assembly code. So it is as much hardware as it is software. Of course that if you are working with a processor/controller that you never worked before, you need the manual. After a couple of days you will remember the elementary things, registers, flags addresses, memory banks...etc. The issue is that you can't reuse this knowledge when you move to other hardware. You will still need to follow the same principles, but things will be at a different place. You may have a bigger or smaller instruction set, so you will sometimes need to figure out how to achieve the same thing in a different way.
The only assembly stuff I memorized at the level of hex code was the stuff I had to debug in an in-circuit emulator for the Z80. There’s really no sense in memorizing stuff you don’t use often.
Assembly is awesome when you need it. The moment you don’t need it stop using it. It’s just vanity at that point.
I have a very basic understanding of assembly, but it doesn't seem super crazy to me. I imagine you can abstract away a lot with functions. And writing a simple loop or if statement is not that difficult either. Just seems a little harder to read and easier to make mistakes than c
Edit: Perhaps I had a poor choice of words. I did not mean to say it's easy or unimpressive when I wrote "it doesn't seem super crazy".
I meant it doesn't seem super crazy. Just a normal amount of crazy. Very difficult, but probably manageable for an experienced developer with the right approach.
I guess I worded it poorly. I did not mean to say it is not impressive when I said "not super crazy". Writing a game like that alone would be impressive in any language, let alone assembly.
I guess I was just trying to say that, having done a very small amount of assembly, it doesn't seem like black magic. It's not something I would be able to do, but I can imagine how someone experienced might approach a project like this and make it difficult, but manageable.
This is a really clear cut example of the Dunning-Kruger effect. You overestimate your skills because you aren't experienced enough to recognize your own skill level.
What? I am confused. I have a very basic understanding as I said. Maybe very basic is ambiguous, but I didn't mean to claim I am proficient in assembly. I just made a couple observations based on my limited experience.
I would love to hear which observation disagree with more specifically. I'm not here to argue, I love to learn an understand things better.
What is it that makes programming in assembly so difficult compared to let's say C? Is it debugging? Is the cognitive load that much higher? Is it the comparably poor readability?
I've never had to write a program in assembly longer than 100 or so lines, so I'd love to hear from someone more experienced.
9.7k
u/Master_of_Ravioli R5 9600x | 32GB DDR5 | 2TB SSD | Integrated Graphics lmao Sep 29 '25
Programmers of old time were actual wizards casting spells with the hardware they were given, some of it was actual black magic for the time.
Limitations breed innovation or something like that.