[HN Gopher] RollerCoaster Tycoon at 25: 'It's mind-blowing how i...
       ___________________________________________________________________
        
       RollerCoaster Tycoon at 25: 'It's mind-blowing how it inspired me'
        
       Author : philk10
       Score  : 113 points
       Date   : 2024-03-22 16:05 UTC (2 days ago)
        
 (HTM) web link (www.theguardian.com)
 (TXT) w3m dump (www.theguardian.com)
        
       | interbased wrote:
       | I loved this game. One of the first games I really started to
       | play on own during a period of mostly watching my brother play
       | games. In the same rhythm of games teaching you actual skills for
       | real life, I've always felt that way about RuneScape and the
       | economy, heh.
        
       | YesBox wrote:
       | I loved playing this game so much as a kid. Its inspired me to
       | create my own game using the same aesthetic [1]. Im basically
       | answering the question "what if RCT was a city builder?"
       | 
       | Thanks Chris!
       | 
       | [1]https://store.steampowered.com/app/2287430/Metropolis_1998/
        
         | laurentlassalle wrote:
         | Looks amazing!
        
         | nickzelei wrote:
         | Wow I love the look of this. Wish listed!
        
         | mysterydip wrote:
         | Love the aesthetic! Good luck!
        
       | affgrff2 wrote:
       | According to Wikipedia, the code of the game is written 99% in
       | assembly, too bad the article doesn't mention that. Maybe they
       | decided that is not a valuable information for their readership
       | but I guess, here, lots of people will be as impressed by that.
        
         | baliex wrote:
         | This always completely blows my mind. I just can't fathom how
         | he was able to do that. Brilliant game.
        
           | orthoxerox wrote:
           | He used a relatively high level macroassembler. It's not HLA,
           | but it could do things like dereference struct fields and
           | reference various (global?) variables. See here, for example:
           | https://lifeandtimes.games/episodes/files/28
        
           | whartung wrote:
           | > I just can't fathom how he was able to do that.
           | 
           | Honestly, it's not that hard. Not for a decent assembler.
           | 
           | The "hard parts" of assembly are things like trying to do
           | multi-precision stuff on smaller precision machines (like 16-
           | 32- bit math on an 8-bit processor). Just coming up with the
           | tiny algorithms we all take for granted. Of course, today,
           | you don't have to invent those.
           | 
           | Folks think that written in assembly is all bit twiddling and
           | high, dense data structures. But that's not necessarily true.
           | 
           | On a modern x86, it's not that much different from normal C
           | in terms of data sizes and data structures. 16- and 32-bit
           | registers. Add/Sub/Mult/Divide instructions. Block move
           | instructions. Modern assemblers handle structured data.
           | Stupid assemblers handle offsets readily. Assemblers handle
           | local and private symbols, exporting routines, code
           | modularity. You don't have to worry about addresses and what
           | not, linkers do all of that. Symbolic debuggers like anything
           | else. Not like they have to burn a PROM and shove it into a
           | board every dev cycle.
           | 
           | But, most important, once you've got started, once you have
           | the common elements of programming (parameter passing,
           | looping, math, structures, pointer dereferencing), I mean,
           | that's it, right? Rinse and repeat. That's what higher level
           | languages give you "for free". Not every line is hand
           | crafted, hand optimized, etc. Much of it can be stomped out
           | with macros for anything that takes more than a few
           | instructions. Tada -- you now have a higher level language
           | (for small values of "higher").
           | 
           | If anything it's just more tedious. Less code density
           | (assuming little macro use) per screen, etc. But even then,
           | once you have your momentum, once you have your routine
           | patterns, they just fall out of the code as you read it.
           | 
           | I remember my assembly class in college (I was not a good
           | college student). I stopped going to class because the
           | teacher kept asking me system questions. She gave me an
           | incomplete, and I had to do all the projects again next term
           | (that was, honestly, quite nice of her -- she could have just
           | failed me).
           | 
           | So, I did those projects. Those simple Assembly class
           | projects. Trivial little programs "Convert decimal to binary"
           | type stuff.
           | 
           | What I did was I wrote a large macro library, inspired by
           | Forth. I basically ported a rough Forth vocabulary to
           | assembler macros. That "convert decimal to binary" project?
           | ; Convert 10 to Binary and print it         PUSH 10; PUSH 2;
           | PUSH BASE; STORE; PUSH BUFFER; NUMBER; PUSH BUFFER; PRINT
           | 
           | So I turned in my projects, each one was like that -- 10, 20
           | "instructions". I said "Here's my projects", handing 10,
           | small, 2-3 page printouts, "but you'll need this to
           | understand them" and I gave her a 3/4" thick printout of the
           | macro library.
           | 
           | Yea, I was kind of a jerk. Just where my head was at.
           | 
           | Figured I'd get an F or and A. She gave me an A. (I mean, if
           | nothing else, I did demonstrate a solid understanding of
           | assembly language programming!)
           | 
           | But the underlying point is that it's just patterns, patterns
           | we get used to using and writing. It can be inscrutable to
           | the uninitiated, but the curve, particularly on modern
           | processors, is not that steep. Like I said, you're not just
           | shifting and adding to multiply anymore like the old days.
           | And staring at a disassembly of raw code is not the same
           | thing as writing assembly language with modern assemblers.
        
             | ylee wrote:
             | >What I did was I wrote a large macro library, inspired by
             | Forth.
             | 
             | In an elementary-school BASIC class, I completed an
             | assignment using `READ`/`DATA` when it was not necessary to
             | do so. For a later assignment involving writing a quiz
             | game, I resubmitted the same code with the `DATA` lines
             | appropriately modified!
        
         | frozenport wrote:
         | They didn't gain anything by doing this.
        
           | willismichael wrote:
           | Chris Sawyer knew how to crank out assembly code. He'd been
           | doing it for several games, so maybe it really was the best
           | way for him to develop this rather than futz about with C++
           | or whatever.
        
             | frozenport wrote:
             | From reading the OpenRCT2 code base it was C-style with
             | PUSHA features. You basically need to create a bunch of
             | wrappers over function calls, to construct a sort of domain
             | specific language/macro collection for your specific
             | application.
             | 
             | I can respect the dude but in many ways RCT was a
             | continuation of his previous games.
             | 
             | As people who study software development we have to
             | sometimes call it like it is.
             | 
             | Using ASM was not the right choice as it didn't provide any
             | obvious advantages compared to languages like C.
             | 
             | The genius of OpenRCT2 wasn't in the language choice but
             | rather in the immersive world available in your cereal box.
        
           | leokennis wrote:
           | The game ran on my Pentium 166 with 32 MB of RAM. That was
           | enough for me.
        
             | pixelpoet wrote:
             | A 166 MHz Pentium is massive overkill for RCT. Consider
             | that just a 100 MHz Pentium could render Quake locked at 60
             | fps, and a 166 MHz Pentium will have been a later and much
             | improved version which also had MMX. The 233 MHz Pentium
             | with MMX ran the original Unreal with coloured lighting and
             | everything.
             | 
             | BTW I also remember the cache sizes of all these chips and
             | wrote mostly in asm on them. Most people who were good at
             | asm coding didn't stop because it took too long (you can
             | always focus on just the hot loops), we stopped because we
             | started getting our asses handed to us by C/C++ compilers.
             | 
             | Finally, just because asm coding provided sufficient
             | performance, doesn't mean it was necessary, and it's of
             | course possible to write arbitrarily slow asm code too
             | (like a bubble sort in asm vs quicksort in C).
        
           | gambiting wrote:
           | Having worked with people who wrote games like the original
           | Driver - large chunks of code used to be re-written by hand
           | in assembly for performance late in development, or the game
           | just didn't run fast enough. 90s compilers just weren't that
           | good. I think in 2024 if you think you can do better than the
           | compiler you're mostly fooling yourself, but 25 years ago
           | that wasn't the case.
        
             | AnotherGoodName wrote:
             | Even then though C has always had trivial to use and very
             | tightly integrated inline ASM that you could use at any
             | time and had been a thing since inception all those years
             | ago for this very reason.
        
               | gambiting wrote:
               | oh yeah I mean the source code for Driver has tonnes of
               | inline assembly inside C files, so there was definitely
               | value in using it. Writing the entire game in assembly is
               | just taking it a step further, and like someone else said
               | - if that's what you're most comfortable with, I don't
               | think that's as insane as it sounds.
        
         | jl6 wrote:
         | I believe Chris Sawyer was also responsible for the PC port of
         | Frontier Elite II (from the Amiga original by David Braben),
         | and he put an advert in some of the spaceports, along the lines
         | of "Coming soon: Chris Sawyer's Transport Game".
         | 
         | One assumes he was an expert in 68k _and_ x86 assembly.
         | 
         | What a legend!
        
         | xboxnolifes wrote:
         | That fact comes up in every single rollercoaster tycoon
         | discussion, so maybe they just assumed most knew about it. It
         | also doesn't seem relevant to the point of the article.
        
           | robertlagrant wrote:
           | I doubt The Guardian's general readership would know what
           | assembly is. That's all.
        
         | remram wrote:
         | Obligatory reminder that wikipedia is NOT (trying to be) a
         | source. This particular fact comes from Chris Sawyer's own
         | website, that has some more interesting details as well:
         | https://www.chrissawyergames.com/faq3.htm
         | 
         | You can easily find sources from Wikipedia by following the
         | numbers in brackets (here "[3]").
        
       | danielecook wrote:
       | Loved this game as a kid. I played the traditional way, but I
       | also had a lot of fun sending the coaster down a steep drop and
       | up short ramp to nowhere so it would go airborne across the park.
        
       | dag11 wrote:
       | This game just looks so good today. I know lots of folks already
       | knew that games don't have to look AAA to be excellent, and the
       | success of Minecraft really drove that idea home to the masses,
       | but this game really stands out to me. It almost looks better and
       | better to me as the years march on.
        
         | leokennis wrote:
         | It's look is the perfect blend of cozy cartoon and aerial view
         | realism. Especially when building a park in a forest, it was so
         | peaceful to just follow around people as they wandered through
         | your park.
        
       | sneed_chucker wrote:
       | One of my favorite PC games of all time.
       | 
       | There's an enduring player base and online community for it, as
       | well as a really solid open source reimplementation:
       | 
       | https://openrct2.org/
        
       | spacechild1 wrote:
       | One of my favorite games as a kid!
        
       | gambiting wrote:
       | My dad was never into computers, but this was one game he played
       | a lot of. Plenty of my childhood memories are of him playing RCT,
       | he would micro optimize the ticket prices until he was swimming
       | in profits.
        
       | maverick2007 wrote:
       | In case anyone is curious to see how far people have pushed the
       | game, check out NEDesigns[1]. Some truly incredible RCT (mostly
       | 2) parks. I'm a huge theme park enthusiast and I love seeing the
       | realism that people have managed to get out of this limited game.
       | 
       | [1] https://www.nedesigns.com/
        
       | yreg wrote:
       | I really miss these building games that used an isometric grid.
       | RC Tycoon, Zoo Tycoon, Sim City, TTD, ...
       | 
       | Yes, it's less realistic, but it is so pleasant to work with.
       | Everything you build aligns perfectly and if you want, you can
       | neatly fill the entire map.
       | 
       | In comparison, (even with many mods) my Cities Skylines or Planet
       | Coaster creations never look quite right. Building the roads and
       | paths is always awkward and frustrating.
        
         | SimonPStevens wrote:
         | Take a look Parkitect. It's very much a modern RCT, complete
         | with grid layout. As a fan of RCT1/2, I found it very
         | enjoyable.
        
           | joveian wrote:
           | I have mixed feelings about that one. The building is much
           | better than RCT (1-3, the ones that I've played) both
           | coasters and buildings, however I don't like the art style at
           | all and the terrain is mostly flat and much less interesting.
           | Also the additional goods movement and service building
           | hiding aspects that they added somewhat detract from the fun
           | in my opinion. In the first RCT only the entrance (and
           | possibly exit, I don't remember) had to be above ground, so
           | with a bit of coaxing you could build rides that are
           | underground except for a hole above the entrance, which was
           | neat. Also, unlike RCT3, Parkitect doesn't let you move the
           | camera to a path view (grid layout and isometric view are not
           | really related), which is something I like to do.
           | 
           | One thing RCT does better than other sim games I've played is
           | having a ton of customization options (Parkitect does this
           | too). I like Timberborn also and wish it would have more
           | customization possibilities like the RCT games. There are
           | some limitations in the RCT games, like setting up a free
           | monorail system doesn't cause anyone to use it to get to the
           | next ride they are heading to, but in terms of decorations
           | there is quite a bit you can do with it.
        
         | Mathiciann wrote:
         | Check out 'Against the Storm' my friend!
        
         | jamesu wrote:
         | I've seen a lot of fancy full realistic 3d simulation games
         | this past decade, but they can't hold a candle to a well
         | thought out 2d simulation with solid controls.
        
         | wpm wrote:
         | It's one of the big reasons why Satisfactory was never quite
         | as, well...satisfying as Factorio for me.
        
       | Sharlin wrote:
       | I'm pretty sure that 1999 was _the_ peak year of PC gaming. Just
       | consider the number of legendary games published that year,
       | including but not limited to:                   * Age of Empires
       | 2         * Alpha Centauri         * Baldur's Gate         *
       | Counter-Strike (the original mod!)         * Freespace 2
       | * Heroes of Might and Magic 3         * Homeworld         *
       | Jagged Alliance 2         * Outcast         * Planescape: Torment
       | * Roller Coaster Tycoon         * SimCity 3000         * System
       | Shock 2         * SWAT 3         * The Longest Journey         *
       | Unreal Tournament
       | 
       | I've (re-)played several of those (BG, HoMM3, JA2, RCT, Ps:T,
       | SS2) in the past couple of years and at some point realized that
       | they were all released in 1999.
       | 
       | If you include the 1998 Christmas market, you can add at least:
       | * Falcon 4.0         * Fallout 2 (definitely should've been
       | delayed until 1999!)         * Grim Fandango         * Half-Life
       | * Myth 2         * Thief: The Dark Project
        
         | plasmatix wrote:
         | * StarCraft! (1998)
        
           | Sharlin wrote:
           | Yeah, but I only included ~Q4 of 1998, as I consider those
           | games "morally" 1999 titles given the pressure to publish in
           | time for Christmas. In any case, both 1998 and 2000 were very
           | good years for PC gamers as well.
        
             | adamiscool8 wrote:
             | Brood War :)
        
         | jakubmazanec wrote:
         | I don't agree, because subjectively, there never has been a
         | year I haven't been utterly entertained and amazed by a
         | completely new game. Compare that to the movies.
        
         | 8f2ab37a-ed6c wrote:
         | Huh, no wonder I remember that era so fondly, thanks for
         | pointing that out.
        
         | TillE wrote:
         | Note that most of those games are 2D. This was an era when a
         | major developer could take a fairly small team with a moderate
         | budget and make a big, innovative game in a couple years.
         | 
         | It's just impossible in an environment where nearly every major
         | game is expected to be 3D, action-focused, and playable on
         | console.
        
         | dehrmann wrote:
         | 1999 was also an amazing year for movies. Part of me wants to
         | blame nostalgia, but I genuinely think there was more variety
         | and originality back then.
         | 
         | Reddit discussion on 1999 in film:
         | https://old.reddit.com/r/movies/comments/y7kaft/1999_had_a_l...
        
         | baobabKoodaa wrote:
         | What the hell? My entire childhood in a single year?
        
         | maccard wrote:
         | I think 2004 and 2007 were industry defining. 2004 had CS:S,
         | Half Life 2, GTA:SA, Halo 2, UT04, World of Warcraft (!) 2007
         | had Wii Sports (well, that was 2006...) Halo 3, COD4, Mario
         | Galaxy, Assassins Creed, Portal, Bioshock, Uncharted.
        
         | aeyes wrote:
         | Quake 3 Arena !!!
        
         | mopsi wrote:
         | _Tony Hawk 's Pro Skater_ and _Microsoft Flight Simulator 2000_
         | came out in 1999 too, both big milestones for their genres.
         | THPS had major cultural impact and brought a whole generation
         | of kids to skateboarding, whereas MSFS2000 was more of a
         | technical achievement, for the first time featuring the entire
         | globe along with virtually all charted airports, around 20 000
         | in total.
        
         | rad_gruchalski wrote:
         | Rally Championship 2000 was released in 1999.
        
       | izyda wrote:
       | I loved this game and then this style of game (all the Tycoons,
       | SimCity, AoE, etc.).
       | 
       | I did not know it, but it was my first experience with economics.
       | I mistakenly thought that this is what policy planners _actually_
       | did in the real world. Imagine the disappointment when I found
       | out that was not true.
       | 
       | Nonetheless, it ultimately inspired me to go into data science in
       | market/competitive intelligence. First at hedge funds and now as
       | my own startup.
       | 
       | I have never been able to shake the notion that build a real-time
       | view of the real economy was the most interesting thing to work
       | on.
        
       ___________________________________________________________________
       (page generated 2024-03-24 23:01 UTC)