Running Urho3D player application


The Urho3D player application in the bin directory contains all the engine runtime functionality. However, it does not contain any inbuilt logic, and therefore must be supplied with the name of the application script file it should run:

Urho3DPlayer <scriptfilename> [options]

The scripting language supported by default is AngelScript (; the script files have .as extension and need to be placed under either the bin/Data or bin/CoreData subdirectories so that Urho3DPlayer can find them. An application script is required to have the function void Start(), which will be executed before starting the engine main loop. It is this function's responsibility to initialize the application and to hook up to any necessary events, such as the update that happens every frame.

Lua language support can optionally be built in, see Build options.

If Urho3DPlayer is given no command line arguments at all, it will read the command line from the file bin/Data/CommandLine.txt. This is primarily intended for mobile platforms, where the command line can not be entered. By default the NinjaSnowWar example will be run.

Command line options

The engine can be configured using the following command line options.

-x <res>     Horizontal resolution
-y <res>     Vertical resolution
-m <level>   Enable hardware multisampling
-v           Enable vertical sync
-t           Enable triple buffering
-w           Start in windowed mode
-s           Enable resizing when in windowed mode
-q           Enable quiet mode which does not log to standard output stream
-b <length>  Sound buffer length in milliseconds
-r <freq>    Sound mixing frequency in Hz
-pp <paths>  Resource prefix path(s), separated by semicolons, default to executable path
             The resource prefix paths can also be defined using URHO3D_PREFIX_PATH env-var
             When both are defined, the paths set by -pp takes higher precedence
-p <paths>   Resource path(s) to use, separated by semicolons, default to 'Data;CoreData'
-pf <files>  Resource package file to use, separated by semicolons, default to none
-ap <paths>  Resource autoload path(s), separated by semicolons, default to 'AutoLoad'
-log <level> Change the log level, valid 'level' values: 'debug', 'info', 'warning', 'error'
-ds <file>   Dump used shader variations to a file for precaching
-mq <level>  Material quality level, default 2 (high)
-tq <level>  Texture quality level, default 2 (high)
-tf <level>  Texture filter mode, default 2 (trilinear)
-af <level>  Texture anisotropy level, default 4. Also sets anisotropic filter mode
-gl2         Force OpenGL 2 use even if OpenGL 3 is available
-flushgpu    Flush GPU command queue each frame. Effective only on Direct3D
-borderless  Borderless window mode
-lowdpi      Force low DPI mode on Retina display
-headless    Headless mode. No application window will be created
-landscape   Use landscape orientations (iOS only, default)
-portrait    Use portrait orientations (iOS only)
-monitor <num> Monitor number to use
-hz <freq>   Monitor refresh rate to use
-prepass     Use light pre-pass rendering
-deferred    Use deferred rendering
-renderpath <name> Use the named renderpath (must enter full resource name)
-lqshadows   Use low-quality (1-sample) shadow filtering
-noshadows   Disable shadow rendering
-nolimit     Disable frame limiter
-nothreads   Disable worker threads
-nosound     Disable sound output
-noip        Disable sound mixing interpolation
-touch       Touch emulation on desktop platform