Building a Game About Sustainability - and Winning the WWDC Swift Challenge

Saanvi KumarSaanvi Kumar
5 min read

So here’s the thing, when I was brainstorming what to make for the WWDC’25 Swift Student Challenge, I wasn’t aiming to be one of the top 350 winners. I mean - sure, that thought did cross my mind (who wouldn’t want to win, right?). But more than that I wanted to build something that could have a positive impact on people.

The idea for EcoHero did not hit me in a “Eureka!” moment (although I would have loved for that to be the case) - but no, it built itself in layers. I kept thinking of sustainability and climate change and how people don’t respond well to guilt or endless facts or even clips of the ice caps melting.

But what does work?
Stories. Games.

That’s when I realized - I want to build a game for children. Not in a “just for fun” kind of way - but in a way that would stick. Something playful that simulates real-life situations they might face at home, at school, or out in the world.

If it’s fun, they’ll play it. If it’s relatable, they’ll remember it.

So I started sketching out this idea: a game that walks you through everyday scenarios - like sorting waste at home, choosing how to commute, or deciding whether to print that 30-page report. Every choice would have consequences. Some subtle, some obvious. And the better your decisions, the more “eco points” you earn.

Once the core idea for EcoHero was in place, I knew one thing: I didn’t want to just throw the player into the game with a title screen and a start button. I wanted to tell a story - even if it was short and simple. Something that would make kids feel something, right from the start.

So the game opens with a bright, beautiful image of the Earth - full of color, forests, oceans, life. And then, slowly, it fades.

The colors start to dull. The skies turn grey. Forests shrink. Waters rise. What was once thriving becomes cracked, fading, tired.

Then -

“Can you become the EcoHero?”

I was clearly going for a chosen one vibe

That was the tone I wanted to set - not fear-driven, but real. Not overwhelming, but urgent. I wanted it to feel like the Earth was gently reaching out, asking for help - and trusting you to be the one to step up.

From there, I started building the four core levels: Home, School, Community, and Global - each filled with real-life scenarios and choices. The idea was to simulate situations that kids might actually face, so later on they could think,
“Oh wait... I made this choice in the game. I can do it in real life too.”

Each level had a distinct vibe. Home was warm and familiar - a cozy kitchen, soft light, potted plants in the corner. School was bright and a little chaotic (just like real school), with lockers, papers, and a classroom chalkboard vibe. Community had more open spaces - roads, parks, streetlights. And Global? That was the big picture: oceans, continents, a shifting sky - a subtle reminder that your choices ripple out far beyond just your neighborhood.

I designed scenarios for each level that reflected real-life situations - little moments that often go unnoticed but actually matter. Things like what you do with a straw, or whether you leave the lights on when leaving a room.

I built the whole game using SwiftUI inside a Swift Playground. Since this wasn’t a super technical project, I focused more on layout, logic, and visual storytelling than complex code. SwiftUI made that really easy -especially when it came to quickly designing screens, structuring choices, and making sure the whole thing looked clean.

Submitting EcoHero felt… weird. After all the late nights, the obsessive selection of 20 different shades of blue (that tbh all looked the same), and the SwiftUI docs - it all came down to uploading a ZIP and clicking a button.

And that was it (I know I’m saying this really nonchalantly now, but in that moment? I was panicking. Like, “Did I compress the wrong folder?? Did I name the file correctly?? What if I just submitted an empty Playground??”)

But there was no going back. It was out there in the universe now. So I closed my laptop and tried very hard to study for the exam I had the next day.

For all my “oh, I’m just proud of what I made, winning doesn't matter” energy… I’m not gonna lie - I really wanted to win.

As the announcement date got closer, I was basically living on Twitter. Refreshing hashtags. Searching “WWDC’25 Student Challenge.” Looking for even the tiniest clue that someone, somewhere, had heard something.

I had built something I was proud of - something that felt like me. And I was so excited (and nervous) to see if Apple would think it was good too.

Then I got the mail.

Which, honestly? Was also kind of anticlimactic. There wasn’t even a result in the email itself - just a link. No subject line shouting “YOU WON!!!” or anything. Just… a quiet little message with a URL.

I clicked it.
It loaded.
And I saw the word: “Congratulations.”

And for a solid few seconds, I just stared.
“Wait. Is this for real? Is this my profile? Did I log in correctly? Did they maybe make a mistake??”

I refreshed the page like three times. Opened it in incognito. Checked again. And then it hit me — I actually did it.

Out of thousands of students around the world, EcoHero made it. I made it.


I made a green game. The code’s not green, but you can still see it: EcoHero.

15
Subscribe to my newsletter

Read articles from Saanvi Kumar directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Saanvi Kumar
Saanvi Kumar