5 min read

Why the Web

The web can be a really vibrant space for games (as it once was).

We’re hard at work on both 2weeks Twins and some very exciting updates to our other games. We’ll share more on both soon, but this week we wanted to talk a bit more about why we’re building games for the web.

This is a pretty development-focused newsletter post. We’ll have more exciting news on the games front next week!

The Flash era

Web games used to be a vibrant space. Portals like Newgrounds and Kongregate were thriving with lots of interesting and innovative experiences uploaded by people from all over the world. Lots of more specialized communities formed as well, like Neopets and Club Penguin.

This era was built on Adobe Flash.

Flash had a lot of virtues, chief among them being that the tool for building Flash projects was pretty accessible. It was the kind of tool that you could learn as a novice game developer and still make compelling stuff. This is how a lot of great game developers got their start.

Flash had some downsides, too, though - for its era, it was a bit of a performance hog, and frequently had security issues.

The beginning of the end was when Steve Jobs wrote an open letter in 2010 titled “Thoughts on Flash,” using these problems as justifications for why Apple wouldn’t support Flash on the iPhone. The controversy surrounding Job’s and Apple’s stance is an interesting part of tech history, but just over a year later, Adobe announced it was ceasing development on the Flash Player plugin for the web.

Without active updates to the tools or the plugin, Flash slowly died out as a tool that people used to make games.

Especially at the time, there were no real equivalents for building rich animated interactive apps on the web. This was a huge loss for the game development ecosystem.

(side note, shoutout to the Flashpoint Archive for their efforts to preserve web games built in Flash and other abandoned technologies from this era)

The HTML5 era

In the open letter, Jobs pitches HTML5 as the alternative for making Flash games. This wasn’t really plausible at the time - HTML5 lacked a lot of the advanced rendering and interactivity capabilities of Flash.

Nearly 15 years later, though, HTML5 has come a long way.

The most important advancements have been in graphics. WebGL added support for 3D rendering to the browser, and the 1.0 version was broadly deployed across devices by the end of 2014.

WebGL 1.0 was modeled after OpenGL ES 2.0, the version of the 3D graphics library that was broadly available on mobile devices at the time. This was still early days for mobile 3D graphics, and so WebGL 1.0 had a lot of limitations in comparison to where 3D technology was on desktops and consoles, but still! Being able to do 3D rendering in a browser without custom plugins was new and compelling.

Mobile technology advanced really rapidly, and WebGL followed suit. WebGL 2.0 was based on OpenGL ES 3.0, which started closing the gap between mobile and other platforms, opening up the capabilities of devices like the Xbox 360, the PS3, and the Nintendo Switch on the web (though not necessarily their performance).

WebGL 2.0 has been broadly available in desktop browsers since 2017, but didn’t make it to all major mobile browsers until late in 2021. But now it’s available pretty much everywhere. It’s pretty incredible to be able to develop experiences in the browser with the capabilities of high-end platforms from just one or two generations ago!

And there’s more on the way - WebGPU brings modern graphics APIs to the browser, and got its first release in Chrome last year. The technology gap between the web and traditional platforms will continue to narrow.

It’s an exciting time to be working in the space. After a long quiet period following the death of Flash, there are fewer and fewer technical barriers to making great games on the web.

The Tweaks era

There’s still one major problem: there’s still not an accessible tool like Flash to make games using this new technology.

There are definitely some options out there. Traditional game engines like Unity and Godot can produce web builds, but are not optimized for the web, so you face a lot of challenges and limitations as you develop. Alternately, there are some great native 3D web engines like babylon.js and three.js that are great for the web, but are primarily focused on 3D rendering and lack many of the tools you need to build great games.

We’ve written more about why we’re building our own engine in a previous newsletter, but it comes down to this:

The web can be a really vibrant space for games (as it once was). To make it vibrant, people need better tools. We should have a game development toolkit tailored to the web, and Tweaks can be that toolkit.

We’re taking an approach of developing our engine privately first, so that we can focus on making sure it’s optimized for both the web and the kind of rapid experimental development we specialize in, but we want to open up the technology as it matures.

We'll have more to announce on that in the future. If you'd specifically like to receive notifications on Tweaks development progress, we've added a secondary "2weeks Developer Club" newsletter that will serve as a waiting list for updates on access to the tools. You can sign up here!