What is this?

A searchable collection of GameMaker games that were available on the old games portal for YoYo Games, which launched in 2007 on yoyogames.com.

In 2011 the portal was moved to sandbox.yoyogames.com, and was shutdown in 2016. Due to the portal being moved to the sandbox sub-domain, the old YoYo Games website is often referred to as the "Sandbox".

What games are available?

Nearly all the games available on the site in 2014 when it was saved by the archivist group ArchiveTeam, so a bit over 100,000 games.

Some were missing from that collection, but I'll be hoping to recover them in due time.

If there already was an archive then what's the point of this?

ArchiveTeam scraped the Sandbox into the WARC format, which essentially captures websites quite thoroughly in how individual pages connect to one another. They are great for preserving websites as historical records, but do not preserve site features such as search.

Indeed, this archive as well as other automated scrapes of the Sandbox are what underly navigating through sandbox.yoyogames.com on the Wayback Machine. One cannot use the search box that was originally on the site however—this website aims to provide something like that.

Why are some game downloads named "download.bin"?

A small proportion of games were headerless files i.e. raw binary streams. These files will most likely be GMK files—the project files of GameMaker—which had their filenames lost by the original Sandbox uploader.

Where are the screenshots?

Unfortunately the ArchiveTeam scrape only captured the low-quality thumbnails present on the Sandbox, and not the originally uploaded screenshots. The Wayback Machine did independently have screenshots saved, but only for a relatively few number of games.

How does the site work behind the scenes?

I partially reconstructed the database of the Sandbox using scraped data from the ArchiveTeam WARCs, and subsequently pre-processed it. I use the Python web framework Flask to power this site, which interfaces with this database. The source code is available on GitHub (the sandbox.db file is my final Sqlite database).

The games are hosted on the Internet Archive, which this site simply directly links to. I uploaded the games in multiple ~50GB ZIPs, which can be seen on my IA profile. Their uploader is smart in that it opens ZIP files and exposes access to individual files inside them.

I host this site using PythonAnywhere, with the yygarchive.org domain bought from NameCheap.

How are those ZIPs organised?

They're uploaded in chunks in alphabetical order—chunks because ZIP files over 50GB can be problematic to the Internet Archive's backend. They are referred to as "items" on the IA. Originally I was uploading each game separately to the IA, but I was told that was a bad idea (I imagine for how the IA backend works and how it would pollute search queries).

Pages for games on the Sandbox had their own slugs, but I sanitized them to a limited set of characters which would prevent compatibility problems for versions of Windows.

There were duplicate slugs, which I had envisioned to be separated by their unique database IDs in the respective slugs' folder in the respective chunk. Unfortunately I messed this up somehow and only realised I had after the arduous process of uploading all the chunks, so I uploaded a supplementary item just for these games with duplicate slugs.

I was a developer on the Sandbox, and would like my game(s) removed—what should I do?

Contact me via Twitter or email and I'll remove the related pages from the site.

How can I help?

Regarding the archive itself, there are some games which are missing for one reason or another. If folk have particular requests or have found missing games, give me a shout.

As the Internet Archive hosts the actual game downloads, it's more expensive on their end for this archive to work. If you have the means, I'd strongly encourage donating to the IA, and maybe mention yygarchive.org for tracking purposes. The work they do is simply amazing and does much more good for the world than just pleasing nostalgic nerds.

It's not critical, but I'd also like help with hosting this site. Unfortunately playing around with static site searching solutions like Lunr.js was impractical due to performance issues, so instead of a free and efficient service like GitHub pages I have to use a traditional web host.

I pay ~£4.50 a month for a site with PythonAnywhere, which I picked as it's easy to get going with and seems quite reliable/supportive. An additional ~50p a month goes to the domain name provided by NameCheap. You can support these costs via Patreon.

Special thanks to...

The YoYo Games team for introducing game development to a generation.

Game Jolt, 64Digits and other game portals which inadvertently filled the vacuum left when the Sandbox started to whittle down.

ArchiveTeam for saving the Sandbox. chfoo led the effort, with many kind folk donating their bandwidth to get everything downloaded.

The Internet Archive for adding the ArchiveTeam save of Sandbox into their Wayback Machine. Additionally, they host the archive of extracted games I made, which I directly interface with on this site, allowing for a seamless experience.

BlueMaxima, Spasman, and many others for their efforts in preserving GameMaker games.

Maybe I should highlight interesting games down here. To get started, try Ninja Strike if you want to play a great adventure platformer by a beatboxer... all the sound effects are his vocals!

Oh yeah, you can find the thousand most-downloaded games here.