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
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).