[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Full-screen behaviour and game documentation


I would like to raise two issues that have recently been discussed at the
#debian-games meeting[0] at June 26th. In both cases we would like to know the
answer to this questions: What is the recommended behaviour/best practice for
upstream developers? Please comment.

1. Full-screen behaviour of games

1.1. Should games, by default, start in windowed mode or full-screen mode? 

Although games might be more enjoyable when played full-screen, there are
apparently some drawbacks. The full-screen resolution a game chooses might not
be optimal, for example, not matching native display resolution, having wrong
aspect ratio, causing the desktop to resize, not restoring the original
resolution after quitting, being too slow on big monitors but having a weak
graphics card.

The consensus of #debian-games was to have games start windowed by default,
with an option to change to full-screen mode.

1.2. What should the preferred hotkey be to switch between windowed and full-screen?

There are various hotkeys used to switch between the two modes, some more
common ones are F11, F, Ctrl-Enter. F11 seems to be used in many
window-managers and non-gaming applications.

Perhaps it is also recommended to always have a hotkey to switch between
windowed and full-screen, to allow easy access to the desktop when necessary,
without having to save & quit (which can be tedious or not always possible in
some games).

1.3. How should games enter and leave full-screen mode?

Not all games (or other applications for that matter) handle full-screen
correctly in all situations.  The first problem is that "non-standard" aspect
ratio (ie, not 4:3. 16:10 or 16:9) are sometimes not supported.  Second, the
actual screen size is sometimes not supported, either because there is a
hardcoded list of resolutions to choose from, or that libraries such as SDL
report more possible resolutions than fit in an array with a hardcoded size
(and consequently some are then ignored by the game).  Third, setups with
multiple screens are often badly supported, resulting in the game running
stretched across all screens when this is not desired, or the game running in
the resolution of one screen but "centered" in the middle of two screens.

Apart from not handling the full-screen situation itself incorrect, when the
game uses a different resolution in full-screen mode than the desktop uses,
some games do not properly restore the desktop resolution when quitting or when
switching back to windowed mode. Sometimes they do when quitting via the main
menu, but not when quitting through other means.

It is easy to say what is wrong and what is the right behaviour, but this
problem is how to implement it.  What is the right way to get the resolution
and information about multiple screens from X, and what is the best way for a
program to enter and leave full-screen so as not to mess up the desktop?  Do
you know which games implement this the right way?

1.4 Windowed behaviour

When windowed, it is expected that the game plays nice with the other
applications that are running on the desktop.  When the game grabs the mouse
and/or keyboard input for itself, the user cannot interact with other
applications anymore.  Some games only grab the input when you are actually
playing the game, and release it when paused or in menu screens.  This should
be recommended behaviour.

It would also be nice if the game, when running, automatically pauses when it
is running windowed and another window gets focus.

1.5 Interaction with the window manager

Some games bypass the window manager completely when entering full screen mode
(using DGA or other ways). However, most window managers understand the concept
of a full-screen window, and they might have hotkeys or menu options to toggle
the full-screen state of arbitrary windows.  Games should honour the window
manager hints, and possibly always request full screen through the window

2. Game documentation

2.1 How to make game documentation available in the desktop environment

What is the recommended way to register documentation for games so that desktop
users can easily find it? Debian uses the doc-base[1] system to have
applications register their documentation, which is similar to .desktop files,
allowing documentation browsers to find out what is available. There is no way
to reference documentation in .desktop files as far as I know, and I do not
know of any other standard to keep track of documentation. 

2.2 How to make documentation available from within the game

Not all games have in-game documentation browsers, and one can argue that in
most cases it would just be a duplication of work, since there are already many
stand-alone documentation browers that one can use. What is the recommended way
to request a documentation browser to be started given a filename or (local)
URL to the documentation?

Of course, the game should properly switch to windowed mode while the
documentation browser is running.

2.3 What is the preferred format of documentation?

There are many different documentation formats (HTML, PDF, text, manpages, info
manuals, et cetera), but what format should be recommended, such that the user
has the best experience?

2.4. What should the preferred hotkey be to get help?

It seems F1 is commonly used to bring up help, so games should use this too if

That's it, please comment! After discission, I will put the resulting
recommendations in freedesktop.org wiki pages.

[0] http://meetbot.debian.net/debian-games/2011/debian-games.2011-06-26-09.57.html
[1] http://wiki.debian.org/doc-base

Met vriendelijke groet / with kind regards,
      Guus Sliepen <guus@debian.org>

Attachment: signature.asc
Description: Digital signature

Reply to: