Advertisement

Roller Coaster Tycoon written in Assembly.

Started by August 21, 2012 06:27 PM
8 comments, last by frob 12 years ago
This is an old game, so there might have been a post written somewhere about this, but I've stumbled upon this and I find it rather ridiculous. So it seems RollerCoaster Tycoon was one of the last commercial games to have been written by a single programmer... and in assembly!


Chris Sawyer originally wanted to create a sequel to his highly successful Transport Tycoon, but after becoming obsessed with roller coasters, he changed the project into RollerCoaster Tycoon. Sawyer wrote RollerCoaster Tycoon almost entirely in assembly language, a difficult process given the game's complexity. Some functions were written in C to interface with the Windows operating system.[1]
The game was to be called White Knuckle for the majority of the game's development. However, to follow the tradition of the Tycoon titles, the game was renamed accordingly.
For his efforts, Sawyer received over $30 million of the $180 million brought in by the highly popular game.
A feature length movie adaptation is set to begin production, as Sony Pictures Animation has pre-emptively picked up rights to the video game. Harald Zwart is spearheading the development of the big-screen adaptation as a possible directing project and will executive produce. David Ronn and Jay Scherick are attached to write what will be a live-action/CGI hybrid.[2][3] Chris Sawyer is represented by London based interactive rights agency, Marjacq Micro Ltd.
[/quote]

I mean this is really impressive. I wrote a generic number sort in Assembly as part of an assessment in my early days of CS in school and I took the whole experience as one unpleasant ride into hell. I can't imagine writing a whole game. I just thought I'd share this here. Have any of you written anything serious in assembly?

Source :

http://en.wikipedia...._Tycoon#History

[size=1]I "surf" the web, literally.

I've only written parts of a game in assembly, never a full one (and that was in the early/mid 90s when hardware was alot less complex and compilers far more shitty), most of the time there just wasn't a need to optimize everything by hand. (The majority of the code didn't use all that much cpu time anyway. i essentially only hand optimized the most frequently called functions.
[size="1"]I don't suffer from insanity, I'm enjoying every minute of it.
The voices in my head may not be real, but they have some good ideas!
Advertisement
I've met a couple people who can read/write assembly like it's c/c++. I guess when you work with it so long, it just clicks for visualizing the information, and how to write the code to generate the required output, regardless of the language.
Check out https://www.facebook.com/LiquidGames for some great games made by me on the Playstation Mobile market.
WOW. I would never imagine that this awesome game was written in Assembly (and by a single programmer).
I had forgotten about this game. I had lots of fun with it.

I had a great experience with assembly language and gaming. It was hard but very rewarding.
One of the classes on my CS course is about working with a FPGA board, building a CPU for it and making a game that runs on that CPU.
I ended up making a Treasure Hunt game completely in Assembly, I had friends making a Bomberman, Pacman, etc.

The cool part is that we really implemented the assembly instructions we needed (using a hardware description language (VHDL)) to work on our processor. So we got lots of insight from there.

We slept several nights on the laboratory programming like crazy (close to the final presentation mostly). But it was very enlightning.
I can look at assembly code now without fear smile.png
Programming is an art. Game programming is a masterpiece!

I've only written parts of a game in assembly, never a full one (and that was in the early/mid 90s when hardware was alot less complex and compilers far more shitty), most of the time there just wasn't a need to optimize everything by hand. (The majority of the code didn't use all that much cpu time anyway. i essentially only hand optimized the most frequently called functions.
"Premature optimization" and all that.

Off-topic: I'm trying to learn 6502 with a goal to make something for NES. From what I've read on nesdev.com, CC65 can be used to write an NES game in C, but almost certainly large portions of the code would need to be in assembly. The concern isn't necessarily speed, but size. And that's just now. I have never heard of a decent C compiler that was available for NES or any 6502 platform in the 1980s for anyone.

Pure assembly just prior to 1999? Whatever works, I guess.
"Pure assembly just prior to 1999? Whatever works, I guess."

I suspect it was more that it was a language he knew well by that point -- x86 assembler has been a long stable platform, the tools are mature, there's a lot of known wisdom and Sawyer probably has disks and disks full of utility routines.

If one were starting from scratch it would make little sense, but he wasn't a newcomer to the field.
Advertisement

"Pure assembly just prior to 1999? Whatever works, I guess."

I suspect it was more that it was a language he knew well by that point -- x86 assembler has been a long stable platform, the tools are mature, there's a lot of known wisdom and Sawyer probably has disks and disks full of utility routines.

If one were starting from scratch it would make little sense, but he wasn't a newcomer to the field.


i wouldn't call it a stable platform, while the instructionset has remained backwards compatible the best practices change constantly, heck, the difference between good assembly for the intel P4 and the AMD XP (2 x86 cpus from the same generation) was huge, in the late 90s assembly still worked reasonably well (There was essentially only one target architecture to optimize for anyway), today there are just far too many different x86 models to optimize for each of them by hand. (With C++ you can just recompile for different target architectures and have a launcher that picks the appropriate binary or try to hit a decent middleground (There were quite a few games for a while that had both intel and AMD binaries to get "optimal" performance on both)
[size="1"]I don't suffer from insanity, I'm enjoying every minute of it.
The voices in my head may not be real, but they have some good ideas!

Have any of you written anything serious in assembly?


I wrote a text-mode windowing library for Turbo-C++ where all the actual code was done using inline TASM assembly. It was a damn sight faster than the library that shipped with Turbo-C++. That's probably the most assembly I ever did for one project.
With a release date of 1999, this may well have been the last commercial game written in assembly. But the idea of writing complete games in assembly, by a single person, even for complex games, was that uncommon before that time. AFAIK up until the early 1990s, using assembler was the norm.

http://erebusrpg.sourceforge.net/ - Erebus, Open Source RPG for Windows/Linux/Android
http://conquests.sourceforge.net/ - Conquests, Open Source Civ-like Game for Windows/Linux

He also said at the time it was a personal challenge. He was already established as game developer and knew what he was doing, and what he was getting into.

It's like the authors who write a constrained work without using the letter e, or no vowels other than e.

In his case, he wanted to write a modern game in assembly.

This topic is closed to new replies.

Advertisement