Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
gdevelop5:community:summer-of-code [2020/02/09 12:45]
4ian
gdevelop5:community:summer-of-code [2020/02/28 09:31] (current)
4ian
Line 5: Line 5:
 {{ :​gdevelop5:​community:​summer_of_code.png?​nolink |}} {{ :​gdevelop5:​community:​summer_of_code.png?​nolink |}}
  
-This year, GDevelop ​will candidate to be part of the organisation for which students can apply to.+This year, GDevelop ​is one of the mentoring organisations. If you're a student and interested in working with us, read on! 
 + 
 +<​note>​Want to candidate to work with us on GDevelop this summer? Read the end of the document about **how to start** and how to make **a good proposal**!</​note>​
  
 ## Ideas list ## Ideas list
Line 33: Line 35:
 * **Outcome:​** a library integrated into the game engine handling the object collisions (and associated operations) with benchmark against the old implementation. * **Outcome:​** a library integrated into the game engine handling the object collisions (and associated operations) with benchmark against the old implementation.
 * **Skills:** C++ (or Rust, or a language that can be used to generate a WebAssembly library), JavaScript, Algorithms and data structure knowledge. * **Skills:** C++ (or Rust, or a language that can be used to generate a WebAssembly library), JavaScript, Algorithms and data structure knowledge.
-* **Type:** Exploratory 
-* **Difficulty:​** hard 
- 
-### Rendering games in parallel to game logic 
- 
-Rework the game engine so that while events/​logic is being run for a frame, the previous frame is being rendered on screen. 
- 
-* **Outcome:​** a working game engine that is rendering the games properly while running the logic. 
-* **Skills:** JavaScript, Web workers, notion of threading. 
 * **Type:** Exploratory * **Type:** Exploratory
 * **Difficulty:​** hard * **Difficulty:​** hard
Line 84: Line 77:
 * **Skills:** JavaScript (for the editor and the game engine) * **Skills:** JavaScript (for the editor and the game engine)
 * **Difficulty:​** Medium * **Difficulty:​** Medium
 +
 +### Rendering games in parallel to game logic
 +
 +Rework the game engine so that while events/​logic is being run for a frame, the previous frame is being rendered on screen.
 +
 +* **Outcome:​** a working game engine that is rendering the games properly while running the logic.
 +* **Skills:** JavaScript, Web workers, notion of threading.
 +* **Type:** Exploratory
 +* **Difficulty:​** hard (needs very good understanding of game rendering/​WebGL/​Pixi.js)
 +
 +### Support opening multiple projects or multiple instances of the editor
 +
 +Rework the editor so that the user is not forced to close a game before opening another one in the editor. This could either take the shape of another, separate editor window. Or maybe we can keep everything in the same window and have the games share the project manager and share the same list of tabs.
 +
 +* **Outcome:​** Support opening multiple games in the editor without closing the current project.
 +* **Skills:** JavaScript, React, Electron
 +* **Difficulty:​** Medium (good React knowledge)
 +
 +### Add support for boolean variable types (and arrays)
 +
 +Rework the variables, add action/​conditions and slightly adapt the UI to add support for boolean variables (true/​false).
 +As a stretch goal, add support for arrays, in addition to structures.
 +
 +* **Outcome:​** Boolean variables can be used in GDevelop (right now we must use numbers to simulate them).
 +* **Skills:** Mix of C++ and JavaScript
 +* **Difficulty:​** Easy to Medium
  
 ### Your own idea ### Your own idea
  
 Your own ideas and variations on the existing one are very welcome! Remember to take a look at [[https://​trello.com/​b/​qf0lM7k8/​gdevelop-roadmap|the roadmap]] if you want to know more about what users are asking for. Your own ideas and variations on the existing one are very welcome! Remember to take a look at [[https://​trello.com/​b/​qf0lM7k8/​gdevelop-roadmap|the roadmap]] if you want to know more about what users are asking for.
 +
 +## How to candidate?
 +
 +You'll need two things!
 +
 +* First, become a bit familiar with GDevelop by solving or working an issue (or adding a simple new feature) on the GitHub Issue Tracker. Take a look at the [[https://​github.com/​4ian/​GDevelop/​issues?​q=is%3Aissue+is%3Aopen+label%3A%22%F0%9F%91%8Cgood+first+issue%22|Good First Issues]].
 +  * You'll need to set up your development environment 💻. The *README* will explain everything! We're not explaining too much here because it's up to you to search and see how to do. It's not difficult ;)
 +  * Find an issue that looks interesting to you. Might be a [[https://​github.com/​4ian/​GDevelop/​issues?​q=is%3Aissue+is%3Aopen+label%3A%22%F0%9F%91%8Cgood+first+issue%22|Good First Issue]] or another one. 
 +  * Do some research, try things, and if you need help ask on the forum or on the GitHub issue itself. **Only do that though after searching the problem for a bit** (we won't answer to questions to get started as there should be all explained in the README... but in case of doubt - ask!)
 +  * If you have something interesting,​ comment on the issue or open a *Pull Request*! Prepare it with all the required tests and checks, explain what you've done and a reviewer should give you some feedback.
 +
 +* Searching to solve an issue is a good first step that will actually help you in the second part: making a proposal!
 +  * Read the section about [[https://​summerofcode.withgoogle.com/​organizations/​5586892420022272/​|how to make a proposal]] on GDevelop page on Google Summer of Code website 🙇‍♀️. ​
 +  * Prepare your proposal on the Google Summer of Code website 🤓. While it's ok to ask questions about GDevelop development on the forum or on GitHub if it's related to an issue, we **won'​t directly proofread or review your proposal**. We can answer specific questions about the codebase, but the proposal must be coming from you. 
 +
 +<note tip>A good proposal will show that you understood at least the big principles and are able to dive more in the problem.</​note>​
 +
 +<​note>​Again,​ make sure to **get familiar with GDevelop** first. It's a good idea for you to try already to code and contribute to GDevelop! This will help you to understand the codebase and make a better proposal. Read and try some issues in [[https://​github.com/​4ian/​GDevelop/​issues?​q=is%3Aissue+is%3Aopen+label%3A%22%F0%9F%91%8Cgood+first+issue%22|the list of Good First Issues]] on GitHub.</​note>​
 +
 +### Where can I talk with others about GSoC? What are the communication channels?
 +
 +Check out the forum [[https://​forum.gdevelop-app.com/​c/​community/​gsoc-2020|section about GSoC]]. You can send an email (find it on the [[https://​summerofcode.withgoogle.com/​organizations/​5586892420022272/​|GSoC organisation page]]) but all the information should already be there.
 +
 +For student(s) that will work on GDevelop during GSoC, we'll have regular catch-up by email, using GitHub and sometimes by video call.
 +
 +## More links
 +
 +- Forum [[https://​forum.gdevelop-app.com/​c/​community/​gsoc-2020|section about GSoC]]
 +- [[https://​github.com/​4ian/​GDevelop|GDevelop GitHub repository]]
 +- [[https://​github.com/​4ian/​GDevelop/​issues?​q=is%3Aissue+is%3Aopen+label%3A%22%F0%9F%91%8Cgood+first+issue%22|Good First Issues]], to start coding with GDevelop.