[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)