One engine, many games: how a small studio shipped 160+ titles
In 2014 MadSword turned from a studio with one flagship game into a contract studio for a Dutch publisher. The publisher needed a steady stream of casual games, and each one had to be cheap to make.
I wrote the game engines for each genre we took on — match-3, Pet Rescue-style puzzles, Gem Splash, Clash of Cards, a tower defense, a bubble shooter, a zombie shooter. After the third one it was obvious they shared most of their code: store and ad integrations, a world map of levels, server-side saves, analytics, daily bonuses. So I pulled that part out into its own repository, Engine. It served us for years.
With the core in place, a new logic game with a playing field took a couple of weeks. A tower defense in the spirit of Kingdom Rush was assembled on the Steam Defense engine by a content creator, not a programmer. A Jelly Splash-like game and a solitaire came out of the match-3 code with small changes. On top of that, a skin system let us release the same mechanics under new art: over the years, 100+ skins and thousands of levels.
That is how a team of up to 35 people shipped 160+ games with 20M+ downloads.
The lesson I still apply: don’t design the shared core up front. Build two or three real products, then extract what they actually have in common.