-
Notifications
You must be signed in to change notification settings - Fork 430
GSoC All Final Reports
Kim 2017
Sachin 2017
Aanchal 2016
PowerUp is an iOS/Android female empowerment mobile game for middle school to high school age girls. Through character customization, choose-your-own-adventure style scenarios, and minigames, players can truly express themselves in a supportive environment while simultaneously learning how to tackle various situations involving relationships, reproductive health, and more.
For the future, PowerUp would shine with a growing avatar with a larger and more inclusive character customization, as well as additional scenarios that address other problems that a girl would face as she reaches high school and college.
I worked on a complete redesign of PowerUp with a focus on making it modern, appealing, and intuitive for our target audience, as well as a couple of Android bugs.
Design: For the redesign, I focused on trying to make Powerup modern, appealing, and intuitive for our target audience, while keeping in mind the relatability of the game. A lot of my work focused on making the minigames cutesy and easily understandable (with the implementation of the tutorial screens) and making the avatar customization inclusive.
- Game map
- Grayscale and color buildings
- Locks
- Scenarios
- Scenario backgrounds for all scenes
- Scenario dialogue UI
- Store UI
- Completed scenario screen
- Minigames
- Minesweeper, Sink to Swim, and Vocab Match minigames and tutorial screens
- Avatar
- 16 skin colors
- 7 eye colors
- 14 hairstyles
- 2 religions
- 4 outfits
- 4 accessories
- Misc
- Determined app color palette and visual theme
- Home, continue, start, replay buttons
- Title screen and splash screens
- App icon
Android:
- Map home button functionality bug
- Scenario choices whitespace bug
- Putting myself in the mindset of making a game for middle schoolers--it’s definitely different to design for a younger audience. I needed to use brighter colors, very obvious gameplay mechanics and clear UI, and a cutesy art style. At first I was resistant, since I play and design for more mature audiences, but I think this was the best challenge to face at the beginning! It made me so much more open minded to things moving forward.
- Learning Git. There were a lot of basic concepts I had to learn quickly to catch up with everyone else.
- How to work on a team!
- In most past projects, I’ve only worked with one or two other people for a much shorter time. The remote aspect of GSoC also required more responsibility and motivation!
- Github and Git Bash
- Being more flexible with design
- UX research
- I had the opportunity to conduct some usability tests for the Grace Hopper app in Phase I, and it was a really enjoyable experience. We also conducted research for the avatar art styles in order to make the most appealing avatar for our players.
To future GSoC students, I would just say be open-minded always. Everyone here is so talented and there is something to be learned in everything you do!
GSoC has been such a delightful and empowering experience. I’ve never been able to work on a long term project like this before, and GSoC allowed me to do that with a project I truly believed in, all while learning technical and teamwork skills. I feel like a better designer and a better person all around.
I didn’t quite know what to expect coming in, and I feel incredibly fortunate to have had a wonderful team that was communicative and worked flawlessly together. Every single team member worked really hard to create the best app--I knew I could trust everyone to do a great job and give honest feedback. I’d particularly like to thank my mentors May and dil for always being there for me through design and technical questions and going above and beyond. They created such a comfortable environment for me to work in and always had additional resources or opportunities for me to look at!
This is a team I’ll definitely miss moving forward, and working on PowerUp will always have a precious place in my heart.
The PowerUp Android is an interactive mobile game based on Social and Emotional Learning Model. The application aims to educate pre-adolescent girls about the vulnerable topics like Sex, Relationships, Self Esteem, Puberty changes, Reproductive Health, etc by gamifying the learning process.
The user created an avatar and tours through different scenarios each dealing with the different subject of importance. The minigames are also added in these scenarios to make them more engaging for the user.
In future, I see PowerUp as an impactful game. The game focus would be on including more creative ideas to educate girls on these topics. I would personally like to see PowerUp as a game that distinguishes itself from other games in terms of creativity.
The Game is developed for both Android and iOS platforms.
- Java
- XML
You can find my work here and demo video for the product here.
There were a lot of pending bugs like Character avatar was not updated everywhere in the project, the order in which scenarios were played was not logical due to a bug in the database, etc. I resolved these bugs in the beginning of the program.
Earlier, the content of all the four scenarios was same. I added the content for all the four scenarios in the database through the .csv file.
I implemented three minigames from scratch in this summer of code -
- Minesweeper Game
Minesweeper game educates the users about the success rate of different contraceptives available in the market. This game is based on uncertainty where success or failure is total chance based. It resembles the real life scenario of contraceptives where success or failure is uncertain and chance based. In Minesweeper Game, I designed the layout that could work on every target Android device taking special care of all screen sizes. Also, I ensured that all the edge cases are taken care of in the Game like disabling the clicking of entities whenever not required. To make game more live up, I added a lot of animations on objects like score, flipping of mines, fading of banners, graying out of mines after the game ends, etc. - Vocab Matching Game
This game gives a visual description of various terms associated with topics of Sex and Reproductive health. This is a dynamic fast paced game in which user has to match the visuals that are coming to them from random positions to their corresponding name. In this game, I ensured that it works on all Android devices and screen sizes. I added a shadow based drag and drop functionality on names using which user can change the positions of names to match them with their visuals. I also worked on simultaneous animations on incoming visuals and an indicator bulb to indicate if the match is correct or wrong. The game included handling the logical blocks like detecting the collision and managing graphic layers for smooth animation. - Sink to Swim Game
The Sink to Swim Game aims at clearing all the myths surrounding the topics like Contraceptives, Sex, and Reproductive health. A lot of information on these topics comes to girls in a non-filtered manner from irresponsible sources like the internet, peers, and media which often results in dangerous outcomes. In this game, the user is presented with a statement which can be either true or false. I worked on a variety of animations in this game. I added a continuous swing animation on the boat to give floating motion touch. I also added an indicator after each question to tell if the answer was correct or wrong. Most importantly, the game has a timer running on foreground that keeps ticking to make it more challenging and interesting.
In this summer of code, major tasks were the redesign of the whole app. The designs were provided by the design student for this summer of code. The task was challenging as I had to sometimes work on feature whose design was yet to be prepared. Also, many new designs required a complete logical change and I had to develop logic as well as the layout for them from scratch. I am really thankful to the design team for putting efforts in making such realistic and beautiful designs. It is these designs that made this app appealing.
We decided to keep the project in landscape-only mode. I converted all the project to the landscape-only mode. I had to redesign the layout for some activities separately and move everything from general buckets to landscape buckets.
Right from the beginning of the program to end, there were always differences in Android and iOS version. I and iOS student made sure to keep our new work exactly the same. It was challenging to explain technicalities and designs remotely before implementing them. Also, we discussed all the major differences in iOS and Android at end of the program and resolved them. I really enjoyed working with the iOS team on this part.
I added unit tests for all the three mini-games that are introduced into the project. Since unit testing was new for me, I faced a lot of challenges in handling them. I also worked on the documentation of all the new features I added to the project this summer.
I faced a lot of challenges in this summer of code -
I had no prior experience in unit testing. I completed the course on Unit Testing and Integration Testing and implemented plenty of tests right from the beginning of working phase. It became challenging to test classes with animations because unit tests used to skip some code leading to their failure.
The earlier codebase didn't work on all Android screen sizes and models. From the beginning, I made sure to have layouts that work on all screen sizes. This often leads to many problems. The choices for layout reduced. Many times, I had to redesign the layout because current layout used to be not effective. In dynamic games, I had to take care that no entity goes out of the screen and all games motion works reasonably on all screen sizes.
Many animations and utilities available in iOS are not available on Android. I had to make a custom code specific to our requirements to make Android version look exactly like iOS version. For example - Popup Dialog in iOS is transparent by default but I had to do that in Android. Also, graying out of minesweeper boxes can be done easily in iOS using "white" property but I had to make color blend function myself. There were many other differences which became challenging to implement at times.
There are some bugs in Android core system that became challenging to handle.
For example - setClickable(false) don't work on buttons and Imageviews. As soon as the click is invoked, Android sets the clickable property to true. Also, setRepeatMode() and many other animation functions don't work if we use animation set with multiple animations. In these cases, none of the solutions on StackOverflow worked for me and I had to find workaround myself which was very time-consuming.
This was the best learning experience for me so far.
- I completed a course on Testing in Android - Unit testing and Integration testing. I implemented tests for all of the new codebase.
- I learned about the important metrics that need to be analyzed before starting the development. These include design patterns, performance considerations, the flexibility of different approaches for future changes, how generic is the approach and whether the approach can be easily tested. Also, I gained experience in handling edge cases in big products. For example - I had to ensure that background boxes in Minesweeper Game are not clickable when Success Banner is shown.
- I learned game development in android which I never worked on before. As a developer, I learned a lot of best practices in development.
- I found workarounds for some of the bugs in Android System and shared my answers on StackOverflow which proved helpful to other developers as well.
- Experience of working in a collaborative environment with a remote team with members from different time zones.
- Presentation skills gained through team meetings and Demo meetings that used to happen every week.
Google Summer of Code is the most rewarding experience for me so far. I learned a great deal through this program. The best part was the team meetings where everyone in team contributed to ideas and made decisions collectively. These meetings always pushed me to think for more improvements in the project. I always felt excited to share my thoughts at the next meeting. This tells a lot of about the team and their common love for this project.
Special thanks to my mentors Aanchal, Dhara, and admin May for helping me out both technically and professionally. Your feedbacks were valuable and I am seriously looking forward to work on them.
Big thanks to everyone in the PowerUp team for this opportunity and making it a wonderful experience for me.
PowerUp is a female empowerment educational mobile game app that allows young girls to learn about reproductive health and self-esteem by navigating the life of their avatar through a choose-your-own-adventure mobile game that teaches social emotional learning, conflict resolution and health skills in a fun, interactive way.Through this project, I hope to implement features that would serve as better options for educating preadolescents who are at risk for pregnancy and spread of sexually transmitted infection(STI) due to lack of information about the associated risks and responsibilities. Powerup project is developed on Android platform using Android Studio as part of the Google Summer of Code 2016 Project under Systers.
- Added landscape layouts for various screens.
- Changing UI of Dressing Room-1 to select facial features,hair and clothes for the Avatar.
- Implementation of Dressing room-2 to select Avatar accessories,clothes,hairstyles at the end of a scenario.
- Designing the items for dressing room 2 which includes: hair, clothes and accessories.
- Assignment of points to Dressing room-2 items.
- Added functionality to purchase items from accumulated points and display "Paid" labels.
- Changes in existing database to store Avatar features for Dressing Rooms implementation
- Added power and health bars(healing, strength, invisibility, telepathy) at the footer of screen.
- Added a summary screen at the end of each scenario which displays points.
- Displayed current points in Dressing Room 2 and Select Feature activity in the "Karma" box.
- As there were many database related changes I had to go through various iterations and debug the code to resolve the errors.
- To keep in sync with iOS project, the UI of project was changed.
- Learned how to use git conveniently and effectively.
- I got to work and contribute with an open source organisation.
- I also understood the importance of clean and clear code, documentations, timelines, communicating with mentor and the entre team and good code reviews. In short I got to learn how to work efficiently with a team that is spread across the globe.
This summer with Google Summer of Code has been amazing for me, with a huge amount of learning, interaction with people from all around the world and a lot of fun. It was an enriching experience and one of the major event which has changed my life in many ways. I have got a better experience in Android development and has also helped me to improve my coding skills by learning from the existing code and code reviews given by mentors. Being a part of GSoC is itself such a big achievement and it has given me motivation to achieve bigger things in life.
Thank you Systers, Anita Borg Institute Community for giving me this valuable opportunity.I am proud to be a part of Systers community and would keep contributing my bit to the society through this organisation. I would also thank my mentor Chhavi P. Gupta and my Project Manager Ihudiya Finda Ogburu and the entire PowerUp team for guiding me throughout the project and for always being there and helping me out with each and every little issues possible.
Links:
Github Repository
Documentation: Part 1
Documentation: Part 2
Github Profile
Systers Profile
Gmail
Documentation
Outreachy Interns
GSoC Students