top of page

Roller Coaster Tycoon

  • The Blind Arcade
  • Apr 22, 2023
  • 3 min read

For those of a certain age and a certain familiarity with video games, Roller Coaster Tycoon hits the nostalgia hard. The 1999 PC game, in which players build and maintain an amusement park, stands as one of the landmarks of the medium. A gem in terms of both playability and software design. It’s also considered by the coding community to be one of the most impressive programming achievements of all time.


Roller Coaster Tycoon was developed by a single man, Chris Sawyer, who created it in a small village in Dunblane, Scotland, after touring amusement parks throughout Europe. Great video games made by one person aren’t unheard of — Markus Persson’s Minecraft is probably the most famous example, along with Jonathan Blow’s Braid — but what’s notable about Sawyer’s masterpiece is how he made it. Most games of the time were coded using C++, Java, or other languages that emphasize human readability. These are known as “High Level” languages, and they present as easily viewed and edited equations that enable coders to trace back when things go wrong.


Sawyer, on the the hand, used a “Low Level” language called x86 Assembly. The benefit of coding in x86 is that it’s the best way to directly interact with the hardware of a computer. You can tell the machine exactly where to put data, since the code snippers you create refer to an actual piece of of the CPU rather than a general command or an abstract reference. “High Level” languages like C++ have to go through a compiler — like a translator — that tells the code how to interact with the computer, whereas x86 cuts out the middle man. If the code is rock-solid, this can make for much smoother performance. It’ll also give you a game capable of running on weak machines, which makes for a much larger potential player base.

Working with assembly code like this is always better, if the person using it is a genius. That’s because the downside to x86 is that it’s overwhelmingly complex to deal with. There’s a ton more variables for a programmer to deal with, and it’s more difficult to backtrack downstream errors. There’s also just much more code you have a create, and the scope of the difference between x86 and High Level languages goes up exponentially as the size of the project increases. For its time, Roller Coaster Tycoon was incredibly complex, with hundreds of NPC interactions going on simultaneously along with many ongoing processes in the amusement park and the build engine. Yet it ran like a dream.


The magnitude of the programming work that went into the game fueled rumors that Chris Sawyer didn’t even exist, despite the fact that he’d been laboring in the industry for some time beforehand. x86 Assembly is a language that often appears to defy mathematical logic even to elite programmers, and here was this guy who used it to create of the most seamless and enjoyable playing experiences in history. He did it the way he did because it was the best way to achieve what he wanted, and because he was one of the few people on Earth capable of doing it.


Chris Sawyer is a genius. No one disputes that. But many will claim that the difference in quality between something made by a genius and that made by almost geniuses isn’t worth the expense when you port the difference over to other efforts in other industries. It’s harder to replicate, after all. Very undemocratic, like that Da Vinci on the wall, or the world-changing inventions that gathered dust in Nikola Tesla’s attic. That inch-wide-mile-deep chasm between the great and the acceptable. The industry didn’t really even try to replicate what Sawyer did, and he remains a relic of the explosion of loner male autistic energy that birthed the computer revolution of the 80s and 90s — that last gasp of true Western greatness.


Today Sawyer spends his time suing Atari over royalties due to him for his work. At least we got to play Roller Coaster Tycoon.

 
 
 

Recent Posts

See All

Comments


bottom of page