← All stories
2014

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.

In September 2015 the publisher’s founder, Vasco, came to Riga with a long-term deal: 12 updates and 2 new skins a week, plus a new game every quarter.

With Vasco, founder of Vasco Games, in the MadSword office, 11 September 2015

With Vasco (right), the founder of Vasco Games, in the MadSword office on 11 September 2015 — the day we agreed the long-term deal.

A slice of the release plan: two match-3 skins a week, alternating between two Google Play accounts.

WeekGameStore accountGameplay
24Fruit Jam SplashPuzzleMatch 3
24Regal Mania Deluxe: Match 3Go VuzzleMatch 3
25Finding Fish FrenzyPuzzleMatch 3
25Toy World Fun Carnival BlastGo VuzzleMatch 3
26Blossom Jam: Flower ShopPuzzleMatch 3
26Sea Mania IslandGo VuzzleMatch 3
27Forest FrenzyGo VuzzleMatch 3
27Jelly Jam SplashPuzzleMatch 3

That is how a team of up to 35 people shipped 160+ games with 20M+ downloads.

The MadSword team at a New Year party

MadSword at its peak: the team at a New Year costume party, end of 2016.

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.