Inspiration
Merge games are everywhere, and they're almost all about the same thing: merge two identical cute animals, get a slightly larger cute animal. The loop works, but it never means anything.
Then it clicked that the merge mechanic is really a progression mechanic — two of a thing become the next thing — and there's one progression every human being already understands without a tutorial. You start as a baby. You crawl, you walk, you go to school, you grow up, you pick a career, you get promoted, you get older, and eventually you go.
Squares of Life is a merge game where the tiles are people and the ladder you climb is a life.
What it does
You play on a 4×4 board. Every swipe slides the pieces and drops a new baby into a free cell, so the board is always filling and every move costs you space.
- Match two people at the same life stage and they grow up together: baby, crawling, toddler, kid, teenager, young adult, adult.
- Reach adulthood and you choose a career — doctor, nurse, engineer, soldier, police officer, firefighter, teacher or pilot. Each is worth a different amount, so who you become matters.
- Match two people in the same career at the same rank and they get promoted. Junior, Certified, Senior.
- After that, merges start to age them instead. Forties, sixties, elder. Merge an elder one last time and they retire from the board — and the square opens up again. That last beat is the one that makes people pause. It's a merge game where the top of the ladder is the end of a life, and the reward for getting there is space to keep playing.
Around that core there are two control styles, three difficulty settings, four power-ups, five character packs, achievements and leaderboards on both platforms, and fourteen languages including Arabic, Farsi and Urdu.
How we built it
Solo, over about six weeks.
It's built with Vue and Ionic for the interface, PixiJS for the animated characters and the board, and Capacitor to turn one codebase into real Android and iOS apps.
The most useful early decision was keeping the game rules completely separate from the graphics. The board knows about people and merges; it knows nothing about pixels. That's the only reason the second control mode, the power-ups and the end-of-game preview screen were quick to add later — they're all just different windows onto the same rules.
The characters started out drawn entirely in code, which made the game playable fast. Once the design settled, they were replaced with hand-made and 3D-rendered art, with small idle movements layered on so a resting tile still feels alive.
And the coin economy was written down as a plan before it was written as code, so tuning it stayed a conversation rather than a hunt through numbers.
Challenges we ran into
The scoring quietly broke itself. Careers originally paid more and more as a character was promoted, which sounds right and plays terribly. Late in a run, one lucky career chain outweighed everything the player had done in the first ten minutes, and the game stopped asking them to think. Nothing crashed and nothing looked wrong — it just wasn't fun anymore, and the only way to find it was to sit and play long sessions.
The 3D animations came back unusable. The camera drifted during the render, the character's hands and hair got cut off near the end, and a green background bled through the transparency. Rather than guess, I measured exactly what was wrong frame by frame, then wrote a script to correct all three. The real fix was in how I asked for the next batch of art.
The store paperwork was harder than the game. Privacy labels, consent for European players, in-app purchases, achievements that have to be set up differently on each store. Getting a game finished and getting a game submittable turned out to be two separate projects.
Fourteen languages is not find-and-replace. Formality changes by language, some read right to left and need the whole layout to flip, and the studio name has to be spelled out phonetically in other scripts rather than translated by meaning.
Accomplishments that we're proud of
- The retirement moment. A merge game whose final merge is the end of a life, where the reward is an empty square — and it lands as quietly moving rather than grim.
- It's a product, not a demo. Purchases, ads, consent, achievements, leaderboards, a privacy policy, a balanced economy. The unglamorous 40% that most jam projects skip.
- Fourteen languages done properly, right-to-left included, rather than run through a translator.
- Shipping it alone. Every sprite, every string, every store form. ## What we learned
Measure, don't eyeball. "The animation looks off" is unfixable. Knowing precisely which frames drift, and by how much, made it a twenty-minute problem.
Balance bugs hide behind working code. The scoring problem passed every check. It was just wrong, and only playing found it.
Separate the rules from the visuals on day one. Nearly every feature that arrived late was cheap because of that one decision.
Finishing is its own skill. The last 10% — stores, consent, legal copy, edge cases — took as long as building the game did, and it's the part that decides whether anyone gets to play it.
What's next for Squares of Life
- Marketing on Google Play and the App Store.
- Bring back the full range of characters. The original design had a range of skin tones that got consolidated during the art rebuild. Restoring it is the change I most want to make — a game about human life should look like humanity.
- Animate the whole cast, now that the pipeline for it works.
- Daily challenges with a shared starting board, so two players can compare runs on the same deal instead of the same luck.
- More life paths. Eight careers is a start — parenthood, education and career changes all fit naturally into what the game already understands about a person.
Built With
- ionic
- revenuecat
- vue.js
Log in or sign up for Devpost to join the conversation.