Level Up: How I Made the Top 10 Worldwide at Flutter Global Gamers Hackathon

Ivanna Kacevica
13 min readJul 4, 2024

--

Hi! I am Ivanna, a Flutter Developer from Latvia working for a Helsinki-based restaurant guide app called World of Mouth.

In the last couple of years, I have won several coding scholarships and contests, scaling from small, community-organized ones to big hackathons from sponsors like Google and Global Citizen, including this year’s Global Gamers Challenge.

This article will be useful for anyone who wants to be successful in app or game-related hackathons, whether you work with Flutter or not. Many tips here can also be useful to anyone starting to work on a pet project or a full-scale indie app!

In the Global Gamers hackathon, developers had 8 weeks (later extended to nine) to design, build, and publish sustainable games using Flutter. The grand prize included a trip to New York to spend a day with the Flutter team at the Google NYC office, as well as VIP tickets to the 2024 Global Citizen Festival. I started working on my submission as soon as the challenge began and spent all 9 weeks on it. Having a full-time job and other life responsibilities alongside that meant I had to forget about any work-life balance for that period and have a “work-hackathon” balance instead. So, in case you think participating in a large contest would take just one weekend, think again. The competition will be strong, and you will have to work hard. Or maybe I’m just slow. 🐌

I ran a small data analysis on the challenge results and will share a couple of findings with you below. First of all, it looks like a lot of folks initially intend to participate but end up not submitting anything. Out of 3,512 initial participants, only 344 people had a total of 185 projects in the final gallery.

Global Gamers 2024 registered vs. submitted analysis

I think the same would be true for many contests; naturally, a lot of people will end up switching to something else and not completing their submission. So, my tip number one is: actually do it and submit a project.

Out of the 185 projects in the gallery, the chance of winning any prize (including some bonus prizes from organizers and sponsors) was 14.59%, which doesn’t look too bad to me.

Global Gamers 2024 team size distribution

If we look at the team size distribution, most projects were submitted by solo developers (97), and the number of projects decreases as the team size increases, with a few exceptions. The data suggests that small to moderately sized teams (2–4 members) have a relatively higher success rate. Team sizes of 7 and 8 each have one semifinalist out of one project, resulting in a 100% success rate, though the sample size is too small to conclude that you absolutely must join a large team. In summary, while single-member teams are the most common, two-member teams have a good balance between quantity and success rate. Thus, tip number two: team up with your buddy!

Whaley's Bins Waste Sorting

My submission is called Whaley’s Bins Waste Sorting. By engaging players in sorting waste through a fun, interactive setting, the game raises awareness about the various types of waste and their proper disposal methods.

Whaleys Bins Waste Sorting

For the character name, I merged the words “whale” and “wheelie bin” (another name for trash bin) to create “Whaley.”

The gameplay involves swapping items in each “row” by dragging one item onto another to place each item into the correct waste bin. Learn about waste sustainability as you play — if you don’t pass the level, Whaley will share a fun fact and ask a question about it for a chance to unlock the next level.

Whaleys Bins Waste Sorting

You can play my game for free on iOS, Android, macOS, Windows, and the web! Can you beat the top 42 and get onto the leaderboard?

The idea of using waste sorting was far from original in the contest. Many submissions featured games with a similar theme, including those from my Flutter Riga friends. Even though the theme involved some form of recycling action, each game was unique with its own touch and style. So, don’t be afraid to put your own spin on familiar ideas.

How did I build it?

Using the Casual Games Toolkit, of course! The toolkit received a big update in 2023, including the flame package-based Endless Runner game template. That’s what I used as the base for my submission.

If you want to know what other templates are available in Flutter besides games, check out my Beyond the Counter: Exploring Flutter App Templates article and talk.

Flame is a modular Flutter game engine that provides a complete set of out-of-the-way solutions for games. It takes advantage of the powerful infrastructure provided by Flutter but simplifies the code you need to build your projects.

It provides you with a simple yet effective game loop implementation, and the necessary functionalities that you might need in a game.

To install the Endless Runner template, you can run the following commands that will launch an easy-to-use sample downloader command tool:

dart pub global activate sample_downloader
sample_downloader

I reused and modified elements like the settings screen and audio controllers and fully rewrote the game world and mechanics. I also created new sprites (game entities) and their collision logic.

I don’t have any ideas. What do I build?

This is not a problem! My personal advice is simple: approach your idea creation as you would for a startup. How does one come up with a startup idea? Well, there’s actually a known methodology for this. Y Combinator shares some great insights in their brilliant talk How To Get Startup Ideas by Jared Friedman. Almost every piece of advice can be practically applied to hackathon idea generation. Here are some of those tips:

  1. Focus on what you / your team is uniquely good at.

Example: If your team excels at creating beautiful, intuitive user interfaces, you could focus on a game that educates users about sustainability through interactive, visually engaging puzzles.

2. Think of products or services you wish existed.

Example: An app that helps users find sustainable products and stores in their area. It provides information on eco-friendly brands, product reviews, and tips for making more sustainable shopping choices.

3. Consider frustrations or needs you encounter in daily life.

If you find it hard to keep track of recycling rules, why not create a game that helps players learn and remember local recycling guidelines through fun and engaging gameplay? I know someone who did it. Or, wait a minute…

4. Find companies that have recently succeeded and think of new variants.

Example: Look at the success of educational games like Duolingo and create a variant that teaches players about environmental science and sustainability.

5. Ask people, especially those with specific expertise, for problems they need solved.

Example: Consult with environmental scientists or sustainability experts to identify key issues in their field, then design a game that addresses these problems in an educational and entertaining way.

6. Identify industries that seem broken or ripe for disruption.

Example: The fashion industry is known for its sustainability issues. Develop a game where players manage a fashion brand that focuses on sustainable and ethical production practices, aiming to educate players on the impact of fast fashion.

There is also a really cool page on Y Combinator (I swear I’m not affiliated with them) called Requests for Startups, where they post interesting ideas ready for development and actually worth investing in. Imagine this — not only would your submission address a valid issue, but your app could become the next unicorn.

Y Combinator Requests for Startups

Something I would like to specifically mention is that in many contests, there are not just one but several categories in which you could win. There are often special prizes or sponsor prizes for implementing specific technologies in your app. You could be strategic here and think about the desired category upfront. Some of your options are:

  • Focus on the main prize
  • Put more effort into a specific subcategory
  • Submit for as many prize categories as possible

Consider how competitive each category might be. If one category is likely to attract a lot of entries, you might have a better chance of standing out in a less crowded category.

I conducted a micro-interview with a hackathon judge for this article (continue reading for the name reveal), and one of the things they mentioned is that when contestants deploy projects on the web, it makes testing more convenient and accessible for more people. So the next tip is to plan your platforms.

Web deployment removes barriers for users. They can simply click a link and start using your app or playing your game without the hassle of going to an app store or installing untrusted .apk files.

Ensure that your app provides a consistent experience across all platforms. This involves thorough testing and making any necessary adjustments to cater to platform-specific nuances. In Whaley’s Bins, I used Firebase services like Crashlytics, Analytics, and Remote Config. As of the writing of this article in 2024, none of these are officially supported on Windows, so my job was to make sure there were no unexpected crashes or different user experiences on this platform.

If your hackathon involves uploading a demo video, it’s highly recommended (and sometimes required by contest rules) to include a demo for every platform you’ve built for. You should not rely on every judge having access to different testing devices on different platforms.

Remember how only 9.79% of users ended up having projects in the project gallery for Global Gamers? One approach that can help ensure you actually submit your project is to focus on MVP (Minimum Viable Product) implementation first. Think about what’s absolutely essential functionally in your app versus what can be added last-minute or even skipped in the first iteration.

Ineffective Approach — developing isolated features sequentially:

  • First iteration: Develop a login screen.
  • Second iteration: Develop the backend server.
  • Third iteration: Develop the main UI layout.
  • Final iteration: Integrate all features to create a working app.

This style of working is risky because you might end up not having a ready product by the time the deadline is approaching. On the other hand, the strategy below could be wiser:

Effective Approach — developing a usable, core version of the app and iteratively improving it:

  • First iteration: Develop a basic version of the app with core functionality (e.g., user can log in and perform the main task).
  • Second iteration: Add essential features that enhance usability (e.g., a basic user profile page).
  • Third iteration: Implement advanced features (e.g., notifications and advanced settings).
  • Final iteration: Refine the app with polished UI and additional features to make it fully functional and market-ready.

My next tip is to focus on UX and usability testing. Having a UX designer on your team would be an advantage, but if you don’t, this is still something you should not skip. UX is about creating a seamless and effective experience for users.

UI vs. UX pineapple — banana example

To illustrate the difference between UI and UX, consider the pineapple vs. banana example. Pineapple has a good UI — it looks really nice with its vibrant color and appealing shape. However, it suffers from bad UX — it’s difficult to peel, has a tough exterior, and often prickly leaves, making it less user-friendly. On the other hand, a banana not only has a good UI but also great UX. It’s easy to use, with a simple peel and no mess, making it convenient to eat.

If you were to apply only one UX principle, make it usability testing: have someone use your app and take notes on where users encounter difficulties.

Let’s stop here for a moment. When I was working on Whaley’s Bins, my thinking was — if the game is too easy, users will soon get bored and abandon it. So, I came up with the idea of not only increasing the speed and item count with each level but also having a special “high speed lane” activated from time to time to really challenge the user and make level completion more engaging. Now no one will be bored!

After getting into the semifinals, we were assigned mentors to help with our submissions for the final round. I received super valuable feedback. Guess what one of the comments was? “The game is really hard!”

To improve the user experience, I made the first five levels intentionally easier to walk through. This allows users to adjust to the gameplay before moving to faster speeds.

Without usability testing, I would have focused on my own perception of the game — how overly easy it seemed. But the thing is, I was biased. When we develop, we test things over and over again, so at the end of the day, we can’t see the forest for the trees.

Other not-to-be-missed UX things for me include:

  • Design straightforward and logical navigation with familiar icons and gestures.
  • Design for various screen sizes and orientations (if applicable to your project).
  • Make the app accessible to users with disabilities.

Remember the time when you joined a new team or project and went through the code onboarding stage? How long does it normally take to onboard an engineer? Several weeks to several months.

Based on my research, judges can have as little as 10 to 30 minutes to review one project! Now, try going to a random GitHub project and getting familiar with the codebase in 30 minutes. Our job as participants is to make the code review process more convenient for the judges. How can we help someone understand what is going on in our code in such a short time?

At a minimum, aim to use some best practices for writing clean, maintainable, and readable code:

  • Use clear, descriptive, and consistent names
  • Provide meaningful comments
  • Break code into modules or functions
  • Use readable formatting
  • Avoid complex logic

Another tip (a judge’s pro-tip as well) is to make sure your game or app submission includes clear instructions on how it works. Returning to the “not seeing the forest for the trees” problem, you will be biased by fully understanding how your app works simply because you are the author and know every corner of it, even if it’s not as intuitive for an external person.

I already had a how-to-play page in Whaley’s Bins settings, but after the mentorship stage and getting feedback, I also added an in-app user onboarding feature. This quickly shows what to do in the game through several one-time slides displayed at the start of the app.

Last but not least, mind your asset licenses. You don’t want your project to get eliminated because you used an image from Google Search without making sure you’re allowed to share it.

Creative Commons CC0, also known as “No Rights Reserved,” is your best friend for things like icons, images, and audio. Some useful links for finding free-to-use assets include:

Other widely used resources with custom licensing rules are:

Freepik / Flaticon — “if you download Freepik resources as a free user you must include the attribution line “Designed by Freepik” on the app credits page and on the description in the app store. If you are a Premium user, you don’t need to add this attribution line

DALL·E — “you own the images you create with DALL·E, including the right to reprint, sell, and merchandise

Midjourney — “if you are a business grossing more than $1,000,000 USD a year, you need a Pro or Mega Plan to use your images commercially for your company

Font Awesome — “fully open source and is GPL friendly. You can use it for commercial projects, open source projects, or really just about whatever you want

Personally, I tend to avoid non-straightforward licenses with lots of specific conditions. I believe contest organizers do not have the time or resources to handle your app’s legal work. Using CC0 or something like “free for commercial use, no attribution” is clear enough and doesn’t require further checking.

Don’t forget that you can also create your own assets — take photographs for your app, draw in vector or raster, record audio on your phone, compose music, or use whatever other creative process you are familiar with. No external author means no license hassle, right?

To wrap up, here are the key tips to help you succeed in hackathons:

  1. Keep pushing until the deadline and make sure to submit your project
  2. Team up with a friend
  3. Don’t be afraid to put your spin on familiar ideas
  4. Use Flutter templates and ready-made components
  5. Approach project ideas the same way you would approach startup ideas
  6. Decide on submission categories
  7. Plan your platforms with testability in mind
  8. Build MVP first to reduce the risk of not submitting
  9. Focus on UX and usability testing
  10. Use clear and readable code practices
  11. Add clear instructions for judges on how to use your app or play your game
  12. Ensure your licenses allow intended usage for both submission and further promotion

Participating in hackathons can be a challenging yet incredibly rewarding experience. By following these tips, you can enhance your chances of success. With the right approach and mindset, your project could not only address a valid issue but also become the next big thing.

The most important tip is not included in the list above — have fun! Don’t get too fixated on the prizes; see your participation as a chance to launch a cool side project that will add to your portfolio. This mindset will make you a winner either way.

Best of luck, and I’m excited to see what you will achieve!

Acknowledgments:

Thanks to Lukas Klingsbo for answering my questions regarding the judges’ perspective on hackathons!

--

--