Don't build a platform... unless?
"Build a product, not a platform" is a common saying among tech entrepreneurs. But why do some platforms succeed?
I tend to shy away from punditry: it’s empty calories and it usually ages like milk. You own your mistakes for life, too. I don’t need to feel guilty about correcting or expanding educational content as I learn new facts — but if I make some boneheaded predictions about the tech industry, it would be a faux pas to edit the article down the line and pretend I was right all along.
I made a handful of exceptions for syntheses from experience. I figure such perspectives can be interesting and are more likely to stand the test of time. Two good examples are the write-ups on the evolution of expert communities and on performance management at Big Tech.
On that note, someone on Mastodon asked me why I hadn’t designed my two DIY gaming handhelds — Sir Box-a-Lot and Bob the Cat — to turn them into an open platform for others to build their own games. Well, where to begin —
The answer is that like many other enthusiastic hobbyists before me, I learned that platform-building is a rotten deal. The urge to think big is always there — not only because it lets us dream of a more exciting future, but because we can punt on annoying questions such as “who is actually going to use this tool and why”.
In this particular case, designing a good game is hard enough; even making a well-balanced and bug-free clone of Space Invaders or Snake takes far longer than one would expect. Success is more likely if you complete the work in the most expedient way possible and generalize later — or don’t generalize at all. As for the rest of the world, they look up to winners. A game engine with no successful titles to its name is unlikely to get views on GitHub, let alone any real usage.
Successful greenfield platforms do happen, but it’s usually no accident — and it has little to do with the code you write. I think there are three ways to win: you can beat others to a brand new domain; you can tap into your personal charisma to build a robust following; or you can get corporate backing, so that you benefit from a large captive audience — and so that other people’s promo cases hinge on increasing your project’s reach.
Corporate support also imparts a sense of inevitability. If I were to announce a new programming language, most people would keep on scrolling; when Microsoft or Apple does it, millions of software engineers take notice. I think the Rust language is a striking example: it wasn’t the first project to emphasize security, and it certainly isn’t the easiest language to write in. Yet, because Mozilla funded it and announced the intent to migrate their browser to Rust, it prevailed over contenders such as Zig, Crystal, or Nim. In essence, the action signaled that Rust is a serious, consensus-backed choice; never mind that a bit later, Mozilla clarified their migration plans by adding “sike”.
This is not to take potshots at Rust; it’s just that you can’t build a platform on good ideas alone. And hey — working on a toy OS, a game engine, or a programming language is still a great way to learn or make friends. It’s just that you’re betting against the house.
For a glimpse at a work-in-progress Lemmings clone (above), click here. For a catalog of articles that aren’t punditry, check out this page. And if you like the selection, please subscribe!
Agreed with the article, but I find it funny that all of the safety oriented languages have such weird names. So we had the option between Rust, Zig and Nim?
In the case of game-engines, it really feels like making a game engine is psychologically "easier" than making a game-specific framework. When making a particular game you have to take a lot of decisions that will limit the usefulness of your "game framework" and stop it from being used in your (or other people's) future projects.
That makes it feel a bit like a lost opportunity, and you turn to abstracting everything away in the pursue of a more general game framework only to end up... making neither a game nor a game engine! Obviously, a big game company can get away with it, but for hobbyists, the situation is different.
I guess this is why Ludum Dare and game jams in general are so successful at getting people to finish a project, there's no way you are making the "abstract it away" decision when you have 48 hours to ship.