Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo

agnos.is Forums

  1. Home
  2. Programmer Humor
  3. Simple Optimization Trick

Simple Optimization Trick

Scheduled Pinned Locked Moved Programmer Humor
programmerhumor
70 Posts 49 Posters 47 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • F [email protected]

    Animal Well was written in C without an engine and it was a decent hit (for an indie). Although that's definitely an exception, perhaps very similar to the RollerCoaster Tycoon example

    tropicaldingdong@lemmy.worldT This user is from outside of this forum
    tropicaldingdong@lemmy.worldT This user is from outside of this forum
    [email protected]
    wrote on last edited by
    #27

    Animal Well

    Animal Well was the shit.

    1 Reply Last reply
    3
    • S [email protected]

      See, I've heard that story, that he basically ran ... well, arguably, a worm that did network analysis on what was installed on every computer in the MSFT internal network, realized more people had DOOM installed... than Windows...

      ... and I have also heard that he actually ported DOOM to... either MS DOS, or Win95... ?

      I genuienly do not know which is true, if they're all true, if they're all false... I can't remember the source for each of these, but I know I've heard or read all these semi-close variants from somewhere, over the years.

      jqubed@lemmy.worldJ This user is from outside of this forum
      jqubed@lemmy.worldJ This user is from outside of this forum
      [email protected]
      wrote on last edited by
      #28

      Just saw this article recently. Gabe was part of a team trying to convince developers that they would be better off writing their games with more abstracted code/libraries instead of writing their own interfaces (some of which were written by people convinced they were being really efficient but were actually terrible). One thing they did to prove their point was going to id and offering to have Microsoft port Doom to Windows for free. But the experience and seeing the success id was having distributing their own game led Gabe to launch Valve.

      1 Reply Last reply
      5
      • D [email protected]

        I've never written a single line of code in assembly, and I'm now curious

        P This user is from outside of this forum
        P This user is from outside of this forum
        [email protected]
        wrote on last edited by
        #29

        Really? It was required when I was in college. We did MIPS, x86, and PIC.

        I like it because there's no mysterious things happening to your bits. Every line is an instruction executed. You control the machine. It's power. It gives you power over the machines.

        D E 2 Replies Last reply
        3
        • F [email protected]

          Rollercoaster Tycoon was the last of an era, not a sudden burst of genius.

          Before Doom (1993), almost all games were assembly. Doom was a shock to the industry. You could now write a high performance, multiplatform, sophisticated game in a compiled language (C). When I say multiplatform, I don't just mean how it was ported to everything later. It was developed on NextStations first. DOS was the first port. So it proved all of the above immediately on release.

          We take for granted that C is performant now, but that wasn't obvious until optimizing compilers got good and someone tried.

          Rollercoaster Tycoon (1999) is the last notable title that used ASM. It's impressive in many ways, but it wasn't as much of a standout as it seems now. Six years earlier to its release, that was just how games were done.

          It's notable that the only port of Rollercoaster Tycoon was the original Xbox, which was also x86. Nobody wants to rewrite it for anything else.

          jqubed@lemmy.worldJ This user is from outside of this forum
          jqubed@lemmy.worldJ This user is from outside of this forum
          [email protected]
          wrote on last edited by
          #30

          Eventually it sort-of got a rewrite to create RollerCoaster Tycoon Classic, initially for iOS and Android, later for Windows, macOS, and Nintendo Switch. It largely is a rewrite of RollerCoaster Tycoon 2, with the goal of bringing the game to more modern platforms, and the save files for parks and rides are compatible. In this interview with Atari Club, Sawyer says the rewrite was in C++ but even with a team of people still took longer to write in C++ than it took him to write the original in x86 assembly.

          If anyone previously paid attention to RCT Classic, it’s been seeing some development work again and is working on Android again. They also made RCT Classic+ on Apple Arcade (basically just the game and all the expansions included) and also updated the regular versions of RCT Classic so they run correctly again (RCT Classic stopped working on macOS when Apple dropped support for 32-bit applications and Atari didn’t release a recompiled game until recently).

          1 Reply Last reply
          5
          • P [email protected]

            Really? It was required when I was in college. We did MIPS, x86, and PIC.

            I like it because there's no mysterious things happening to your bits. Every line is an instruction executed. You control the machine. It's power. It gives you power over the machines.

            D This user is from outside of this forum
            D This user is from outside of this forum
            [email protected]
            wrote on last edited by
            #31

            I went to college for Microbiology and became a programmer on my own after, so nope, never written a single line in assembly and never thought of checking it out either. Just never really crossed my mind. I might start messing with it soon.

            P K 2 Replies Last reply
            3
            • B [email protected]

              Before Doom (1993), almost all games were assembly.

              Carmack wrote Wolfenstein 3d in C. Star Control and Dune 2 were C.

              R This user is from outside of this forum
              R This user is from outside of this forum
              [email protected]
              wrote on last edited by
              #32

              > almost

              B 1 Reply Last reply
              7
              • maven@lemmy.zipM [email protected]
                This post did not contain any content.
                H This user is from outside of this forum
                H This user is from outside of this forum
                [email protected]
                wrote on last edited by [email protected]
                #33

                is there a NPM package for assembly? I need to keep access to right pad my strings package.

                1 Reply Last reply
                36
                • Q [email protected]

                  Did the developer use any version control though? SCCS has been around since the early 70s, RCS and CVS since the 80s. The tools definitely existed.

                  Also, it was a single dev, which makes SCM significantly simpler!

                  B This user is from outside of this forum
                  B This user is from outside of this forum
                  [email protected]
                  wrote on last edited by
                  #34

                  In my experience (some games in z80 and 68000 in the early 90s), version control wasn't considered until mid-90s sometime, and at first wasn't trusted. There were network backups, but I don't know if they had revisions.

                  Merging seemed like it couldn't possibly work well, so we would try to have separate ownership of different files. Although there would be only a handful of programmers on a team, so that was easy.

                  Prior to that, backup and versioning was manually handing a floppy or two to someone each week.

                  1 Reply Last reply
                  3
                  • P [email protected]

                    Really? It was required when I was in college. We did MIPS, x86, and PIC.

                    I like it because there's no mysterious things happening to your bits. Every line is an instruction executed. You control the machine. It's power. It gives you power over the machines.

                    E This user is from outside of this forum
                    E This user is from outside of this forum
                    [email protected]
                    wrote on last edited by
                    #35

                    That wasn't required in my CS program, though instead we had to design our own instruction set and assembler. Obviously it was an approximation, though.

                    1 Reply Last reply
                    2
                    • B [email protected]

                      Before Doom (1993), almost all games were assembly.

                      Carmack wrote Wolfenstein 3d in C. Star Control and Dune 2 were C.

                      A This user is from outside of this forum
                      A This user is from outside of this forum
                      [email protected]
                      wrote on last edited by
                      #36

                      Wolfenstein 3D is a lot less impressive than Doom. Doom was faster and more complex than other games, where as Wolfenstein had a strong and appealing gimmick but was slower and less complex as a trade-off. In-line with the expectations around compiled languages.

                      1 Reply Last reply
                      0
                      • F [email protected]

                        Rollercoaster Tycoon was the last of an era, not a sudden burst of genius.

                        Before Doom (1993), almost all games were assembly. Doom was a shock to the industry. You could now write a high performance, multiplatform, sophisticated game in a compiled language (C). When I say multiplatform, I don't just mean how it was ported to everything later. It was developed on NextStations first. DOS was the first port. So it proved all of the above immediately on release.

                        We take for granted that C is performant now, but that wasn't obvious until optimizing compilers got good and someone tried.

                        Rollercoaster Tycoon (1999) is the last notable title that used ASM. It's impressive in many ways, but it wasn't as much of a standout as it seems now. Six years earlier to its release, that was just how games were done.

                        It's notable that the only port of Rollercoaster Tycoon was the original Xbox, which was also x86. Nobody wants to rewrite it for anything else.

                        A This user is from outside of this forum
                        A This user is from outside of this forum
                        [email protected]
                        wrote on last edited by
                        #37

                        Before Doom (1993), almost all games were assembly

                        No? Not even close? Why is it people get away with saying such stupid things on the internet?

                        F 1 Reply Last reply
                        7
                        • D [email protected]

                          I went to college for Microbiology and became a programmer on my own after, so nope, never written a single line in assembly and never thought of checking it out either. Just never really crossed my mind. I might start messing with it soon.

                          P This user is from outside of this forum
                          P This user is from outside of this forum
                          [email protected]
                          wrote on last edited by
                          #38

                          I... Don't recommend it. Rust if anything.

                          It's a neat party trick? Helps you understand how a processor works? But for anything modern, it's way more work than it's worth.

                          1 Reply Last reply
                          3
                          • A [email protected]

                            Before Doom (1993), almost all games were assembly

                            No? Not even close? Why is it people get away with saying such stupid things on the internet?

                            F This user is from outside of this forum
                            F This user is from outside of this forum
                            [email protected]
                            wrote on last edited by
                            #39

                            Because it's true. Here's an article from Tim Sweeney from 2001:

                            https://web.archive.org/web/20010105180900/http://www.gamespy.com/legacy/articles/devweek_c.shtm

                            Mainstream application programmers switched to C in the early 80's. Game developers were slower to switch, because their small teams and focus on performance kept assembly language viable till the following decade. When id Software released DOOM, they surprised much of the industry by having no reliance on assembly code--despite excellent game performance, and by successfully cross-developing the game (in NeXTstep and DOS), then successfully porting it to an astounding variety of platforms.

                            B B 2 Replies Last reply
                            22
                            • B [email protected]

                              Before Doom (1993), almost all games were assembly.

                              Carmack wrote Wolfenstein 3d in C. Star Control and Dune 2 were C.

                              F This user is from outside of this forum
                              F This user is from outside of this forum
                              [email protected]
                              wrote on last edited by
                              #40

                              Those games didn't have the splash that Doom did for this sort of thing.

                              https://web.archive.org/web/20010105180900/http://www.gamespy.com/legacy/articles/devweek_c.shtm

                              Mainstream application programmers switched to C in the early 80's. Game developers were slower to switch, because their small teams and focus on performance kept assembly language viable till the following decade. When id Software released DOOM, they surprised much of the industry by having no reliance on assembly code--despite excellent game performance, and by successfully cross-developing the game (in NeXTstep and DOS), then successfully porting it to an astounding variety of platforms.

                              E 1 Reply Last reply
                              2
                              • F [email protected]

                                Animal Well was written in C without an engine and it was a decent hit (for an indie). Although that's definitely an exception, perhaps very similar to the RollerCoaster Tycoon example

                                jumuta@sh.itjust.worksJ This user is from outside of this forum
                                jumuta@sh.itjust.worksJ This user is from outside of this forum
                                [email protected]
                                wrote on last edited by
                                #41

                                Wikipedia says cpp

                                1 Reply Last reply
                                4
                                • H [email protected]

                                  This looks like a screenshot in the background of the C++ OpenRCT version because the resolution is too high and not supported by the original assembly release.

                                  K This user is from outside of this forum
                                  K This user is from outside of this forum
                                  [email protected]
                                  wrote on last edited by [email protected]
                                  #42

                                  The original goes to 1024 x 786 and has different zoom levels. I've played most of the original parks this year and that does not see to be too high res to me. Give me a sec I'll take a screenshot of mine in a minute.

                                  Edit here it is. It's the GOG version, which launches fullscreen, so the 1024 x 768 are stretched onto the center of my 1920 x 1080 screen.

                                  1 Reply Last reply
                                  3
                                  • maven@lemmy.zipM [email protected]
                                    This post did not contain any content.
                                    K This user is from outside of this forum
                                    K This user is from outside of this forum
                                    [email protected]
                                    wrote on last edited by
                                    #43

                                    Hello everyone and welcome to another video.

                                    N 1 Reply Last reply
                                    15
                                    • D [email protected]

                                      I went to college for Microbiology and became a programmer on my own after, so nope, never written a single line in assembly and never thought of checking it out either. Just never really crossed my mind. I might start messing with it soon.

                                      K This user is from outside of this forum
                                      K This user is from outside of this forum
                                      [email protected]
                                      wrote on last edited by
                                      #44

                                      If you're curious, I recommend this channel. It often delves deep into the code to explain stuff, as well as how the hardware works. Really fascinating!

                                      D 1 Reply Last reply
                                      0
                                      • F [email protected]

                                        Because it's true. Here's an article from Tim Sweeney from 2001:

                                        https://web.archive.org/web/20010105180900/http://www.gamespy.com/legacy/articles/devweek_c.shtm

                                        Mainstream application programmers switched to C in the early 80's. Game developers were slower to switch, because their small teams and focus on performance kept assembly language viable till the following decade. When id Software released DOOM, they surprised much of the industry by having no reliance on assembly code--despite excellent game performance, and by successfully cross-developing the game (in NeXTstep and DOS), then successfully porting it to an astounding variety of platforms.

                                        B This user is from outside of this forum
                                        B This user is from outside of this forum
                                        [email protected]
                                        wrote on last edited by
                                        #45

                                        Focus on performance, wow, well the industry has certainly changed a bit.

                                        N 1 Reply Last reply
                                        6
                                        • D [email protected]

                                          I've never written a single line of code in assembly, and I'm now curious

                                          addie@feddit.ukA This user is from outside of this forum
                                          addie@feddit.ukA This user is from outside of this forum
                                          [email protected]
                                          wrote on last edited by
                                          #46

                                          I learned z80 assembly back when the cutting edge of technology was a ZX Spectrum, and 68k assembly when I upgraded to an Amiga. That knowledge served me quite well for my early career in industrial automation - it was hard real-time coding on eZ80's and 65c02 processors, but the knowledge transfers.

                                          Back in the day, when input got mapped straight into a memory location and the display output was another memory location, then assembly seems like magic. Read the byte they corresponds to the right-hand middle row of the keyboard, check if a certain bit is set in that byte, therefore a key is held down. Call your subroutine that copies a sequence of bytes into a known location. Boom, pressing a key updates the screen. Awesome.

                                          Modern assembly (x64 and the like) has masses of rules about pointer alignment for the stacks, which you do so often you might as well write a macro for it. Since the OS doesn't let you write system memory any more (a good thing) then you need to make system calls and call library functions to do the same thing. You do that so often that you might as well write a macro for that as well. Boom, now your assembly looks almost exactly like C. Might as well learn that instead.

                                          In fact, that's almost the purpose of C - a more readable, somewhat portable assembly language. Experienced C developers will know which sequence of opcodes they'd expect from any language construction. It's quite a simple mapping in that regard.

                                          It's handy to know a little assembly occasionally, but unless you're writing eg. crypto implementations, which must take the exact same time and power to execute regardless of the input, then it's impractical for almost any purpose nowadays.

                                          D 1 Reply Last reply
                                          1
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups