• lugal@lemmy.world
    link
    fedilink
    English
    arrow-up
    152
    arrow-down
    1
    ·
    2 months ago

    I don’t know if everyone gets the reference: RollerCoaster Tycoon is in fact writing mostly in assembly to use the hardware more efficiently

    • Lem Jukes@lemm.ee
      link
      fedilink
      English
      arrow-up
      68
      arrow-down
      13
      ·
      edit-2
      2 months ago

      It also makes it really portable which is a big part of why all the ports to modern systems are so close to the original. Obligatory OpenRCT2 shoutout.

      edit: This is not entirely correct, I was mistaken about my understanding of some things. Still check out openrct2

      • Faresh@lemmy.ml
        link
        fedilink
        English
        arrow-up
        52
        arrow-down
        1
        ·
        edit-2
        2 months ago

        Writing it in assembly would make it pretty much the opposite of portable (not accounting for emulation), since you are directly giving instructions to a specific hardware and OS.

        • Lem Jukes@lemm.ee
          link
          fedilink
          English
          arrow-up
          3
          arrow-down
          10
          ·
          2 months ago

          Not necessarily, unless you’re working on something like an OS you’re not usually directly accessing/working on the hardware. As long as you can connect the asm up to your os/driver abstraction layer and the os to hardware apis work the game should be functional. Not to mention RCT targets the x86 assembler architecture which was one of the most popular at the time

          • __dev@lemmy.world
            link
            fedilink
            English
            arrow-up
            11
            ·
            2 months ago

            That’s no less true than games written in C, or otherwise with few dependencies. Doom is way more portable than RCT precisely because it’s written in C instead of assembly.

          • Faresh@lemmy.ml
            link
            fedilink
            English
            arrow-up
            5
            ·
            edit-2
            2 months ago

            you’re not usually directly accessing/working on the hardware

            I mean, you are. Sure, there’s a layer of abstraction when doing tasks that require the intervention of the kernel, but you are still dealing with cpu registers and stuff like that. Merely by writing in assembly you are making your software less portable because you are writing for a specific ISA that only a certain family of processors can read, and talking with the kernel through an API or ABI that is specific to the kernel (standards like Posix mitigate the latter part somewhat, but some systems (windows) aren’t Posix compilant).

          • Fubber Nuckin'@lemmy.world
            link
            fedilink
            English
            arrow-up
            2
            ·
            2 months ago

            We created the world of monorail 1. Everything exists to bring more people to monorail 1. What is monorail 1? It is a 4 car monorail that takes the shortest possible path back to the start of the station. We have several other attractions at the park such as: The Pit; Memento Mori; Install CSS, but none of them are the main attraction.