Godot Engine is for the third time participating in the GSoC (Google Summer of Code) program. For the unaware, it is a worldwide internship program realized by Google every year, in which university students spend the summer contributing a project to an open source software.

If you are an eligible student, we’re glad to have you submitting your application to the Godot Engine organization. We know we can be daunting to deal with this so here are some tips to create a proposal.

Writing a great proposal for GSoC

Before diving into your application document, take a look a these steps:

  1. Take a look in our ideas list. This is where most of our wanted projects are listed. If you are feeling adventurous, take a look at our community proposals to find a new idea.
  2. Join our development IRC channel (#godotengine-devel on Freenode). This is where the Godot core developers hang out, so it’s a great place to ask questions about the engine internals.
    • Note that IRC is a slow platform. Usually no answer means “no one who’s online knows the answer”. You need to hang around to see an answer and sometimes ask again at a different time to catch the right person to answer.
  3. Discuss your idea with the core developers. You need to make sure your project is wanted, otherwise you might waste an application.

Once that’s done, start a new document to write your proposal. Many times using Google Docs is the easiest way to share it.

We value some topics covered in the proposal. It makes our selection process easier and increases your chance of being aceppted. Here’s what we want to see:

  • Introduce yourself. Show your past experiences. Linking to your GitHub account is important too.
    • Note that we don’t mind that much your academic background. We’re more interested in practical past projects.
    • In particular, previous contributions to open source software are great to mention.
  • Tell us your experience with the Godot Engine. Are you familiar with it? If you have made some games, we definitely want to see it, so links are appreciated.
    • If you have contributed to Godot itself, we definitely want to know. Do mention pull requests that you’ve sent.
  • Present the problem you’re trying to solve. Even if you get something from the ideas list, we want to see your take on what’s missing in Godot that you want to solve.
  • Show a plan of action to solve this problem. How would your approach be, in broad strokes, to develop the solution.
  • If you have done research on the topic, now is the time to show it. Write a more detailed implementation proposal showing what you’ll change and add to Godot during the summer.
    • Code is not important in your proposal. We expect that you’ll write the code during the program. Here we want a textual description.
  • Write a timeline. We definitely value it because we can see how you plan to attack the issue in small chunks. It also helps the mentor plan the summer as well.
    • The timeline in general is a weekly-based progress. Write how much you want to have achieved by the end of each week.
    • We know that predicting time in the software world is super hard. Just do your best guess, it’s okay if this timeline is adjusted during the program.
  • Tell how much time you will work per week. If you have some planned away time, be sure to mention it in the proposal.
    • Remember that GSoC is a full-time internship. We can be a bit lenient and let you have some time away, but in general you are expected to work everyday during the program (except the usual non-working days, such as weekends).

Be part of the community

Remember that GSoC is not only about coding, but also being a part of the community. Be sure to interact with other Godot users and contributors. While the core devs are usually on IRC, you can also enter other community channels.

The community is also a great place to have your questions answered. If you have any doubt about something in the engine internals, there’s no need to ask directly to your mentor, you can ask it publicly and likely someone will be able to answer you more promptly.

Showing your progress constantly is also a great way to interact with the community. Users love to see work being done in the engine. This can also improve your motivation to keep pushing it.

Note that the people in an open source community can sometimes be or sound a bit too harsh in their critique. Fortunately those are a minority, most people will appreciate your work kindly. Don’t let critics demotivate you and talk to your mentor or to the Code of Conduct team if you have any problem.

We’re waiting for you

We are looking forward to see the proposals from the students this year. We hope to get some great projects from GSoC 2020. See you around!