How we built a game in React Native during the pandemic
Here's a dear project I'd like to share with you. Together with good friends of mine Fran Grgić and Tin Ceraj, I've built a popular card game in Croatia.
The card game is called Bela, usually played in bars and with 3 other players. And it can get pretty heated while playing 😅
How do we play Bela during the lockdown? 😷
Of course, when the pandemic hit, we couldn't go to bars and meet up with our friends to play Bela. We were missing the experience when we noticed there isn't a Bela game for phones... Hmm, but most of us play casual games on our phones. We thought: "Let's just build it ourselves."
We started working on it sometime during the first half of 2020. The game engine was built in a matter of days, the initial app for Android, iOS, and web in a matter of 3 months. Of course, there had to be a server to enable real-time gameplay between four players. When we played for the first time the game we built, it felt pretty amazing.
After ironing out a lot of bugs, we published the app on all mobile stores. We launched the game on Reddit, shared in a couple of Facebook groups and it was all organic growth up to ~17000 players today. Nice 😎
It all grew organically 🔥
After our initial launch, we received some good feedback which was very encouraging to continue working on the app. We had a couple of iterations since then:
- added Hungarian cards,
- added public rooms,
- added support for time per move, etc.
Most of the ideas came from players playing the game through Reddit, emails, BuyMeCoffee and we are thankful for the engaged community.
I would also like to share some stats which make us proud:
- ~17000 total players and rising ♥️
- ~1100 daily active users
- peaks of ~100 players at the same time
- ~4500 daily played games
Some people played the game for 9 hours straight, talk about love for the game 😄
If you want to try the game, this link will redirect you to the Play Store, App Store, or web: https://app.bela.fun/download
Tech stack 💻⚡
We had a good experience with using Javascript across the board, which helped us to iterate faster.
// Testing code highlighting
const stack = 'JS';
- React Native for all platforms (Android, iOS, web) with one codebase 🥂
- Backend running Node.js + Express + BeeQueue for workers
- Everything is running on three Hetzner VPS servers
- AI for bots is based on heuristics and the Monte Carlo Tree Search algorithm 🤖
I also have to mention, artwork for the cards is custom-made by Fran, which in my opinion, looks amazing.
So if you are a fan of playing Bela, go ahead, play a couple of rounds!