-
Notifications
You must be signed in to change notification settings - Fork 52
The app enml file
The app.enml
defines default application properties for the game. It must be in the project root directory. All properties set in the default
scope are used on all platforms but these values may be overwritten by platform-specific ones.
Example:
default
{
title = Ethanon Engine; // window title
richLighting = true;
}
windows
{
width = 640;
height = 480;
windowed = true;
vsync = true;
}
android
{
// it will overwrite the default 'richLighting' property
richLighting = false; // disables lighting when running on Android
}
ios
{
fixedHeight = 480; // forces backbuffer height to 480p on iOS
}
Some other features of the app.enml
file are described below.
In order to force the window size to the current best back-buffer resolution possible, which is the real resolution of the main display, ideal for fullscreen mode, width
and height
attributes must be set to best
:
default
{
width = best;
height = best;
windowed = false;
}
Notice that width
and height
attributes are always treated as best
on non-desktops devices.
Rendering many large dynamic lights or even too many transparent entities may become costly for some platforms. Sometimes it is good to avoid that extra cost by rendering the entire scene into a smaller back-buffer that will fill the entire screen when the rendering is finished. This can be enabled by setting fixedHeight
or fixedWidth
parameters:
default
{
width = 1024;
height = 768;
// window size is 1024x768, but the actual
// back-buffer will be 640x480
fixedHeight = 480;
fixedWidth = auto;
windowed = true;
vsync = true;
}
Custom sized back-buffers must keep the same aspect ration as the current screen size, thus only fixedWidth
or fixedHeight
can be set. If fixedHeight > 0
, fixedWidth
must be auto and vice versa.
The developer may optionally define custom words which may be processed by the engine in pre-compilation time. Example:
// compiles the code inside if/endif statements when the DESKTOP word is defined
#if ONLINE_LEADERBOARD_SUPPORTED
print("This platform supports on-line leader-boards!");
#endif
#if GAME_CENTER
print("The score leader-board in this platform is provided by Apple's Game Center");
#endif
By default, Ethanon Engine defines the following words:
Platform / condition
Words defined
Windows
WINDOWS
, DESKTOP
Mac OS X
MACOSX
, DESKTOP
iOS
APPLE_IOS
, MOBILE
, HANDHELD
Android
ANDROID
, MOBILE
, HANDHELD
Application is running from SciTE or Sublime
TESTING
Ethanon is running on debug mode
DEBUG
Additional custom words are defined by the definedWords
parameter in a comma-separated string. Words defined in the default
enml-entity are merged with the ones defined in the platform specific ones:
default
{
title = Extremely awesome game;
width = 1280;
height = 720;
**definedWords = DISPLAY_FPS_RATE;**
}
windows
{
definedWords = ENABLE_DEBUGGING_CHEATS;
}
macosx
{
definedWords = ENABLE_DEBUGGING_CHEATS;
}
ios
{
definedWords = ONLINE_LEADERBOARD_SUPPORTED,GAME_CENTER,ENABLE_BANNER_ADS,ENABLE_VIDEO_ADS;
}
android
{
definedWords = ONLINE_LEADERBOARD_SUPPORTED,OPEN_FEINT,ENABLE_BANNER_ADS;
}
With custom words, developers can easily handle differences between platforms and switch them at will.