Overview:
Save the City is a mobile game built for Android that was created to address the “Quality Education” sustainable development goal from the United Nations. The app hopes to do this by providing users with various minigames that will educate them on sustainable living habits they can apply to their daily lives related to recycling, energy conservation, and pollution cleanup. Currently, the application contains 3 minigames (one for each category) that increase in difficulty as the user improves in skill.
As you complete minigames in the app, you earn points for each category. If you reach the maximum level in all three categories, you can cash in a donation towards planting a real tree (company sponsored through trees.org).
Collaboration Statement
Our group was a group of Computer Science, Computer Engineering, and Digital Arts and Science majors. Once we developed a plan of what our software would do, we split up; three of us began writing driver code for the mini-games while our Digital Arts and Science major drew custom art for every asset of the app. This is one of the parts about our project that is so unique: we have a consistent and aesthetically pleasing art style used throughout the entirety of the app.
Inspiration
Our group was inspired by the viral mobile game Dumb Ways to Die, which was designed to help teach kids safety around trains. Because the game was difficult but fun, it went viral.
Our team wanted to create a similar project, while educating the youth about sustainable living. In order to keep the minigames difficult and fun, we created a multi-dimensional regression algorithm from the ground up to personalize the difficulty for each and every user, using a model built upon collected user play data.
How we built it
Our frontend is built using Java in the Android Studio Framework. It interacts using PHP requests to a server running Apache PHP and MySQL.
Whenever a user fails or succeeds a minigame, their user information and information about my game session is sent to the database. All of this user data is used to train a regression algorithm in Python, which updates its model based on all existing data daily.
When the users load a minigame, their user data is loaded from a database, is automatically compared to the regression algorithm which calculates the best difficulty for the user given a wide range of factors about my user account. The difficulty value adjusts how much or how little time the user has to complete the minigame, on a floating point scale.
Accomplishments that we're proud of
We ended up with a product that we are very proud of visually and functionally. All of our members stayed up working over the full 24 hours of the hackathon, which allowed us to have a massive amount of content in our final product.


Log in or sign up for Devpost to join the conversation.