This is a place where we will collect and answer frequently asked questions.
What should I use to access the files through SFTP?
There is a lot of tools to do that. Use the one you are the most comfortable with.
On Linux, you can for example use the 'Connect to server' function of the Nautilus file management system, or use sshfs.
On Windows, there is for example the WinSCP client.
You should first connect to the Studio website (with any of your <developer name><number> accounts). As the authentication is shared with the back-office, then you will be able to access it.
I don't know the name to use to commit my game, what name should I use?
The game name for committing is the name of the game in lower case and without spaces or special characters (ex: puertorico). It is the same name as the name used for the game folder in your SFTP access.
It's pretty annoying to log in with multiple users to start a game. Is there some easier way?
You can use the 'Express start' function. It will automatically make the specified number of players join the game (using the first of your ten player accounts available) and start the game.
During the game, there is a red arrow on the right of each player name, that you can use to open a tab from this player's perspective.
You can also end the game in two clicks by clicking the 'End game' button then selecting 'Express game stop' in the popup.
What is the working language on BGA studio?
Working language is English.
Variables and functions must be named with English words.
Comments must be written in English.
Game interface strings and game logs must be written in English.
How can I provide translation in my language?
BGA administrators will translate the game in French before the game release.
After the game release, the collaborative translation interface can be used to translate into other languages.
Is there a special way to declare the strings that must be translated?
Yes. This declaration is made through transparent functions, that depend on the context.
In php files, you should use self::_( 'My string to translate' ) when the string can be translated on the server side (ex: title included in the game layout) and clienttranslate( 'My string to translate' ) when the string must be translated on the client side (ex: message for the game log).
I updated the images in the 'img' folder of my game, but they don't show?
On BGA Studio, there is the gameserver you are developing on, and the main site server that is used to launch the games. The game icon, box and the publisher logo are hosted on the main site server, so they are not immediately available when you modify them on the gameserver. To deploy them on the main site, you have to use the Studio back-office to do a commit.
If the images still don't show after that, please try emptying your browser cache and reloading the page.
I added some game options / some game statistics, but they don't show?
An extra deployment action from the BGA administrators is needed to activate new game options and statistics. Please contact us.
Is there a quick way to access the database for my current table?
Yes! While playing a game on studio, you have a "Go to game database" link at the bottom of your game. This link will bring you directly to the database for the current table.
What is the best way to debug?
On the server side (PHP), you can use one of these:
- die(var_dump( $variable_to_inspect );
- throw new BgaUserException(var_dump( $variable_to_inspect );
- console.log( variable_to_inspect ); will give you the object structure of the variable in the Firebug console, without blocking the execution. It's often a good idea to precede this call with a console.log( '### HERE ###' ); to find more easily the appropriate line in the console log.
- alert( variable_to_inspect ); will popup what you wish and pause the execution until you click ok. This won't be useful for complex structures, only native types will get plainly displayed. But this is sometimes useful just with messages to make sure which way the execution goes.
In general for debugging, think of using the 'Save & restore state' functionality. It enables you to save the state of your game just before the issue you are investigating, then come back to that point with one click as many times as needed to understand what is going wrong. You can save up to 3 different states.
Some frequent errors
- The following error occurs when launching the game "Fatal error during creation of database ebd_quoridor_389 Not logged."
- Check that you didn't use $g_user or getCurrentPlayerId() in setupNewGame() function or in an "args" function of your state. As these functions are not consequences of a user action, there is no current player defined. As a general rule, you should use getActivePlayerId() and not getCurrentPlayerId(). See the presentation on the game state machine for more information.