We want the GNOME Games to be modern and fun. Traditionally we have struggled to keep the games up to date with current technologies and this has left many of them hard to maintain and out of date. To improve the situation we have some goals to bring them all up to modern standards.

These are the standards we want to have each of these games to follow.

  • Vala - The games should be written in a modern language (Vala) using object classes and the model view controller design pattern.
  • GSettings - Use GSettings for preferences
  • High Scores - All games should record scores and show a high score table
  • Networking - Where applicable games should be network playable using the Telepathy framework
  • Mallard Docs - Each game should have a Mallard help document
  • No statusbar - The statusbar is an outdated concept and should be removed. Any remaining functionality needs to go into the toolbar, the menu or the game area.
  • Relocate New Game Options - Options that do not take effect immediately when changed during the middle of a game do not belong in the preferences dialog (unless those options are only relevant to the beginning of a game, e.g. a change in starting position). Instead, a new game screen should show when the game starts which allows the user to choose these options before the game starts. The settings are remembered for the next game. This screen may show a preview of what the game will look like on each setting. It should not take more than one click to start a new game. However, for most games, new game settings can be moved from the preferences dialog to the app menu instead.
  • Updated artwork - Each game needs artwork that is modern and there needs to be some consistency between the games.
  • GtkApplication - Each game should use GtkApplication to make each game unique and provide maximum knowledge to the shell about the game.

  • GtkHeaderBar - The games should have no menubar and no toolbar before a GtkHeaderBar is added.

  • Gestures - The games have basic touch support in that tapping is registerd as clicks. For some games touch gestures might be appropriate. This might have to be talked over with the design team in some cases.
  • Gamepad - Once gamepad support has finished for the gnome Games app, we want to add gamepad support for the games where it is applicable.

Game

Vala

GSettings

High Scores

Networking

Mallard Docs

No Statusbar

Relocate New Game Options

Updated Artwork

GtkApplication

GtkHeaderBar

Gestures

Gamepad

five-or-more

inprogress

done

done

n/a

done

done

todo

todo

done

done

n/a

todo

gnome-chess

done

done

n/a

inprogress

inprogress

done

inprogress

done

done

done

n/a

todo

gnome-klotski

done

done

done

n/a

inprogress

done

n/a

todo

done

done

n/a

todo

gnome-mahjongg

done

done

done

n/a

done

done

todo

n/a

done

done

todo

todo

gnome-mines

done

done

done

n/a

done

done

done

done

done

done

todo

todo

gnome-sudoku

done

done

todo

n/a

done

done

done

done

done

done

todo

todo

gnome-tetravex

done

done

done

n/a

done

done

n/a

designs

done

done

todo

todo

iagno

done

done

n/a

todo

done

done

inprogress

designs

done

done

n/a

todo

lightsoff

done

done

n/a

n/a

done

done

n/a

n/a

done

done

todo

todo

quadrapassel

done

done

done

todo

done

done

todo

designs

done

done

todo

done

swell-foop

done

done

done

n/a

inprogress

done

inprogress

n/a

done

done

n/a

todo

four-in-a-row

inprogress

done

done

todo

done

done

todo

done

done

done

todo

todo

gnome-nibbles

todo

done

done

todo

done

todo

todo

todo

done

done

todo

todo

gnome-robots

todo

done

done

n/a

done

done

todo

todo

done

done

todo

todo

tali

todo

done

done

todo

inprogress

done

todo

todo

done

done

n/a

todo

hitori

n/a

done

n/a

n/a

done

done

n/a

done

done

done

n/a

todo

gnome-taquin

n/a

n/a

n/a

n/a

n/a

n/a

n/a

n/a

n/a

n/a

todo

todo

aisleriot

n/a

inprogress

n/a

n/a

todo

todo

todo

n/a

done

todo

todo

todo


List of things we should check in every game. Better to go through this list one game at a time, than to try the same task in each game at once and get super bored.

  • Make sure all files that go into a gresource are not additionally/senselessly installed.
  • Make sure arguments to m4 macros in configure.ac are always [quoted]
  • List of files to distribute in the toplevel Makefile.am should not include files that get automatically distributed and should not include autogen.sh.
  • Some games set default-icon-name and others set icon-name on the window, decide which one to use for all games and use it consistently. Probably default-icon-name.
  • Have valac target the min glib version defined in configure rather than hardcoding the version in the makefile.
  • Use new appdata macros and don't use appdata-validate
  • Ensure the game calls set_application_name()
  • Remove "is a part of gnome games" from the about dialog...
  • ...and make sure all games have translator credits in the about dialog
  • Use -Wall when enabling automake so we get more warnings...
  • ...and obviously fix the warnings we already have
  • Check help directories for leftover omf.in files and docbook help, should be deleted
  • Check what happens when the game is opened multiple times from command line. The new instance should quit immediately and the original instance should be focused. I broke many of these prior to 3.14.
  • Preferences dialogs should always be modal
  • Games should be dbus-activatable. When renaming the desktop file be sure to add it to the hardcoded list in gnome-shell and update the list (or lists?) in gnome-software
  • Check our dialogs that use header bars against the advice in howdoi/dialogs to make sure we are using action widgets in our UI files rather than editing the header bars directly (in the case where all we want to do is add one or two buttons to the header bar).
  • help: remove all references to toolbars. Pretty much every reference to a menu item will need edited.
  • Update the manpage
  • Make sure the game has mnemonics all over the place, one for each UI element with that has a label.
  • Make sure window size is saved to gsettings when the window is closed, not in a configure event!
  • Make sure nothing gets written to gsettings when the game starts up (e.g. window size). (Writing on exit is fine.)
  • Copy over autogen.sh with the contents of autogen.sh from libgames-support (itself copied from the README of gnome-common)
  • Make sure the window state is not saved if the window is tiled.
  • Fix compiler warnings plz ty

Games that still need checked:

  • Chess
  • Five or More
  • Four-in-a-row
  • Hitori
  • Iagno
  • Klotski
  • Lights Off
  • Mahjongg
  • Mines
  • Nibbles
  • Quadrapassel
  • Robots
  • Sudoku
  • Swell Foop
  • Tali
  • Taquin
  • Tetravex

Other games to check eventually:

  • Atomix
  • 2048

Once you've checked a game, against ALL of the tasks on the first list, please edit this page to say so.

Initiatives/GamesModernisation (last edited 2017-12-03 12:17:09 by AdrienPlazas)