Games Internships

Games regularly takes interns via the different outreach projects. On this page you will find several project ideas and completed projects. Don't hesitate to approach our team and to come up with your own ideas!

Internship Ideas

  • Games: Add Collections (mentor: AlexanderMikhaylenko)

  • Brief explanation: Make Games automatically generate collections and let the user create their own ones. You will work on the backend and also with the GNOME design team to create a new user interface.

  • Requirements: Familiarity with Vala and GTK. SQL would be a plus.

  • Communication: Alexander Mikhaylenko in #gnome-games:gnome.org

  • Note: See issues #70 and #71.


  • Games: Add UI for importing and managing firmware (mentor: AlexanderMikhaylenko)

  • Brief explanation: Allow to manage firmware in preferences, add automatic drag-n-drop install. You will work with the GNOME design team to create a new user friendly interface.

  • Requirements: Familiarity with Vala and GTK.

  • Communication: Alexander Mikhaylenko in #gnome-games:gnome.org

  • Note: See issue #145.


  • Games: Support Cheat Codes (mentor: AdrienPlazas)

  • Brief explanation: Some systems may support cheat codes, we should provide some way for the user to easily select some cheat codes and maybe even to add its own.

  • Requirements: Vala. Knowledge of GObject and GTK+ would be a plus.

  • Communication: Kekun in #gnome-games on irc.gnome.org

Draft Internship Ideas

  • Polish Nintendo DS screen mode switching

  • Do it in retro-gtk instead of using DeSmuME options.
  • This would enable more screen modes, such as minimap, rotated screens or two screens in separate windows.
  • This would also enable animated transitions for quick switch mode.

Completed Internships

Google Summer of Code 2019

  • Games: Support multiple snapshots (intern: Andrei Lişiţă, mentor: AlexanderMikhaylenko)

  • Brief explanation: Allow to take, manage and restore snapshots anytime for supported games, with a nice UI, based on the already present snapshot technology.

  • Requirements: Familiarity with Vala and GTK

  • Communication: exalm in #gnome-games:matrix.org on Matrix or #gnome-games on irc.gnome.org

Google Summer of Code 2018

  • Games: Add Collections/Developer View (intern: Saurabh Sabharwal, mentor: AbhinavSingh)

  • Brief explanation: Improve how we show games to the user.

    • Allow the user to view games segregated by platform and developer.
    • Show game metadata (e.g. description, rating, etc.) provided by Grilo to the user.
    • Allow the user to save statistics such as playtime, finish status, etc.
  • Requirements: Vala, Gtk+, Grilo.

  • Communication: theawless in #gnome-games on irc.gnome.org

Google Summer of Code 2017

  • Games: Gamepads and Keyboard Configuration (intern: Abhinav Singh, mentor: AdrienPlazas)

  • Brief explanation: Add a way to graphically and easily set a gamepad or a keyboard up to use in games. Stretch goals could be offering the user to share their gamepad mappings with us and to compare the standard gamepad to the emulated one. These changes could:

    • allow us to support any or most gamepads and to improve our gamepad bindings database;
    • allow the user to set its keyboard as desired;
    • allow the user to understand how his gamepad maps to the emulated gamepad.
  • Requirements: Vala. Knowledge of GObject, GTK+, GtkBuilder or SVG would be a big plus.

  • Communication: Mainly IRC as Kekun on #gnome-games at irc.gnome.org

  • Note: Design page. Some resources regarding SVG layouts: layouts from libwacom, old GTK+ based implementation.

Google Summer of Code 2016

  • Games: Support more game formats (intern: Ricard Gascons, mentor: AdrienPlazas)

  • Benefits: Currently Games can handle only a small number of game formats, we want to support as much as possible. Good candidates are for example GOG and PlayStation games.

  • Requirements: Knowledge of Vala. This will probably imply working on retro-gobject, retro-gtk, retro-plugins, shared-mime-info and maybe on the emulators' code.

  • Note: See the issues list to get an idea of potential formats to support.


  • Games: Add gamepad support (intern: Megh Parikh, mentor: AdrienPlazas)

  • Benefits: A video game player with no gamepad support is ridiculous, we need to support them to make the games really playable.

  • Requirements: Knowledge of Vala and C.

  • Note: You should look at existing joystick and gamepad APIs (Linux and W3C).

Apps/Games/Contribute/Internship (last edited 2020-02-15 12:00:58 by AlexanderMikhaylenko)