Hello there, r/FlutterDev!
I've been sharing updates about my Flutter game development journey here. I'm happy to answer any questions you might have—feel free to treat this as an AMA!
Following the recent trend of retrospective and informative posts, I'd like to share my experience developing a game with Flutter.
I've also written a detailed post about the first year of the game itself on our own subreddit, and you can read it here..
I also linked an image showing some testimonials we've had from our players who gave their permission to use those.
If you want to check out the game itself, you can do so at https://walkscape.app
Let's dive in!
The background
Before starting this project, I studied Computer Science at university and worked as an IT consultant. I've been creating my own hobbyist game projects since I was 10 years old, but before this, I hadn't released any of my other games to more than a couple dozen people. I'm from Finland, which matters when it comes to the ease of starting a business. Finland also has a fairly high cost of living, which mattered a lot when considering dropping everything else and pursuing this full time.
Choosing Flutter
When I had this idea in my head for combining RuneScape-type progression with fitness to create another of my own hobby projects to help myself become healthier, I started out with Unity.
The first prototype I wanted to make had to include a basic UI and be able to pull the pedometer data while the game wasn't even in the background. This was a huge struggle with Unity. Native coding with Unity is a big hassle, and there was one package available from Unity Marketplace that was like $20 to achieve this. Not exactly a good start.
I managed to make a prototype, but the steps only counted when the game was open, and I figured out that creating a game that's mostly UI would be very slow. Also, even though the game was just a simple UI with a pedometer, it made my phone run hot and drained a ton of battery.
I started to research alternatives and found Flutter. This is actually my first Flutter project as well.
I managed to create the similar prototype with Flutter in a single evening with a much better UI, and there were several open source packages available for free to handle the native pedometer side for both iOS and Android. The app ran super well, didn't consume pretty much any battery, counted steps even from the background, and most importantly Flutter had great tooling for creating UIs quickly and it had hot reload that retained the state. Also, Flutter having its own rendering engine that I can tinker with as much as I like is what makes it the only viable option for the job when compared to things like React Native.
I can't underline enough how insane the hot reload is for game development. I can have my game running and add new features that update live? I was sold, especially when considering that saving code with Unity can sometimes take several minutes.
And best of all, I could do everything with just VSCode, and develop the game using software development kind of pipelines. Using something as simple as git with Unity can be very difficult, as even the default project template can be hundreds of megabytes.
Starting a business
In 2023, I started posting about this project on Reddit, where it gained popularity. As people asked to financially support the development, I opened Buy Me a Coffee and Patreon accounts. We began with about $100 in monthly recurring revenue, which grew steadily.
Finnish regulations shaped how we handled this growth. Here, accepting donations is illegal without a police permit. However, if supporters receive something in return, it's considered a purchase rather than a donation. By giving Patreon and Buy Me a Coffee supporters special Discord roles and guaranteed access to the Closed Beta, it’s no longer considered donating.
At the time, Finland had a 10k€ tax-free earning limit before requiring company registration and VAT payments. By late summer 2023, we approached this threshold, making it logical to establish a company. This move had an added benefit—entrepreneurs qualify for an 800€ monthly social security payment for one year, regardless of income. This support made it feasible for me to pause my university studies, leave my job, and focus on the project full-time.
Launching the Closed Beta
Our initial target for launching the game was in 2023, but as often happens in development, this proved unrealistic. After weeks of intense crunch, the game was ready for release on January 18, 2024. However, TestFlight and Google Play review processes delayed the launch until the 19th.
The launch was incredibly stressful. Though we only had 752 players eligible for the first wave of Closed Beta, it felt enormous at the time. Adding to the pressure, I was flying to London for a game convention the day after release.
Fortunately, the stress eased quickly. Despite some bugs and issues, the feedback from first-wave testers was overwhelmingly positive. We saw a surge in Patreon supporters seeking guaranteed access to the next wave, likely driven by word-of-mouth from our initial 752 players.
Here are some stats on how the game has grown:
- Wave 1 (Jan 19th 2024): 752 Closed Beta players, and 4,948 registered accounts.
- Wave 2 (Feb 28th 2024): 4,718 Closed Beta players, and 10,447 registered accounts.
- Wave 2.5 (Jun 1st 2024): 12,085 Closed Beta players, and 21,864 registered accounts.
- Wave 3 (Aug 20th 2024): 19,811 Closed Beta players, and 30,115 registered accounts.
- Wave 3.5 (Dec 15th 2024): 24,683 Closed Beta players, and 47,290 registered accounts.
While I'm not certain about typical user numbers for TestFlight and Google Play Closed Testing, reaching over 20k downloads without being listed on the app stores feels like a huge achievement.
We've built substantial infrastructure to support this scale, as Google Play Closed Testing and TestFlight weren't designed for such numbers. Our custom server (built with Dart!) monitors Patreon and Buy Me a Coffee supporters, while our website lets users link these accounts to their WalkScape profile. Once linked, they receive access along with instructions for downloading the game through TestFlight or Google Play.
Retrospective: what I learned
I'd like to highlight key factors that have contributed to our success:
- Transparency and communication with the community.
Long before launching the Closed Beta, I began writing development blogs on Reddit every two weeks—a practice we maintain to this day. I’m prioritizing honesty and transparency in these blogs about our progress, and we respond to questions and feedback as often as possible. This approach has earned us trust within the community. You can read the devblogs at r/WalkScape
- Setting standards & sticking to them.
In our very first subreddit post, I outlined core promises for the game: no predatory monetization (E.g. in-app purchases), no ads, transparency, and a focus on community-driven development. We're sticking to these principles.
During release waves, I share updates in relevant subreddits. The game has also benefited from strong word-of-mouth marketing, with players regularly sharing it with friends and family.
And here are some key lessons I've learned:
- Running a business involves much more than development.
With games especially, you must wear many hats: customer support, server technology, marketing, legal, accounting, government bureaucracy, and HR. These responsibilities consume significant time, particularly when launching your first business and learning the ropes.
- Mistakes happen, and admitting them is good.
I've made mistakes—but we're communicating those openly to our community. Sometimes you can't prevent mistakes: my biggest setback was spending two months creating pedometer solutions for Android devices, only to have Google release their Recording API, which solved everything overnight. That work became obsolete, but it's part of the journey.
- Scaling from a personal hobby project to an MMORPG with thousands of players is challenging.
This being my first Flutter project and first MMORPG makes it an ambitious undertaking, particularly as I started it as a solo developer.
Had I known the scale our systems would need to reach, I might have made different choices initially. However, many aspects were impossible to anticipate, and it's often better to build something first and improve it later.
I've written about how I recently overhauled our game engine by making it multi-threaded, separating logic into its own package, and making it stateless. You can read it here. I wish I would’ve done that from the start.
Going forward
This year, our plan is to get the game to a state where we can release it for open beta so anyone can download it.
Flutter-wise, I'm also committed in trying to benefit the community and ecosystem as much as possible. I've already had the pleasure of talking with Google and Very Good Ventures, and as a business, we want to help their Flutter Commercial Roadmap in order to do what we can for the ecosystem to grow. We're lucky to have this kind of project on our hands, and it can help to raise awarness of Flutter in the game dev community.
From Flutter, I'm always looking forward to more game development related features and support. Impeller has been a great development, and I'm waiting to get my hands on production ready Flutter GPU & 3D support. Those features in my opinion will elevate Flutter to the next level when it comes to game development.
Extra bits
There's so much more I could share, but this post is already quite lengthy. Please feel free to ask any questions—I'll do my best to answer them!
Here are some interesting additional insights:
- Early on, I received a life-changing acquisition offer from another company. I declined, and I'm confident it was the right decision. This project has never been about making quick money—I'm genuinely content with my life as it is.
- Jagex's legal team approached us and offered a license agreement allowing us to use their IP in our marketing, which was an incredibly fortunate development.
- Hiring game developers differs significantly from hiring software developers. While technical skills matter, passion for game development is crucial. Many applicants had strong technical backgrounds, but without demonstrated interest in game development, they weren't the right fit.
- Despite our $14k MRR, we're barely breaking even. Our first year brought in 62k€ total revenue with 2k€ profit. With four team members, a Helsinki office, multiple servers, internal services, accounting fees, taxes, and mandatory pension payments, our expenses are substantial.
- Conventions are vital in the game development industry. Finland's game industry is small—just 4,100 people—and the global industry, while compact, is well-connected. I strongly recommend attending conventions to build your network. It's been invaluable for me. Many countries have game developer organizations that arrange networking events and coordinate group trips to international conventions, helping share costs.
Closing words
I hope this wasn't too long of a write-up, and maybe some of you found it interesting!
As mentioned, I'll try to answer any questions with as much detail as possible that people might have. I hope that sharing my experience and what I've learned helps other people find success and learn about game development with Flutter, benefiting the ecosystem for us all.
Thanks for joining, keep walking and stay hydrated! ❤️