pandemonium_engine_minimal/platform/frt/doc/Extensions.md
2023-12-14 21:54:22 +01:00

3.3 KiB

Extensions

FRT provides a few non-intrusive extensions compared to the official godot platforms. Note that some of them might be removed in the future if the official godot starts to provide other means to address the same issues.

Command Line

When you invoke godot, arguments starting from the option --frt are intercepted by FRT. For example:

godot.frt.opt.pi1 myscene.tscn --frt -h

will not start godot. Instead, a message like the following is printed to stdout:

usage: godot.frt.opt.pi1 [godot args] [--frt [options] [param=value...]]

options:
  -v                  show version and exit
  -h                  show this page and exit
  -p perfmon.csv      save performance monitor data
  -e resource         extract resource

params:
  color_size
  alpha_size
  depth_size
  multisample
  disable_meta_keys
  blacklist_video_bcm
  exit_on_shiftenter

The performance monitor data has been added because I have found that a non-optimized build of godot/frt is much slower than an optimized build, so letting the optimized build dump data to be analyzed later is a better alternative than to try to connect to an editor from a non-optimized build.

Resource extraction makes it easy to embed small files in single-file games. For example, if you export a standard 2.1.3 project as an EXE using the Linux template, but giving the editor godot.frt.opt.pi1 as a custom binary, you end up with a single file, say mygame that you can gzip and distribute.

Users should be able to just run the game, but they could also type:

mygame --frt -e README.md

to extract a README file.

Only resources in the res://frt/ folder can be extracted this way, and there are strict limits on the characters that you can use for the name of the resource (the first character must be alphanumeric - the following ones can also be '.', '-' and '_').

Parameters

You can add some options in the custom section "frt" of the project settings. The section is not required and is in any case ignored by the standard godot platforms.

For example, adding this:

[frt]

depth_size = 24
multisample = true

to engine.cfg will allow you to tune the engine.

You can also override or set the values from the command line. For example, if you have a third-party game that shows some artifacts that you suspect might be due to godot/frt using a 16-bit depth buffer by default, you can try running it like this:

godot.frt.opt.pi1 --frt depth_size=24

Disabling the meta keys

If you already provide a way to close the game (for example, using an in-game menu), you might prefer to disable the handling of meta keys by FRT. Be careful that, since FRT grabs the keyboard when running without X11, the user might not be able to quit the game in any other way.

Blacklisting the bcm driver

The Godot 3.x rendering engine might have problems with some 3D games running with the bcm video driver. In some cases, the Linux kernel could crash. Unless you can test extensively, it is probably safer to blacklist the bcm driver when releasing 3D games using Godot 3.x. The game will run normally when running with other drivers, but will exit suggesting to switch to the vc4 driver when running with the bcm driver.

Exit the game when pressing Shift+Enter

Provides a universal way to terminate the process that matches the default key configuration in RetroPie.