Difference between revisions of "Game Properties"

From The Official Visionaire Studio: Adventure Game Engine Wiki
(Game Properties (▲))
(18 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<div id="#top"></div>
+
== Game properties ==
== Game Properties ([[#top|<b>▲</b>]]) ==
 
{| style="background: #f0f0f0; border: 1px dashed darkgrey" width="100%"
 
|-
 
| <b>Game</b>: This is where you can setup the main game properties: mouse, key input, languages, provide information & version build number etc || [[File:game25.png|right|25px|link=]]
 
|}
 
  
 +
This section is where you setup the main game properties and global settings.
  
{| style="background: #f0f0f0; border: 1px dashed darkgrey"
+
[[File:Game properties 1.png|thumb]]
|- valign="top"
+
* <span class="inlinecode">First scene:</span> Select the scene which will be shown after the loading screen and/or intro movie, if provided.
| width="100%" |
+
* <span class="inlinecode">Default language:</span> Select the initial language which will be active on game start.
♠ <b>First scene</b>: which will be shown after load screen/intro movie (required) <br/>
+
* <span class="inlinecode">Resolution:</span> Set the game's resolution. If the desired resolution is not in the list, you can set a custom resolution via the explorer tool (Ctrl+E).
<b>Default language</b>: initial language game should begin with (required) <br/>
+
* <span class="inlinecode">At begin start following action:</span> You can use this to perform actions on game launch (hide interfaces, check settings etc.). The start action will be executed before the first scene is shown.
<b>Resolution</b>: this is the games default resolution - you can set a custom resolution via the explorer tool (required) <br/>
+
* <span class="inlinecode">Activate Standard command:</span> Usually one of the commands of your interface is the standard command which is set whenever no other command is set. Choose here, if you want to automatically set this standard command after the user performed an action.
<b>At begin start following action</b>: you can use this to perform actions on game launch; hide interfaces, check settings etc <br/>
+
* <span class="inlinecode">Company name/Game name:</span> This information is used to create a folder where savegames, log files, and config.ini will be saved when running the game. On Windows systems that path would be <u>C:/Users/<username>/AppData/Local/<company_name>/<game_name></u>. If you don't specify company and game name, the files will be saved in the game's directory instead.
<b>Activate Standard command</b>: n/a <br/>
 
<b>Company name</b>: save games, log files, config.ini etc will be saved in c:/users/<username>/AppData/Local/<company_name>/ <br/>
 
♠ <b>Game name</b>: save games, log files, config.ini etc will be saved in c:/users/<username>/AppData/Local/<company_name>(if included)/<game_name><br/>
 
♠ <b>Align character on immediate execution</b>: if checked, current character will automatically face towards any object using immediate execution command <br/>
 
♠ <b>Allow dragging of items from inventory</b>: automatically sets clicked item to hand for quickly using on other objects, items or characters <br/>
 
♠ <b>Always allow to skip active text</b>: if selected then users can skip displayed text during cutscenes with left mouse button<br/>
 
♠ <b>Execute key actions during a dialog</b>: allows or prevents the player from executing key input actions while a dialog is open<br/>
 
♠ <b>Auto hide interfaces in menu</b>: automatically hides all interfaces while a menu scene is open<br/>
 
♠ <b>Keep character images in memory while displaying a menu</b>: saves all character animations, destinations & actions to memory when you open up a menu<br/>
 
♠ <b>Activate pixel effect</b>: activates nearest neighbor interpolation; best used for low resolution games, if desired<br/>
 
----
 
||
 
<gallery widths=70px heights=70px perrow=1>
 
File:game_tab.png
 
File:game_tab_1.png
 
</gallery>
 
|-
 
|
 
♠ <b>Active character</b>: this is where you assign the default playable character of your game<br/>
 
♠ <b>Intro movie</b>: add a movie (usually company splash) that will play on game launch (after load screen; if provided)<br/>
 
♠ <b>Fade delay [ms]</b>: default time in milliseconds that it takes to fade between scenes<br/>
 
♠ <b>Scroll speed [pixel/sec]</b>: the speed in which scenes will be scrolled by (higher value equals faster scrolling)<br/>
 
♠ <b>Sprite cache size [mb]</b>: sprite cache size in MB, which stores recently loaded sprites<br/>
 
♠ <b>Speaker sound by panning</b>: - <br/>
 
♠ <b>Text alignment</b>: allows you to set the alignment of spoken text that displays above characters heads<br/>
 
♠ <b>Speaker text alignment</b>: allows you to the set the alignment of narration text<br/>
 
♠ <b>Minification filter</b>: defines the filter to be used for scaling character sprites down; nearest neighbor should only be used for low resolution games<br/>
 
♠ <b>Magnification</b>: defines the filter to be used for scaling character sprites up; nearest neighbor should only be used for low resolution games<br/>
 
♠ <b>Disable interaction during character anim</b>: prevent the player from being able to interact during certain character animations<br/>
 
♠ <b>Object text font</b>: set the font that will be used for displaying object text<br/>
 
----
 
||
 
<gallery widths=70px heights=70px perrow=1>
 
File:game_tab_2.png
 
</gallery>
 
|-
 
|
 
♠ <b></b>: <br/>
 
♠ <b></b>: <br/>
 
♠ <b></b>: <br/>
 
♠ <b></b>: <br/>
 
♠ <b></b>: <br/>
 
♠ <b></b>: <br/>
 
♠ <b></b>: <br/>
 
||
 
<gallery widths=70px heights=70px perrow=1>
 
File:game_tab_3.png
 
</gallery>
 
|}
 
  
{{i18n|Game_Tab}}
+
 
 +
[[File:Game properties 2.png|thumb]]
 +
* <span class="inlinecode">Align character on immediate execution:</span> If you check this option, the current character will automatically face towards the object when performing an immediate execution action on it.
 +
* <span class="inlinecode">Allow dragging of items from inventory:</span> If you check this option, items can be dragged from the inventory, meaning the item becomes the cursor. The item can then be dropped on other items, objects, or characters to combine them.
 +
* <span class="inlinecode">Always allow to skip active text:</span> If you check this option, the user can skip displayed text during cutscenes with the left mouse button.
 +
* <span class="inlinecode">Execute key actions during a dialog:</span> If you check this option, key actions will be executed during dialogs.
 +
* <span class="inlinecode">Auto hide interfaces in menu:</span> If you check this option, interfaces will not show up in menus. Currently visible interfaces will automatically be hidden.
 +
* <span class="inlinecode">Keep character images in memory while displaying a menu:</span> If you check this option, all character images and animations will be kept in memory when showing a menu, so they don't have to be reloaded upon return to the previous scene.
 +
* <span class="inlinecode">Activate pixel effect:</span> If you check this option, "nearest neighbor" interpolation will be used for image scaling. This is usually desired for low resolution games as it will not blur pixels in fullscreen mode.
 +
* <span class="inlinecode">Smooth scrolling:</span> If you check this option, scrolling of wide scenes is softened through motion easing.
 +
 
 +
 
 +
[[File:Game properties 3.png|thumb]]
 +
* <span class="inlinecode">Active character:</span> Select the character which is playable on game start.
 +
* <span class="inlinecode">Intro movie/Scale movie to fullscreen:</span> Add a movie (usually a company splash, preferably Visionaire Studio branding) that will play on game launch (after the loading screen; if provided). Check the option to scale the movie to fullscreen.
 +
* <span class="inlinecode">Fade delay [ms]:</span> Set the default time (in milliseconds) that it takes to fade between scenes.
 +
* <span class="inlinecode">Scroll speed [pixel/sec]:</span> Set the speed in which large scenes will be scrolled by. A higher value equals faster scrolling.
 +
* <span class="inlinecode">Sprite cache size [MB]:</span> Set the sprite cache size (in megabytes), which stores recently loaded sprites.
 +
* <span class="inlinecode">Speech output balance [%]:</span> Define by how much speech audio output depends on the position of the speaking character. 0% means that the position doesn't matter at all, 100% means that the audio is played only by the left/right speaker, if the character is standing on the left/right side of the screen.
 +
* <span class="inlinecode">Text alignment:</span> Define the alignment for text spoken by characters.
 +
* <span class="inlinecode">Narration text alignment:</span> Define the alignment for narration text.
 +
* <span class="inlinecode">Disable interaction during character anim:</span> Prevent the user from being able to interact while character animations are played.
 +
* <span class="inlinecode">Object text font:</span> Set the default font for object text. You can define an individual font for each object text inside the respective action part though.
 +
* <span class="inlinecode">Savegame screenshot:</span> Set an image file that serves as the screenshot thumbnail for all scenes when playing on mobile devices (taking in-game screenshots is not possible on mobile devices). You can define an individual image for each scene in the respective scene's properties though.
 +
* <span class="inlinecode">Video pause screen:</span> Set an image file that serves as a video pause screen.
 +
* <span class="inlinecode">Loading screen:</span> Set an image file that serves as a loading screen on game start (before the intro movie).
 +
* <span class="inlinecode">Wait cursor:</span> Select the cursor which is shown while the engine is loading data (on scene change).
 +
 
 +
 
 +
 
 +
[[File:Game properties 4.png|thumb]]
 +
<span class="inlinecode">Action text</span> is the text that displays the current command and/or object names when hovering over or interacting with objects, e.g. "Door", "Look at door", "Use key with door" etc.
 +
* <span class="inlinecode">Display:</span> Define if, how and where the action text should be displayed. If you choose not to draw the action text, you can still add it to an [[Interfaces|interface]].
 +
* <span class="inlinecode">Font:</span> Select the font which should be used to display the action text.
 +
* <span class="inlinecode">Rectangle:</span> Define position and size of a box in which the action text should be displayed; only applicable if the "Draw action text inside rectangle" option was selected under "Display".
 +
 
 +
 
 +
[[File:Game properties 5.png|thumb]]
 +
* <span class="inlinecode">Music Bus:</span> <abbr title="to be done">tbd</abbr>
 +
* <span class="inlinecode">Sound Bus:</span> <abbr title="to be done">tbd</abbr>
 +
* <span class="inlinecode">Walksound Bus:</span> <abbr title="to be done">tbd</abbr>
 +
* <span class="inlinecode">Speech Bus:</span> <abbr title="to be done">tbd</abbr>
 +
* <span class="inlinecode">Additional folders:</span> When building (compiling) the game, only asset files linked somewhere in the editor will be included. If you load files via Lua code, which are not used elsewhere in the project, this might work during development but fail in the final game, when those files are not accessible. That's why you can add additional folders whose files will be included in the game build anyway.
 +
 
 +
 
 +
== Mouse properties ==
 +
 
 +
[[File:Mouse properties.png|thumb]]
 +
This section is where you setup global mouse actions. That's things like having the right mouse button always apply the "Look" command or holding the left mouse button display your "coin" style interface. When it comes to interaction with specific objects in your game, you define those mouse actions for the respective objects directly, not in these global settings.
 +
 
 +
You can setup actions for the following mouse events:
 +
* <span class="inlinecode">Left mouse button</span>
 +
* <span class="inlinecode">Right mouse button</span>
 +
* <span class="inlinecode">Double click</span> of the left mouse button
 +
* <span class="inlinecode">Middle mouse button</span> click (not scrolling the wheel)
 +
* <span class="inlinecode">Mouse wheel up</span>
 +
* <span class="inlinecode">Mouse wheel down</span>
 +
* <span class="inlinecode">Left mouse button hold (button pressed)</span>
 +
* <span class="inlinecode">Left mouse button hold (button released)</span>
 +
 
 +
 
 +
As to the last two events, you can specify the amount of time by which holding of the left mouse button is treated as its own event, in milliseconds (<span class="inlinecode">"Time until mouse button hold"</span>). This setting is global, so it applies to individual "hold mouse button" actions for objects throughout your project, too.
 +
 
 +
Besides the global mouse actions, you may also set the playable character's general reaction to mouse events. In classic third-person point-and-click adventure games, the character always walks to where the user clicks with the left mouse button. If your game has a different approach, you may want to change that behaviour. Define the character's motion for left, right, and middle mouse button click as well as for the "hold mouse button (released)" event by choosing the appropriate "send character" option.
 +
 
 +
It is possible to change that general behaviour during the game through Lua script. That may come in handy in situations where your character is supposed to temporarily not move for some reason. Have a look at the following example:
 +
<syntaxhighlight lang="lua">
 +
-- change the mouse click behaviour: the character will not move on mouse click
 +
game.LeftClickBehaviour = eMouseActionBehaviourDoNotSendCharacter
 +
game.RightClickBehaviour = eMouseActionBehaviourDoNotSendCharacter
 +
</syntaxhighlight>
 +
 
 +
 
 +
== Key actions ==
 +
 
 +
[[File:Key actions.png|thumb]]
 +
In this section you can define global key actions. Add a new action and select the appropriate key you wish to address as the action's execution type. The key selection list contains keyboard keys as well as gamepad keys, both in two variants: "pressed" and "released". You could use this to highlight object hotspots on key press and stop the highlighting again on key release, for example.
 +
 
 +
 
 +
== Game info ==
 +
 
 +
[[File:Game info.png|thumb]]
 +
The game info section offers some text fields to enter game version and description. This information is for internal use only; it does not appear anywhere in the final build. There are also some project statistics on the right hand side.
 +
 
 +
On the left you can enter the various <span class="inlinecode">Languages</span> of your game; there must be at least one. It is recommended to use English terms, because the engine will show appropriate flags on text inputs, if it recognizes the language names. As soon as you have added the languages here, you are able to enter translations of your game texts (see the [[Text]] page for more on text).
 +
 
 +
 
 +
== Components ==
 +
 
 +
On the "Components" tab you can add custom behaviours to your game. Click the <span class="inlinecode">[+]</span> icon to get a list of the game behaviours you created before and select one.
 +
 
 +
Custom behaviours override the default behaviours of Visionaire, thus allowing for advanced modification and customization of the whole system. This even enables you to develop other types of games than point-and-click adventures. Behaviours are created using the [[Ilios]] scripting language.
 +
{{toc}}

Revision as of 12:09, 1 March 2023

Game properties

This section is where you setup the main game properties and global settings.

Game properties 1.png
  • First scene: Select the scene which will be shown after the loading screen and/or intro movie, if provided.
  • Default language: Select the initial language which will be active on game start.
  • Resolution: Set the game's resolution. If the desired resolution is not in the list, you can set a custom resolution via the explorer tool (Ctrl+E).
  • At begin start following action: You can use this to perform actions on game launch (hide interfaces, check settings etc.). The start action will be executed before the first scene is shown.
  • Activate Standard command: Usually one of the commands of your interface is the standard command which is set whenever no other command is set. Choose here, if you want to automatically set this standard command after the user performed an action.
  • Company name/Game name: This information is used to create a folder where savegames, log files, and config.ini will be saved when running the game. On Windows systems that path would be C:/Users/<username>/AppData/Local/<company_name>/<game_name>. If you don't specify company and game name, the files will be saved in the game's directory instead.


Game properties 2.png
  • Align character on immediate execution: If you check this option, the current character will automatically face towards the object when performing an immediate execution action on it.
  • Allow dragging of items from inventory: If you check this option, items can be dragged from the inventory, meaning the item becomes the cursor. The item can then be dropped on other items, objects, or characters to combine them.
  • Always allow to skip active text: If you check this option, the user can skip displayed text during cutscenes with the left mouse button.
  • Execute key actions during a dialog: If you check this option, key actions will be executed during dialogs.
  • Auto hide interfaces in menu: If you check this option, interfaces will not show up in menus. Currently visible interfaces will automatically be hidden.
  • Keep character images in memory while displaying a menu: If you check this option, all character images and animations will be kept in memory when showing a menu, so they don't have to be reloaded upon return to the previous scene.
  • Activate pixel effect: If you check this option, "nearest neighbor" interpolation will be used for image scaling. This is usually desired for low resolution games as it will not blur pixels in fullscreen mode.
  • Smooth scrolling: If you check this option, scrolling of wide scenes is softened through motion easing.


Game properties 3.png
  • Active character: Select the character which is playable on game start.
  • Intro movie/Scale movie to fullscreen: Add a movie (usually a company splash, preferably Visionaire Studio branding) that will play on game launch (after the loading screen; if provided). Check the option to scale the movie to fullscreen.
  • Fade delay [ms]: Set the default time (in milliseconds) that it takes to fade between scenes.
  • Scroll speed [pixel/sec]: Set the speed in which large scenes will be scrolled by. A higher value equals faster scrolling.
  • Sprite cache size [MB]: Set the sprite cache size (in megabytes), which stores recently loaded sprites.
  • Speech output balance [%]: Define by how much speech audio output depends on the position of the speaking character. 0% means that the position doesn't matter at all, 100% means that the audio is played only by the left/right speaker, if the character is standing on the left/right side of the screen.
  • Text alignment: Define the alignment for text spoken by characters.
  • Narration text alignment: Define the alignment for narration text.
  • Disable interaction during character anim: Prevent the user from being able to interact while character animations are played.
  • Object text font: Set the default font for object text. You can define an individual font for each object text inside the respective action part though.
  • Savegame screenshot: Set an image file that serves as the screenshot thumbnail for all scenes when playing on mobile devices (taking in-game screenshots is not possible on mobile devices). You can define an individual image for each scene in the respective scene's properties though.
  • Video pause screen: Set an image file that serves as a video pause screen.
  • Loading screen: Set an image file that serves as a loading screen on game start (before the intro movie).
  • Wait cursor: Select the cursor which is shown while the engine is loading data (on scene change).


Game properties 4.png

Action text is the text that displays the current command and/or object names when hovering over or interacting with objects, e.g. "Door", "Look at door", "Use key with door" etc.

  • Display: Define if, how and where the action text should be displayed. If you choose not to draw the action text, you can still add it to an interface.
  • Font: Select the font which should be used to display the action text.
  • Rectangle: Define position and size of a box in which the action text should be displayed; only applicable if the "Draw action text inside rectangle" option was selected under "Display".


Game properties 5.png
  • Music Bus: tbd
  • Sound Bus: tbd
  • Walksound Bus: tbd
  • Speech Bus: tbd
  • Additional folders: When building (compiling) the game, only asset files linked somewhere in the editor will be included. If you load files via Lua code, which are not used elsewhere in the project, this might work during development but fail in the final game, when those files are not accessible. That's why you can add additional folders whose files will be included in the game build anyway.


Mouse properties

Mouse properties.png

This section is where you setup global mouse actions. That's things like having the right mouse button always apply the "Look" command or holding the left mouse button display your "coin" style interface. When it comes to interaction with specific objects in your game, you define those mouse actions for the respective objects directly, not in these global settings.

You can setup actions for the following mouse events:

  • Left mouse button
  • Right mouse button
  • Double click of the left mouse button
  • Middle mouse button click (not scrolling the wheel)
  • Mouse wheel up
  • Mouse wheel down
  • Left mouse button hold (button pressed)
  • Left mouse button hold (button released)


As to the last two events, you can specify the amount of time by which holding of the left mouse button is treated as its own event, in milliseconds ("Time until mouse button hold"). This setting is global, so it applies to individual "hold mouse button" actions for objects throughout your project, too.

Besides the global mouse actions, you may also set the playable character's general reaction to mouse events. In classic third-person point-and-click adventure games, the character always walks to where the user clicks with the left mouse button. If your game has a different approach, you may want to change that behaviour. Define the character's motion for left, right, and middle mouse button click as well as for the "hold mouse button (released)" event by choosing the appropriate "send character" option.

It is possible to change that general behaviour during the game through Lua script. That may come in handy in situations where your character is supposed to temporarily not move for some reason. Have a look at the following example:

-- change the mouse click behaviour: the character will not move on mouse click
game.LeftClickBehaviour = eMouseActionBehaviourDoNotSendCharacter
game.RightClickBehaviour = eMouseActionBehaviourDoNotSendCharacter


Key actions

Key actions.png

In this section you can define global key actions. Add a new action and select the appropriate key you wish to address as the action's execution type. The key selection list contains keyboard keys as well as gamepad keys, both in two variants: "pressed" and "released". You could use this to highlight object hotspots on key press and stop the highlighting again on key release, for example.


Game info

Game info.png

The game info section offers some text fields to enter game version and description. This information is for internal use only; it does not appear anywhere in the final build. There are also some project statistics on the right hand side.

On the left you can enter the various Languages of your game; there must be at least one. It is recommended to use English terms, because the engine will show appropriate flags on text inputs, if it recognizes the language names. As soon as you have added the languages here, you are able to enter translations of your game texts (see the Text page for more on text).


Components

On the "Components" tab you can add custom behaviours to your game. Click the [+] icon to get a list of the game behaviours you created before and select one.

Custom behaviours override the default behaviours of Visionaire, thus allowing for advanced modification and customization of the whole system. This even enables you to develop other types of games than point-and-click adventures. Behaviours are created using the Ilios scripting language.