This is making me wonder just how raw Sawyer’s code for Rollercoaster Tycoon was. The source doesn’t seem to be out there but a page on his site (http://www.chrissawyergames.com/faq3.htm) says he used “MS Macro Assembler V6.11c” so it’s probably safe to assume he didn’t type out every single instruction in the game by hand. Depending on how many macros he’d built up at this point in his career it might have felt more like programming in C, except with a lower conceptual barrier to switching to inline assembly functions when stuff needed to be optimized.
MASM and the Intel assembler were already rather high-level compared to other assemblers, with a type system, procedures, records, etc. Those later versions of MASM added things like automatic allocation of structs on the stack and for loops. Depends on what features Sawyer used, but that assenbler in particular is a pretty advanced tool.