Learning the Right Lessons

Companies seem to always manage to take the exact wrong lesson from key moments in industry history. This seems to not even be specific to the games market either, but we’ll focus in on that for focus’ sake.

The video game crash of ’83 is viewed as the most important event in gaming history. It’s often cited as the moment that defined what video games would become, and quite rightly too. The general lessons cited as the one to be learned from the crash are that over-saturation killed the market, that game companies need lock-out chips and strict controls on what gets published on their platform and people were losing interest in games; however is this really true?

Let’s take a moment to build a picture of what the gaming market looked like around the time of the crash. Atari is everywhere, flying off the shelves leading to multiple updates to the console design to make them cheaper and smaller. Atari games outnumber the technically more capable competition 10 to 1 both in quantity created and number sold. It seems like Atari was wining out by a landslide and the numbers showed it. But why?

Many cite the fact that it was the first to market, but as we’ve seen with the Dreamcast, being first to market doesn’t mean you will win out a console generation. The Dreamcast beat its competitors to market by a significant margin; released in 1998, beating the GameCube which was released in 2001 and the PS2 which was released in 2000. By all rights, it should have outsold the competition right? However, history teaches this wasn’t the case – it became the last console Sega ever sold.

So what gives? Well Atari made a particular decision early on when building the Atari to cut costs – they used all off-the-shelf parts to construct it. This meant it could be much cheaper than its competition but more interestingly, thanks to a particular court case, it made it legal for anyone to make Atari games legally. This meant tons of 3rd party developers were able to make Atari games quickly inflating the Atari software library significantly, leaving the competition in the dust. Simply put, picking the competition over the Atari meant losing out to a huge portion of the new games coming out each month.

But wait, I hear you saying, isn’t this the story of the market crash? Well yes it is. You see, Atari made two big mistakes that ultimately led to their demise – first; they weren’t satisfied with their massive success and continuously tried to outdo themselves way beyond what the market was actually capable of supplying. Instead of finding their niche and treading water, transforming from a growth-focused company to a sustainability-focused company, they continued to short-shortsightedly focus on the short term growth, leading to some hilariously horrible decisions such as producing more copies of their games for the holiday rush than actual consoles existed to play them on. Worse however, was their other big mistake – their failed follow-up. Atari released their sequel console to the 2600, the Atari 5200 in 82′, but it failed to gain traction despite being a technically superior console

What went wrong? Well remember the design decision that Atari made early on in the development of the 2600? Using off-the-shelf parts to keep the console cheap and led to the massive software library the console saw? They decided not to do that again, choosing instead the authoritarian approach of trying to control what software could see release on their console and making changes to the platform making it so third-parties couldn’t release their own games on the platform so easily, which also broke backwards compatibility with their previous console. Buying a 5200 meant you had to buy all new games to run on it and only a fraction of the games available on the 2600 were available. Atari ran into a strange problem – they were losing to themselves.

The rest, as they say, is history. Atari couldn’t keep up the momentum and the competition couldn’t make enough sales to keep their platforms alive and the thing fell down like a boulder into the ocean – with a big splash.

Then like a phoenix Nintendo jumped in and revived the market with the NES and the market has more or less followed their model ever since. Locked-down platforms with complicated licensing schemes to sell games on the platform. etc

Up until the PS3 which decided to take a chance and their early models included a feature that let users run their own software on the platform – Other OS; enabling users to install Linux to run on their PS3. Quickly though, people ran into obvious artificial walls – Sony, afraid of losing their authoritarian control over the platform locked out some of the most important hardware capabilities away behind walls of red tape effectively turning it into little better than a budget PC. Predictably, people started seeing this as both a point of frustration and a challenge to be overcome. The people had tasted a piece of freedom and they wanted more. Hackers begin to tap on those walls and slowly piece by piece started dismantling them. Did Sony realize their mistake and grant Linux users the freedom they wanted out of the device they spent hundreds of hard-earned dollars on in good faith that they would be able to make use of that feature Sony advertised to great praise and fanfare with their new console? No. Instead they panicked and shut it down, removing the feature altogether and leading to an expensive litigation that cost them millions of dollars and the hacker community becoming all the more adamant to break down those walls and unlock the full power of the PS3, and that they did. Sony responded by only further locking down their follow-up console, the PS4.

That would be the end of the story if it wasn’t for one daring company, Valve who released their own console, or rather blueprints for a console -the Steam Machine. Built on openness and freedom the Steam Machine is the most freedom promoting console to date. Not only does it ship with a fully mod-able Linux built-in, but Valve has also opened up their online game store to make it easy for third parties to release software on it. Beyond that, you can run your own third-party software and easily integrate it with its own storefront and features. It was released to see only minor success at launch yet continues to be not only supported but grow, and see more freedom-enabling features added to extend the functionality of the console with updates to make it even easier to run whatever software you like on the console.

I bought one. While its limitations and limited initial software library were apparent at first, quickly it has become my ideal platform for playing games, even over the much more mobile and convenient Nintendo switch. I find myself even wishing I could be running Steam OS on my Switch instead of Nintendo’s proprietary software so I could have a portable Steam Machine to play games on.

My Steam Machine is modified – I’ve added third-party games and software to it, extending its functionality and capabilities in ways the developers never intended; but the brilliant thing is where as on other platforms doing so would lead to concerns of being banned from their online servers and seeing updates try to patch my modifications out of the platform, instead I can rest easy knowing that the console is going to continue to work even despite my additional unlicensed software running on the platform.

I believe history will eventually show this to be the hidden killer feature of the Steam Machine which will lead to overtime it taking over the market and seeing the same kind of dominance and success the Atari did in its time. Granted, this success will likely be slow to start – after all, other consoles used their locked-down nature to sell their hardware at a loss with the plan to make it back in software sales in an attempt to rush to flood the market during the early release cycle. However Steam, unlike other platforms, doesn’t rely on such methods to maintain dominance. They’re instead taking the approach that openness and functionality will win out in the end – that as those other consoles reach end-of-life and people are starting to get more desperate to extend them, the Steam Machine will really start to shine.

We’re already starting to see this happen. The Steam Machine continues to see roll-outs of new features and updates as the software library continues to grow at an exponential rate, and fans like myself are extending the life of their console with additional unlicensed software. Meanwhile Sony has already released an updated version of their PS4 console to extend its life by incremental improvement, and is already making plans for their next follow-up, the PS5. Nintendo is already looking towards releasing some of their games on the somewhat more open mobile phone platforms, and Microsoft has started porting their software library over to Steam. I think time will soon show that the gaming market learned the wrong lessons from the mistakes of the past; that in the end freedom will always win out over authoritarianism.

Setting Up Sonic CD in Proton for Steam OS

This game will run great under Proton on Steam OS after some simple tweaks.

I have tested this using the Alienware Core i7 model Steam Machine on Steam OS 2.0 Brewmaster

Fist, if you haven’t already, follow this guide to setup desktop access and superuser.

You will need two DLL files the game relies upon to run.
D3DCompiler_43.dll and D3DX9_43.dll
Make sure to select the 32 bit versions.

You will need to extract these files. Unfortunately, Steam OS doesn’t ship with a file extraction utility. There are two ways to go about this. The easiest is to download them with your computer, extract them then copy them over using a USB stick. The other is to manually add the Debian Jessie repositories to your sources.list file and install file-roller. (advanced)

Note: If you decide to add the Jessie repositories, ensure you remove them once you have finished installing the file and before returning to Steam. If the repositories are still enabled when the machine starts up, it may try to install unsupported updates that can break important drivers and other components of your machine.

Copy those files into the game’s directory in /home/steam/.steam/steam/steamapps/common/Sonic CD/

Note: You will not be able to copy these files using the file browser unless you launch it from the terminal with root permissions using the below command. Alternatively, you can use the cp command to copy them. (advanced)

sudo nautilus

The game should run now, however if like me you have a monitor with a high refresh rate, you will need to setup libstrangle to limit the game to 60.

To do this you will need to install libstrangle by folllowing the instrctions from the GitLab page. I will reproduce them here for your convenience.

First you will need to install the necessary dependencies if you don’t already have them.

You can do this by opening a terminal window and running the following commands:

sudo apt install libc6-dev-i386 gcc-multilib ia32-libs

Once this is done, you will need to create a folder to put the libstrangle files when you’re setting them up. Do this using the following command.
mkdir libstrangle

Now you will need to navigate to that location and checkout the libstrangle sources from the GitLab page. Do that using the following commands.

cd libstrangle
git clone https://gitlab.com/torkel104/libstrangle.git

Now you will need to compile and install libstrangle. Do this by using the following commands.

make
make
sudo make install

Once this finishes, you have libstrangle installed and you will not need the folder you created anymore. You can remove it with the following command.

cd ..
rm libstrangle -R

Next, you will need to select Return to Steam on the desktop.

Now you will need to set the launch options for the game in Steam so it will limit the game’s framerate. Do this by selecting the game in Steam, selecting Manage Game and choosing Set Launch Options. Copy the following lines into the box exactly as written and select OK.

strangle 60 %command%

Once you have followed these steps, the game should run fine, though the video setup will not run; you do not need it. It will default to the best possible resolution.

Setting up Sonic CD in Proton

This game will run great under Proton after some simple tweaks.

I have tested this using Pop!_os 18.04 using a Steam Controller but it should work with any Debian-based distribution (such as Ubuntu or Steam OS) as well. Setting it up in Steam OS requires a few more steps. That guide is coming soon.

Firstly, you will need two DLL files the game relies upon to run.
D3DCompiler_43.dll and D3DX9_43.dll
Make sure to select the 32 bit versions.
Copy those files into the game’s directory in ~/.steam/steam/steamapps/common/Sonic CD/

The game should run now, however if like me you have a monitor with a high refresh rate, you will need to setup libstrangle to limit the game to 60.

To do this you will need to install libstrangle by folllowing the instrctions from the GitLab page. I will reproduce them here for your convenience.

First you will need to install the necessary dependencies if you don’t already have them.

You can do this by opening a terminal window and running the following commands:

sudo apt install libc6-dev-i386 gcc-multilib ia32-libs

Once this is done, you will need to create a folder to put the libstrangle files when you’re setting them up. Do this using the following command.
mkdir libstrangle

Now you will need to navigate to that location and checkout the libstrangle sources from the GitLab page. Do that using the following commands.

cd libstrangle
git clone https://gitlab.com/torkel104/libstrangle.git

Now you will need to compile and install libstrangle. Do this by using the following commands.

make
make
sudo make install

Once this finishes, you have libstrangle installed and you will not need the folder you created anymore. You can remove it with the following command.

cd ..
rm libstrangle -R

Now you will need to set the launch options for the game in Steam so it will limit the game’s framerate. Do this by right-clicking the game in steam, selecting properties and choosing set launch options. Copy the following lines into the box and select OK.

strangle 60 %command%

Once you have followed these steps, the game should run fine, though the video setup will not run; you do not need it. It will default to the best possible resolution.