pikuma.com Profile picture
An education platform created to teach the fundamentals of #ComputerScience and #Mathematics for enthusiasts & hobbyists.

Feb 25, 2022, 15 tweets

Since we discussed isometric games in a previous post, let's briefly mention one of the big #devs of this style: Chis Sawyer.

Most retro gamers think Chris' first isometric game was Transport Tycoon, but his journey started 10 years before.

So, let's dive in!

[1/15] 🧵...

In 1984, Chris programmed QOGO.

QOGO was a clone of the popular arcade game #QBert that ran on the Memotech computer.

QBert is one of the most popular arcade games to carry the isometric look. If you are a retro gamer, you probably played (or at least heard of) QBert.

[2/15]

Now, we mortals usually coded for these machines using some sort of BASIC. But we have to remember that BASIC is an interpreted language, meaning every high-level BASIC command needs to be translated to low-level machine code.

And for 8-bit machines, that means *slow*!

[3/15]

To squeeze all the smoothness out of QOGO, Chris had to code the game in raw #Z80 assembly language.

So, with *no* interpreter slowing things down, Chris Sawyer could now poke the hardware directly and move bits as fast as possible with the Memotech's 4MHz CPU.

[4/15]

Chris also released QOGO 2. Actually, he coded many other Memotech games.

Right! So, time passes, and computers evolve. In college, Chris managed to get a 16-bit 8MHz Amstrad-1512.

But despite all the horsepower, Chris still had to use assembly to make games run fast!

[5/15]

Back then, the PC was a bit behind its competitors Amiga & Atari ST, which ruled the game market with beautiful color palettes and dedicated graphics chips.

As PCs became more powerful, Chris gained a reputation of being *the* expert on Intel x86 assembly for the PC!

[6/15]

Chris helped port many (many!) games for the PC.

Titles like Virus, Elite, Dino Dini's Goal, Frontier Elite 2, etc. were only possible because of his coding skills.

In 1993, Chris started working on Transport Tycoon and the game ended up being released by @micro_prose.

[7/15]

I hope by now we understand the reason why some games written by Sawyer (like Transport Tycoon and Roller Coaster Tycoon) are famous for being written entirely in assembly.

As I usually say... always look back in history to understand the current state of affairs.

[8/15]

But going back to Transport Tycoon, it is important to mention that Chris used assembly to also take advantage of VGA 640x480 resolution and only render the bare minimum needed at each frame. After all, it was all about speed and overcoming machine limitations back then.

[9/15]

This overlaps a time when other game developers were using mainly C and C++ for their projects.

Following a series of successful sequels to Transport Tycoon (including one for Playstation), Chris started to experiment with one of his personal passions: roller coasters.

[10/15]

Besides the isometric look (wow, I almost forgot that this was a post about isometric games), Roller Coaster Tycoon had one great strength: its #physics.

I mean, who cares about a well-maintained park... "I want to see what happens when these four trains collide!"

[11/15]

Once again, Roller Coaster Tycoon was coded using assembly!!! And with PCs just pushing ~200MHz, the game achieved an incredible level of detail and complexity.

Released in March of 1999, Roller Coaster Tycoon was the year's best-selling game.

[12/15]

Released in 2002, and still programmed using assembly to take advantage of new CPUs, Roller Coaster Tycoon 2 was published.

To get an idea of the complexity the game could handle, one of the game scenarios had 4,500 guests in a single park.

[13/15]

I think it's time to conclude our thread... 🥲

Chris was a monster of PC assembly programming, and what they achieved was nothing short of amazing.

Chis' website mentions he used Microsoft's Macro Assembler, MS Visual C, MS DirectX 5 SDK, and some custom-written tools.

[14/15]

Ah, and don't forget... if coding assembly games is something that *tickles your pickle*, then I think you'll enjoy my course where I teach Atari programming using assembly. It's super beginner-friendly!

Alright! See you there. 🙂

Choo Choo!

pikuma.com/courses/learn-… #bolhadev

Share this Scrolly Tale with your friends.

A Scrolly Tale is a new way to read Twitter threads with a more visually immersive experience.
Discover more beautiful Scrolly Tales like this.

Keep scrolling