Understanding Panda3D's runtime configuration options

Panda3D allows you to configure the engine runtime using a central configuration file. This recipe will show you where to find this configuration file and will explain a selection of settings you are able to specify to tweak Panda3D's behavior.

How to do it...

You can configure the Panda3D engine with these two steps:

  1. Open the file C:Panda3D-1.7.0etcConfig.prc in a text editor.
  2. Edit and add settings.

How it works...

Now that you've opened Panda3D's configuration file, it is time to explain a good part of the vast array of settings the engine allows you to modify. The following table will present the names of the configuration variables, the values that can be set, as well as a short description of what part of Panda3D is influenced by the setting.

The column containing the possible values uses several notations:

  • Square brackets are used to denote an interval of values. For example, [0..8] denotes an interval of integers between 0 and 8, while the notation [0.0..1.0] stands for an interval of floating point values. The interval boundaries are inclusive.
  • Within intervals, the labels MAX_INT and MAX_DBL are used as placeholders for the maximum possible values for signed integer and floating point variables.
  • The prc file format uses #t for true and #f for false for Boolean configuration flags. For example, the following line in Config.prc enables full screen mode:
    fullscreen #t
    
  • "A valid file path" means a Unix-style file path, even on Windows. For example, the following line is used to set the application icon:
    icon-filename /c/mygame/assets/icon.ico
    
  • Any other values than the ones previously described are meant to be inserted directly, without quotes. If multiple values are listed, you may use one of them at a time.

Name

Possible Values

Description

 

audio-volume

[0.0..1.0]

Sets the master volume of your game.

 

background-color

Any combination of 3 floating point numbers between 0 and 1, e.g.: 1.0 0.3 0.4

This variable sets the default background color for the render window and all render buffers in RGB format.

 

cursor-filename

A valid file path

Allows you to specify an image file to use as the mouse cursor.

 

cursor-hidden

#t, #f

If set to true, this makes the mouse cursor invisible when it is within the bounds of the game window.

 

disable-sticky-keys

#t, #f

If set to true, this disables the "sticky keys" feature of Windows. It's a good idea to set this to true because the sticky keys popup window will cause your game to lose focus!

 

fullscreen

#t, #f

Set this variable to #t if your game should switch to fullscreen mode on startup.

 

icon-filename

A valid file path

This variable instructs Panda3D to use the given file as its application icon.

 

model-path

A valid file path

The model-path variable sets one or more paths the engine will use as your search path when looking for models to load. The special symbol $THIS_PRC_DIR can be used to define directories relative to the configuration file. With $MAIN_DIR you are able to set a path relative to the directory the game's main python file resides in.

For example, we can find these three lines in the default Config.prc file:

model-path $MAIN_DIR

model-path $THIS_PRC_DIR/..

model-path $THIS_PRC_DIR/../models

These lines add the directory containing the main Python source file and the directories containing the sample models that come with the Panda3D SDK to the engine asset search path.

 

show-frame-rate-meter

#t, #f

If enabled, this shows a frame rate counter in the game window.

 

sync-video

#t, #f

Enables and disables vertical synchronization. If this is set to true, the maximum frame rate will be equal to the refresh rate of your display device.

 

win-origin

Two integer values, for example, 25 20

Lets you define the position of the top left corner of the game window. When fullscreen mode is enabled, this setting has no effect.

 

win-size

Two integer values, for example, 640 480

Sets the window size as well as the resolution when in fullscreen mode. When going to fullscreen mode, Panda3D switches the screen resolution to the values specified in this variable. If this does not match your screen resolution, it might have an effect on the positions and sizes of your desktop icons and any open program window.

 

window-title

A string

This setting is used to specify the title of the game window. The string does not have to be put within quotes even if it contains spaces.

 

There's more...

By setting the configuration variables above, you are already able to modify the engine's runtime behavior to your liking. But Panda3D's configuration system provides a few additional features you should know about.

Listing all configuration variables

The preceding table only shows a selection of the most commonly used configuration variables. To get a list of all configuration variables available in Panda3D, insert the following import statement and method call into your application code:

from panda3d.core import ConfigVariableManager
ConfigVariableManager.getGlobalPtr().listVariables()

Loading a specific configuration file

You do not need to put all engine settings into the global configuration file shown in this recipe. Instead, you can use the following function to load settings from any given file:

loadPrcFile("myconfig.prc")

You should put this call to a global scope to make sure settings are loaded before the engine systems that are using them are initialized.

Embedding configuration data in Python code

You can also put settings directly into your Python code files. Just add something similar to the following snippet to the global scope:

configVars = """
win-size 1440 900
fullscreen 1
"""
loadPrcFileData("", configVars)
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset