Around 2016, developers started adding deeper game mechanics by adding up great trees. Diep was a game where players could build unique tanks, Mop was an animal based game where players climbed the food chain, and Moo Moo was a PvP sandbox game where players could build forts. This was around the time I started working on some of the original games built by Sydney DeBrese, like Moo Moo and some less known games.
Around 2018, developers realized that many of their players were students in classrooms, playing these games as a substitute for console and desktop games available at home. They started building simplified browser based versions of popular games tailored for short play sessions. Most notably, I worked on Crunker, which is a counterstrike in the browser. Other examples include Zombs Royale and Build Royale, which are 2D versions of Fortnite, and Evo, which brought Destiny-like gameplay to the browser. If you go to a public library today, I guarantee you you'll see players, you'll see students playing one of these games.
Around the same time, some developers realized Io game mechanics could be adapted for mobile, to leverage new audiences and higher ad revenue. Most notably Voodoo adapted games like Paper.io, Whole.io for mobile touch friendly controls, with offline modes with fake opponents. The company Voodoo refined this technique so well that they generated $430 million in revenue in 2021, and had six billion downloads across all of those games. All of these Io games have a few key pillars in common, five second startup times, 60 second mechanic learning times, ephemeral leaderboards, and network effects. If you follow these pillars, your game will be able to replicate what works well for popular Io games.
For five second startup times, as I mentioned earlier, most Io gamers are students in classrooms. To give some context, Gen Z has an average of eight second attention span, and Io games only stick if players can get in the game before they lose interest. Because of that, we ensure that all of our games load within five seconds on low end hardware, which is a tall order for any traditional desktop game. Thankfully, the web is uniquely suited for this. If a web browser can load everything from Google Docs to Figma within a few seconds, it's entirely doable for games too. For example, when working on Kronka, we needed to build an immersive 3D game that still loaded within a five second window. Most important thing we did to achieve this is that we did not use a game engine like Unity. Game engines are great because they give you everything you need out of the box, but that comes at the cost of really long load times. Only one game I've mentioned this entire talk was built with Unity, and this is why.
Another important thing we did was lazily load all nonessential assets. Similar to how web pages lazily load images and scripts, games are exactly the same. If you open Kronka, you'll notice that you'll connect to a server before the textures load or the sound starts playing. That's because everything required to play the game is under five megabytes and the rest is lazily loaded. We also structured the engine so that it could load assets individually as needed, instead of downloading a single large package on startup. For example, there are thousands of scans and weapon models available in the game, but we only download the relevant content when needed. Similarly, we embed as much as possible into the initial JavaScript bundle you load on startup. Everything from the core maps, the class configuration, the character models are embedded into the initial JavaScript package for Kronka.
Comments