I’ve always wanted to participate in Google Summer of Code (GSoC) someday. Fortunately, this year, I got selected by Systers, an Anita Borg Institute community for a mobile game project – PowerUp. In this article, I’ll write about how I chose which project to contribute, how I wrote my proposal, and what is the PowerUp project about.
When selecting which organizations to contribute, I focus mostly on what am I capable of doing, what interests me the most, and which projects would enhance my portfolio for my dream career. I’ll write those points in more details in the following sections.
I first looked for the organizations by which programming languages I know. Since I’m more comfortable in writing C/C++, C#, Swift, Java, and maybe Python code, I searched only for organizations with projects written in those languages. Furthermore, some projects require an understanding of huge and complex APIs or systems. Since I’m not confident in learning those within one or two months, I filtered those projects out also.
Since you have to work full time for three months entirely on the project. it is vital that you choose the projects which you are interested in. I’m extremely passionate in making games or rich media projects, so I looked solely for music, video, image processing, and of course, game projects. However, a passion for the project is not enough. Since communication and community participation are also essential parts in open source projects, you should select the organizations which have the community you are willing to participate in and work with.
Make Your Portfolio Better
Another important thing to think of is how could the project enhance your portfolio. I don’t mean that you should take part in GSoC because you want to get a better job in the future. In fact, you should participate in GSoC only if you are enthusiastic about working with open source communities. But, if the project makes your portfolio better, why not?
As a result, I selected Copyleft Games, Moving Blocks, Blender, Systers, MuseScore, Tiled, and Mixxx as the organizations I’m willing to contribute. However, since I don’t have much time (and brain capacity), I only wanted to choose one to focus on so that I can write a proposal with better quality as well as understand the project and community more.
I first filtered out Blender because the code base and technology (the computer graphics thing) are too overwhelming for me. For Copyleft Games, I don’t know why I couldn’t connect to their official website of PySoy Game Engine, and they didn’t respond anything when I raised my issue, so it was crossed out of my list. Moving Blocks’s Game project could only be run in Windows operating system, however, I don’t have any access to a Windows computer, so I had to remove that from my list. Mixxx has a wonderful community of DJs and programmers, nonetheless, I realized that I know too little about mixing and DJ, so maybe I’m not that suitable to contribute to the software. MuseScore and Tiled require an understanding of Qt framework, which would be okay for me so I left those on my list. However, when I browsed the Syster’s PowerUp project, I suddenly knew that this was the project I’m going to work on because it’s written in Swift, (which is a language I’m familiar with), made with XCode and native iOS framework (which I’ve always wanted to dive into), and it’s a transformational game for preadolescent girls (which is a challenging but fun project for game designer wannabes like me to practice their game design skills).
Writing the Proposal
Writing your own proposal is also a very important part in the whole GSoC process. After all, the mentoring organizations mostly evaluates the applying students by their proposals. On top of that, proposing a feature or improvement to work on is an indispensable task when participating in open source projects. Most of the organizations have guidelines about which features or improvements could be done for their software. Though you don’t have to be restricted to those guidelines, focusing on those may be easier, and may have a higher chance to be selected (since they more likely have mentors for those features).
For Systers, the organization I was applying for, they have a proposal template which every students applying should follow, so I wouldn’t need to worry about the format of my proposal. It consisted of many short-answer questions to understand the background of each student, and most importantly, a timeline section which let each student suggest the timelines and tasks in detail.
I’ve spent a lot of time in the timeline section because it’s incredibly vital to let the mentoring organizations know what exactly am I going to do, and when can I attain each task.
I started planning my timeline by evaluating my own skill set and capabilities. After that, I jotted down couple of major milestones which I was quite sure I would be able to attain during the three months of GSoC. The last thing to do is to fill in the details. I’ve made a 3 pages long form comprising a weekly schedule about what exactly would I work on in the period. By doing so, I could show not only I’m ready for the project but also I am able to organize my own tasks and evalute my work time carefully.
After submitting my draft on Google Doc, I was fortunate enough to get some feedbacks from the mentors so that I could iterate more times to rethink my ideas and improve my proposal.
That’s my overall process of applying for GSoC. Next on, I’ll be introducing the project which I’ll be working on!
The PowerUp Project
PowerUp project is an educational mobile game with an eye to teach preadolescent girls about reproductive health and boost their self esteem at the same time. The game is played mainly by navigating an avatar through different scenarios. Every choices the players make would result in different outcome in game. Mini games and a fashion shop are integrated in the game to make it more interesting and fun. I think it’s really an exciting project since I always believe that games could transform the players, making them better people. However, making fun educational games isn’t an easy task at all. So it’s really a great challenge for me and the entire team to design the game, and most importantly, make it a fun experience for learning.
The project is on GitHub.
I’ll be posting weekly or biweekly about the progress, interesting things, and the difficulties I encounter during the GSoC 2017 period on this blog, stay tuned, and thanks for reading!