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!
If you're programming a game where a boat moves through water, you might be tempted (as I would) to change the V-shape angle of the waves behind the boat based on how fast the boat was moving!
What if I told you that that V-shaped angle is always 19.47°, regardless of how fast the boat is travelling? 😱
This pattern even holds true for a duck traversing a pond. 🦆
The envelope of these waves stands at a fixed angle, and the wake has a characteristic feathered pattern.
This wake pattern was first explained mathematically by Lord Kelvin (William Thompson) and are known today as the Kelvin wake pattern.
Lord Kelvin described this pattern based on his observations and a rough interpretation of the physics involved. But nowadays we are studying other elements that come into play and can cause small differences based on the object's speed.
Physicists have used satellite images and mathematical modelling to study narrower wakes associated with fast-moving boats. You can read about this discussion here:
Also, here's a quick derivation of how we find the 19.47 degree angle:
The Italians (around 1100~1200 A.D.) started to trade with the north of Africa. And back then, the north of Africa which was strongly touched by the Islamic empire.
The vast Islamic empire came from the Middle East and expanded to Asia, India, and also Europe.
One famous Italian tradesman was Leonardo Bonacci (Fibonacci).
Fibonacci used to trade between Pisa and what we know today as Algeria.
As he traded with the Islamic people, he acquired a large understanding of their math.
Lately, I've been studying the early days of 3D polygons on home consoles for a new course.
We often think 3D on the #PS1 or #Saturn, but there was a bracket of time where special chips were added to both #SNES & #Genesis to help them render fast polygons.
Here's a review...🧵
It's probably not news to anyone here that retro consoles added special power to games by adding special chips *inside* the game cartridges!
Therefore, newer and fancier games were more expensive because manufacturing the cartridge with extra chips cost more for the developers.
If you took our course on #NES programming, you know that this was also true for 3rd gen. consoles.
For example, the NES console is always the same (CPU speed, RAM size, etc.), but NES games got better with time by adding these special chips *per* cartridge!
This is one of my favorite folklore stories about computer #bugs!
...
In the 1980s, Jake Poznanski had a programming mentor, Sergei, who was writing software for an SM-1800, a Soviet clone of the PDP-11.
[1/10] 🧵
The computer was just installed at a railroad station near Sverdlovsk, a major USSR shipping center at the time. The new system was designed to route trains and cargo to their intended destinations, but there was a nasty bug that was causing random failures and crashes.
[2/10]
The crashes would always occur once everyone had gone home for the night, but despite extensive investigation, the computer always performed flawlessly during manual and automatic testing procedures the next day.