<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="sv">
	<id>https://sv.doc.boardgamearena.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Een</id>
	<title>Board Game Arena - Användarbidrag [sv]</title>
	<link rel="self" type="application/atom+xml" href="https://sv.doc.boardgamearena.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Een"/>
	<link rel="alternate" type="text/html" href="https://sv.doc.boardgamearena.com/Special:Bidrag/Een"/>
	<updated>2026-10-11T06:22:13Z</updated>
	<subtitle>Användarbidrag</subtitle>
	<generator>MediaWiki 1.39.0</generator>
	<entry>
		<id>https://sv.doc.boardgamearena.com/index.php?title=Development&amp;diff=344</id>
		<title>Development</title>
		<link rel="alternate" type="text/html" href="https://sv.doc.boardgamearena.com/index.php?title=Development&amp;diff=344"/>
		<updated>2012-11-30T15:50:47Z</updated>

		<summary type="html">&lt;p&gt;Een: Redirected page to Studio&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT[[Studio]]&lt;/div&gt;</summary>
		<author><name>Een</name></author>
	</entry>
	<entry>
		<id>https://sv.doc.boardgamearena.com/index.php?title=Studio&amp;diff=343</id>
		<title>Studio</title>
		<link rel="alternate" type="text/html" href="https://sv.doc.boardgamearena.com/index.php?title=Studio&amp;diff=343"/>
		<updated>2012-11-30T15:49:04Z</updated>

		<summary type="html">&lt;p&gt;Een: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Bga_studio_small.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What is this? ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Board Game Arena Studio&#039;&#039;&#039; is a platform to build online board game adaptation using the Board Game Arena platform.&lt;br /&gt;
&lt;br /&gt;
It is open to any gamer with development skills :)&lt;br /&gt;
&lt;br /&gt;
See announcement here:&lt;br /&gt;
http://forum.boardgamearena.com/viewtopic.php?f=10&amp;amp;t=1973&lt;br /&gt;
&lt;br /&gt;
== How can I develop a board game on BGA Studio? ==&lt;br /&gt;
&lt;br /&gt;
Check these presentations first:&lt;br /&gt;
&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/5-reasons-why-you-should-use-bga-studio-for-your-online-board-game 5 reasons why you should use BGA Studio for your online board game]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/the-8-steps-to-create-a-board-game-on-board-game-arena The 8 steps to create a board game on Board Game Arena]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/the-bga-framework-at-a-glance The BGA Framework at a glance]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/bga-studio-focus-on-bga-game-state-machine Focus on BGA game state machine]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/bga-studio-guidelines BGA developers guidelines]&lt;br /&gt;
&lt;br /&gt;
== How do I register? ==&lt;br /&gt;
&lt;br /&gt;
Registering is done by e-mail at &#039;&#039;&#039;studio(at)boardgamearena.com&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Please provide the following information:&lt;br /&gt;
* your developer user name to be used on “BGA Studio” (for technical reasons, no space, number or special character);&lt;br /&gt;
* your real name;&lt;br /&gt;
* your e-mail address;&lt;br /&gt;
* your postal address.&lt;br /&gt;
&lt;br /&gt;
We also drafted a quick [http://en.doc.boardgamearena.com/images/0/02/BGA_TC_Dev_en.pdf &#039;terms &amp;amp; conditions&#039; document]. It&#039;s very light, so as to get to the fun part faster.&lt;br /&gt;
&lt;br /&gt;
To be valid, the registration e-mail must contain this document as an attachment, with the following sentence in the mail body: &#039;I agree with the terms &amp;amp; conditions for developers on BGA Studio joined as an attachment&#039;.&lt;br /&gt;
&lt;br /&gt;
And of course, we also encourage you to tell us about which games you would love to develop on BGA!&lt;br /&gt;
&lt;br /&gt;
== Ok, I registered, what do I get? ==&lt;br /&gt;
&lt;br /&gt;
First, from time to time you will get by e-mail the names of some of the games we have an agreement to develop, so that you can tell us &#039;Hey, this game is great! I want to develop it!&#039; (please keep these names confidential, or it would ruin our tradition to make players guess the name of the next game on the forum)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;NB: during the BETA pĥase, to smooth things up and make sure that everything is working correctly, &lt;br /&gt;
we will work only with 3 fearless developers on 3 simple games.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Second, once we have discussed together and are fixed on a game you&#039;ll take charge of, we&#039;ll create your studio account and you will get:&lt;br /&gt;
* one login / password to access files through SFTP&lt;br /&gt;
* ten logins with numeric suffixes from 0 to 9 and a common simple password to test games on the studio website while developing.&lt;br /&gt;
&lt;br /&gt;
Once logged in to your SFTP root folder, you will find:&lt;br /&gt;
* a &#039;resources.html&#039; file with the URLs to use and some extra connection information&lt;br /&gt;
* three folders containing the three simple games provided as examples&lt;br /&gt;
* a folder for the game you will be developing initialized after our &#039;EmptyGame&#039; template, providing the game structure (and comments! and examples!)&lt;br /&gt;
&lt;br /&gt;
Then... that&#039;s all, you can start!&lt;br /&gt;
&lt;br /&gt;
== Great, I&#039;m in! ... How should I start? ==&lt;br /&gt;
&lt;br /&gt;
If you didn&#039;t already, check the presentations at the top of this page to get the basics.&lt;br /&gt;
&lt;br /&gt;
After that, we would advise you to take a peek at this tutorial for creating the Reversi example game:&lt;br /&gt;
* [[Tutorial reversi]]&lt;br /&gt;
&lt;br /&gt;
Then start editing files and see what happens! ;)&lt;br /&gt;
&lt;br /&gt;
If you have any questions, please ask them on the [http://forum.boardgamearena.com/viewforum.php?f=12 development forum].&lt;br /&gt;
&lt;br /&gt;
== Other resources ==&lt;br /&gt;
&lt;br /&gt;
[[Studio FAQ]]&lt;br /&gt;
&lt;br /&gt;
[[Studio file reference]]&lt;br /&gt;
&lt;br /&gt;
[[Studio function reference]]&lt;br /&gt;
&lt;br /&gt;
[[Studio back-office]]&lt;br /&gt;
&lt;br /&gt;
[http://forum.boardgamearena.com/viewforum.php?f=12 Development forum]&lt;br /&gt;
&lt;br /&gt;
[http://forum.boardgamearena.com/viewforum.php?f=4 Bugs forum]&lt;/div&gt;</summary>
		<author><name>Een</name></author>
	</entry>
	<entry>
		<id>https://sv.doc.boardgamearena.com/index.php?title=Development&amp;diff=342</id>
		<title>Development</title>
		<link rel="alternate" type="text/html" href="https://sv.doc.boardgamearena.com/index.php?title=Development&amp;diff=342"/>
		<updated>2012-11-30T15:03:57Z</updated>

		<summary type="html">&lt;p&gt;Een: /* Great, I&amp;#039;m in! ... How should I start? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Bga_studio_small.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What is this? ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Board Game Arena Studio&#039;&#039;&#039; is a platform to build online board game adaptation using the Board Game Arena platform.&lt;br /&gt;
&lt;br /&gt;
It is open to any gamer with development skills :)&lt;br /&gt;
&lt;br /&gt;
See announcement here:&lt;br /&gt;
http://forum.boardgamearena.com/viewtopic.php?f=10&amp;amp;t=1973&lt;br /&gt;
&lt;br /&gt;
== How can I develop a board game on BGA Studio? ==&lt;br /&gt;
&lt;br /&gt;
Check these presentations first:&lt;br /&gt;
&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/5-reasons-why-you-should-use-bga-studio-for-your-online-board-game 5 reasons why you should use BGA Studio for your online board game]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/the-8-steps-to-create-a-board-game-on-board-game-arena The 8 steps to create a board game on Board Game Arena]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/the-bga-framework-at-a-glance The BGA Framework at a glance]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/bga-studio-focus-on-bga-game-state-machine Focus on BGA game state machine]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/bga-studio-guidelines BGA developers guidelines]&lt;br /&gt;
&lt;br /&gt;
== How do I register? ==&lt;br /&gt;
&lt;br /&gt;
Registering is done by e-mail at &#039;&#039;&#039;studio(at)boardgamearena.com&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Please provide the following information:&lt;br /&gt;
* your developer user name to be used on “BGA Studio” (for technical reasons, no space, number or special character);&lt;br /&gt;
* your real name;&lt;br /&gt;
* your e-mail address;&lt;br /&gt;
* your postal address.&lt;br /&gt;
&lt;br /&gt;
We also drafted a quick [http://en.doc.boardgamearena.com/images/0/02/BGA_TC_Dev_en.pdf &#039;terms &amp;amp; conditions&#039; document]. It&#039;s very light, so as to get to the fun part faster.&lt;br /&gt;
&lt;br /&gt;
To be valid, the registration e-mail must contain this document as an attachment, with the following sentence in the mail body: &#039;I agree with the terms &amp;amp; conditions for developers on BGA Studio joined as an attachment&#039;.&lt;br /&gt;
&lt;br /&gt;
And of course, we also encourage you to tell us about which games you would love to develop on BGA!&lt;br /&gt;
&lt;br /&gt;
== Ok, I registered, what do I get? ==&lt;br /&gt;
&lt;br /&gt;
First, from time to time you will get by e-mail the names of some of the games we have an agreement to develop, so that you can tell us &#039;Hey, this game is great! I want to develop it!&#039; (please keep these names confidential, or it would ruin our tradition to make players guess the name of the next game on the forum)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;NB: during the BETA pĥase, to smooth things up and make sure that everything is working correctly, &lt;br /&gt;
we will work only with 3 fearless developers on 3 simple games.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Second, once we have discussed together and are fixed on a game you&#039;ll take charge of, we&#039;ll create your studio account and you will get:&lt;br /&gt;
* one login / password to access files through SFTP&lt;br /&gt;
* ten logins with numeric suffixes from 0 to 9 and a common simple password to test games on the studio website while developing.&lt;br /&gt;
&lt;br /&gt;
Once logged in to your SFTP root folder, you will find:&lt;br /&gt;
* a &#039;resources.html&#039; file with the URLs to use and some extra connection information&lt;br /&gt;
* three folders containing the three simple games provided as examples&lt;br /&gt;
* a folder for the game you will be developing initialized after our &#039;EmptyGame&#039; template, providing the game structure (and comments! and examples!)&lt;br /&gt;
&lt;br /&gt;
Then... that&#039;s all, you can start!&lt;br /&gt;
&lt;br /&gt;
== Great, I&#039;m in! ... How should I start? ==&lt;br /&gt;
&lt;br /&gt;
If you didn&#039;t already, check the presentations at the top of this page to get the basics.&lt;br /&gt;
&lt;br /&gt;
After that, we would advise you to take a peek at this tutorial for creating the Reversi example game:&lt;br /&gt;
* [[Tutorial reversi]]&lt;br /&gt;
&lt;br /&gt;
Then start editing files and see what happens! ;)&lt;br /&gt;
&lt;br /&gt;
If you have any questions, please ask them on the [http://forum.boardgamearena.com/viewforum.php?f=12 development forum].&lt;br /&gt;
&lt;br /&gt;
== Other resources ==&lt;br /&gt;
&lt;br /&gt;
[[Studio FAQ]]&lt;br /&gt;
&lt;br /&gt;
[[Studio file reference]]&lt;br /&gt;
&lt;br /&gt;
[[Studio function reference]]&lt;br /&gt;
&lt;br /&gt;
[[Studio back-office]]&lt;br /&gt;
&lt;br /&gt;
[http://forum.boardgamearena.com/viewforum.php?f=12 Development forum]&lt;br /&gt;
&lt;br /&gt;
[http://forum.boardgamearena.com/viewforum.php?f=4 Bugs forum]&lt;/div&gt;</summary>
		<author><name>Een</name></author>
	</entry>
	<entry>
		<id>https://sv.doc.boardgamearena.com/index.php?title=Development&amp;diff=341</id>
		<title>Development</title>
		<link rel="alternate" type="text/html" href="https://sv.doc.boardgamearena.com/index.php?title=Development&amp;diff=341"/>
		<updated>2012-11-30T15:03:35Z</updated>

		<summary type="html">&lt;p&gt;Een: /* Great, I&amp;#039;m in! ... How should I start? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Bga_studio_small.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What is this? ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Board Game Arena Studio&#039;&#039;&#039; is a platform to build online board game adaptation using the Board Game Arena platform.&lt;br /&gt;
&lt;br /&gt;
It is open to any gamer with development skills :)&lt;br /&gt;
&lt;br /&gt;
See announcement here:&lt;br /&gt;
http://forum.boardgamearena.com/viewtopic.php?f=10&amp;amp;t=1973&lt;br /&gt;
&lt;br /&gt;
== How can I develop a board game on BGA Studio? ==&lt;br /&gt;
&lt;br /&gt;
Check these presentations first:&lt;br /&gt;
&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/5-reasons-why-you-should-use-bga-studio-for-your-online-board-game 5 reasons why you should use BGA Studio for your online board game]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/the-8-steps-to-create-a-board-game-on-board-game-arena The 8 steps to create a board game on Board Game Arena]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/the-bga-framework-at-a-glance The BGA Framework at a glance]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/bga-studio-focus-on-bga-game-state-machine Focus on BGA game state machine]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/bga-studio-guidelines BGA developers guidelines]&lt;br /&gt;
&lt;br /&gt;
== How do I register? ==&lt;br /&gt;
&lt;br /&gt;
Registering is done by e-mail at &#039;&#039;&#039;studio(at)boardgamearena.com&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Please provide the following information:&lt;br /&gt;
* your developer user name to be used on “BGA Studio” (for technical reasons, no space, number or special character);&lt;br /&gt;
* your real name;&lt;br /&gt;
* your e-mail address;&lt;br /&gt;
* your postal address.&lt;br /&gt;
&lt;br /&gt;
We also drafted a quick [http://en.doc.boardgamearena.com/images/0/02/BGA_TC_Dev_en.pdf &#039;terms &amp;amp; conditions&#039; document]. It&#039;s very light, so as to get to the fun part faster.&lt;br /&gt;
&lt;br /&gt;
To be valid, the registration e-mail must contain this document as an attachment, with the following sentence in the mail body: &#039;I agree with the terms &amp;amp; conditions for developers on BGA Studio joined as an attachment&#039;.&lt;br /&gt;
&lt;br /&gt;
And of course, we also encourage you to tell us about which games you would love to develop on BGA!&lt;br /&gt;
&lt;br /&gt;
== Ok, I registered, what do I get? ==&lt;br /&gt;
&lt;br /&gt;
First, from time to time you will get by e-mail the names of some of the games we have an agreement to develop, so that you can tell us &#039;Hey, this game is great! I want to develop it!&#039; (please keep these names confidential, or it would ruin our tradition to make players guess the name of the next game on the forum)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;NB: during the BETA pĥase, to smooth things up and make sure that everything is working correctly, &lt;br /&gt;
we will work only with 3 fearless developers on 3 simple games.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Second, once we have discussed together and are fixed on a game you&#039;ll take charge of, we&#039;ll create your studio account and you will get:&lt;br /&gt;
* one login / password to access files through SFTP&lt;br /&gt;
* ten logins with numeric suffixes from 0 to 9 and a common simple password to test games on the studio website while developing.&lt;br /&gt;
&lt;br /&gt;
Once logged in to your SFTP root folder, you will find:&lt;br /&gt;
* a &#039;resources.html&#039; file with the URLs to use and some extra connection information&lt;br /&gt;
* three folders containing the three simple games provided as examples&lt;br /&gt;
* a folder for the game you will be developing initialized after our &#039;EmptyGame&#039; template, providing the game structure (and comments! and examples!)&lt;br /&gt;
&lt;br /&gt;
Then... that&#039;s all, you can start!&lt;br /&gt;
&lt;br /&gt;
== Great, I&#039;m in! ... How should I start? ==&lt;br /&gt;
&lt;br /&gt;
If you didn&#039;t already, check the presentations at the top of this page to get the basics.&lt;br /&gt;
&lt;br /&gt;
After that, we would advise you to take a peek at this tutorial for creating the Reversi example game:&lt;br /&gt;
* [[Tutorial reversi]]&lt;br /&gt;
&lt;br /&gt;
Then start editing files and see what happens! ;)&lt;br /&gt;
&lt;br /&gt;
If you have any questions, please ask them on the [http://forum.boardgamearena.com/viewforum.php?f=12 development forum]!&lt;br /&gt;
&lt;br /&gt;
== Other resources ==&lt;br /&gt;
&lt;br /&gt;
[[Studio FAQ]]&lt;br /&gt;
&lt;br /&gt;
[[Studio file reference]]&lt;br /&gt;
&lt;br /&gt;
[[Studio function reference]]&lt;br /&gt;
&lt;br /&gt;
[[Studio back-office]]&lt;br /&gt;
&lt;br /&gt;
[http://forum.boardgamearena.com/viewforum.php?f=12 Development forum]&lt;br /&gt;
&lt;br /&gt;
[http://forum.boardgamearena.com/viewforum.php?f=4 Bugs forum]&lt;/div&gt;</summary>
		<author><name>Een</name></author>
	</entry>
	<entry>
		<id>https://sv.doc.boardgamearena.com/index.php?title=Development&amp;diff=340</id>
		<title>Development</title>
		<link rel="alternate" type="text/html" href="https://sv.doc.boardgamearena.com/index.php?title=Development&amp;diff=340"/>
		<updated>2012-11-30T14:57:41Z</updated>

		<summary type="html">&lt;p&gt;Een: /* Ok, I registered, what do I get? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Bga_studio_small.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What is this? ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Board Game Arena Studio&#039;&#039;&#039; is a platform to build online board game adaptation using the Board Game Arena platform.&lt;br /&gt;
&lt;br /&gt;
It is open to any gamer with development skills :)&lt;br /&gt;
&lt;br /&gt;
See announcement here:&lt;br /&gt;
http://forum.boardgamearena.com/viewtopic.php?f=10&amp;amp;t=1973&lt;br /&gt;
&lt;br /&gt;
== How can I develop a board game on BGA Studio? ==&lt;br /&gt;
&lt;br /&gt;
Check these presentations first:&lt;br /&gt;
&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/5-reasons-why-you-should-use-bga-studio-for-your-online-board-game 5 reasons why you should use BGA Studio for your online board game]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/the-8-steps-to-create-a-board-game-on-board-game-arena The 8 steps to create a board game on Board Game Arena]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/the-bga-framework-at-a-glance The BGA Framework at a glance]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/bga-studio-focus-on-bga-game-state-machine Focus on BGA game state machine]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/bga-studio-guidelines BGA developers guidelines]&lt;br /&gt;
&lt;br /&gt;
== How do I register? ==&lt;br /&gt;
&lt;br /&gt;
Registering is done by e-mail at &#039;&#039;&#039;studio(at)boardgamearena.com&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Please provide the following information:&lt;br /&gt;
* your developer user name to be used on “BGA Studio” (for technical reasons, no space, number or special character);&lt;br /&gt;
* your real name;&lt;br /&gt;
* your e-mail address;&lt;br /&gt;
* your postal address.&lt;br /&gt;
&lt;br /&gt;
We also drafted a quick [http://en.doc.boardgamearena.com/images/0/02/BGA_TC_Dev_en.pdf &#039;terms &amp;amp; conditions&#039; document]. It&#039;s very light, so as to get to the fun part faster.&lt;br /&gt;
&lt;br /&gt;
To be valid, the registration e-mail must contain this document as an attachment, with the following sentence in the mail body: &#039;I agree with the terms &amp;amp; conditions for developers on BGA Studio joined as an attachment&#039;.&lt;br /&gt;
&lt;br /&gt;
And of course, we also encourage you to tell us about which games you would love to develop on BGA!&lt;br /&gt;
&lt;br /&gt;
== Ok, I registered, what do I get? ==&lt;br /&gt;
&lt;br /&gt;
First, from time to time you will get by e-mail the names of some of the games we have an agreement to develop, so that you can tell us &#039;Hey, this game is great! I want to develop it!&#039; (please keep these names confidential, or it would ruin our tradition to make players guess the name of the next game on the forum)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;NB: during the BETA pĥase, to smooth things up and make sure that everything is working correctly, &lt;br /&gt;
we will work only with 3 fearless developers on 3 simple games.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Second, once we have discussed together and are fixed on a game you&#039;ll take charge of, we&#039;ll create your studio account and you will get:&lt;br /&gt;
* one login / password to access files through SFTP&lt;br /&gt;
* ten logins with numeric suffixes from 0 to 9 and a common simple password to test games on the studio website while developing.&lt;br /&gt;
&lt;br /&gt;
Once logged in to your SFTP root folder, you will find:&lt;br /&gt;
* a &#039;resources.html&#039; file with the URLs to use and some extra connection information&lt;br /&gt;
* three folders containing the three simple games provided as examples&lt;br /&gt;
* a folder for the game you will be developing initialized after our &#039;EmptyGame&#039; template, providing the game structure (and comments! and examples!)&lt;br /&gt;
&lt;br /&gt;
Then... that&#039;s all, you can start!&lt;br /&gt;
&lt;br /&gt;
== Great, I&#039;m in! ... How should I start? ==&lt;br /&gt;
&lt;br /&gt;
If you didn&#039;t already, check the presentations at the top of this page to get the basics.&lt;br /&gt;
&lt;br /&gt;
After that, we would advise you to take a peek at this tutorial for creating the Reversi example game:&lt;br /&gt;
* [[Tutorial reversi]]&lt;br /&gt;
&lt;br /&gt;
Then start editing files and see what happens! ;)&lt;br /&gt;
&lt;br /&gt;
== Other resources ==&lt;br /&gt;
&lt;br /&gt;
[[Studio FAQ]]&lt;br /&gt;
&lt;br /&gt;
[[Studio file reference]]&lt;br /&gt;
&lt;br /&gt;
[[Studio function reference]]&lt;br /&gt;
&lt;br /&gt;
[[Studio back-office]]&lt;br /&gt;
&lt;br /&gt;
[http://forum.boardgamearena.com/viewforum.php?f=12 Development forum]&lt;br /&gt;
&lt;br /&gt;
[http://forum.boardgamearena.com/viewforum.php?f=4 Bugs forum]&lt;/div&gt;</summary>
		<author><name>Een</name></author>
	</entry>
	<entry>
		<id>https://sv.doc.boardgamearena.com/index.php?title=Development&amp;diff=339</id>
		<title>Development</title>
		<link rel="alternate" type="text/html" href="https://sv.doc.boardgamearena.com/index.php?title=Development&amp;diff=339"/>
		<updated>2012-11-30T14:57:01Z</updated>

		<summary type="html">&lt;p&gt;Een: /* Ok, I registered, what do I get? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Bga_studio_small.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What is this? ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Board Game Arena Studio&#039;&#039;&#039; is a platform to build online board game adaptation using the Board Game Arena platform.&lt;br /&gt;
&lt;br /&gt;
It is open to any gamer with development skills :)&lt;br /&gt;
&lt;br /&gt;
See announcement here:&lt;br /&gt;
http://forum.boardgamearena.com/viewtopic.php?f=10&amp;amp;t=1973&lt;br /&gt;
&lt;br /&gt;
== How can I develop a board game on BGA Studio? ==&lt;br /&gt;
&lt;br /&gt;
Check these presentations first:&lt;br /&gt;
&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/5-reasons-why-you-should-use-bga-studio-for-your-online-board-game 5 reasons why you should use BGA Studio for your online board game]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/the-8-steps-to-create-a-board-game-on-board-game-arena The 8 steps to create a board game on Board Game Arena]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/the-bga-framework-at-a-glance The BGA Framework at a glance]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/bga-studio-focus-on-bga-game-state-machine Focus on BGA game state machine]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/bga-studio-guidelines BGA developers guidelines]&lt;br /&gt;
&lt;br /&gt;
== How do I register? ==&lt;br /&gt;
&lt;br /&gt;
Registering is done by e-mail at &#039;&#039;&#039;studio(at)boardgamearena.com&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Please provide the following information:&lt;br /&gt;
* your developer user name to be used on “BGA Studio” (for technical reasons, no space, number or special character);&lt;br /&gt;
* your real name;&lt;br /&gt;
* your e-mail address;&lt;br /&gt;
* your postal address.&lt;br /&gt;
&lt;br /&gt;
We also drafted a quick [http://en.doc.boardgamearena.com/images/0/02/BGA_TC_Dev_en.pdf &#039;terms &amp;amp; conditions&#039; document]. It&#039;s very light, so as to get to the fun part faster.&lt;br /&gt;
&lt;br /&gt;
To be valid, the registration e-mail must contain this document as an attachment, with the following sentence in the mail body: &#039;I agree with the terms &amp;amp; conditions for developers on BGA Studio joined as an attachment&#039;.&lt;br /&gt;
&lt;br /&gt;
And of course, we also encourage you to tell us about which games you would love to develop on BGA!&lt;br /&gt;
&lt;br /&gt;
== Ok, I registered, what do I get? ==&lt;br /&gt;
&lt;br /&gt;
First, from time to time you will get by e-mail the names of some of the games we have an agreement to develop, so that you can tell us &#039;Hey, this game is great! I want to develop it!&#039; (please keep these names confidential, or it would ruin our tradition to make players guess the name of the next game on the forum!)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;NB: during the BETA pĥase, to smooth things up and make sure that everything is working correctly, &lt;br /&gt;
we will work only with 3 fearless developers on 3 simple games.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Second, once we have discussed together and are fixed on a game you&#039;ll take charge of, we&#039;ll create your studio account and you will get:&lt;br /&gt;
* one login / password to access files through SFTP&lt;br /&gt;
* ten logins with numeric suffixes from 0 to 9 and a common simple password to test games on the studio website while developing.&lt;br /&gt;
&lt;br /&gt;
Once logged in to your SFTP root folder, you will find:&lt;br /&gt;
* a &#039;resources.html&#039; file with the URLs to use and some extra connection information&lt;br /&gt;
* three folders containing the three simple games provided as examples&lt;br /&gt;
* a folder for the game you will be developing initialized after our &#039;EmptyGame&#039; template, providing the game structure (and comments! and examples!)&lt;br /&gt;
&lt;br /&gt;
Then... that&#039;s all, you can start!&lt;br /&gt;
&lt;br /&gt;
== Great, I&#039;m in! ... How should I start? ==&lt;br /&gt;
&lt;br /&gt;
If you didn&#039;t already, check the presentations at the top of this page to get the basics.&lt;br /&gt;
&lt;br /&gt;
After that, we would advise you to take a peek at this tutorial for creating the Reversi example game:&lt;br /&gt;
* [[Tutorial reversi]]&lt;br /&gt;
&lt;br /&gt;
Then start editing files and see what happens! ;)&lt;br /&gt;
&lt;br /&gt;
== Other resources ==&lt;br /&gt;
&lt;br /&gt;
[[Studio FAQ]]&lt;br /&gt;
&lt;br /&gt;
[[Studio file reference]]&lt;br /&gt;
&lt;br /&gt;
[[Studio function reference]]&lt;br /&gt;
&lt;br /&gt;
[[Studio back-office]]&lt;br /&gt;
&lt;br /&gt;
[http://forum.boardgamearena.com/viewforum.php?f=12 Development forum]&lt;br /&gt;
&lt;br /&gt;
[http://forum.boardgamearena.com/viewforum.php?f=4 Bugs forum]&lt;/div&gt;</summary>
		<author><name>Een</name></author>
	</entry>
	<entry>
		<id>https://sv.doc.boardgamearena.com/index.php?title=Development&amp;diff=338</id>
		<title>Development</title>
		<link rel="alternate" type="text/html" href="https://sv.doc.boardgamearena.com/index.php?title=Development&amp;diff=338"/>
		<updated>2012-11-30T14:35:54Z</updated>

		<summary type="html">&lt;p&gt;Een: /* How do I register? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Bga_studio_small.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What is this? ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Board Game Arena Studio&#039;&#039;&#039; is a platform to build online board game adaptation using the Board Game Arena platform.&lt;br /&gt;
&lt;br /&gt;
It is open to any gamer with development skills :)&lt;br /&gt;
&lt;br /&gt;
See announcement here:&lt;br /&gt;
http://forum.boardgamearena.com/viewtopic.php?f=10&amp;amp;t=1973&lt;br /&gt;
&lt;br /&gt;
== How can I develop a board game on BGA Studio? ==&lt;br /&gt;
&lt;br /&gt;
Check these presentations first:&lt;br /&gt;
&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/5-reasons-why-you-should-use-bga-studio-for-your-online-board-game 5 reasons why you should use BGA Studio for your online board game]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/the-8-steps-to-create-a-board-game-on-board-game-arena The 8 steps to create a board game on Board Game Arena]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/the-bga-framework-at-a-glance The BGA Framework at a glance]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/bga-studio-focus-on-bga-game-state-machine Focus on BGA game state machine]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/bga-studio-guidelines BGA developers guidelines]&lt;br /&gt;
&lt;br /&gt;
== How do I register? ==&lt;br /&gt;
&lt;br /&gt;
Registering is done by e-mail at &#039;&#039;&#039;studio(at)boardgamearena.com&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Please provide the following information:&lt;br /&gt;
* your developer user name to be used on “BGA Studio” (for technical reasons, no space, number or special character);&lt;br /&gt;
* your real name;&lt;br /&gt;
* your e-mail address;&lt;br /&gt;
* your postal address.&lt;br /&gt;
&lt;br /&gt;
We also drafted a quick [http://en.doc.boardgamearena.com/images/0/02/BGA_TC_Dev_en.pdf &#039;terms &amp;amp; conditions&#039; document]. It&#039;s very light, so as to get to the fun part faster.&lt;br /&gt;
&lt;br /&gt;
To be valid, the registration e-mail must contain this document as an attachment, with the following sentence in the mail body: &#039;I agree with the terms &amp;amp; conditions for developers on BGA Studio joined as an attachment&#039;.&lt;br /&gt;
&lt;br /&gt;
And of course, we also encourage you to tell us about which games you would love to develop on BGA!&lt;br /&gt;
&lt;br /&gt;
== Ok, I registered, what do I get? ==&lt;br /&gt;
&lt;br /&gt;
First, you get by e-mail a list of the games we have an agreement to develop. Please keep this list confidential, or it would ruin our tradition to make players guess the name of the next game on the forum!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;NB: during the BETA pĥase, to smooth things up and make sure that everything is working correctly, &lt;br /&gt;
we will work only with 3 fearless developers on 3 simple games.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Second, once we have discussed together and are fixed on a game you&#039;ll take charge of, we&#039;ll create your studio account and you will get:&lt;br /&gt;
* one login / password to access files through SFTP&lt;br /&gt;
* ten logins with numeric suffixes from 0 to 9 and a common simple password to test games on the studio website while developing.&lt;br /&gt;
&lt;br /&gt;
Once logged in to your SFTP root folder, you will find:&lt;br /&gt;
* a &#039;resources.html&#039; file with the URLs to use and some extra connection information&lt;br /&gt;
* three folders containing the three simple games provided as examples&lt;br /&gt;
* a folder for the game you will be developing initialized after our &#039;EmptyGame&#039; template, providing the game structure (and comments! and examples!)&lt;br /&gt;
&lt;br /&gt;
Then... that&#039;s all, you can start!&lt;br /&gt;
&lt;br /&gt;
== Great, I&#039;m in! ... How should I start? ==&lt;br /&gt;
&lt;br /&gt;
If you didn&#039;t already, check the presentations at the top of this page to get the basics.&lt;br /&gt;
&lt;br /&gt;
After that, we would advise you to take a peek at this tutorial for creating the Reversi example game:&lt;br /&gt;
* [[Tutorial reversi]]&lt;br /&gt;
&lt;br /&gt;
Then start editing files and see what happens! ;)&lt;br /&gt;
&lt;br /&gt;
== Other resources ==&lt;br /&gt;
&lt;br /&gt;
[[Studio FAQ]]&lt;br /&gt;
&lt;br /&gt;
[[Studio file reference]]&lt;br /&gt;
&lt;br /&gt;
[[Studio function reference]]&lt;br /&gt;
&lt;br /&gt;
[[Studio back-office]]&lt;br /&gt;
&lt;br /&gt;
[http://forum.boardgamearena.com/viewforum.php?f=12 Development forum]&lt;br /&gt;
&lt;br /&gt;
[http://forum.boardgamearena.com/viewforum.php?f=4 Bugs forum]&lt;/div&gt;</summary>
		<author><name>Een</name></author>
	</entry>
	<entry>
		<id>https://sv.doc.boardgamearena.com/index.php?title=Development&amp;diff=337</id>
		<title>Development</title>
		<link rel="alternate" type="text/html" href="https://sv.doc.boardgamearena.com/index.php?title=Development&amp;diff=337"/>
		<updated>2012-11-30T14:35:27Z</updated>

		<summary type="html">&lt;p&gt;Een: /* How do I register? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Bga_studio_small.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What is this? ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Board Game Arena Studio&#039;&#039;&#039; is a platform to build online board game adaptation using the Board Game Arena platform.&lt;br /&gt;
&lt;br /&gt;
It is open to any gamer with development skills :)&lt;br /&gt;
&lt;br /&gt;
See announcement here:&lt;br /&gt;
http://forum.boardgamearena.com/viewtopic.php?f=10&amp;amp;t=1973&lt;br /&gt;
&lt;br /&gt;
== How can I develop a board game on BGA Studio? ==&lt;br /&gt;
&lt;br /&gt;
Check these presentations first:&lt;br /&gt;
&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/5-reasons-why-you-should-use-bga-studio-for-your-online-board-game 5 reasons why you should use BGA Studio for your online board game]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/the-8-steps-to-create-a-board-game-on-board-game-arena The 8 steps to create a board game on Board Game Arena]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/the-bga-framework-at-a-glance The BGA Framework at a glance]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/bga-studio-focus-on-bga-game-state-machine Focus on BGA game state machine]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/bga-studio-guidelines BGA developers guidelines]&lt;br /&gt;
&lt;br /&gt;
== How do I register? ==&lt;br /&gt;
&lt;br /&gt;
Registering is done by e-mail at studio(at)boardgamearena.com.&lt;br /&gt;
&lt;br /&gt;
Please provide the following information:&lt;br /&gt;
* your developer user name to be used on “BGA Studio” (for technical reasons, no space, number or special character);&lt;br /&gt;
* your real name;&lt;br /&gt;
* your e-mail address;&lt;br /&gt;
* your postal address.&lt;br /&gt;
&lt;br /&gt;
We also drafted a quick [http://en.doc.boardgamearena.com/images/0/02/BGA_TC_Dev_en.pdf &#039;terms &amp;amp; conditions&#039; document]. It&#039;s very light, so as to get to the fun part faster.&lt;br /&gt;
&lt;br /&gt;
To be valid, the registration e-mail must contain this document as an attachment, with the following sentence in the mail body: &#039;I agree with the terms &amp;amp; conditions for developers on BGA Studio joined as an attachment&#039;.&lt;br /&gt;
&lt;br /&gt;
And of course, we also encourage you to tell us about which games you would love to develop on BGA!&lt;br /&gt;
&lt;br /&gt;
== Ok, I registered, what do I get? ==&lt;br /&gt;
&lt;br /&gt;
First, you get by e-mail a list of the games we have an agreement to develop. Please keep this list confidential, or it would ruin our tradition to make players guess the name of the next game on the forum!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;NB: during the BETA pĥase, to smooth things up and make sure that everything is working correctly, &lt;br /&gt;
we will work only with 3 fearless developers on 3 simple games.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Second, once we have discussed together and are fixed on a game you&#039;ll take charge of, we&#039;ll create your studio account and you will get:&lt;br /&gt;
* one login / password to access files through SFTP&lt;br /&gt;
* ten logins with numeric suffixes from 0 to 9 and a common simple password to test games on the studio website while developing.&lt;br /&gt;
&lt;br /&gt;
Once logged in to your SFTP root folder, you will find:&lt;br /&gt;
* a &#039;resources.html&#039; file with the URLs to use and some extra connection information&lt;br /&gt;
* three folders containing the three simple games provided as examples&lt;br /&gt;
* a folder for the game you will be developing initialized after our &#039;EmptyGame&#039; template, providing the game structure (and comments! and examples!)&lt;br /&gt;
&lt;br /&gt;
Then... that&#039;s all, you can start!&lt;br /&gt;
&lt;br /&gt;
== Great, I&#039;m in! ... How should I start? ==&lt;br /&gt;
&lt;br /&gt;
If you didn&#039;t already, check the presentations at the top of this page to get the basics.&lt;br /&gt;
&lt;br /&gt;
After that, we would advise you to take a peek at this tutorial for creating the Reversi example game:&lt;br /&gt;
* [[Tutorial reversi]]&lt;br /&gt;
&lt;br /&gt;
Then start editing files and see what happens! ;)&lt;br /&gt;
&lt;br /&gt;
== Other resources ==&lt;br /&gt;
&lt;br /&gt;
[[Studio FAQ]]&lt;br /&gt;
&lt;br /&gt;
[[Studio file reference]]&lt;br /&gt;
&lt;br /&gt;
[[Studio function reference]]&lt;br /&gt;
&lt;br /&gt;
[[Studio back-office]]&lt;br /&gt;
&lt;br /&gt;
[http://forum.boardgamearena.com/viewforum.php?f=12 Development forum]&lt;br /&gt;
&lt;br /&gt;
[http://forum.boardgamearena.com/viewforum.php?f=4 Bugs forum]&lt;/div&gt;</summary>
		<author><name>Een</name></author>
	</entry>
	<entry>
		<id>https://sv.doc.boardgamearena.com/index.php?title=Development&amp;diff=336</id>
		<title>Development</title>
		<link rel="alternate" type="text/html" href="https://sv.doc.boardgamearena.com/index.php?title=Development&amp;diff=336"/>
		<updated>2012-11-30T14:35:09Z</updated>

		<summary type="html">&lt;p&gt;Een: /* How do I register? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Bga_studio_small.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What is this? ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Board Game Arena Studio&#039;&#039;&#039; is a platform to build online board game adaptation using the Board Game Arena platform.&lt;br /&gt;
&lt;br /&gt;
It is open to any gamer with development skills :)&lt;br /&gt;
&lt;br /&gt;
See announcement here:&lt;br /&gt;
http://forum.boardgamearena.com/viewtopic.php?f=10&amp;amp;t=1973&lt;br /&gt;
&lt;br /&gt;
== How can I develop a board game on BGA Studio? ==&lt;br /&gt;
&lt;br /&gt;
Check these presentations first:&lt;br /&gt;
&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/5-reasons-why-you-should-use-bga-studio-for-your-online-board-game 5 reasons why you should use BGA Studio for your online board game]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/the-8-steps-to-create-a-board-game-on-board-game-arena The 8 steps to create a board game on Board Game Arena]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/the-bga-framework-at-a-glance The BGA Framework at a glance]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/bga-studio-focus-on-bga-game-state-machine Focus on BGA game state machine]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/bga-studio-guidelines BGA developers guidelines]&lt;br /&gt;
&lt;br /&gt;
== How do I register? ==&lt;br /&gt;
&lt;br /&gt;
Registering is done by e-mail to studio(at)boardgamearena.com.&lt;br /&gt;
&lt;br /&gt;
Please provide the following information:&lt;br /&gt;
* your developer user name to be used on “BGA Studio” (for technical reasons, no space, number or special character);&lt;br /&gt;
* your real name;&lt;br /&gt;
* your e-mail address;&lt;br /&gt;
* your postal address.&lt;br /&gt;
&lt;br /&gt;
We also drafted a quick [http://en.doc.boardgamearena.com/images/0/02/BGA_TC_Dev_en.pdf &#039;terms &amp;amp; conditions&#039; document]. It&#039;s very light, so as to get to the fun part faster.&lt;br /&gt;
&lt;br /&gt;
To be valid, the registration e-mail must contain this document as an attachment, with the following sentence in the mail body: &#039;I agree with the terms &amp;amp; conditions for developers on BGA Studio joined as an attachment&#039;.&lt;br /&gt;
&lt;br /&gt;
And of course, we also encourage you to tell us about which games you would love to develop on BGA!&lt;br /&gt;
&lt;br /&gt;
== Ok, I registered, what do I get? ==&lt;br /&gt;
&lt;br /&gt;
First, you get by e-mail a list of the games we have an agreement to develop. Please keep this list confidential, or it would ruin our tradition to make players guess the name of the next game on the forum!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;NB: during the BETA pĥase, to smooth things up and make sure that everything is working correctly, &lt;br /&gt;
we will work only with 3 fearless developers on 3 simple games.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Second, once we have discussed together and are fixed on a game you&#039;ll take charge of, we&#039;ll create your studio account and you will get:&lt;br /&gt;
* one login / password to access files through SFTP&lt;br /&gt;
* ten logins with numeric suffixes from 0 to 9 and a common simple password to test games on the studio website while developing.&lt;br /&gt;
&lt;br /&gt;
Once logged in to your SFTP root folder, you will find:&lt;br /&gt;
* a &#039;resources.html&#039; file with the URLs to use and some extra connection information&lt;br /&gt;
* three folders containing the three simple games provided as examples&lt;br /&gt;
* a folder for the game you will be developing initialized after our &#039;EmptyGame&#039; template, providing the game structure (and comments! and examples!)&lt;br /&gt;
&lt;br /&gt;
Then... that&#039;s all, you can start!&lt;br /&gt;
&lt;br /&gt;
== Great, I&#039;m in! ... How should I start? ==&lt;br /&gt;
&lt;br /&gt;
If you didn&#039;t already, check the presentations at the top of this page to get the basics.&lt;br /&gt;
&lt;br /&gt;
After that, we would advise you to take a peek at this tutorial for creating the Reversi example game:&lt;br /&gt;
* [[Tutorial reversi]]&lt;br /&gt;
&lt;br /&gt;
Then start editing files and see what happens! ;)&lt;br /&gt;
&lt;br /&gt;
== Other resources ==&lt;br /&gt;
&lt;br /&gt;
[[Studio FAQ]]&lt;br /&gt;
&lt;br /&gt;
[[Studio file reference]]&lt;br /&gt;
&lt;br /&gt;
[[Studio function reference]]&lt;br /&gt;
&lt;br /&gt;
[[Studio back-office]]&lt;br /&gt;
&lt;br /&gt;
[http://forum.boardgamearena.com/viewforum.php?f=12 Development forum]&lt;br /&gt;
&lt;br /&gt;
[http://forum.boardgamearena.com/viewforum.php?f=4 Bugs forum]&lt;/div&gt;</summary>
		<author><name>Een</name></author>
	</entry>
	<entry>
		<id>https://sv.doc.boardgamearena.com/index.php?title=Tutorial_gomoku&amp;diff=335</id>
		<title>Tutorial gomoku</title>
		<link rel="alternate" type="text/html" href="https://sv.doc.boardgamearena.com/index.php?title=Tutorial_gomoku&amp;diff=335"/>
		<updated>2012-11-30T13:56:04Z</updated>

		<summary type="html">&lt;p&gt;Een: Created page with &amp;quot;TODO&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;TODO&lt;/div&gt;</summary>
		<author><name>Een</name></author>
	</entry>
	<entry>
		<id>https://sv.doc.boardgamearena.com/index.php?title=Development&amp;diff=334</id>
		<title>Development</title>
		<link rel="alternate" type="text/html" href="https://sv.doc.boardgamearena.com/index.php?title=Development&amp;diff=334"/>
		<updated>2012-11-30T13:54:35Z</updated>

		<summary type="html">&lt;p&gt;Een: /* Great, I&amp;#039;m in! ... How should I start? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Bga_studio_small.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What is this? ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Board Game Arena Studio&#039;&#039;&#039; is a platform to build online board game adaptation using the Board Game Arena platform.&lt;br /&gt;
&lt;br /&gt;
It is open to any gamer with development skills :)&lt;br /&gt;
&lt;br /&gt;
See announcement here:&lt;br /&gt;
http://forum.boardgamearena.com/viewtopic.php?f=10&amp;amp;t=1973&lt;br /&gt;
&lt;br /&gt;
== How can I develop a board game on BGA Studio? ==&lt;br /&gt;
&lt;br /&gt;
Check these presentations first:&lt;br /&gt;
&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/5-reasons-why-you-should-use-bga-studio-for-your-online-board-game 5 reasons why you should use BGA Studio for your online board game]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/the-8-steps-to-create-a-board-game-on-board-game-arena The 8 steps to create a board game on Board Game Arena]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/the-bga-framework-at-a-glance The BGA Framework at a glance]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/bga-studio-focus-on-bga-game-state-machine Focus on BGA game state machine]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/bga-studio-guidelines BGA developers guidelines]&lt;br /&gt;
&lt;br /&gt;
== How do I register? ==&lt;br /&gt;
&lt;br /&gt;
Registering is done by e-mail to [http://en.boardgamearena.com/#!doc/Contact_us BGA contact address].&lt;br /&gt;
&lt;br /&gt;
Please provide the following information:&lt;br /&gt;
* your developer user name to be used on “BGA Studio” (for technical reasons, no space, number or special character);&lt;br /&gt;
* your real name;&lt;br /&gt;
* your e-mail address;&lt;br /&gt;
* your postal address.&lt;br /&gt;
&lt;br /&gt;
We also drafted a quick [http://en.doc.boardgamearena.com/images/0/02/BGA_TC_Dev_en.pdf &#039;terms &amp;amp; conditions&#039; document]. It&#039;s very light, so as to get to the fun part faster.&lt;br /&gt;
&lt;br /&gt;
To be valid, the registration e-mail must contain this document as an attachment, with the following sentence in the mail body: &#039;I agree with the terms &amp;amp; conditions for developers on BGA Studio joined as an attachment&#039;.&lt;br /&gt;
&lt;br /&gt;
And of course, we also encourage you to tell us about which games you would love to develop on BGA!&lt;br /&gt;
&lt;br /&gt;
== Ok, I registered, what do I get? ==&lt;br /&gt;
&lt;br /&gt;
First, you get by e-mail a list of the games we have an agreement to develop. Please keep this list confidential, or it would ruin our tradition to make players guess the name of the next game on the forum!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;NB: during the BETA pĥase, to smooth things up and make sure that everything is working correctly, &lt;br /&gt;
we will work only with 3 fearless developers on 3 simple games.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Second, once we have discussed together and are fixed on a game you&#039;ll take charge of, we&#039;ll create your studio account and you will get:&lt;br /&gt;
* one login / password to access files through SFTP&lt;br /&gt;
* ten logins with numeric suffixes from 0 to 9 and a common simple password to test games on the studio website while developing.&lt;br /&gt;
&lt;br /&gt;
Once logged in to your SFTP root folder, you will find:&lt;br /&gt;
* a &#039;resources.html&#039; file with the URLs to use and some extra connection information&lt;br /&gt;
* three folders containing the three simple games provided as examples&lt;br /&gt;
* a folder for the game you will be developing initialized after our &#039;EmptyGame&#039; template, providing the game structure (and comments! and examples!)&lt;br /&gt;
&lt;br /&gt;
Then... that&#039;s all, you can start!&lt;br /&gt;
&lt;br /&gt;
== Great, I&#039;m in! ... How should I start? ==&lt;br /&gt;
&lt;br /&gt;
If you didn&#039;t already, check the presentations at the top of this page to get the basics.&lt;br /&gt;
&lt;br /&gt;
After that, we would advise you to take a peek at this tutorial for creating the Reversi example game:&lt;br /&gt;
* [[Tutorial reversi]]&lt;br /&gt;
&lt;br /&gt;
Then start editing files and see what happens! ;)&lt;br /&gt;
&lt;br /&gt;
== Other resources ==&lt;br /&gt;
&lt;br /&gt;
[[Studio FAQ]]&lt;br /&gt;
&lt;br /&gt;
[[Studio file reference]]&lt;br /&gt;
&lt;br /&gt;
[[Studio function reference]]&lt;br /&gt;
&lt;br /&gt;
[[Studio back-office]]&lt;br /&gt;
&lt;br /&gt;
[http://forum.boardgamearena.com/viewforum.php?f=12 Development forum]&lt;br /&gt;
&lt;br /&gt;
[http://forum.boardgamearena.com/viewforum.php?f=4 Bugs forum]&lt;/div&gt;</summary>
		<author><name>Een</name></author>
	</entry>
	<entry>
		<id>https://sv.doc.boardgamearena.com/index.php?title=Development&amp;diff=333</id>
		<title>Development</title>
		<link rel="alternate" type="text/html" href="https://sv.doc.boardgamearena.com/index.php?title=Development&amp;diff=333"/>
		<updated>2012-11-30T13:54:00Z</updated>

		<summary type="html">&lt;p&gt;Een: /* Great, I&amp;#039;m in! ... How should I start? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Bga_studio_small.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What is this? ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Board Game Arena Studio&#039;&#039;&#039; is a platform to build online board game adaptation using the Board Game Arena platform.&lt;br /&gt;
&lt;br /&gt;
It is open to any gamer with development skills :)&lt;br /&gt;
&lt;br /&gt;
See announcement here:&lt;br /&gt;
http://forum.boardgamearena.com/viewtopic.php?f=10&amp;amp;t=1973&lt;br /&gt;
&lt;br /&gt;
== How can I develop a board game on BGA Studio? ==&lt;br /&gt;
&lt;br /&gt;
Check these presentations first:&lt;br /&gt;
&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/5-reasons-why-you-should-use-bga-studio-for-your-online-board-game 5 reasons why you should use BGA Studio for your online board game]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/the-8-steps-to-create-a-board-game-on-board-game-arena The 8 steps to create a board game on Board Game Arena]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/the-bga-framework-at-a-glance The BGA Framework at a glance]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/bga-studio-focus-on-bga-game-state-machine Focus on BGA game state machine]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/bga-studio-guidelines BGA developers guidelines]&lt;br /&gt;
&lt;br /&gt;
== How do I register? ==&lt;br /&gt;
&lt;br /&gt;
Registering is done by e-mail to [http://en.boardgamearena.com/#!doc/Contact_us BGA contact address].&lt;br /&gt;
&lt;br /&gt;
Please provide the following information:&lt;br /&gt;
* your developer user name to be used on “BGA Studio” (for technical reasons, no space, number or special character);&lt;br /&gt;
* your real name;&lt;br /&gt;
* your e-mail address;&lt;br /&gt;
* your postal address.&lt;br /&gt;
&lt;br /&gt;
We also drafted a quick [http://en.doc.boardgamearena.com/images/0/02/BGA_TC_Dev_en.pdf &#039;terms &amp;amp; conditions&#039; document]. It&#039;s very light, so as to get to the fun part faster.&lt;br /&gt;
&lt;br /&gt;
To be valid, the registration e-mail must contain this document as an attachment, with the following sentence in the mail body: &#039;I agree with the terms &amp;amp; conditions for developers on BGA Studio joined as an attachment&#039;.&lt;br /&gt;
&lt;br /&gt;
And of course, we also encourage you to tell us about which games you would love to develop on BGA!&lt;br /&gt;
&lt;br /&gt;
== Ok, I registered, what do I get? ==&lt;br /&gt;
&lt;br /&gt;
First, you get by e-mail a list of the games we have an agreement to develop. Please keep this list confidential, or it would ruin our tradition to make players guess the name of the next game on the forum!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;NB: during the BETA pĥase, to smooth things up and make sure that everything is working correctly, &lt;br /&gt;
we will work only with 3 fearless developers on 3 simple games.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Second, once we have discussed together and are fixed on a game you&#039;ll take charge of, we&#039;ll create your studio account and you will get:&lt;br /&gt;
* one login / password to access files through SFTP&lt;br /&gt;
* ten logins with numeric suffixes from 0 to 9 and a common simple password to test games on the studio website while developing.&lt;br /&gt;
&lt;br /&gt;
Once logged in to your SFTP root folder, you will find:&lt;br /&gt;
* a &#039;resources.html&#039; file with the URLs to use and some extra connection information&lt;br /&gt;
* three folders containing the three simple games provided as examples&lt;br /&gt;
* a folder for the game you will be developing initialized after our &#039;EmptyGame&#039; template, providing the game structure (and comments! and examples!)&lt;br /&gt;
&lt;br /&gt;
Then... that&#039;s all, you can start!&lt;br /&gt;
&lt;br /&gt;
== Great, I&#039;m in! ... How should I start? ==&lt;br /&gt;
&lt;br /&gt;
If you didn&#039;t already, check the presentations at the top of this page to get the basics.&lt;br /&gt;
&lt;br /&gt;
After that, we would advise you to take a peek at this tutorial for the Reversi example game:&lt;br /&gt;
* [[Tutorial reversi]]&lt;br /&gt;
&lt;br /&gt;
Then start editing files and see what happens! ;)&lt;br /&gt;
&lt;br /&gt;
== Other resources ==&lt;br /&gt;
&lt;br /&gt;
[[Studio FAQ]]&lt;br /&gt;
&lt;br /&gt;
[[Studio file reference]]&lt;br /&gt;
&lt;br /&gt;
[[Studio function reference]]&lt;br /&gt;
&lt;br /&gt;
[[Studio back-office]]&lt;br /&gt;
&lt;br /&gt;
[http://forum.boardgamearena.com/viewforum.php?f=12 Development forum]&lt;br /&gt;
&lt;br /&gt;
[http://forum.boardgamearena.com/viewforum.php?f=4 Bugs forum]&lt;/div&gt;</summary>
		<author><name>Een</name></author>
	</entry>
	<entry>
		<id>https://sv.doc.boardgamearena.com/index.php?title=Development&amp;diff=332</id>
		<title>Development</title>
		<link rel="alternate" type="text/html" href="https://sv.doc.boardgamearena.com/index.php?title=Development&amp;diff=332"/>
		<updated>2012-11-30T13:50:28Z</updated>

		<summary type="html">&lt;p&gt;Een: /* How can I develop a board game on BGA Studio? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Bga_studio_small.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What is this? ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Board Game Arena Studio&#039;&#039;&#039; is a platform to build online board game adaptation using the Board Game Arena platform.&lt;br /&gt;
&lt;br /&gt;
It is open to any gamer with development skills :)&lt;br /&gt;
&lt;br /&gt;
See announcement here:&lt;br /&gt;
http://forum.boardgamearena.com/viewtopic.php?f=10&amp;amp;t=1973&lt;br /&gt;
&lt;br /&gt;
== How can I develop a board game on BGA Studio? ==&lt;br /&gt;
&lt;br /&gt;
Check these presentations first:&lt;br /&gt;
&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/5-reasons-why-you-should-use-bga-studio-for-your-online-board-game 5 reasons why you should use BGA Studio for your online board game]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/the-8-steps-to-create-a-board-game-on-board-game-arena The 8 steps to create a board game on Board Game Arena]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/the-bga-framework-at-a-glance The BGA Framework at a glance]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/bga-studio-focus-on-bga-game-state-machine Focus on BGA game state machine]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/bga-studio-guidelines BGA developers guidelines]&lt;br /&gt;
&lt;br /&gt;
== How do I register? ==&lt;br /&gt;
&lt;br /&gt;
Registering is done by e-mail to [http://en.boardgamearena.com/#!doc/Contact_us BGA contact address].&lt;br /&gt;
&lt;br /&gt;
Please provide the following information:&lt;br /&gt;
* your developer user name to be used on “BGA Studio” (for technical reasons, no space, number or special character);&lt;br /&gt;
* your real name;&lt;br /&gt;
* your e-mail address;&lt;br /&gt;
* your postal address.&lt;br /&gt;
&lt;br /&gt;
We also drafted a quick [http://en.doc.boardgamearena.com/images/0/02/BGA_TC_Dev_en.pdf &#039;terms &amp;amp; conditions&#039; document]. It&#039;s very light, so as to get to the fun part faster.&lt;br /&gt;
&lt;br /&gt;
To be valid, the registration e-mail must contain this document as an attachment, with the following sentence in the mail body: &#039;I agree with the terms &amp;amp; conditions for developers on BGA Studio joined as an attachment&#039;.&lt;br /&gt;
&lt;br /&gt;
And of course, we also encourage you to tell us about which games you would love to develop on BGA!&lt;br /&gt;
&lt;br /&gt;
== Ok, I registered, what do I get? ==&lt;br /&gt;
&lt;br /&gt;
First, you get by e-mail a list of the games we have an agreement to develop. Please keep this list confidential, or it would ruin our tradition to make players guess the name of the next game on the forum!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;NB: during the BETA pĥase, to smooth things up and make sure that everything is working correctly, &lt;br /&gt;
we will work only with 3 fearless developers on 3 simple games.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Second, once we have discussed together and are fixed on a game you&#039;ll take charge of, we&#039;ll create your studio account and you will get:&lt;br /&gt;
* one login / password to access files through SFTP&lt;br /&gt;
* ten logins with numeric suffixes from 0 to 9 and a common simple password to test games on the studio website while developing.&lt;br /&gt;
&lt;br /&gt;
Once logged in to your SFTP root folder, you will find:&lt;br /&gt;
* a &#039;resources.html&#039; file with the URLs to use and some extra connection information&lt;br /&gt;
* three folders containing the three simple games provided as examples&lt;br /&gt;
* a folder for the game you will be developing initialized after our &#039;EmptyGame&#039; template, providing the game structure (and comments! and examples!)&lt;br /&gt;
&lt;br /&gt;
Then... that&#039;s all, you can start!&lt;br /&gt;
&lt;br /&gt;
== Great, I&#039;m in! ... How should I start? ==&lt;br /&gt;
&lt;br /&gt;
If you didn&#039;t already, check the presentations at the top of this page to get the basics.&lt;br /&gt;
&lt;br /&gt;
After that, we would advise you to take a peek at tutorials for two example games:&lt;br /&gt;
* [[Tutorial reversi]]&lt;br /&gt;
* [[Tutorial gomoku ]]&lt;br /&gt;
&lt;br /&gt;
Then start editing files and see what happens! ;)&lt;br /&gt;
&lt;br /&gt;
== Other resources ==&lt;br /&gt;
&lt;br /&gt;
[[Studio FAQ]]&lt;br /&gt;
&lt;br /&gt;
[[Studio file reference]]&lt;br /&gt;
&lt;br /&gt;
[[Studio function reference]]&lt;br /&gt;
&lt;br /&gt;
[[Studio back-office]]&lt;br /&gt;
&lt;br /&gt;
[http://forum.boardgamearena.com/viewforum.php?f=12 Development forum]&lt;br /&gt;
&lt;br /&gt;
[http://forum.boardgamearena.com/viewforum.php?f=4 Bugs forum]&lt;/div&gt;</summary>
		<author><name>Een</name></author>
	</entry>
	<entry>
		<id>https://sv.doc.boardgamearena.com/index.php?title=Fil:BGA_TC_Dev_en.pdf&amp;diff=331</id>
		<title>Fil:BGA TC Dev en.pdf</title>
		<link rel="alternate" type="text/html" href="https://sv.doc.boardgamearena.com/index.php?title=Fil:BGA_TC_Dev_en.pdf&amp;diff=331"/>
		<updated>2012-11-30T13:33:17Z</updated>

		<summary type="html">&lt;p&gt;Een: uploaded a new version of &amp;amp;quot;File:BGA TC Dev en.pdf&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Een</name></author>
	</entry>
	<entry>
		<id>https://sv.doc.boardgamearena.com/index.php?title=Studio_FAQ&amp;diff=330</id>
		<title>Studio FAQ</title>
		<link rel="alternate" type="text/html" href="https://sv.doc.boardgamearena.com/index.php?title=Studio_FAQ&amp;diff=330"/>
		<updated>2012-11-30T13:13:43Z</updated>

		<summary type="html">&lt;p&gt;Een: /* Is there a special way to declare the strings that must be translated? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a place where we will collect and answer frequently asked questions.&lt;br /&gt;
&lt;br /&gt;
== What should I use to access the files through SFTP? ==&lt;br /&gt;
&lt;br /&gt;
There is a lot of tools to do that. Use the one you are the most comfortable with.&lt;br /&gt;
&lt;br /&gt;
On Linux, you can for example use the &#039;Connect to server&#039; function of the Nautilus file management system, or use sshfs.&lt;br /&gt;
&lt;br /&gt;
On Windows, there is for example the WinSCP client.&lt;br /&gt;
&lt;br /&gt;
== It&#039;s pretty annoying to log in with multiple users to start a game. Is there some easier way? ==&lt;br /&gt;
&lt;br /&gt;
You can use the &#039;Express start&#039; 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.&lt;br /&gt;
&lt;br /&gt;
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&#039;s perspective.&lt;br /&gt;
&lt;br /&gt;
You can also end the game in two clicks by clicking the &#039;End game&#039; button then selecting &#039;Express game stop&#039; in the popup.&lt;br /&gt;
&lt;br /&gt;
== What is the working language on BGA studio? ==&lt;br /&gt;
&lt;br /&gt;
Working language is &#039;&#039;&#039;English&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Variables and functions must be named with English words.&lt;br /&gt;
&lt;br /&gt;
Comments must be written in English.&lt;br /&gt;
&lt;br /&gt;
Game interface strings and game logs must be written in English.&lt;br /&gt;
&lt;br /&gt;
== How can I provide translation in my language? == &lt;br /&gt;
&lt;br /&gt;
BGA administrators will translate the game in French before the game release.&lt;br /&gt;
&lt;br /&gt;
After the game release, the collaborative translation interface can be used to translate into other languages.&lt;br /&gt;
&lt;br /&gt;
== Is there a special way to declare the strings that must be translated? == &lt;br /&gt;
&lt;br /&gt;
Yes. This declaration is made through transparent functions, that depend on the context.&lt;br /&gt;
&lt;br /&gt;
In javascript files, you should use _( &#039;My string to translate&#039; ).&lt;br /&gt;
&lt;br /&gt;
In php files, you should use self::_( &#039;My string to translate&#039; ) when the string can be translated on the server side (ex: title included in the game layout) and clienttranslate( &#039;My string to translate&#039; ) when the string must be translated on the client side (ex: message for the game log).&lt;br /&gt;
&lt;br /&gt;
== I updated the images in the &#039;img&#039; folder of my game, but they don&#039;t show? ==&lt;br /&gt;
&lt;br /&gt;
Please try emptying your browser cache and reloading the page.&lt;br /&gt;
&lt;br /&gt;
== I added some game options / some game statistics, but they don&#039;t show? ==&lt;br /&gt;
&lt;br /&gt;
An extra deployment action from the BGA administrators is needed to activate new game options and statistics. Please contact us.&lt;br /&gt;
&lt;br /&gt;
== Is there a quick way to access the database for my current table? ==&lt;br /&gt;
&lt;br /&gt;
Yes! While playing a game on studio, you have a &amp;quot;Go to game database&amp;quot; link at the bottom of your game. This link will bring you directly to the database for the current table.&lt;/div&gt;</summary>
		<author><name>Een</name></author>
	</entry>
	<entry>
		<id>https://sv.doc.boardgamearena.com/index.php?title=Studio_FAQ&amp;diff=329</id>
		<title>Studio FAQ</title>
		<link rel="alternate" type="text/html" href="https://sv.doc.boardgamearena.com/index.php?title=Studio_FAQ&amp;diff=329"/>
		<updated>2012-11-30T13:13:17Z</updated>

		<summary type="html">&lt;p&gt;Een: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a place where we will collect and answer frequently asked questions.&lt;br /&gt;
&lt;br /&gt;
== What should I use to access the files through SFTP? ==&lt;br /&gt;
&lt;br /&gt;
There is a lot of tools to do that. Use the one you are the most comfortable with.&lt;br /&gt;
&lt;br /&gt;
On Linux, you can for example use the &#039;Connect to server&#039; function of the Nautilus file management system, or use sshfs.&lt;br /&gt;
&lt;br /&gt;
On Windows, there is for example the WinSCP client.&lt;br /&gt;
&lt;br /&gt;
== It&#039;s pretty annoying to log in with multiple users to start a game. Is there some easier way? ==&lt;br /&gt;
&lt;br /&gt;
You can use the &#039;Express start&#039; 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.&lt;br /&gt;
&lt;br /&gt;
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&#039;s perspective.&lt;br /&gt;
&lt;br /&gt;
You can also end the game in two clicks by clicking the &#039;End game&#039; button then selecting &#039;Express game stop&#039; in the popup.&lt;br /&gt;
&lt;br /&gt;
== What is the working language on BGA studio? ==&lt;br /&gt;
&lt;br /&gt;
Working language is &#039;&#039;&#039;English&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Variables and functions must be named with English words.&lt;br /&gt;
&lt;br /&gt;
Comments must be written in English.&lt;br /&gt;
&lt;br /&gt;
Game interface strings and game logs must be written in English.&lt;br /&gt;
&lt;br /&gt;
== How can I provide translation in my language? == &lt;br /&gt;
&lt;br /&gt;
BGA administrators will translate the game in French before the game release.&lt;br /&gt;
&lt;br /&gt;
After the game release, the collaborative translation interface can be used to translate into other languages.&lt;br /&gt;
&lt;br /&gt;
== Is there a special way to declare the strings that must be translated? == &lt;br /&gt;
&lt;br /&gt;
Yes. This declaration is made through transparent functions, that depend on the context.&lt;br /&gt;
In javascript files, you should use _( &#039;My string to translate&#039; )&lt;br /&gt;
In php files, you should use self::_( &#039;My string to translate&#039; ) when the string can be translated on the server side (ex: title included in the game layout) and clienttranslate( &#039;My string to translate&#039; ) when the string must be translated on the client side (ex: message for the game log).&lt;br /&gt;
&lt;br /&gt;
== I updated the images in the &#039;img&#039; folder of my game, but they don&#039;t show? ==&lt;br /&gt;
&lt;br /&gt;
Please try emptying your browser cache and reloading the page.&lt;br /&gt;
&lt;br /&gt;
== I added some game options / some game statistics, but they don&#039;t show? ==&lt;br /&gt;
&lt;br /&gt;
An extra deployment action from the BGA administrators is needed to activate new game options and statistics. Please contact us.&lt;br /&gt;
&lt;br /&gt;
== Is there a quick way to access the database for my current table? ==&lt;br /&gt;
&lt;br /&gt;
Yes! While playing a game on studio, you have a &amp;quot;Go to game database&amp;quot; link at the bottom of your game. This link will bring you directly to the database for the current table.&lt;/div&gt;</summary>
		<author><name>Een</name></author>
	</entry>
	<entry>
		<id>https://sv.doc.boardgamearena.com/index.php?title=Development&amp;diff=328</id>
		<title>Development</title>
		<link rel="alternate" type="text/html" href="https://sv.doc.boardgamearena.com/index.php?title=Development&amp;diff=328"/>
		<updated>2012-11-29T23:08:13Z</updated>

		<summary type="html">&lt;p&gt;Een: /* Great, I&amp;#039;m in! ... How should I start? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Bga_studio_small.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What is this? ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Board Game Arena Studio&#039;&#039;&#039; is a platform to build online board game adaptation using the Board Game Arena platform.&lt;br /&gt;
&lt;br /&gt;
It is open to any gamer with development skills :)&lt;br /&gt;
&lt;br /&gt;
See announcement here:&lt;br /&gt;
http://forum.boardgamearena.com/viewtopic.php?f=10&amp;amp;t=1973&lt;br /&gt;
&lt;br /&gt;
== How can I develop a board game on BGA Studio? ==&lt;br /&gt;
&lt;br /&gt;
Check these presentations first:&lt;br /&gt;
&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/5-reasons-why-you-should-use-bga-studio-for-your-online-board-game 5 reasons why you should use BGA Studio for your online board game]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/the-8-steps-to-create-a-board-game-on-board-game-arena The 8 steps to create a board game on Board Game Arena]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/the-bga-framework-at-a-glance The BGA Framework at a glance]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/bga-studio-focus-on-bga-game-state-machine Focus on BGA game state machine]&lt;br /&gt;
&lt;br /&gt;
== How do I register? ==&lt;br /&gt;
&lt;br /&gt;
Registering is done by e-mail to [http://en.boardgamearena.com/#!doc/Contact_us BGA contact address].&lt;br /&gt;
&lt;br /&gt;
Please provide the following information:&lt;br /&gt;
* your developer user name to be used on “BGA Studio” (for technical reasons, no space, number or special character);&lt;br /&gt;
* your real name;&lt;br /&gt;
* your e-mail address;&lt;br /&gt;
* your postal address.&lt;br /&gt;
&lt;br /&gt;
We also drafted a quick [http://en.doc.boardgamearena.com/images/0/02/BGA_TC_Dev_en.pdf &#039;terms &amp;amp; conditions&#039; document]. It&#039;s very light, so as to get to the fun part faster.&lt;br /&gt;
&lt;br /&gt;
To be valid, the registration e-mail must contain this document as an attachment, with the following sentence in the mail body: &#039;I agree with the terms &amp;amp; conditions for developers on BGA Studio joined as an attachment&#039;.&lt;br /&gt;
&lt;br /&gt;
And of course, we also encourage you to tell us about which games you would love to develop on BGA!&lt;br /&gt;
&lt;br /&gt;
== Ok, I registered, what do I get? ==&lt;br /&gt;
&lt;br /&gt;
First, you get by e-mail a list of the games we have an agreement to develop. Please keep this list confidential, or it would ruin our tradition to make players guess the name of the next game on the forum!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;NB: during the BETA pĥase, to smooth things up and make sure that everything is working correctly, &lt;br /&gt;
we will work only with 3 fearless developers on 3 simple games.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Second, once we have discussed together and are fixed on a game you&#039;ll take charge of, we&#039;ll create your studio account and you will get:&lt;br /&gt;
* one login / password to access files through SFTP&lt;br /&gt;
* ten logins with numeric suffixes from 0 to 9 and a common simple password to test games on the studio website while developing.&lt;br /&gt;
&lt;br /&gt;
Once logged in to your SFTP root folder, you will find:&lt;br /&gt;
* a &#039;resources.html&#039; file with the URLs to use and some extra connection information&lt;br /&gt;
* three folders containing the three simple games provided as examples&lt;br /&gt;
* a folder for the game you will be developing initialized after our &#039;EmptyGame&#039; template, providing the game structure (and comments! and examples!)&lt;br /&gt;
&lt;br /&gt;
Then... that&#039;s all, you can start!&lt;br /&gt;
&lt;br /&gt;
== Great, I&#039;m in! ... How should I start? ==&lt;br /&gt;
&lt;br /&gt;
If you didn&#039;t already, check the presentations at the top of this page to get the basics.&lt;br /&gt;
&lt;br /&gt;
After that, we would advise you to take a peek at tutorials for two example games:&lt;br /&gt;
* [[Tutorial reversi]]&lt;br /&gt;
* [[Tutorial gomoku ]]&lt;br /&gt;
&lt;br /&gt;
Then start editing files and see what happens! ;)&lt;br /&gt;
&lt;br /&gt;
== Other resources ==&lt;br /&gt;
&lt;br /&gt;
[[Studio FAQ]]&lt;br /&gt;
&lt;br /&gt;
[[Studio file reference]]&lt;br /&gt;
&lt;br /&gt;
[[Studio function reference]]&lt;br /&gt;
&lt;br /&gt;
[[Studio back-office]]&lt;br /&gt;
&lt;br /&gt;
[http://forum.boardgamearena.com/viewforum.php?f=12 Development forum]&lt;br /&gt;
&lt;br /&gt;
[http://forum.boardgamearena.com/viewforum.php?f=4 Bugs forum]&lt;/div&gt;</summary>
		<author><name>Een</name></author>
	</entry>
	<entry>
		<id>https://sv.doc.boardgamearena.com/index.php?title=Studio_function_reference&amp;diff=327</id>
		<title>Studio function reference</title>
		<link rel="alternate" type="text/html" href="https://sv.doc.boardgamearena.com/index.php?title=Studio_function_reference&amp;diff=327"/>
		<updated>2012-11-29T23:07:06Z</updated>

		<summary type="html">&lt;p&gt;Een: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page references useful server side and client side functions (and some interesting class variables), so that nobody needs to reinvent the wheel (unless he wants to).&lt;br /&gt;
&lt;br /&gt;
This list is not exhaustive, in particular functions already well described by comments in the &#039;EmptyGame&#039; game template may not be described again below.&lt;br /&gt;
&lt;br /&gt;
== Server side (PHP functions) ==&lt;br /&gt;
&lt;br /&gt;
=== APP_GameAction class (&amp;lt;gamename&amp;gt;.action.php) ===&lt;br /&gt;
&lt;br /&gt;
; function isArg( $argName )&lt;br /&gt;
: Is this argument filled ?&lt;br /&gt;
; function getArg( $argName, $argType, $mandatory=false, $default=NULL, $argTypeDetails=array(), $bCanFail=false  )&lt;br /&gt;
: Get script argument with the correct type&lt;br /&gt;
: bCanFail means than a validation failure is possible (user input)&lt;br /&gt;
: The main argType values are as follows.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define( &#039;AT_int&#039;, 0 );        //  an integer&lt;br /&gt;
define( &#039;AT_posint&#039;, 1 );     //  a positive integer &lt;br /&gt;
define( &#039;AT_float&#039;, 2 );      //  a float&lt;br /&gt;
define( &#039;AT_email&#039;, 3 );      //  an email  &lt;br /&gt;
define( &#039;AT_url&#039;, 4 );        //  a URL&lt;br /&gt;
define( &#039;AT_bool&#039;, 5 );       //  1/0/true/false&lt;br /&gt;
define( &#039;AT_enum&#039;, 6 );       //  argTypeDetails list the possible values&lt;br /&gt;
define( &#039;AT_alphanum&#039;, 7 );   //  only 0-9a-zA-Z_ and space&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Table class (&amp;lt;gamename&amp;gt;.game.php) ===&lt;br /&gt;
&lt;br /&gt;
; function _( $text )&lt;br /&gt;
: Transparent function, used to mark strings to be translated on the server side (ex: error message)&lt;br /&gt;
; function clienttranslate( $string )&lt;br /&gt;
: Transparent function: used to mark string to be translated on client side (ex: notification message)&lt;br /&gt;
; function getPlayersNumber()&lt;br /&gt;
: Returns the number of players playing at the table&lt;br /&gt;
; function checkAction( $actionName, $bThrowException=true )&lt;br /&gt;
: Check if action is valid regarding current game state (exception if fails)&lt;br /&gt;
: if &amp;quot;bThrowException&amp;quot; is set to &amp;quot;false&amp;quot;, the function return false in case of failure instead of throwing and exception&lt;br /&gt;
; function getActivePlayerId()&lt;br /&gt;
: Get the &amp;quot;active_player&amp;quot;, whatever what is the current state type&lt;br /&gt;
: Note: it does NOT mean that this player is active right now, because state type could be &amp;quot;game&amp;quot; or &amp;quot;multiplayer&amp;quot;&lt;br /&gt;
; function getActivePlayerName()&lt;br /&gt;
: Get the &amp;quot;active_player&amp;quot; name&lt;br /&gt;
; function getCurrentPlayerId()&lt;br /&gt;
: Get the &amp;quot;current_player&amp;quot;. The current player is the one from which the action originated. It is not always the active player.&lt;br /&gt;
; function getCurrentPlayerName()&lt;br /&gt;
: Get the &amp;quot;current_player&amp;quot; name&lt;br /&gt;
; function getCurrentPlayerColor()&lt;br /&gt;
: Get the &amp;quot;current_player&amp;quot; color&lt;br /&gt;
; function isCurrentPlayerZombie()&lt;br /&gt;
: Check the &amp;quot;current_player&amp;quot; zombie status&lt;br /&gt;
; function activeNextPlayer()&lt;br /&gt;
: Make the next player active&lt;br /&gt;
; function activePrevPlayer()&lt;br /&gt;
: Make the previous player active&lt;br /&gt;
; function giveExtraTime( $player_id, $specific_time=null )&lt;br /&gt;
: Give standard extra time to this player (standard extra time is a game option)&lt;br /&gt;
; function initStat( $table_or_player, $name, $value, $player_id=null )&lt;br /&gt;
: Create a statistic entry for the specified statistics with a default value&lt;br /&gt;
: In case of a &amp;quot;player&amp;quot; entry, if player_id is not specified, all players are set to the same value&lt;br /&gt;
; function setStat( $value, $name, $player_id = null )&lt;br /&gt;
: Set statistic value&lt;br /&gt;
; function incStat( $delta, $name, $player_id = null )&lt;br /&gt;
: Increment (or decrement) specified value&lt;br /&gt;
; function DbQuery( $sql )&lt;br /&gt;
: Executes sql query on the database&lt;br /&gt;
; function getCollectionFromDB( $sql, $bSingleValue=false )&lt;br /&gt;
: Returns an associative array of rows for the sql query. First column must be a primary or alternate key. The resulting collection can be empty.&lt;br /&gt;
; protected function getNonEmptyCollectionFromDB( $sql )&lt;br /&gt;
: Idem, but raise an exception if the collection is empty&lt;br /&gt;
; function getUniqueValueFromDB( $sql )&lt;br /&gt;
: Returns a unique value from DB or null if no value is found&lt;br /&gt;
: Raise an exception if more than 1 row is returned&lt;br /&gt;
; function getObjectFromDB( $sql )&lt;br /&gt;
: Returns one row for the sql query as an associative array or null if there is no result&lt;br /&gt;
: Raise an exception if the query return more than one row&lt;br /&gt;
; function getNonEmptyObjectFromDB( $sql )&lt;br /&gt;
: Idem, but raise an exception if the query doesn&#039;t return exactly one row&lt;br /&gt;
&lt;br /&gt;
=== Exceptions you can throw ===&lt;br /&gt;
&lt;br /&gt;
; throw new BgaUserException ( $error_message)&lt;br /&gt;
: Base class to notify a user error&lt;br /&gt;
; throw new BgaSystemException ( $error_message)&lt;br /&gt;
: Base class to notify a system exception. The message will be hidden from the user, but show in the logs. Use this if the message contains technical information.&lt;br /&gt;
; throw new BgaSystemVisibleException ( $error_message)&lt;br /&gt;
: Same as previous, except that the message is visible by the user. You can use this if the message is understandable by the user.&lt;br /&gt;
&lt;br /&gt;
== Client side (Javascript functions) ==&lt;br /&gt;
&lt;br /&gt;
; this.player_id&lt;br /&gt;
: Id of the player on whose browser the code is running.&lt;br /&gt;
&lt;br /&gt;
; this.isSpectator&lt;br /&gt;
: Flag set to true if the user at the table is a spectator (not a player).&lt;br /&gt;
&lt;br /&gt;
; this.gamedatas&lt;br /&gt;
: Contains your initial set of datas to init the game, created at game start or game refresh (F5)&lt;br /&gt;
: You can update it as needed to keep an up to date reference of the game on the client side.&lt;br /&gt;
&lt;br /&gt;
; slideToObject: function( mobile_obj, target_obj, duration, delay )&lt;br /&gt;
: Return an dojo.fx animation that is sliding a DOM object from its current position over another one&lt;br /&gt;
: Animate a slide of the DOM object referred to by domNodeToSlide from its current position to the xpos, ypos relative to the object referred to by domNodeToSlideTo.&lt;br /&gt;
&lt;br /&gt;
; slideToObjectPos: function( mobile_obj, target_obj, target_x, target_y, duration, delay )&lt;br /&gt;
: Return an dojo.fx animation that is sliding a DOM object from its current position over another one at the given coordinates relative to the target object.&lt;br /&gt;
&lt;br /&gt;
; updateCounters(counters)&lt;br /&gt;
: Useful for updating game counters in the player panel (such as resources). &lt;br /&gt;
; &#039;counters&#039; arg is an associative array [counter_name_value =&amp;gt; [ &#039;counter_name&#039; =&amp;gt; counter_name_value, &#039;counter_value&#039; =&amp;gt; counter_value_value], ... ]&lt;br /&gt;
: All counters must be referenced in this.gamedatas.counters and will be updated.&lt;br /&gt;
: DOM objects referenced by &#039;counter_name&#039; will have their innerHTML updated with &#039;counter_value&#039;.&lt;br /&gt;
&lt;br /&gt;
; addTooltip( node, _( helpString ), _( actionString ), delay );&lt;br /&gt;
: Add a simple text tooltip to the DOM node. Only one of &#039;helpString&#039; or &#039;actionString&#039; must be used. _() must be used for the text to be marked for translation.&lt;br /&gt;
&lt;br /&gt;
; addTooltipHtml( node, html, delay );&lt;br /&gt;
: Add an HTML tooltip to the DOM node (for more elaborate content such as presenting a bigger version of a card).&lt;br /&gt;
&lt;br /&gt;
; addTooltipToClass( cssClass, _( helpString ), _( actionString ), delay );&lt;br /&gt;
: Add a simple text tooltip to all the DOM nodes set with this cssClass. Only one of &#039;helpString&#039; or &#039;actionString&#039; must be used. _() must be used for the text to be marked for translation.&lt;br /&gt;
: NB: all concerned nodes must have IDs to get tooltips&lt;br /&gt;
&lt;br /&gt;
; addTooltipHtmlToClass( cssClass, html, delay );&lt;br /&gt;
: Add an HTML tooltip to to all the DOM nodes set with this cssClass (for more elaborate content such as presenting a bigger version of a card).&lt;br /&gt;
: NB: all concerned nodes must have IDs to get tooltips&lt;br /&gt;
&lt;br /&gt;
; addEventToClass: function( cssClassName, eventName, functionName )&lt;br /&gt;
: Same as dojo.connect(), but for all the nodes set with the specified cssClassName&lt;br /&gt;
&lt;br /&gt;
; addStyleToClass: function( cssClassName, cssProperty, propertyValue )&lt;br /&gt;
: Same as dojo.style(), but for all the nodes set with the specified cssClassName&lt;br /&gt;
&lt;br /&gt;
; isCurrentPlayerActive()&lt;br /&gt;
: Returns true if the player on whose browser the code is running is currently active (it&#039;s his turn to play)&lt;br /&gt;
&lt;br /&gt;
; checkAction: function( action, nomessage )&lt;br /&gt;
: Check if player can do the specified action by taking into account:  _ current game state &amp;amp; _ interface locking&lt;br /&gt;
: return true if action is authorized&lt;br /&gt;
: return false and display an error message if not (display no message if nomessage is specified)&lt;br /&gt;
&lt;br /&gt;
; showMessage: function( msg, type )&lt;br /&gt;
: Show an information message during a few seconds at the top of the page&lt;br /&gt;
: Type can be &#039;error&#039; or &#039;info&#039;&lt;br /&gt;
&lt;br /&gt;
; this.scoreCtrl[ player_id ].incValue( score_delta );&lt;br /&gt;
: Adds score_delta (positive or negative integer) to the current score value for player&lt;/div&gt;</summary>
		<author><name>Een</name></author>
	</entry>
	<entry>
		<id>https://sv.doc.boardgamearena.com/index.php?title=Studio_function_reference&amp;diff=326</id>
		<title>Studio function reference</title>
		<link rel="alternate" type="text/html" href="https://sv.doc.boardgamearena.com/index.php?title=Studio_function_reference&amp;diff=326"/>
		<updated>2012-11-29T23:06:57Z</updated>

		<summary type="html">&lt;p&gt;Een: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page references useful server side and client side functions (and some interesting class variables), so that nobody needs to reinvent the wheel (unless he wants to).&lt;br /&gt;
This list is not exhaustive, in particular functions already well described by comments in the &#039;EmptyGame&#039; game template may not be described again below.&lt;br /&gt;
&lt;br /&gt;
== Server side (PHP functions) ==&lt;br /&gt;
&lt;br /&gt;
=== APP_GameAction class (&amp;lt;gamename&amp;gt;.action.php) ===&lt;br /&gt;
&lt;br /&gt;
; function isArg( $argName )&lt;br /&gt;
: Is this argument filled ?&lt;br /&gt;
; function getArg( $argName, $argType, $mandatory=false, $default=NULL, $argTypeDetails=array(), $bCanFail=false  )&lt;br /&gt;
: Get script argument with the correct type&lt;br /&gt;
: bCanFail means than a validation failure is possible (user input)&lt;br /&gt;
: The main argType values are as follows.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define( &#039;AT_int&#039;, 0 );        //  an integer&lt;br /&gt;
define( &#039;AT_posint&#039;, 1 );     //  a positive integer &lt;br /&gt;
define( &#039;AT_float&#039;, 2 );      //  a float&lt;br /&gt;
define( &#039;AT_email&#039;, 3 );      //  an email  &lt;br /&gt;
define( &#039;AT_url&#039;, 4 );        //  a URL&lt;br /&gt;
define( &#039;AT_bool&#039;, 5 );       //  1/0/true/false&lt;br /&gt;
define( &#039;AT_enum&#039;, 6 );       //  argTypeDetails list the possible values&lt;br /&gt;
define( &#039;AT_alphanum&#039;, 7 );   //  only 0-9a-zA-Z_ and space&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Table class (&amp;lt;gamename&amp;gt;.game.php) ===&lt;br /&gt;
&lt;br /&gt;
; function _( $text )&lt;br /&gt;
: Transparent function, used to mark strings to be translated on the server side (ex: error message)&lt;br /&gt;
; function clienttranslate( $string )&lt;br /&gt;
: Transparent function: used to mark string to be translated on client side (ex: notification message)&lt;br /&gt;
; function getPlayersNumber()&lt;br /&gt;
: Returns the number of players playing at the table&lt;br /&gt;
; function checkAction( $actionName, $bThrowException=true )&lt;br /&gt;
: Check if action is valid regarding current game state (exception if fails)&lt;br /&gt;
: if &amp;quot;bThrowException&amp;quot; is set to &amp;quot;false&amp;quot;, the function return false in case of failure instead of throwing and exception&lt;br /&gt;
; function getActivePlayerId()&lt;br /&gt;
: Get the &amp;quot;active_player&amp;quot;, whatever what is the current state type&lt;br /&gt;
: Note: it does NOT mean that this player is active right now, because state type could be &amp;quot;game&amp;quot; or &amp;quot;multiplayer&amp;quot;&lt;br /&gt;
; function getActivePlayerName()&lt;br /&gt;
: Get the &amp;quot;active_player&amp;quot; name&lt;br /&gt;
; function getCurrentPlayerId()&lt;br /&gt;
: Get the &amp;quot;current_player&amp;quot;. The current player is the one from which the action originated. It is not always the active player.&lt;br /&gt;
; function getCurrentPlayerName()&lt;br /&gt;
: Get the &amp;quot;current_player&amp;quot; name&lt;br /&gt;
; function getCurrentPlayerColor()&lt;br /&gt;
: Get the &amp;quot;current_player&amp;quot; color&lt;br /&gt;
; function isCurrentPlayerZombie()&lt;br /&gt;
: Check the &amp;quot;current_player&amp;quot; zombie status&lt;br /&gt;
; function activeNextPlayer()&lt;br /&gt;
: Make the next player active&lt;br /&gt;
; function activePrevPlayer()&lt;br /&gt;
: Make the previous player active&lt;br /&gt;
; function giveExtraTime( $player_id, $specific_time=null )&lt;br /&gt;
: Give standard extra time to this player (standard extra time is a game option)&lt;br /&gt;
; function initStat( $table_or_player, $name, $value, $player_id=null )&lt;br /&gt;
: Create a statistic entry for the specified statistics with a default value&lt;br /&gt;
: In case of a &amp;quot;player&amp;quot; entry, if player_id is not specified, all players are set to the same value&lt;br /&gt;
; function setStat( $value, $name, $player_id = null )&lt;br /&gt;
: Set statistic value&lt;br /&gt;
; function incStat( $delta, $name, $player_id = null )&lt;br /&gt;
: Increment (or decrement) specified value&lt;br /&gt;
; function DbQuery( $sql )&lt;br /&gt;
: Executes sql query on the database&lt;br /&gt;
; function getCollectionFromDB( $sql, $bSingleValue=false )&lt;br /&gt;
: Returns an associative array of rows for the sql query. First column must be a primary or alternate key. The resulting collection can be empty.&lt;br /&gt;
; protected function getNonEmptyCollectionFromDB( $sql )&lt;br /&gt;
: Idem, but raise an exception if the collection is empty&lt;br /&gt;
; function getUniqueValueFromDB( $sql )&lt;br /&gt;
: Returns a unique value from DB or null if no value is found&lt;br /&gt;
: Raise an exception if more than 1 row is returned&lt;br /&gt;
; function getObjectFromDB( $sql )&lt;br /&gt;
: Returns one row for the sql query as an associative array or null if there is no result&lt;br /&gt;
: Raise an exception if the query return more than one row&lt;br /&gt;
; function getNonEmptyObjectFromDB( $sql )&lt;br /&gt;
: Idem, but raise an exception if the query doesn&#039;t return exactly one row&lt;br /&gt;
&lt;br /&gt;
=== Exceptions you can throw ===&lt;br /&gt;
&lt;br /&gt;
; throw new BgaUserException ( $error_message)&lt;br /&gt;
: Base class to notify a user error&lt;br /&gt;
; throw new BgaSystemException ( $error_message)&lt;br /&gt;
: Base class to notify a system exception. The message will be hidden from the user, but show in the logs. Use this if the message contains technical information.&lt;br /&gt;
; throw new BgaSystemVisibleException ( $error_message)&lt;br /&gt;
: Same as previous, except that the message is visible by the user. You can use this if the message is understandable by the user.&lt;br /&gt;
&lt;br /&gt;
== Client side (Javascript functions) ==&lt;br /&gt;
&lt;br /&gt;
; this.player_id&lt;br /&gt;
: Id of the player on whose browser the code is running.&lt;br /&gt;
&lt;br /&gt;
; this.isSpectator&lt;br /&gt;
: Flag set to true if the user at the table is a spectator (not a player).&lt;br /&gt;
&lt;br /&gt;
; this.gamedatas&lt;br /&gt;
: Contains your initial set of datas to init the game, created at game start or game refresh (F5)&lt;br /&gt;
: You can update it as needed to keep an up to date reference of the game on the client side.&lt;br /&gt;
&lt;br /&gt;
; slideToObject: function( mobile_obj, target_obj, duration, delay )&lt;br /&gt;
: Return an dojo.fx animation that is sliding a DOM object from its current position over another one&lt;br /&gt;
: Animate a slide of the DOM object referred to by domNodeToSlide from its current position to the xpos, ypos relative to the object referred to by domNodeToSlideTo.&lt;br /&gt;
&lt;br /&gt;
; slideToObjectPos: function( mobile_obj, target_obj, target_x, target_y, duration, delay )&lt;br /&gt;
: Return an dojo.fx animation that is sliding a DOM object from its current position over another one at the given coordinates relative to the target object.&lt;br /&gt;
&lt;br /&gt;
; updateCounters(counters)&lt;br /&gt;
: Useful for updating game counters in the player panel (such as resources). &lt;br /&gt;
; &#039;counters&#039; arg is an associative array [counter_name_value =&amp;gt; [ &#039;counter_name&#039; =&amp;gt; counter_name_value, &#039;counter_value&#039; =&amp;gt; counter_value_value], ... ]&lt;br /&gt;
: All counters must be referenced in this.gamedatas.counters and will be updated.&lt;br /&gt;
: DOM objects referenced by &#039;counter_name&#039; will have their innerHTML updated with &#039;counter_value&#039;.&lt;br /&gt;
&lt;br /&gt;
; addTooltip( node, _( helpString ), _( actionString ), delay );&lt;br /&gt;
: Add a simple text tooltip to the DOM node. Only one of &#039;helpString&#039; or &#039;actionString&#039; must be used. _() must be used for the text to be marked for translation.&lt;br /&gt;
&lt;br /&gt;
; addTooltipHtml( node, html, delay );&lt;br /&gt;
: Add an HTML tooltip to the DOM node (for more elaborate content such as presenting a bigger version of a card).&lt;br /&gt;
&lt;br /&gt;
; addTooltipToClass( cssClass, _( helpString ), _( actionString ), delay );&lt;br /&gt;
: Add a simple text tooltip to all the DOM nodes set with this cssClass. Only one of &#039;helpString&#039; or &#039;actionString&#039; must be used. _() must be used for the text to be marked for translation.&lt;br /&gt;
: NB: all concerned nodes must have IDs to get tooltips&lt;br /&gt;
&lt;br /&gt;
; addTooltipHtmlToClass( cssClass, html, delay );&lt;br /&gt;
: Add an HTML tooltip to to all the DOM nodes set with this cssClass (for more elaborate content such as presenting a bigger version of a card).&lt;br /&gt;
: NB: all concerned nodes must have IDs to get tooltips&lt;br /&gt;
&lt;br /&gt;
; addEventToClass: function( cssClassName, eventName, functionName )&lt;br /&gt;
: Same as dojo.connect(), but for all the nodes set with the specified cssClassName&lt;br /&gt;
&lt;br /&gt;
; addStyleToClass: function( cssClassName, cssProperty, propertyValue )&lt;br /&gt;
: Same as dojo.style(), but for all the nodes set with the specified cssClassName&lt;br /&gt;
&lt;br /&gt;
; isCurrentPlayerActive()&lt;br /&gt;
: Returns true if the player on whose browser the code is running is currently active (it&#039;s his turn to play)&lt;br /&gt;
&lt;br /&gt;
; checkAction: function( action, nomessage )&lt;br /&gt;
: Check if player can do the specified action by taking into account:  _ current game state &amp;amp; _ interface locking&lt;br /&gt;
: return true if action is authorized&lt;br /&gt;
: return false and display an error message if not (display no message if nomessage is specified)&lt;br /&gt;
&lt;br /&gt;
; showMessage: function( msg, type )&lt;br /&gt;
: Show an information message during a few seconds at the top of the page&lt;br /&gt;
: Type can be &#039;error&#039; or &#039;info&#039;&lt;br /&gt;
&lt;br /&gt;
; this.scoreCtrl[ player_id ].incValue( score_delta );&lt;br /&gt;
: Adds score_delta (positive or negative integer) to the current score value for player&lt;/div&gt;</summary>
		<author><name>Een</name></author>
	</entry>
	<entry>
		<id>https://sv.doc.boardgamearena.com/index.php?title=Studio_function_reference&amp;diff=325</id>
		<title>Studio function reference</title>
		<link rel="alternate" type="text/html" href="https://sv.doc.boardgamearena.com/index.php?title=Studio_function_reference&amp;diff=325"/>
		<updated>2012-11-29T23:04:27Z</updated>

		<summary type="html">&lt;p&gt;Een: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page references useful server side and client side functions (and some interesting class variables), so that nobody needs to reinvent the wheel (unless he wants to).&lt;br /&gt;
&lt;br /&gt;
== Server side (PHP functions) ==&lt;br /&gt;
&lt;br /&gt;
=== APP_GameAction class (&amp;lt;gamename&amp;gt;.action.php) ===&lt;br /&gt;
&lt;br /&gt;
; function isArg( $argName )&lt;br /&gt;
: Is this argument filled ?&lt;br /&gt;
; function getArg( $argName, $argType, $mandatory=false, $default=NULL, $argTypeDetails=array(), $bCanFail=false  )&lt;br /&gt;
: Get script argument with the correct type&lt;br /&gt;
: bCanFail means than a validation failure is possible (user input)&lt;br /&gt;
: The main argType values are as follows.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define( &#039;AT_int&#039;, 0 );        //  an integer&lt;br /&gt;
define( &#039;AT_posint&#039;, 1 );     //  a positive integer &lt;br /&gt;
define( &#039;AT_float&#039;, 2 );      //  a float&lt;br /&gt;
define( &#039;AT_email&#039;, 3 );      //  an email  &lt;br /&gt;
define( &#039;AT_url&#039;, 4 );        //  a URL&lt;br /&gt;
define( &#039;AT_bool&#039;, 5 );       //  1/0/true/false&lt;br /&gt;
define( &#039;AT_enum&#039;, 6 );       //  argTypeDetails list the possible values&lt;br /&gt;
define( &#039;AT_alphanum&#039;, 7 );   //  only 0-9a-zA-Z_ and space&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Table class (&amp;lt;gamename&amp;gt;.game.php) ===&lt;br /&gt;
&lt;br /&gt;
; function _( $text )&lt;br /&gt;
: Transparent function, used to mark strings to be translated on the server side (ex: error message)&lt;br /&gt;
; function clienttranslate( $string )&lt;br /&gt;
: Transparent function: used to mark string to be translated on client side (ex: notification message)&lt;br /&gt;
; function getPlayersNumber()&lt;br /&gt;
: Returns the number of players playing at the table&lt;br /&gt;
; function checkAction( $actionName, $bThrowException=true )&lt;br /&gt;
: Check if action is valid regarding current game state (exception if fails)&lt;br /&gt;
: if &amp;quot;bThrowException&amp;quot; is set to &amp;quot;false&amp;quot;, the function return false in case of failure instead of throwing and exception&lt;br /&gt;
; function getActivePlayerId()&lt;br /&gt;
: Get the &amp;quot;active_player&amp;quot;, whatever what is the current state type&lt;br /&gt;
: Note: it does NOT mean that this player is active right now, because state type could be &amp;quot;game&amp;quot; or &amp;quot;multiplayer&amp;quot;&lt;br /&gt;
; function getActivePlayerName()&lt;br /&gt;
: Get the &amp;quot;active_player&amp;quot; name&lt;br /&gt;
; function getCurrentPlayerId()&lt;br /&gt;
: Get the &amp;quot;current_player&amp;quot;. The current player is the one from which the action originated. It is not always the active player.&lt;br /&gt;
; function getCurrentPlayerName()&lt;br /&gt;
: Get the &amp;quot;current_player&amp;quot; name&lt;br /&gt;
; function getCurrentPlayerColor()&lt;br /&gt;
: Get the &amp;quot;current_player&amp;quot; color&lt;br /&gt;
; function isCurrentPlayerZombie()&lt;br /&gt;
: Check the &amp;quot;current_player&amp;quot; zombie status&lt;br /&gt;
; function activeNextPlayer()&lt;br /&gt;
: Make the next player active&lt;br /&gt;
; function activePrevPlayer()&lt;br /&gt;
: Make the previous player active&lt;br /&gt;
; function giveExtraTime( $player_id, $specific_time=null )&lt;br /&gt;
: Give standard extra time to this player (standard extra time is a game option)&lt;br /&gt;
; function initStat( $table_or_player, $name, $value, $player_id=null )&lt;br /&gt;
: Create a statistic entry for the specified statistics with a default value&lt;br /&gt;
: In case of a &amp;quot;player&amp;quot; entry, if player_id is not specified, all players are set to the same value&lt;br /&gt;
; function setStat( $value, $name, $player_id = null )&lt;br /&gt;
: Set statistic value&lt;br /&gt;
; function incStat( $delta, $name, $player_id = null )&lt;br /&gt;
: Increment (or decrement) specified value&lt;br /&gt;
; function DbQuery( $sql )&lt;br /&gt;
: Executes sql query on the database&lt;br /&gt;
; function getCollectionFromDB( $sql, $bSingleValue=false )&lt;br /&gt;
: Returns an associative array of rows for the sql query. First column must be a primary or alternate key. The resulting collection can be empty.&lt;br /&gt;
; protected function getNonEmptyCollectionFromDB( $sql )&lt;br /&gt;
: Idem, but raise an exception if the collection is empty&lt;br /&gt;
; function getUniqueValueFromDB( $sql )&lt;br /&gt;
: Returns a unique value from DB or null if no value is found&lt;br /&gt;
: Raise an exception if more than 1 row is returned&lt;br /&gt;
; function getObjectFromDB( $sql )&lt;br /&gt;
: Returns one row for the sql query as an associative array or null if there is no result&lt;br /&gt;
: Raise an exception if the query return more than one row&lt;br /&gt;
; function getNonEmptyObjectFromDB( $sql )&lt;br /&gt;
: Idem, but raise an exception if the query doesn&#039;t return exactly one row&lt;br /&gt;
&lt;br /&gt;
=== Exceptions you can throw ===&lt;br /&gt;
&lt;br /&gt;
; throw new BgaUserException ( $error_message)&lt;br /&gt;
: Base class to notify a user error&lt;br /&gt;
; throw new BgaSystemException ( $error_message)&lt;br /&gt;
: Base class to notify a system exception. The message will be hidden from the user, but show in the logs. Use this if the message contains technical information.&lt;br /&gt;
; throw new BgaSystemVisibleException ( $error_message)&lt;br /&gt;
: Same as previous, except that the message is visible by the user. You can use this if the message is understandable by the user.&lt;br /&gt;
&lt;br /&gt;
== Client side (Javascript functions) ==&lt;br /&gt;
&lt;br /&gt;
; this.player_id&lt;br /&gt;
: Id of the player on whose browser the code is running.&lt;br /&gt;
&lt;br /&gt;
; this.isSpectator&lt;br /&gt;
: Flag set to true if the user at the table is a spectator (not a player).&lt;br /&gt;
&lt;br /&gt;
; this.gamedatas&lt;br /&gt;
: Contains your initial set of datas to init the game, created at game start or game refresh (F5)&lt;br /&gt;
: You can update it as needed to keep an up to date reference of the game on the client side.&lt;br /&gt;
&lt;br /&gt;
; slideToObject: function( mobile_obj, target_obj, duration, delay )&lt;br /&gt;
: Return an dojo.fx animation that is sliding a DOM object from its current position over another one&lt;br /&gt;
: Animate a slide of the DOM object referred to by domNodeToSlide from its current position to the xpos, ypos relative to the object referred to by domNodeToSlideTo.&lt;br /&gt;
&lt;br /&gt;
; slideToObjectPos: function( mobile_obj, target_obj, target_x, target_y, duration, delay )&lt;br /&gt;
: Return an dojo.fx animation that is sliding a DOM object from its current position over another one at the given coordinates relative to the target object.&lt;br /&gt;
&lt;br /&gt;
; updateCounters(counters)&lt;br /&gt;
: Useful for updating game counters in the player panel (such as resources). &lt;br /&gt;
; &#039;counters&#039; arg is an associative array [counter_name_value =&amp;gt; [ &#039;counter_name&#039; =&amp;gt; counter_name_value, &#039;counter_value&#039; =&amp;gt; counter_value_value], ... ]&lt;br /&gt;
: All counters must be referenced in this.gamedatas.counters and will be updated.&lt;br /&gt;
: DOM objects referenced by &#039;counter_name&#039; will have their innerHTML updated with &#039;counter_value&#039;.&lt;br /&gt;
&lt;br /&gt;
; addTooltip( node, _( helpString ), _( actionString ), delay );&lt;br /&gt;
: Add a simple text tooltip to the DOM node. Only one of &#039;helpString&#039; or &#039;actionString&#039; must be used. _() must be used for the text to be marked for translation.&lt;br /&gt;
&lt;br /&gt;
; addTooltipHtml( node, html, delay );&lt;br /&gt;
: Add an HTML tooltip to the DOM node (for more elaborate content such as presenting a bigger version of a card).&lt;br /&gt;
&lt;br /&gt;
; addTooltipToClass( cssClass, _( helpString ), _( actionString ), delay );&lt;br /&gt;
: Add a simple text tooltip to all the DOM nodes set with this cssClass. Only one of &#039;helpString&#039; or &#039;actionString&#039; must be used. _() must be used for the text to be marked for translation.&lt;br /&gt;
: NB: all concerned nodes must have IDs to get tooltips&lt;br /&gt;
&lt;br /&gt;
; addTooltipHtmlToClass( cssClass, html, delay );&lt;br /&gt;
: Add an HTML tooltip to to all the DOM nodes set with this cssClass (for more elaborate content such as presenting a bigger version of a card).&lt;br /&gt;
: NB: all concerned nodes must have IDs to get tooltips&lt;br /&gt;
&lt;br /&gt;
; addEventToClass: function( cssClassName, eventName, functionName )&lt;br /&gt;
: Same as dojo.connect(), but for all the nodes set with the specified cssClassName&lt;br /&gt;
&lt;br /&gt;
; addStyleToClass: function( cssClassName, cssProperty, propertyValue )&lt;br /&gt;
: Same as dojo.style(), but for all the nodes set with the specified cssClassName&lt;br /&gt;
&lt;br /&gt;
; isCurrentPlayerActive()&lt;br /&gt;
: Returns true if the player on whose browser the code is running is currently active (it&#039;s his turn to play)&lt;br /&gt;
&lt;br /&gt;
; checkAction: function( action, nomessage )&lt;br /&gt;
: Check if player can do the specified action by taking into account:  _ current game state &amp;amp; _ interface locking&lt;br /&gt;
: return true if action is authorized&lt;br /&gt;
: return false and display an error message if not (display no message if nomessage is specified)&lt;br /&gt;
&lt;br /&gt;
; showMessage: function( msg, type )&lt;br /&gt;
: Show an information message during a few seconds at the top of the page&lt;br /&gt;
: Type can be &#039;error&#039; or &#039;info&#039;&lt;br /&gt;
&lt;br /&gt;
; this.scoreCtrl[ player_id ].incValue( score_delta );&lt;br /&gt;
: Adds score_delta (positive or negative integer) to the current score value for player&lt;/div&gt;</summary>
		<author><name>Een</name></author>
	</entry>
	<entry>
		<id>https://sv.doc.boardgamearena.com/index.php?title=Studio_function_reference&amp;diff=324</id>
		<title>Studio function reference</title>
		<link rel="alternate" type="text/html" href="https://sv.doc.boardgamearena.com/index.php?title=Studio_function_reference&amp;diff=324"/>
		<updated>2012-11-29T22:47:37Z</updated>

		<summary type="html">&lt;p&gt;Een: /* Client side (Javascript functions) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page references useful server side and client side functions, so that nobody needs to reinvent the wheel (unless he wants to).&lt;br /&gt;
&lt;br /&gt;
== Server side (PHP functions) ==&lt;br /&gt;
&lt;br /&gt;
=== APP_GameAction class (&amp;lt;gamename&amp;gt;.action.php) ===&lt;br /&gt;
&lt;br /&gt;
; function isArg( $argName )&lt;br /&gt;
: Is this argument filled ?&lt;br /&gt;
; function getArg( $argName, $argType, $mandatory=false, $default=NULL, $argTypeDetails=array(), $bCanFail=false  )&lt;br /&gt;
: Get script argument with the correct type&lt;br /&gt;
: bCanFail means than a validation failure is possible (user input)&lt;br /&gt;
: The main argType values are as follows.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define( &#039;AT_int&#039;, 0 );        //  an integer&lt;br /&gt;
define( &#039;AT_posint&#039;, 1 );     //  a positive integer &lt;br /&gt;
define( &#039;AT_float&#039;, 2 );      //  a float&lt;br /&gt;
define( &#039;AT_email&#039;, 3 );      //  an email  &lt;br /&gt;
define( &#039;AT_url&#039;, 4 );        //  a URL&lt;br /&gt;
define( &#039;AT_bool&#039;, 5 );       //  1/0/true/false&lt;br /&gt;
define( &#039;AT_enum&#039;, 6 );       //  argTypeDetails list the possible values&lt;br /&gt;
define( &#039;AT_alphanum&#039;, 7 );   //  only 0-9a-zA-Z_ and space&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Table class (&amp;lt;gamename&amp;gt;.game.php) ===&lt;br /&gt;
&lt;br /&gt;
; function _( $text )&lt;br /&gt;
: Transparent function, used to mark strings to be translated on the server side (ex: error message)&lt;br /&gt;
; function clienttranslate( $string )&lt;br /&gt;
: Transparent function: used to mark string to be translated on client side (ex: notification message)&lt;br /&gt;
; function getPlayersNumber()&lt;br /&gt;
: Returns the number of players playing at the table&lt;br /&gt;
; function checkAction( $actionName, $bThrowException=true )&lt;br /&gt;
: Check if action is valid regarding current game state (exception if fails)&lt;br /&gt;
: if &amp;quot;bThrowException&amp;quot; is set to &amp;quot;false&amp;quot;, the function return false in case of failure instead of throwing and exception&lt;br /&gt;
; function getActivePlayerId()&lt;br /&gt;
: Get the &amp;quot;active_player&amp;quot;, whatever what is the current state type&lt;br /&gt;
: Note: it does NOT mean that this player is active right now, because state type could be &amp;quot;game&amp;quot; or &amp;quot;multiplayer&amp;quot;&lt;br /&gt;
; function getActivePlayerName()&lt;br /&gt;
: Get the &amp;quot;active_player&amp;quot; name&lt;br /&gt;
; function getCurrentPlayerId()&lt;br /&gt;
: Get the &amp;quot;current_player&amp;quot;. The current player is the one from which the action originated. It is not always the active player.&lt;br /&gt;
; function getCurrentPlayerName()&lt;br /&gt;
: Get the &amp;quot;current_player&amp;quot; name&lt;br /&gt;
; function getCurrentPlayerColor()&lt;br /&gt;
: Get the &amp;quot;current_player&amp;quot; color&lt;br /&gt;
; function isCurrentPlayerZombie()&lt;br /&gt;
: Check the &amp;quot;current_player&amp;quot; zombie status&lt;br /&gt;
; function activeNextPlayer()&lt;br /&gt;
: Make the next player active&lt;br /&gt;
; function activePrevPlayer()&lt;br /&gt;
: Make the previous player active&lt;br /&gt;
; function giveExtraTime( $player_id, $specific_time=null )&lt;br /&gt;
: Give standard extra time to this player (standard extra time is a game option)&lt;br /&gt;
; function initStat( $table_or_player, $name, $value, $player_id=null )&lt;br /&gt;
: Create a statistic entry for the specified statistics with a default value&lt;br /&gt;
: In case of a &amp;quot;player&amp;quot; entry, if player_id is not specified, all players are set to the same value&lt;br /&gt;
; function setStat( $value, $name, $player_id = null )&lt;br /&gt;
: Set statistic value&lt;br /&gt;
; function incStat( $delta, $name, $player_id = null )&lt;br /&gt;
: Increment (or decrement) specified value&lt;br /&gt;
; function DbQuery( $sql )&lt;br /&gt;
: Executes sql query on the database&lt;br /&gt;
; function getCollectionFromDB( $sql, $bSingleValue=false )&lt;br /&gt;
: Returns an associative array of rows for the sql query. First column must be a primary or alternate key. The resulting collection can be empty.&lt;br /&gt;
; protected function getNonEmptyCollectionFromDB( $sql )&lt;br /&gt;
: Idem, but raise an exception if the collection is empty&lt;br /&gt;
; function getUniqueValueFromDB( $sql )&lt;br /&gt;
: Returns a unique value from DB or null if no value is found&lt;br /&gt;
: Raise an exception if more than 1 row is returned&lt;br /&gt;
; function getObjectFromDB( $sql )&lt;br /&gt;
: Returns one row for the sql query as an associative array or null if there is no result&lt;br /&gt;
: Raise an exception if the query return more than one row&lt;br /&gt;
; function getNonEmptyObjectFromDB( $sql )&lt;br /&gt;
: Idem, but raise an exception if the query doesn&#039;t return exactly one row&lt;br /&gt;
&lt;br /&gt;
=== Exceptions you can throw ===&lt;br /&gt;
&lt;br /&gt;
; throw new BgaUserException ( $error_message)&lt;br /&gt;
: Base class to notify a user error&lt;br /&gt;
; throw new BgaSystemException ( $error_message)&lt;br /&gt;
: Base class to notify a system exception. The message will be hidden from the user, but show in the logs. Use this if the message contains technical information.&lt;br /&gt;
; throw new BgaSystemVisibleException ( $error_message)&lt;br /&gt;
: Same as previous, except that the message is visible by the user. You can use this if the message is understandable by the user.&lt;br /&gt;
&lt;br /&gt;
== Client side (Javascript functions) ==&lt;br /&gt;
&lt;br /&gt;
; this.player_id&lt;br /&gt;
: Id of the player on which browser the code is running.&lt;br /&gt;
&lt;br /&gt;
; this.isSpectator&lt;br /&gt;
: Flag set to true if the user at the table is a spectator (not a player).&lt;br /&gt;
&lt;br /&gt;
; this.gamedatas&lt;br /&gt;
: Contains your initial set of datas to init the game, created at game start or game refresh (F5)&lt;br /&gt;
: You can update it as needed to keep an up to date reference of the game on the client side.&lt;br /&gt;
&lt;br /&gt;
; slideToObject: function( mobile_obj, target_obj, duration, delay )&lt;br /&gt;
: Return an dojo.fx animation that is sliding a DOM object from its current position over another one&lt;br /&gt;
: Animate a slide of the DOM object referred to by domNodeToSlide from its current position to the xpos, ypos relative to the object referred to by domNodeToSlideTo.&lt;br /&gt;
&lt;br /&gt;
; slideToObjectPos: function( mobile_obj, target_obj, target_x, target_y, duration, delay )&lt;br /&gt;
: Return an dojo.fx animation that is sliding a DOM object from its current position over another one at the given coordinates relative to the target object.&lt;br /&gt;
&lt;br /&gt;
; updateCounters(counters)&lt;br /&gt;
: Useful for updating game counters in the player panel (such as resources). &lt;br /&gt;
; &#039;counters&#039; arg is an associative array [counter_name_value =&amp;gt; [ &#039;counter_name&#039; =&amp;gt; counter_name_value, &#039;counter_value&#039; =&amp;gt; counter_value_value], ... ]&lt;br /&gt;
: All counters must be referenced in this.gamedatas.counters and will be updated.&lt;br /&gt;
: DOM objects referenced by &#039;counter_name&#039; will have their innerHTML updated with &#039;counter_value&#039;.&lt;br /&gt;
&lt;br /&gt;
; addTooltip( node, _( helpString ), _( actionString ), delay );&lt;br /&gt;
: Add a simple text tooltip to the DOM node. Only one of &#039;helpString&#039; or &#039;actionString&#039; must be used. _() must be used for the text to be marked for translation.&lt;br /&gt;
&lt;br /&gt;
; addTooltipHtml( node, html, delay );&lt;br /&gt;
: Add an HTML tooltip to the DOM node (for more elaborate content such as presenting a bigger version of a card).&lt;br /&gt;
&lt;br /&gt;
; addTooltipToClass( cssClass, _( helpString ), _( actionString ), delay );&lt;br /&gt;
: Add a simple text tooltip to all the DOM nodes set with this cssClass. Only one of &#039;helpString&#039; or &#039;actionString&#039; must be used. _() must be used for the text to be marked for translation.&lt;br /&gt;
: NB: all concerned nodes must have IDs to get tooltips&lt;br /&gt;
&lt;br /&gt;
; addTooltipHtmlToClass( cssClass, html, delay );&lt;br /&gt;
: Add an HTML tooltip to to all the DOM nodes set with this cssClass (for more elaborate content such as presenting a bigger version of a card).&lt;br /&gt;
: NB: all concerned nodes must have IDs to get tooltips&lt;br /&gt;
&lt;br /&gt;
; this.addEventToClass( &amp;quot;cp_token&amp;quot;, &amp;quot;onclick&amp;quot;, &amp;quot;onClickToken&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
; this.isCurrentPlayerActive()&lt;br /&gt;
&lt;br /&gt;
; this.checkAction( &#039;selectTokens&#039; )&lt;br /&gt;
&lt;br /&gt;
; this.showMessage( _(&#039;You must select at least two tokens&#039;), &#039;error&#039; );&lt;br /&gt;
&lt;br /&gt;
; this.scoreCtrl[ notif.args.player_id ].incValue( notif.args.score_delta );&lt;br /&gt;
&lt;br /&gt;
; this.updateCounters(notif.args.counters);&lt;br /&gt;
&lt;br /&gt;
; this.ajaxcall( &amp;quot;/colorpop/colorpop/endgame.html&amp;quot;, { }, this, function( result ) {} );&lt;/div&gt;</summary>
		<author><name>Een</name></author>
	</entry>
	<entry>
		<id>https://sv.doc.boardgamearena.com/index.php?title=Development&amp;diff=321</id>
		<title>Development</title>
		<link rel="alternate" type="text/html" href="https://sv.doc.boardgamearena.com/index.php?title=Development&amp;diff=321"/>
		<updated>2012-11-27T20:54:33Z</updated>

		<summary type="html">&lt;p&gt;Een: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Bga_studio_small.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What is this? ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Board Game Arena Studio&#039;&#039;&#039; is a platform to build online board game adaptation using the Board Game Arena platform.&lt;br /&gt;
&lt;br /&gt;
It is open to any gamer with development skills :)&lt;br /&gt;
&lt;br /&gt;
See announcement here:&lt;br /&gt;
http://forum.boardgamearena.com/viewtopic.php?f=10&amp;amp;t=1973&lt;br /&gt;
&lt;br /&gt;
== How can I develop a board game on BGA Studio? ==&lt;br /&gt;
&lt;br /&gt;
Check these presentations first:&lt;br /&gt;
&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/5-reasons-why-you-should-use-bga-studio-for-your-online-board-game 5 reasons why you should use BGA Studio for your online board game]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/the-8-steps-to-create-a-board-game-on-board-game-arena The 8 steps to create a board game on Board Game Arena]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/the-bga-framework-at-a-glance The BGA Framework at a glance]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/bga-studio-focus-on-bga-game-state-machine Focus on BGA game state machine]&lt;br /&gt;
&lt;br /&gt;
== How do I register? ==&lt;br /&gt;
&lt;br /&gt;
Registering is done by e-mail to [http://en.boardgamearena.com/#!doc/Contact_us BGA contact address].&lt;br /&gt;
&lt;br /&gt;
Please provide the following information:&lt;br /&gt;
* your developer user name to be used on “BGA Studio” (for technical reasons, no space, number or special character);&lt;br /&gt;
* your real name;&lt;br /&gt;
* your e-mail address;&lt;br /&gt;
* your postal address.&lt;br /&gt;
&lt;br /&gt;
We also drafted a quick [http://en.doc.boardgamearena.com/images/0/02/BGA_TC_Dev_en.pdf &#039;terms &amp;amp; conditions&#039; document]. It&#039;s very light, so as to get to the fun part faster.&lt;br /&gt;
&lt;br /&gt;
To be valid, the registration e-mail must contain this document as an attachment, with the following sentence in the mail body: &#039;I agree with the terms &amp;amp; conditions for developers on BGA Studio joined as an attachment&#039;.&lt;br /&gt;
&lt;br /&gt;
And of course, we also encourage you to tell us about which games you would love to develop on BGA!&lt;br /&gt;
&lt;br /&gt;
== Ok, I registered, what do I get? ==&lt;br /&gt;
&lt;br /&gt;
First, you get by e-mail a list of the games we have an agreement to develop. Please keep this list confidential, or it would ruin our tradition to make players guess the name of the next game on the forum!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;NB: during the BETA pĥase, to smooth things up and make sure that everything is working correctly, &lt;br /&gt;
we will work only with 3 fearless developers on 3 simple games.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Second, once we have discussed together and are fixed on a game you&#039;ll take charge of, we&#039;ll create your studio account and you will get:&lt;br /&gt;
* one login / password to access files through SFTP&lt;br /&gt;
* ten logins with numeric suffixes from 0 to 9 and a common simple password to test games on the studio website while developing.&lt;br /&gt;
&lt;br /&gt;
Once logged in to your SFTP root folder, you will find:&lt;br /&gt;
* a &#039;resources.html&#039; file with the URLs to use and some extra connection information&lt;br /&gt;
* three folders containing the three simple games provided as examples&lt;br /&gt;
* a folder for the game you will be developing initialized after our &#039;EmptyGame&#039; template, providing the game structure (and comments! and examples!)&lt;br /&gt;
&lt;br /&gt;
Then... that&#039;s all, you can start!&lt;br /&gt;
&lt;br /&gt;
== Great, I&#039;m in! ... How should I start? ==&lt;br /&gt;
&lt;br /&gt;
If you didn&#039;t already, check the presentations at the top of this page to get the basics.&lt;br /&gt;
&lt;br /&gt;
After that, we would advise you to take a peek to tutorials for the example games:&lt;br /&gt;
* [[Tutorial reversi]]&lt;br /&gt;
* [[Tutorial hearts]]&lt;br /&gt;
* [[Tutorial xxx ]]&lt;br /&gt;
&lt;br /&gt;
Then start editing files and see what happens! ;)&lt;br /&gt;
&lt;br /&gt;
== Other resources ==&lt;br /&gt;
&lt;br /&gt;
[[Studio FAQ]]&lt;br /&gt;
&lt;br /&gt;
[[Studio file reference]]&lt;br /&gt;
&lt;br /&gt;
[[Studio function reference]]&lt;br /&gt;
&lt;br /&gt;
[[Studio back-office]]&lt;br /&gt;
&lt;br /&gt;
[http://forum.boardgamearena.com/viewforum.php?f=12 Development forum]&lt;br /&gt;
&lt;br /&gt;
[http://forum.boardgamearena.com/viewforum.php?f=4 Bugs forum]&lt;/div&gt;</summary>
		<author><name>Een</name></author>
	</entry>
	<entry>
		<id>https://sv.doc.boardgamearena.com/index.php?title=Development_file_reference&amp;diff=320</id>
		<title>Development file reference</title>
		<link rel="alternate" type="text/html" href="https://sv.doc.boardgamearena.com/index.php?title=Development_file_reference&amp;diff=320"/>
		<updated>2012-11-27T20:53:33Z</updated>

		<summary type="html">&lt;p&gt;Een: moved Development file reference to Studio file reference&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Studio file reference]]&lt;/div&gt;</summary>
		<author><name>Een</name></author>
	</entry>
	<entry>
		<id>https://sv.doc.boardgamearena.com/index.php?title=Studio_file_reference&amp;diff=319</id>
		<title>Studio file reference</title>
		<link rel="alternate" type="text/html" href="https://sv.doc.boardgamearena.com/index.php?title=Studio_file_reference&amp;diff=319"/>
		<updated>2012-11-27T20:53:33Z</updated>

		<summary type="html">&lt;p&gt;Een: moved Development file reference to Studio file reference&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This is a quick reference for the files used to implement a game. For more information, edit the file and read the introductory comment.&lt;br /&gt;
&lt;br /&gt;
=== &#039;img&#039; directory ===&lt;br /&gt;
&lt;br /&gt;
This directory contains the images for your game:&lt;br /&gt;
* game_box.png is displayed on the main site on the game description page and when creating a table (280x280 px)&lt;br /&gt;
* game_icon.png is the icon displayed in the lists of games and tables (50x50 px)&lt;br /&gt;
* publisher.png is the logo of the publisher of the game, displayed on the game description page (width: 150 px)&lt;br /&gt;
* and other images that you need. You should use [http://www.w3schools.com/css/css_image_sprites.asp CSS sprites] for better web performance.&lt;br /&gt;
&lt;br /&gt;
=== dbmodel.sql ===&lt;br /&gt;
&lt;br /&gt;
File for creating specific database tables that you will need to persist data during the game (for example a table for cards).&lt;br /&gt;
&lt;br /&gt;
=== gameoptions.inc.php ===&lt;br /&gt;
&lt;br /&gt;
File for describing your game options (= game variants)&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;gamename&amp;gt;.action.php ===&lt;br /&gt;
&lt;br /&gt;
File used to describe methods that can be called from the client interface through javascript, get parameters and call the appropriate game functions.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;gamename&amp;gt;.css ===&lt;br /&gt;
&lt;br /&gt;
CSS styles specific to your game.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;gamename&amp;gt;.game.php ===&lt;br /&gt;
&lt;br /&gt;
This is the main file for your game logic. Here you initialize the game, persist data, implement the rules and notify changes to the client interface.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;gamename&amp;gt;.js ===&lt;br /&gt;
&lt;br /&gt;
This is the main file for your game interface. Here you will define:&lt;br /&gt;
* which actions on the page will generate calls to the server&lt;br /&gt;
* what happens when you get a notification for change from the server and how it will show in the browser.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;gamename&amp;gt;.view.php and &amp;lt;gamename&amp;gt;_&amp;lt;gamename&amp;gt;.tpl ===&lt;br /&gt;
&lt;br /&gt;
Files used to set up the page layout (&#039;view&#039;) for the game.&lt;br /&gt;
&lt;br /&gt;
=== material.inc.php ===&lt;br /&gt;
&lt;br /&gt;
File used to describe all the game material (cards with their description, dices, tokens...). You can also use it to define game constants.&lt;br /&gt;
&lt;br /&gt;
=== states.inc.php ===&lt;br /&gt;
&lt;br /&gt;
This file describes the states your game will iterate over, and the transitions to get from one state to another.&lt;br /&gt;
&lt;br /&gt;
=== stats.inc.php ===&lt;br /&gt;
&lt;br /&gt;
File used to list statistics that you want to update during the game to be presented to players at the end of the game.&lt;/div&gt;</summary>
		<author><name>Een</name></author>
	</entry>
	<entry>
		<id>https://sv.doc.boardgamearena.com/index.php?title=Development_function_reference&amp;diff=318</id>
		<title>Development function reference</title>
		<link rel="alternate" type="text/html" href="https://sv.doc.boardgamearena.com/index.php?title=Development_function_reference&amp;diff=318"/>
		<updated>2012-11-27T20:53:20Z</updated>

		<summary type="html">&lt;p&gt;Een: moved Development function reference to Studio function reference&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Studio function reference]]&lt;/div&gt;</summary>
		<author><name>Een</name></author>
	</entry>
	<entry>
		<id>https://sv.doc.boardgamearena.com/index.php?title=Studio_function_reference&amp;diff=317</id>
		<title>Studio function reference</title>
		<link rel="alternate" type="text/html" href="https://sv.doc.boardgamearena.com/index.php?title=Studio_function_reference&amp;diff=317"/>
		<updated>2012-11-27T20:53:20Z</updated>

		<summary type="html">&lt;p&gt;Een: moved Development function reference to Studio function reference&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page references useful server side and client side functions, so that nobody needs to reinvent the wheel (unless he wants to).&lt;br /&gt;
&lt;br /&gt;
== Server side (PHP functions) ==&lt;br /&gt;
&lt;br /&gt;
=== APP_GameAction class (&amp;lt;gamename&amp;gt;.action.php) ===&lt;br /&gt;
&lt;br /&gt;
; function isArg( $argName )&lt;br /&gt;
: Is this argument filled ?&lt;br /&gt;
; function getArg( $argName, $argType, $mandatory=false, $default=NULL, $argTypeDetails=array(), $bCanFail=false  )&lt;br /&gt;
: Get script argument with the correct type&lt;br /&gt;
: bCanFail means than a validation failure is possible (user input)&lt;br /&gt;
: The main argType values are as follows.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define( &#039;AT_int&#039;, 0 );        //  an integer&lt;br /&gt;
define( &#039;AT_posint&#039;, 1 );     //  a positive integer &lt;br /&gt;
define( &#039;AT_float&#039;, 2 );      //  a float&lt;br /&gt;
define( &#039;AT_email&#039;, 3 );      //  an email  &lt;br /&gt;
define( &#039;AT_url&#039;, 4 );        //  a URL&lt;br /&gt;
define( &#039;AT_bool&#039;, 5 );       //  1/0/true/false&lt;br /&gt;
define( &#039;AT_enum&#039;, 6 );       //  argTypeDetails list the possible values&lt;br /&gt;
define( &#039;AT_alphanum&#039;, 7 );   //  only 0-9a-zA-Z_ and space&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Table class (&amp;lt;gamename&amp;gt;.game.php) ===&lt;br /&gt;
&lt;br /&gt;
; function _( $text )&lt;br /&gt;
: Transparent function, used to mark strings to be translated on the server side (ex: error message)&lt;br /&gt;
; function clienttranslate( $string )&lt;br /&gt;
: Transparent function: used to mark string to be translated on client side (ex: notification message)&lt;br /&gt;
; function getPlayersNumber()&lt;br /&gt;
: Returns the number of players playing at the table&lt;br /&gt;
; function checkAction( $actionName, $bThrowException=true )&lt;br /&gt;
: Check if action is valid regarding current game state (exception if fails)&lt;br /&gt;
: if &amp;quot;bThrowException&amp;quot; is set to &amp;quot;false&amp;quot;, the function return false in case of failure instead of throwing and exception&lt;br /&gt;
; function getActivePlayerId()&lt;br /&gt;
: Get the &amp;quot;active_player&amp;quot;, whatever what is the current state type&lt;br /&gt;
: Note: it does NOT mean that this player is active right now, because state type could be &amp;quot;game&amp;quot; or &amp;quot;multiplayer&amp;quot;&lt;br /&gt;
; function getActivePlayerName()&lt;br /&gt;
: Get the &amp;quot;active_player&amp;quot; name&lt;br /&gt;
; function getCurrentPlayerId()&lt;br /&gt;
: Get the &amp;quot;current_player&amp;quot;. The current player is the one from which the action originated. It is not always the active player.&lt;br /&gt;
; function getCurrentPlayerName()&lt;br /&gt;
: Get the &amp;quot;current_player&amp;quot; name&lt;br /&gt;
; function getCurrentPlayerColor()&lt;br /&gt;
: Get the &amp;quot;current_player&amp;quot; color&lt;br /&gt;
; function isCurrentPlayerZombie()&lt;br /&gt;
: Check the &amp;quot;current_player&amp;quot; zombie status&lt;br /&gt;
; function activeNextPlayer()&lt;br /&gt;
: Make the next player active&lt;br /&gt;
; function activePrevPlayer()&lt;br /&gt;
: Make the previous player active&lt;br /&gt;
; function giveExtraTime( $player_id, $specific_time=null )&lt;br /&gt;
: Give standard extra time to this player (standard extra time is a game option)&lt;br /&gt;
; function initStat( $table_or_player, $name, $value, $player_id=null )&lt;br /&gt;
: Create a statistic entry for the specified statistics with a default value&lt;br /&gt;
: In case of a &amp;quot;player&amp;quot; entry, if player_id is not specified, all players are set to the same value&lt;br /&gt;
; function setStat( $value, $name, $player_id = null )&lt;br /&gt;
: Set statistic value&lt;br /&gt;
; function incStat( $delta, $name, $player_id = null )&lt;br /&gt;
: Increment (or decrement) specified value&lt;br /&gt;
; function DbQuery( $sql )&lt;br /&gt;
: Executes sql query on the database&lt;br /&gt;
; function getCollectionFromDB( $sql, $bSingleValue=false )&lt;br /&gt;
: Returns an associative array of rows for the sql query. First column must be a primary or alternate key. The resulting collection can be empty.&lt;br /&gt;
; protected function getNonEmptyCollectionFromDB( $sql )&lt;br /&gt;
: Idem, but raise an exception if the collection is empty&lt;br /&gt;
; function getUniqueValueFromDB( $sql )&lt;br /&gt;
: Returns a unique value from DB or null if no value is found&lt;br /&gt;
: Raise an exception if more than 1 row is returned&lt;br /&gt;
; function getObjectFromDB( $sql )&lt;br /&gt;
: Returns one row for the sql query as an associative array or null if there is no result&lt;br /&gt;
: Raise an exception if the query return more than one row&lt;br /&gt;
; function getNonEmptyObjectFromDB( $sql )&lt;br /&gt;
: Idem, but raise an exception if the query doesn&#039;t return exactly one row&lt;br /&gt;
&lt;br /&gt;
=== Exceptions you can throw ===&lt;br /&gt;
&lt;br /&gt;
; throw new BgaUserException ( $error_message)&lt;br /&gt;
: Base class to notify a user error&lt;br /&gt;
; throw new BgaSystemException ( $error_message)&lt;br /&gt;
: Base class to notify a system exception. The message will be hidden from the user, but show in the logs. Use this if the message contains technical information.&lt;br /&gt;
; throw new BgaSystemVisibleException ( $error_message)&lt;br /&gt;
: Same as previous, except that the message is visible by the user. You can use this if the message is understandable by the user.&lt;br /&gt;
&lt;br /&gt;
== Client side (Javascript functions) ==&lt;br /&gt;
&lt;br /&gt;
; this.slideToObjectPos( $(&#039;token_&#039;+token.token_id), $(&#039;cp_background&#039;), x_pix, y_pix, 10 ).play();&lt;br /&gt;
&lt;br /&gt;
; this.isSpectator&lt;br /&gt;
&lt;br /&gt;
; this.player_id&lt;br /&gt;
&lt;br /&gt;
; this.updateCounters(gamedatas.counters)&lt;br /&gt;
&lt;br /&gt;
; this.addTooltipToClass( &#039;cp_token_icon_color1&#039;, _(&#039;Green&#039;), &#039;&#039; );&lt;br /&gt;
&lt;br /&gt;
; this.addEventToClass( &amp;quot;cp_token&amp;quot;, &amp;quot;onclick&amp;quot;, &amp;quot;onClickToken&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
; this.isCurrentPlayerActive()&lt;br /&gt;
&lt;br /&gt;
; this.checkAction( &#039;selectTokens&#039; )&lt;br /&gt;
&lt;br /&gt;
; this.showMessage( _(&#039;You must select at least two tokens&#039;), &#039;error&#039; );&lt;br /&gt;
&lt;br /&gt;
; this.scoreCtrl[ notif.args.player_id ].incValue( notif.args.score_delta );&lt;br /&gt;
&lt;br /&gt;
; this.updateCounters(notif.args.counters);&lt;br /&gt;
&lt;br /&gt;
; this.ajaxcall( &amp;quot;/colorpop/colorpop/endgame.html&amp;quot;, { }, this, function( result ) {} );&lt;/div&gt;</summary>
		<author><name>Een</name></author>
	</entry>
	<entry>
		<id>https://sv.doc.boardgamearena.com/index.php?title=Development&amp;diff=316</id>
		<title>Development</title>
		<link rel="alternate" type="text/html" href="https://sv.doc.boardgamearena.com/index.php?title=Development&amp;diff=316"/>
		<updated>2012-11-27T20:53:07Z</updated>

		<summary type="html">&lt;p&gt;Een: /* Other resources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Bga_studio_small.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What is this? ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Board Game Arena Studio&#039;&#039;&#039; is a platform to build online board game adaptation using the Board Game Arena platform.&lt;br /&gt;
&lt;br /&gt;
It is open to any gamer with development skills :)&lt;br /&gt;
&lt;br /&gt;
See announcement here:&lt;br /&gt;
http://forum.boardgamearena.com/viewtopic.php?f=10&amp;amp;t=1973&lt;br /&gt;
&lt;br /&gt;
== How can I develop a board game on BGA Studio? ==&lt;br /&gt;
&lt;br /&gt;
Check these presentations first:&lt;br /&gt;
&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/5-reasons-why-you-should-use-bga-studio-for-your-online-board-game 5 reasons why you should use BGA Studio for your online board game]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/the-8-steps-to-create-a-board-game-on-board-game-arena The 8 steps to create a board game on Board Game Arena]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/the-bga-framework-at-a-glance The BGA Framework at a glance]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/bga-studio-focus-on-bga-game-state-machine Focus on BGA game state machine]&lt;br /&gt;
&lt;br /&gt;
== BGA Studio documentation ==&lt;br /&gt;
&lt;br /&gt;
=== How do I register? ===&lt;br /&gt;
&lt;br /&gt;
Registering is done by e-mail to [http://en.boardgamearena.com/#!doc/Contact_us BGA contact address].&lt;br /&gt;
&lt;br /&gt;
Please provide the following information:&lt;br /&gt;
* your developer user name to be used on “BGA Studio” (for technical reasons, no space, number or special character);&lt;br /&gt;
* your real name;&lt;br /&gt;
* your e-mail address;&lt;br /&gt;
* your postal address.&lt;br /&gt;
&lt;br /&gt;
We also drafted a quick [http://en.doc.boardgamearena.com/images/0/02/BGA_TC_Dev_en.pdf &#039;terms &amp;amp; conditions&#039; document]. It&#039;s very light, so as to get to the fun part faster.&lt;br /&gt;
&lt;br /&gt;
To be valid, the registration e-mail must contain this document as an attachment, with the following sentence in the mail body: &#039;I agree with the terms &amp;amp; conditions for developers on BGA Studio joined as an attachment&#039;.&lt;br /&gt;
&lt;br /&gt;
And of course, we also encourage you to tell us about which games you would love to develop on BGA!&lt;br /&gt;
&lt;br /&gt;
=== Ok, I registered, what do I get? ===&lt;br /&gt;
&lt;br /&gt;
First, you get by e-mail a list of the games we have an agreement to develop. Please keep this list confidential, or it would ruin our tradition to make players guess the name of the next game on the forum!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;NB: during the BETA pĥase, to smooth things up and make sure that everything is working correctly, &lt;br /&gt;
we will work only with 3 fearless developers on 3 simple games.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Second, once we have discussed together and are fixed on a game you&#039;ll take charge of, we&#039;ll create your studio account and you will get:&lt;br /&gt;
* one login / password to access files through SFTP&lt;br /&gt;
* ten logins with numeric suffixes from 0 to 9 and a common simple password to test games on the studio website while developing.&lt;br /&gt;
&lt;br /&gt;
Once logged in to your SFTP root folder, you will find:&lt;br /&gt;
* a &#039;resources.html&#039; file with the URLs to use and some extra connection information&lt;br /&gt;
* three folders containing the three simple games provided as examples&lt;br /&gt;
* a folder for the game you will be developing initialized after our &#039;EmptyGame&#039; template, providing the game structure (and comments! and examples!)&lt;br /&gt;
&lt;br /&gt;
Then... that&#039;s all, you can start!&lt;br /&gt;
&lt;br /&gt;
=== Great, I&#039;m in! ... How should I start? ===&lt;br /&gt;
&lt;br /&gt;
If you didn&#039;t already, check the presentations at the top of this page to get the basics.&lt;br /&gt;
&lt;br /&gt;
After that, we would advise you to take a peek to tutorials for the example games:&lt;br /&gt;
* [[Tutorial reversi]]&lt;br /&gt;
* [[Tutorial hearts]]&lt;br /&gt;
* [[Tutorial xxx ]]&lt;br /&gt;
&lt;br /&gt;
Then start editing files and see what happens! ;)&lt;br /&gt;
&lt;br /&gt;
=== Other resources ===&lt;br /&gt;
&lt;br /&gt;
[[Studio FAQ]]&lt;br /&gt;
&lt;br /&gt;
[[Studio file reference]]&lt;br /&gt;
&lt;br /&gt;
[[Studio function reference]]&lt;br /&gt;
&lt;br /&gt;
[[Studio back-office]]&lt;br /&gt;
&lt;br /&gt;
[http://forum.boardgamearena.com/viewforum.php?f=12 Development forum]&lt;br /&gt;
&lt;br /&gt;
[http://forum.boardgamearena.com/viewforum.php?f=4 Bugs forum]&lt;/div&gt;</summary>
		<author><name>Een</name></author>
	</entry>
	<entry>
		<id>https://sv.doc.boardgamearena.com/index.php?title=Development_FAQ&amp;diff=315</id>
		<title>Development FAQ</title>
		<link rel="alternate" type="text/html" href="https://sv.doc.boardgamearena.com/index.php?title=Development_FAQ&amp;diff=315"/>
		<updated>2012-11-27T20:52:20Z</updated>

		<summary type="html">&lt;p&gt;Een: moved Development FAQ to Studio FAQ&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Studio FAQ]]&lt;/div&gt;</summary>
		<author><name>Een</name></author>
	</entry>
	<entry>
		<id>https://sv.doc.boardgamearena.com/index.php?title=Studio_FAQ&amp;diff=314</id>
		<title>Studio FAQ</title>
		<link rel="alternate" type="text/html" href="https://sv.doc.boardgamearena.com/index.php?title=Studio_FAQ&amp;diff=314"/>
		<updated>2012-11-27T20:52:20Z</updated>

		<summary type="html">&lt;p&gt;Een: moved Development FAQ to Studio FAQ&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a place where we will collect and answer frequently asked questions.&lt;br /&gt;
&lt;br /&gt;
== What should I use to access the files through SFTP? ==&lt;br /&gt;
&lt;br /&gt;
There is a lot of tools to do that. Use the one you are the most comfortable with.&lt;br /&gt;
&lt;br /&gt;
On Linux, you can for example use the &#039;Connect to server&#039; function of the Nautilus file management system, or use sshfs.&lt;br /&gt;
&lt;br /&gt;
On Windows, there is for example the WinSCP client.&lt;br /&gt;
&lt;br /&gt;
== It&#039;s pretty annoying to log in with multiple users to start a game. Is there some easier way? ==&lt;br /&gt;
&lt;br /&gt;
You can use the &#039;Express start&#039; 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.&lt;br /&gt;
&lt;br /&gt;
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&#039;s perspective.&lt;br /&gt;
&lt;br /&gt;
You can also end the game in two clicks by clicking the &#039;End game&#039; button then selecting &#039;Express game stop&#039; in the popup.&lt;br /&gt;
&lt;br /&gt;
== What is the working language on BGA studio? ==&lt;br /&gt;
&lt;br /&gt;
Working language is &#039;&#039;&#039;English&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Variables and functions must be named with English words.&lt;br /&gt;
&lt;br /&gt;
Comments must be written in English.&lt;br /&gt;
&lt;br /&gt;
Game interface strings and game logs must be written in English.&lt;br /&gt;
&lt;br /&gt;
== How can I provide translation in my language? == &lt;br /&gt;
&lt;br /&gt;
BGA administrators will translate the game in French before the game release.&lt;br /&gt;
&lt;br /&gt;
After the game release, the collaborative translation interface can be used to translate into other languages.&lt;br /&gt;
&lt;br /&gt;
== I updated the images in the &#039;img&#039; folder of my game, but they don&#039;t show? ==&lt;br /&gt;
&lt;br /&gt;
Please try emptying your browser cache and reloading the page.&lt;br /&gt;
&lt;br /&gt;
== I added some game options / some game statistics, but they don&#039;t show? ==&lt;br /&gt;
&lt;br /&gt;
An extra deployment action from the BGA administrators is needed to activate new game options and statistics. Please contact us.&lt;br /&gt;
&lt;br /&gt;
== Is there a quick way to access the database for my current table? ==&lt;br /&gt;
&lt;br /&gt;
Yes! While playing a game on studio, you have a &amp;quot;Go to game database&amp;quot; link at the bottom of your game. This link will bring you directly to the database for the current table.&lt;/div&gt;</summary>
		<author><name>Een</name></author>
	</entry>
	<entry>
		<id>https://sv.doc.boardgamearena.com/index.php?title=Studio_back-office&amp;diff=313</id>
		<title>Studio back-office</title>
		<link rel="alternate" type="text/html" href="https://sv.doc.boardgamearena.com/index.php?title=Studio_back-office&amp;diff=313"/>
		<updated>2012-11-27T20:51:22Z</updated>

		<summary type="html">&lt;p&gt;Een: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;You will find the URL to the Studio back-office in the &#039;resources.html&#039; file at the root of your SFTP access.&lt;br /&gt;
&lt;br /&gt;
Here is a list and description of the links and functions in this back-office.&lt;br /&gt;
&lt;br /&gt;
Click on a menu to display its content.&lt;br /&gt;
&lt;br /&gt;
=== Documentation ===&lt;br /&gt;
&lt;br /&gt;
Contains links to this wiki, the development forum and the bugs forum.&lt;br /&gt;
&lt;br /&gt;
=== Database ===&lt;br /&gt;
&lt;br /&gt;
Contains a link to the Studio database administration tool (PHPMyAdmin).&lt;br /&gt;
&lt;br /&gt;
Your login / password for this tool is the same as for your SFTP access.&lt;br /&gt;
&lt;br /&gt;
=== Sources ===&lt;br /&gt;
&lt;br /&gt;
Contains a form for committing your sources to the BGA repository.&lt;br /&gt;
* Game name field should contain the name of your game (lower case, no space).&lt;br /&gt;
* Comment field should contain your commit comment describing changes to the code since your last commit.&lt;br /&gt;
&lt;br /&gt;
You should commit from time to time when you hit some landmarks in your development. This is an extra assurance not to lose your code, and to have the possibility (by asking BGA administrators) to get a previous version of your code if you need to backtrack.&lt;br /&gt;
&lt;br /&gt;
=== Logs ===&lt;br /&gt;
&lt;br /&gt;
Gives you a web based access to the studio server logs.&lt;br /&gt;
&lt;br /&gt;
; Current table error log&lt;br /&gt;
: main log of interest to you while developing, it contains the error happening at the table you are currently playing at.&lt;br /&gt;
; Current table request logs&lt;br /&gt;
: this log traces all the actions happening at the table you are currently playing at.&lt;br /&gt;
; Javascript error log&lt;br /&gt;
: this log traces all the Javascript errors happening on the client side. Errors are also briefly displayed in your browser, but in this log it&#039;s better formatted and you can look a it quietly.&lt;br /&gt;
; Gameserver error log&lt;br /&gt;
: this log traces all errors happening on the gameserver. It should mainly be useful if your game setup crashes (ie before your table is ready, so before errors are collected in the current table error log), for example if there is a syntax error in your &#039;dbmodel.sql&#039; file.&lt;br /&gt;
; HTTP error log&lt;br /&gt;
: this log traces the web server errors. This is useful to look at PHP syntax errors and warnings. &lt;br /&gt;
&lt;br /&gt;
Please note that the three last logs are common to all games being developed on the platform, so there may be some noise in the data you are interested in.&lt;br /&gt;
&lt;br /&gt;
You can open the log links in a different tab and just hit F5 when you need to refresh. The URL you will get for the new tab has a &amp;quot;?n=100&amp;quot; parameter that gives the number of lines to display: you can modify it in the URL if you need more.&lt;/div&gt;</summary>
		<author><name>Een</name></author>
	</entry>
	<entry>
		<id>https://sv.doc.boardgamearena.com/index.php?title=Studio_back-office&amp;diff=312</id>
		<title>Studio back-office</title>
		<link rel="alternate" type="text/html" href="https://sv.doc.boardgamearena.com/index.php?title=Studio_back-office&amp;diff=312"/>
		<updated>2012-11-27T20:50:47Z</updated>

		<summary type="html">&lt;p&gt;Een: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;You will find the URL to the Studio back-office in the &#039;resources.html&#039; file at the root of your SFTP access.&lt;br /&gt;
&lt;br /&gt;
Here is a list and description of the links and functions in this back-office.&lt;br /&gt;
&lt;br /&gt;
Click on a menu to display its content.&lt;br /&gt;
&lt;br /&gt;
=== Documentation ===&lt;br /&gt;
&lt;br /&gt;
Contains links to this wiki, the development forum and the bugs forum.&lt;br /&gt;
&lt;br /&gt;
=== Database ===&lt;br /&gt;
&lt;br /&gt;
Contains a link to the Studio database administration tool (PHPMyAdmin).&lt;br /&gt;
&lt;br /&gt;
Your login / password for this tool is the same as for your SFTP access.&lt;br /&gt;
&lt;br /&gt;
=== Sources ===&lt;br /&gt;
&lt;br /&gt;
Contains a form for committing your sources to the BGA repository.&lt;br /&gt;
* Game name field should contain the name of your game (lower case, no space).&lt;br /&gt;
* Comment field should contain your commit comment describing changes to the code since your last commit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You should commit from time to time when you hit some landmarks in your development. This is an extra assurance not to lose your code, and to have the possibility (by asking BGA administrators) to get a previous version of your code if you need to backtrack.&lt;br /&gt;
&lt;br /&gt;
=== Logs ===&lt;br /&gt;
&lt;br /&gt;
Gives you a web based access to the studio server logs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Current table error log&lt;br /&gt;
: main log of interest to you while developing, it contains the error happening at the table you are currently playing at.&lt;br /&gt;
; Current table request logs&lt;br /&gt;
: this log traces all the actions happening at the table you are currently playing at.&lt;br /&gt;
; Javascript error log&lt;br /&gt;
: this log traces all the Javascript errors happening on the client side. Errors are also briefly displayed in your browser, but in this log it&#039;s better formatted and you can look a it quietly.&lt;br /&gt;
; Gameserver error log&lt;br /&gt;
: this log traces all errors happening on the gameserver. It should mainly be useful if your game setup crashes (ie before your table is ready, so before errors are collected in the current table error log), for example if there is a syntax error in your &#039;dbmodel.sql&#039; file.&lt;br /&gt;
; HTTP error log&lt;br /&gt;
: this log traces the web server errors. This is useful to look at PHP syntax errors and warnings. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please note that the three last logs are common to all games being developed on the platform, so there may be some noise in the data you are interested in.&lt;br /&gt;
&lt;br /&gt;
You can open the log links in a different tab and just hit F5 when you need to refresh. The URL you will get for the new tab has a &amp;quot;?n=100&amp;quot; parameter that gives the number of lines to display: you can modify it in the URL if you need more.&lt;/div&gt;</summary>
		<author><name>Een</name></author>
	</entry>
	<entry>
		<id>https://sv.doc.boardgamearena.com/index.php?title=Development&amp;diff=311</id>
		<title>Development</title>
		<link rel="alternate" type="text/html" href="https://sv.doc.boardgamearena.com/index.php?title=Development&amp;diff=311"/>
		<updated>2012-11-25T21:22:25Z</updated>

		<summary type="html">&lt;p&gt;Een: /* How do I register? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Bga_studio_small.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What is this? ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Board Game Arena Studio&#039;&#039;&#039; is a platform to build online board game adaptation using the Board Game Arena platform.&lt;br /&gt;
&lt;br /&gt;
It is open to any gamer with development skills :)&lt;br /&gt;
&lt;br /&gt;
See announcement here:&lt;br /&gt;
http://forum.boardgamearena.com/viewtopic.php?f=10&amp;amp;t=1973&lt;br /&gt;
&lt;br /&gt;
== How can I develop a board game on BGA Studio? ==&lt;br /&gt;
&lt;br /&gt;
Check these presentations first:&lt;br /&gt;
&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/5-reasons-why-you-should-use-bga-studio-for-your-online-board-game 5 reasons why you should use BGA Studio for your online board game]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/the-8-steps-to-create-a-board-game-on-board-game-arena The 8 steps to create a board game on Board Game Arena]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/the-bga-framework-at-a-glance The BGA Framework at a glance]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/bga-studio-focus-on-bga-game-state-machine Focus on BGA game state machine]&lt;br /&gt;
&lt;br /&gt;
== BGA Studio documentation ==&lt;br /&gt;
&lt;br /&gt;
=== How do I register? ===&lt;br /&gt;
&lt;br /&gt;
Registering is done by e-mail to [http://en.boardgamearena.com/#!doc/Contact_us BGA contact address].&lt;br /&gt;
&lt;br /&gt;
Please provide the following information:&lt;br /&gt;
* your developer user name to be used on “BGA Studio” (for technical reasons, no space, number or special character);&lt;br /&gt;
* your real name;&lt;br /&gt;
* your e-mail address;&lt;br /&gt;
* your postal address.&lt;br /&gt;
&lt;br /&gt;
We also drafted a quick [http://en.doc.boardgamearena.com/images/0/02/BGA_TC_Dev_en.pdf &#039;terms &amp;amp; conditions&#039; document]. It&#039;s very light, so as to get to the fun part faster.&lt;br /&gt;
&lt;br /&gt;
To be valid, the registration e-mail must contain this document as an attachment, with the following sentence in the mail body: &#039;I agree with the terms &amp;amp; conditions for developers on BGA Studio joined as an attachment&#039;.&lt;br /&gt;
&lt;br /&gt;
And of course, we also encourage you to tell us about which games you would love to develop on BGA!&lt;br /&gt;
&lt;br /&gt;
=== Ok, I registered, what do I get? ===&lt;br /&gt;
&lt;br /&gt;
First, you get by e-mail a list of the games we have an agreement to develop. Please keep this list confidential, or it would ruin our tradition to make players guess the name of the next game on the forum!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;NB: during the BETA pĥase, to smooth things up and make sure that everything is working correctly, &lt;br /&gt;
we will work only with 3 fearless developers on 3 simple games.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Second, once we have discussed together and are fixed on a game you&#039;ll take charge of, we&#039;ll create your studio account and you will get:&lt;br /&gt;
* one login / password to access files through SFTP&lt;br /&gt;
* ten logins with numeric suffixes from 0 to 9 and a common simple password to test games on the studio website while developing.&lt;br /&gt;
&lt;br /&gt;
Once logged in to your SFTP root folder, you will find:&lt;br /&gt;
* a &#039;resources.html&#039; file with the URLs to use and some extra connection information&lt;br /&gt;
* three folders containing the three simple games provided as examples&lt;br /&gt;
* a folder for the game you will be developing initialized after our &#039;EmptyGame&#039; template, providing the game structure (and comments! and examples!)&lt;br /&gt;
&lt;br /&gt;
Then... that&#039;s all, you can start!&lt;br /&gt;
&lt;br /&gt;
=== Great, I&#039;m in! ... How should I start? ===&lt;br /&gt;
&lt;br /&gt;
If you didn&#039;t already, check the presentations at the top of this page to get the basics.&lt;br /&gt;
&lt;br /&gt;
After that, we would advise you to take a peek to tutorials for the example games:&lt;br /&gt;
* [[Tutorial reversi]]&lt;br /&gt;
* [[Tutorial hearts]]&lt;br /&gt;
* [[Tutorial xxx ]]&lt;br /&gt;
&lt;br /&gt;
Then start editing files and see what happens! ;)&lt;br /&gt;
&lt;br /&gt;
=== Other resources ===&lt;br /&gt;
&lt;br /&gt;
[[Development FAQ]]&lt;br /&gt;
&lt;br /&gt;
[[Development file reference]]&lt;br /&gt;
&lt;br /&gt;
[[Development function reference]]&lt;br /&gt;
&lt;br /&gt;
[[Studio back-office]]&lt;br /&gt;
&lt;br /&gt;
[http://forum.boardgamearena.com/viewforum.php?f=12 Development forum]&lt;br /&gt;
&lt;br /&gt;
[http://forum.boardgamearena.com/viewforum.php?f=4 Bugs forum]&lt;/div&gt;</summary>
		<author><name>Een</name></author>
	</entry>
	<entry>
		<id>https://sv.doc.boardgamearena.com/index.php?title=Development&amp;diff=310</id>
		<title>Development</title>
		<link rel="alternate" type="text/html" href="https://sv.doc.boardgamearena.com/index.php?title=Development&amp;diff=310"/>
		<updated>2012-11-25T21:20:30Z</updated>

		<summary type="html">&lt;p&gt;Een: /* How do I register? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Bga_studio_small.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What is this? ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Board Game Arena Studio&#039;&#039;&#039; is a platform to build online board game adaptation using the Board Game Arena platform.&lt;br /&gt;
&lt;br /&gt;
It is open to any gamer with development skills :)&lt;br /&gt;
&lt;br /&gt;
See announcement here:&lt;br /&gt;
http://forum.boardgamearena.com/viewtopic.php?f=10&amp;amp;t=1973&lt;br /&gt;
&lt;br /&gt;
== How can I develop a board game on BGA Studio? ==&lt;br /&gt;
&lt;br /&gt;
Check these presentations first:&lt;br /&gt;
&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/5-reasons-why-you-should-use-bga-studio-for-your-online-board-game 5 reasons why you should use BGA Studio for your online board game]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/the-8-steps-to-create-a-board-game-on-board-game-arena The 8 steps to create a board game on Board Game Arena]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/the-bga-framework-at-a-glance The BGA Framework at a glance]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/bga-studio-focus-on-bga-game-state-machine Focus on BGA game state machine]&lt;br /&gt;
&lt;br /&gt;
== BGA Studio documentation ==&lt;br /&gt;
&lt;br /&gt;
=== How do I register? ===&lt;br /&gt;
&lt;br /&gt;
Registering is done by e-mail to [http://en.boardgamearena.com/#!doc/Contact_us BGA contact address].&lt;br /&gt;
&lt;br /&gt;
Please provide the following information:&lt;br /&gt;
* your developer user name to be used on “BGA Studio” (for technical reasons, no space, number or special character);&lt;br /&gt;
* your real name;&lt;br /&gt;
* your e-mail address;&lt;br /&gt;
* your postal address.&lt;br /&gt;
&lt;br /&gt;
We also drafted a quick [http://en.doc.boardgamearena.com/images/0/02/BGA_TC_Dev_en.pdf &#039;terms &amp;amp; conditions&#039; document]. It&#039;s very light, so as to get to the fun part faster.&lt;br /&gt;
&lt;br /&gt;
To be valid, the registration e-mail must contain this document as an attachment and the following sentence &#039;I agree with the terms &amp;amp; conditions for developers on BGA Studio joined as an attachment&#039;.&lt;br /&gt;
&lt;br /&gt;
And of course, we also encourage you to tell us about which games you would love to develop on BGA!&lt;br /&gt;
&lt;br /&gt;
=== Ok, I registered, what do I get? ===&lt;br /&gt;
&lt;br /&gt;
First, you get by e-mail a list of the games we have an agreement to develop. Please keep this list confidential, or it would ruin our tradition to make players guess the name of the next game on the forum!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;NB: during the BETA pĥase, to smooth things up and make sure that everything is working correctly, &lt;br /&gt;
we will work only with 3 fearless developers on 3 simple games.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Second, once we have discussed together and are fixed on a game you&#039;ll take charge of, we&#039;ll create your studio account and you will get:&lt;br /&gt;
* one login / password to access files through SFTP&lt;br /&gt;
* ten logins with numeric suffixes from 0 to 9 and a common simple password to test games on the studio website while developing.&lt;br /&gt;
&lt;br /&gt;
Once logged in to your SFTP root folder, you will find:&lt;br /&gt;
* a &#039;resources.html&#039; file with the URLs to use and some extra connection information&lt;br /&gt;
* three folders containing the three simple games provided as examples&lt;br /&gt;
* a folder for the game you will be developing initialized after our &#039;EmptyGame&#039; template, providing the game structure (and comments! and examples!)&lt;br /&gt;
&lt;br /&gt;
Then... that&#039;s all, you can start!&lt;br /&gt;
&lt;br /&gt;
=== Great, I&#039;m in! ... How should I start? ===&lt;br /&gt;
&lt;br /&gt;
If you didn&#039;t already, check the presentations at the top of this page to get the basics.&lt;br /&gt;
&lt;br /&gt;
After that, we would advise you to take a peek to tutorials for the example games:&lt;br /&gt;
* [[Tutorial reversi]]&lt;br /&gt;
* [[Tutorial hearts]]&lt;br /&gt;
* [[Tutorial xxx ]]&lt;br /&gt;
&lt;br /&gt;
Then start editing files and see what happens! ;)&lt;br /&gt;
&lt;br /&gt;
=== Other resources ===&lt;br /&gt;
&lt;br /&gt;
[[Development FAQ]]&lt;br /&gt;
&lt;br /&gt;
[[Development file reference]]&lt;br /&gt;
&lt;br /&gt;
[[Development function reference]]&lt;br /&gt;
&lt;br /&gt;
[[Studio back-office]]&lt;br /&gt;
&lt;br /&gt;
[http://forum.boardgamearena.com/viewforum.php?f=12 Development forum]&lt;br /&gt;
&lt;br /&gt;
[http://forum.boardgamearena.com/viewforum.php?f=4 Bugs forum]&lt;/div&gt;</summary>
		<author><name>Een</name></author>
	</entry>
	<entry>
		<id>https://sv.doc.boardgamearena.com/index.php?title=Fil:BGA_TC_Dev_en.pdf&amp;diff=309</id>
		<title>Fil:BGA TC Dev en.pdf</title>
		<link rel="alternate" type="text/html" href="https://sv.doc.boardgamearena.com/index.php?title=Fil:BGA_TC_Dev_en.pdf&amp;diff=309"/>
		<updated>2012-11-25T21:17:46Z</updated>

		<summary type="html">&lt;p&gt;Een: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Een</name></author>
	</entry>
	<entry>
		<id>https://sv.doc.boardgamearena.com/index.php?title=Studio_function_reference&amp;diff=308</id>
		<title>Studio function reference</title>
		<link rel="alternate" type="text/html" href="https://sv.doc.boardgamearena.com/index.php?title=Studio_function_reference&amp;diff=308"/>
		<updated>2012-11-25T21:10:34Z</updated>

		<summary type="html">&lt;p&gt;Een: /* Client side (Javascript functions) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page references useful server side and client side functions, so that nobody needs to reinvent the wheel (unless he wants to).&lt;br /&gt;
&lt;br /&gt;
== Server side (PHP functions) ==&lt;br /&gt;
&lt;br /&gt;
=== APP_GameAction class (&amp;lt;gamename&amp;gt;.action.php) ===&lt;br /&gt;
&lt;br /&gt;
; function isArg( $argName )&lt;br /&gt;
: Is this argument filled ?&lt;br /&gt;
; function getArg( $argName, $argType, $mandatory=false, $default=NULL, $argTypeDetails=array(), $bCanFail=false  )&lt;br /&gt;
: Get script argument with the correct type&lt;br /&gt;
: bCanFail means than a validation failure is possible (user input)&lt;br /&gt;
: The main argType values are as follows.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define( &#039;AT_int&#039;, 0 );        //  an integer&lt;br /&gt;
define( &#039;AT_posint&#039;, 1 );     //  a positive integer &lt;br /&gt;
define( &#039;AT_float&#039;, 2 );      //  a float&lt;br /&gt;
define( &#039;AT_email&#039;, 3 );      //  an email  &lt;br /&gt;
define( &#039;AT_url&#039;, 4 );        //  a URL&lt;br /&gt;
define( &#039;AT_bool&#039;, 5 );       //  1/0/true/false&lt;br /&gt;
define( &#039;AT_enum&#039;, 6 );       //  argTypeDetails list the possible values&lt;br /&gt;
define( &#039;AT_alphanum&#039;, 7 );   //  only 0-9a-zA-Z_ and space&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Table class (&amp;lt;gamename&amp;gt;.game.php) ===&lt;br /&gt;
&lt;br /&gt;
; function _( $text )&lt;br /&gt;
: Transparent function, used to mark strings to be translated on the server side (ex: error message)&lt;br /&gt;
; function clienttranslate( $string )&lt;br /&gt;
: Transparent function: used to mark string to be translated on client side (ex: notification message)&lt;br /&gt;
; function getPlayersNumber()&lt;br /&gt;
: Returns the number of players playing at the table&lt;br /&gt;
; function checkAction( $actionName, $bThrowException=true )&lt;br /&gt;
: Check if action is valid regarding current game state (exception if fails)&lt;br /&gt;
: if &amp;quot;bThrowException&amp;quot; is set to &amp;quot;false&amp;quot;, the function return false in case of failure instead of throwing and exception&lt;br /&gt;
; function getActivePlayerId()&lt;br /&gt;
: Get the &amp;quot;active_player&amp;quot;, whatever what is the current state type&lt;br /&gt;
: Note: it does NOT mean that this player is active right now, because state type could be &amp;quot;game&amp;quot; or &amp;quot;multiplayer&amp;quot;&lt;br /&gt;
; function getActivePlayerName()&lt;br /&gt;
: Get the &amp;quot;active_player&amp;quot; name&lt;br /&gt;
; function getCurrentPlayerId()&lt;br /&gt;
: Get the &amp;quot;current_player&amp;quot;. The current player is the one from which the action originated. It is not always the active player.&lt;br /&gt;
; function getCurrentPlayerName()&lt;br /&gt;
: Get the &amp;quot;current_player&amp;quot; name&lt;br /&gt;
; function getCurrentPlayerColor()&lt;br /&gt;
: Get the &amp;quot;current_player&amp;quot; color&lt;br /&gt;
; function isCurrentPlayerZombie()&lt;br /&gt;
: Check the &amp;quot;current_player&amp;quot; zombie status&lt;br /&gt;
; function activeNextPlayer()&lt;br /&gt;
: Make the next player active&lt;br /&gt;
; function activePrevPlayer()&lt;br /&gt;
: Make the previous player active&lt;br /&gt;
; function giveExtraTime( $player_id, $specific_time=null )&lt;br /&gt;
: Give standard extra time to this player (standard extra time is a game option)&lt;br /&gt;
; function initStat( $table_or_player, $name, $value, $player_id=null )&lt;br /&gt;
: Create a statistic entry for the specified statistics with a default value&lt;br /&gt;
: In case of a &amp;quot;player&amp;quot; entry, if player_id is not specified, all players are set to the same value&lt;br /&gt;
; function setStat( $value, $name, $player_id = null )&lt;br /&gt;
: Set statistic value&lt;br /&gt;
; function incStat( $delta, $name, $player_id = null )&lt;br /&gt;
: Increment (or decrement) specified value&lt;br /&gt;
; function DbQuery( $sql )&lt;br /&gt;
: Executes sql query on the database&lt;br /&gt;
; function getCollectionFromDB( $sql, $bSingleValue=false )&lt;br /&gt;
: Returns an associative array of rows for the sql query. First column must be a primary or alternate key. The resulting collection can be empty.&lt;br /&gt;
; protected function getNonEmptyCollectionFromDB( $sql )&lt;br /&gt;
: Idem, but raise an exception if the collection is empty&lt;br /&gt;
; function getUniqueValueFromDB( $sql )&lt;br /&gt;
: Returns a unique value from DB or null if no value is found&lt;br /&gt;
: Raise an exception if more than 1 row is returned&lt;br /&gt;
; function getObjectFromDB( $sql )&lt;br /&gt;
: Returns one row for the sql query as an associative array or null if there is no result&lt;br /&gt;
: Raise an exception if the query return more than one row&lt;br /&gt;
; function getNonEmptyObjectFromDB( $sql )&lt;br /&gt;
: Idem, but raise an exception if the query doesn&#039;t return exactly one row&lt;br /&gt;
&lt;br /&gt;
=== Exceptions you can throw ===&lt;br /&gt;
&lt;br /&gt;
; throw new BgaUserException ( $error_message)&lt;br /&gt;
: Base class to notify a user error&lt;br /&gt;
; throw new BgaSystemException ( $error_message)&lt;br /&gt;
: Base class to notify a system exception. The message will be hidden from the user, but show in the logs. Use this if the message contains technical information.&lt;br /&gt;
; throw new BgaSystemVisibleException ( $error_message)&lt;br /&gt;
: Same as previous, except that the message is visible by the user. You can use this if the message is understandable by the user.&lt;br /&gt;
&lt;br /&gt;
== Client side (Javascript functions) ==&lt;br /&gt;
&lt;br /&gt;
; this.slideToObjectPos( $(&#039;token_&#039;+token.token_id), $(&#039;cp_background&#039;), x_pix, y_pix, 10 ).play();&lt;br /&gt;
&lt;br /&gt;
; this.isSpectator&lt;br /&gt;
&lt;br /&gt;
; this.player_id&lt;br /&gt;
&lt;br /&gt;
; this.updateCounters(gamedatas.counters)&lt;br /&gt;
&lt;br /&gt;
; this.addTooltipToClass( &#039;cp_token_icon_color1&#039;, _(&#039;Green&#039;), &#039;&#039; );&lt;br /&gt;
&lt;br /&gt;
; this.addEventToClass( &amp;quot;cp_token&amp;quot;, &amp;quot;onclick&amp;quot;, &amp;quot;onClickToken&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
; this.isCurrentPlayerActive()&lt;br /&gt;
&lt;br /&gt;
; this.checkAction( &#039;selectTokens&#039; )&lt;br /&gt;
&lt;br /&gt;
; this.showMessage( _(&#039;You must select at least two tokens&#039;), &#039;error&#039; );&lt;br /&gt;
&lt;br /&gt;
; this.scoreCtrl[ notif.args.player_id ].incValue( notif.args.score_delta );&lt;br /&gt;
&lt;br /&gt;
; this.updateCounters(notif.args.counters);&lt;br /&gt;
&lt;br /&gt;
; this.ajaxcall( &amp;quot;/colorpop/colorpop/endgame.html&amp;quot;, { }, this, function( result ) {} );&lt;/div&gt;</summary>
		<author><name>Een</name></author>
	</entry>
	<entry>
		<id>https://sv.doc.boardgamearena.com/index.php?title=Studio_function_reference&amp;diff=307</id>
		<title>Studio function reference</title>
		<link rel="alternate" type="text/html" href="https://sv.doc.boardgamearena.com/index.php?title=Studio_function_reference&amp;diff=307"/>
		<updated>2012-11-25T19:15:02Z</updated>

		<summary type="html">&lt;p&gt;Een: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page references useful server side and client side functions, so that nobody needs to reinvent the wheel (unless he wants to).&lt;br /&gt;
&lt;br /&gt;
== Server side (PHP functions) ==&lt;br /&gt;
&lt;br /&gt;
=== APP_GameAction class (&amp;lt;gamename&amp;gt;.action.php) ===&lt;br /&gt;
&lt;br /&gt;
; function isArg( $argName )&lt;br /&gt;
: Is this argument filled ?&lt;br /&gt;
; function getArg( $argName, $argType, $mandatory=false, $default=NULL, $argTypeDetails=array(), $bCanFail=false  )&lt;br /&gt;
: Get script argument with the correct type&lt;br /&gt;
: bCanFail means than a validation failure is possible (user input)&lt;br /&gt;
: The main argType values are as follows.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define( &#039;AT_int&#039;, 0 );        //  an integer&lt;br /&gt;
define( &#039;AT_posint&#039;, 1 );     //  a positive integer &lt;br /&gt;
define( &#039;AT_float&#039;, 2 );      //  a float&lt;br /&gt;
define( &#039;AT_email&#039;, 3 );      //  an email  &lt;br /&gt;
define( &#039;AT_url&#039;, 4 );        //  a URL&lt;br /&gt;
define( &#039;AT_bool&#039;, 5 );       //  1/0/true/false&lt;br /&gt;
define( &#039;AT_enum&#039;, 6 );       //  argTypeDetails list the possible values&lt;br /&gt;
define( &#039;AT_alphanum&#039;, 7 );   //  only 0-9a-zA-Z_ and space&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Table class (&amp;lt;gamename&amp;gt;.game.php) ===&lt;br /&gt;
&lt;br /&gt;
; function _( $text )&lt;br /&gt;
: Transparent function, used to mark strings to be translated on the server side (ex: error message)&lt;br /&gt;
; function clienttranslate( $string )&lt;br /&gt;
: Transparent function: used to mark string to be translated on client side (ex: notification message)&lt;br /&gt;
; function getPlayersNumber()&lt;br /&gt;
: Returns the number of players playing at the table&lt;br /&gt;
; function checkAction( $actionName, $bThrowException=true )&lt;br /&gt;
: Check if action is valid regarding current game state (exception if fails)&lt;br /&gt;
: if &amp;quot;bThrowException&amp;quot; is set to &amp;quot;false&amp;quot;, the function return false in case of failure instead of throwing and exception&lt;br /&gt;
; function getActivePlayerId()&lt;br /&gt;
: Get the &amp;quot;active_player&amp;quot;, whatever what is the current state type&lt;br /&gt;
: Note: it does NOT mean that this player is active right now, because state type could be &amp;quot;game&amp;quot; or &amp;quot;multiplayer&amp;quot;&lt;br /&gt;
; function getActivePlayerName()&lt;br /&gt;
: Get the &amp;quot;active_player&amp;quot; name&lt;br /&gt;
; function getCurrentPlayerId()&lt;br /&gt;
: Get the &amp;quot;current_player&amp;quot;. The current player is the one from which the action originated. It is not always the active player.&lt;br /&gt;
; function getCurrentPlayerName()&lt;br /&gt;
: Get the &amp;quot;current_player&amp;quot; name&lt;br /&gt;
; function getCurrentPlayerColor()&lt;br /&gt;
: Get the &amp;quot;current_player&amp;quot; color&lt;br /&gt;
; function isCurrentPlayerZombie()&lt;br /&gt;
: Check the &amp;quot;current_player&amp;quot; zombie status&lt;br /&gt;
; function activeNextPlayer()&lt;br /&gt;
: Make the next player active&lt;br /&gt;
; function activePrevPlayer()&lt;br /&gt;
: Make the previous player active&lt;br /&gt;
; function giveExtraTime( $player_id, $specific_time=null )&lt;br /&gt;
: Give standard extra time to this player (standard extra time is a game option)&lt;br /&gt;
; function initStat( $table_or_player, $name, $value, $player_id=null )&lt;br /&gt;
: Create a statistic entry for the specified statistics with a default value&lt;br /&gt;
: In case of a &amp;quot;player&amp;quot; entry, if player_id is not specified, all players are set to the same value&lt;br /&gt;
; function setStat( $value, $name, $player_id = null )&lt;br /&gt;
: Set statistic value&lt;br /&gt;
; function incStat( $delta, $name, $player_id = null )&lt;br /&gt;
: Increment (or decrement) specified value&lt;br /&gt;
; function DbQuery( $sql )&lt;br /&gt;
: Executes sql query on the database&lt;br /&gt;
; function getCollectionFromDB( $sql, $bSingleValue=false )&lt;br /&gt;
: Returns an associative array of rows for the sql query. First column must be a primary or alternate key. The resulting collection can be empty.&lt;br /&gt;
; protected function getNonEmptyCollectionFromDB( $sql )&lt;br /&gt;
: Idem, but raise an exception if the collection is empty&lt;br /&gt;
; function getUniqueValueFromDB( $sql )&lt;br /&gt;
: Returns a unique value from DB or null if no value is found&lt;br /&gt;
: Raise an exception if more than 1 row is returned&lt;br /&gt;
; function getObjectFromDB( $sql )&lt;br /&gt;
: Returns one row for the sql query as an associative array or null if there is no result&lt;br /&gt;
: Raise an exception if the query return more than one row&lt;br /&gt;
; function getNonEmptyObjectFromDB( $sql )&lt;br /&gt;
: Idem, but raise an exception if the query doesn&#039;t return exactly one row&lt;br /&gt;
&lt;br /&gt;
=== Exceptions you can throw ===&lt;br /&gt;
&lt;br /&gt;
; throw new BgaUserException ( $error_message)&lt;br /&gt;
: Base class to notify a user error&lt;br /&gt;
; throw new BgaSystemException ( $error_message)&lt;br /&gt;
: Base class to notify a system exception. The message will be hidden from the user, but show in the logs. Use this if the message contains technical information.&lt;br /&gt;
; throw new BgaSystemVisibleException ( $error_message)&lt;br /&gt;
: Same as previous, except that the message is visible by the user. You can use this if the message is understandable by the user.&lt;br /&gt;
&lt;br /&gt;
== Client side (Javascript functions) ==&lt;br /&gt;
&lt;br /&gt;
; todo : todo&lt;/div&gt;</summary>
		<author><name>Een</name></author>
	</entry>
	<entry>
		<id>https://sv.doc.boardgamearena.com/index.php?title=Studio_function_reference&amp;diff=306</id>
		<title>Studio function reference</title>
		<link rel="alternate" type="text/html" href="https://sv.doc.boardgamearena.com/index.php?title=Studio_function_reference&amp;diff=306"/>
		<updated>2012-11-25T19:04:06Z</updated>

		<summary type="html">&lt;p&gt;Een: /* Table class (.game.php) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page references useful server side and client side functions, so that nobody needs to reinvent the wheel (unless he wants to).&lt;br /&gt;
&lt;br /&gt;
== Server side (PHP functions) ==&lt;br /&gt;
&lt;br /&gt;
=== APP_GameAction class (&amp;lt;gamename&amp;gt;.action.php) ===&lt;br /&gt;
&lt;br /&gt;
; function isArg( $argName )&lt;br /&gt;
: Is this argument filled ?&lt;br /&gt;
; function getArg( $argName, $argType, $mandatory=false, $default=NULL, $argTypeDetails=array(), $bCanFail=false  )&lt;br /&gt;
: Get script argument with the correct type&lt;br /&gt;
: bCanFail means than a validation failure is possible (user input)&lt;br /&gt;
: The main argType values are as follows.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define( &#039;AT_int&#039;, 0 );        //  an integer&lt;br /&gt;
define( &#039;AT_posint&#039;, 1 );     //  a positive integer &lt;br /&gt;
define( &#039;AT_float&#039;, 2 );      //  a float&lt;br /&gt;
define( &#039;AT_email&#039;, 3 );      //  an email  &lt;br /&gt;
define( &#039;AT_url&#039;, 4 );        //  a URL&lt;br /&gt;
define( &#039;AT_bool&#039;, 5 );       //  1/0/true/false&lt;br /&gt;
define( &#039;AT_enum&#039;, 6 );       //  argTypeDetails list the possible values&lt;br /&gt;
define( &#039;AT_alphanum&#039;, 7 );   //  only 0-9a-zA-Z_ and space&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Table class (&amp;lt;gamename&amp;gt;.game.php) ===&lt;br /&gt;
&lt;br /&gt;
; function _( $text )&lt;br /&gt;
: Transparent function, used to mark strings to be translated on the server side (ex: error message)&lt;br /&gt;
; function clienttranslate( $string )&lt;br /&gt;
: Transparent function: used to mark string to be translated on client side (ex: notification message)&lt;br /&gt;
; function getPlayersNumber()&lt;br /&gt;
: Returns the number of players playing at the table&lt;br /&gt;
; function checkAction( $actionName, $bThrowException=true )&lt;br /&gt;
: Check if action is valid regarding current game state (exception if fails)&lt;br /&gt;
: if &amp;quot;bThrowException&amp;quot; is set to &amp;quot;false&amp;quot;, the function return false in case of failure instead of throwing and exception&lt;br /&gt;
; function getActivePlayerId()&lt;br /&gt;
: Get the &amp;quot;active_player&amp;quot;, whatever what is the current state type&lt;br /&gt;
: Note: it does NOT mean that this player is active right now, because state type could be &amp;quot;game&amp;quot; or &amp;quot;multiplayer&amp;quot;&lt;br /&gt;
; function getActivePlayerName()&lt;br /&gt;
: Get the &amp;quot;active_player&amp;quot; name&lt;br /&gt;
; function getCurrentPlayerId()&lt;br /&gt;
: Get the &amp;quot;current_player&amp;quot;. The current player is the one from which the action originated. It is not always the active player.&lt;br /&gt;
; function getCurrentPlayerName()&lt;br /&gt;
: Get the &amp;quot;current_player&amp;quot; name&lt;br /&gt;
; function getCurrentPlayerColor()&lt;br /&gt;
: Get the &amp;quot;current_player&amp;quot; color&lt;br /&gt;
; function isCurrentPlayerZombie()&lt;br /&gt;
: Check the &amp;quot;current_player&amp;quot; zombie status&lt;br /&gt;
; function activeNextPlayer()&lt;br /&gt;
: Make the next player active&lt;br /&gt;
; function activePrevPlayer()&lt;br /&gt;
: Make the previous player active&lt;br /&gt;
; function giveExtraTime( $player_id, $specific_time=null )&lt;br /&gt;
: Give standard extra time to this player (standard extra time is a game option)&lt;br /&gt;
; function initStat( $table_or_player, $name, $value, $player_id=null )&lt;br /&gt;
: Create a statistic entry for the specified statistics with a default value&lt;br /&gt;
: In case of a &amp;quot;player&amp;quot; entry, if player_id is not specified, all players are set to the same value&lt;br /&gt;
; function setStat( $value, $name, $player_id = null )&lt;br /&gt;
: Set statistic value&lt;br /&gt;
; function incStat( $delta, $name, $player_id = null )&lt;br /&gt;
: Increment (or decrement) specified value&lt;br /&gt;
; function DbQuery( $sql )&lt;br /&gt;
: Executes sql query on the database&lt;br /&gt;
; function getCollectionFromDB( $sql, $bSingleValue=false )&lt;br /&gt;
: Returns an associative array of rows for the sql query. First column must be a primary or alternate key. The resulting collection can be empty.&lt;br /&gt;
; protected function getNonEmptyCollectionFromDB( $sql )&lt;br /&gt;
: Idem, but raise an exception if the collection is empty&lt;br /&gt;
; function getUniqueValueFromDB( $sql )&lt;br /&gt;
: Returns a unique value from DB or null if no value is found&lt;br /&gt;
: Raise an exception if more than 1 row is returned&lt;br /&gt;
; function getObjectFromDB( $sql )&lt;br /&gt;
: Returns one row for the sql query as an associative array or null if there is no result&lt;br /&gt;
: Raise an exception if the query return more than one row&lt;br /&gt;
; function getNonEmptyObjectFromDB( $sql )&lt;br /&gt;
: Idem, but raise an exception if the query doesn&#039;t return exactly one row&lt;br /&gt;
&lt;br /&gt;
== Client side (Javascript functions) ==&lt;br /&gt;
&lt;br /&gt;
; todo : todo&lt;/div&gt;</summary>
		<author><name>Een</name></author>
	</entry>
	<entry>
		<id>https://sv.doc.boardgamearena.com/index.php?title=Studio_function_reference&amp;diff=305</id>
		<title>Studio function reference</title>
		<link rel="alternate" type="text/html" href="https://sv.doc.boardgamearena.com/index.php?title=Studio_function_reference&amp;diff=305"/>
		<updated>2012-11-25T18:57:56Z</updated>

		<summary type="html">&lt;p&gt;Een: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page references useful server side and client side functions, so that nobody needs to reinvent the wheel (unless he wants to).&lt;br /&gt;
&lt;br /&gt;
== Server side (PHP functions) ==&lt;br /&gt;
&lt;br /&gt;
=== APP_GameAction class (&amp;lt;gamename&amp;gt;.action.php) ===&lt;br /&gt;
&lt;br /&gt;
; function isArg( $argName )&lt;br /&gt;
: Is this argument filled ?&lt;br /&gt;
; function getArg( $argName, $argType, $mandatory=false, $default=NULL, $argTypeDetails=array(), $bCanFail=false  )&lt;br /&gt;
: Get script argument with the correct type&lt;br /&gt;
: bCanFail means than a validation failure is possible (user input)&lt;br /&gt;
: The main argType values are as follows.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define( &#039;AT_int&#039;, 0 );        //  an integer&lt;br /&gt;
define( &#039;AT_posint&#039;, 1 );     //  a positive integer &lt;br /&gt;
define( &#039;AT_float&#039;, 2 );      //  a float&lt;br /&gt;
define( &#039;AT_email&#039;, 3 );      //  an email  &lt;br /&gt;
define( &#039;AT_url&#039;, 4 );        //  a URL&lt;br /&gt;
define( &#039;AT_bool&#039;, 5 );       //  1/0/true/false&lt;br /&gt;
define( &#039;AT_enum&#039;, 6 );       //  argTypeDetails list the possible values&lt;br /&gt;
define( &#039;AT_alphanum&#039;, 7 );   //  only 0-9a-zA-Z_ and space&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Table class (&amp;lt;gamename&amp;gt;.game.php) ===&lt;br /&gt;
&lt;br /&gt;
; function getPlayersNumber()&lt;br /&gt;
: Returns the number of players playing at the table&lt;br /&gt;
; function checkAction( $actionName, $bThrowException=true )&lt;br /&gt;
: Check if action is valid regarding current game state (exception if fails)&lt;br /&gt;
: if &amp;quot;bThrowException&amp;quot; is set to &amp;quot;false&amp;quot;, the function return false in case of failure instead of throwing and exception&lt;br /&gt;
; function getActivePlayerId()&lt;br /&gt;
: Get the &amp;quot;active_player&amp;quot;, whatever what is the current state type&lt;br /&gt;
: Note: it does NOT mean that this player is active right now, because state type could be &amp;quot;game&amp;quot; or &amp;quot;multiplayer&amp;quot;&lt;br /&gt;
; function getActivePlayerName()&lt;br /&gt;
: Get the &amp;quot;active_player&amp;quot; name&lt;br /&gt;
; function getCurrentPlayerId()&lt;br /&gt;
: Get the &amp;quot;current_player&amp;quot;. The current player is the one from which the action originated. It is not always the active player.&lt;br /&gt;
; function getCurrentPlayerName()&lt;br /&gt;
: Get the &amp;quot;current_player&amp;quot; name&lt;br /&gt;
; function getCurrentPlayerColor()&lt;br /&gt;
: Get the &amp;quot;current_player&amp;quot; color&lt;br /&gt;
; function isCurrentPlayerZombie()&lt;br /&gt;
: Check the &amp;quot;current_player&amp;quot; zombie status&lt;br /&gt;
; function activeNextPlayer()&lt;br /&gt;
: Make the next player active&lt;br /&gt;
; function activePrevPlayer()&lt;br /&gt;
: Make the previous player active&lt;br /&gt;
; function giveExtraTime( $player_id, $specific_time=null )&lt;br /&gt;
: Give standard extra time to this player (standard extra time is a game option)&lt;br /&gt;
; function initStat( $table_or_player, $name, $value, $player_id=null )&lt;br /&gt;
: Create a statistic entry for the specified statistics with a default value&lt;br /&gt;
: In case of a &amp;quot;player&amp;quot; entry, if player_id is not specified, all players are set to the same value&lt;br /&gt;
; function setStat( $value, $name, $player_id = null )&lt;br /&gt;
: Set statistic value&lt;br /&gt;
; function incStat( $delta, $name, $player_id = null )&lt;br /&gt;
: Increment (or decrement) specified value&lt;br /&gt;
; function DbQuery( $sql )&lt;br /&gt;
: Executes sql query on the database&lt;br /&gt;
; function getCollectionFromDB( $sql, $bSingleValue=false )&lt;br /&gt;
: Returns an associative array of rows for the sql query. First column must be a primary or alternate key. The resulting collection can be empty.&lt;br /&gt;
; protected function getNonEmptyCollectionFromDB( $sql )&lt;br /&gt;
: Idem, but raise an exception if the collection is empty&lt;br /&gt;
; function getUniqueValueFromDB( $sql )&lt;br /&gt;
: Returns a unique value from DB or null if no value is found&lt;br /&gt;
: Raise an exception if more than 1 row is returned&lt;br /&gt;
; function getObjectFromDB( $sql )&lt;br /&gt;
: Returns one row for the sql query as an associative array or null if there is no result&lt;br /&gt;
: Raise an exception if the query return more than one row&lt;br /&gt;
; function getNonEmptyObjectFromDB( $sql )&lt;br /&gt;
: Idem, but raise an exception if the query doesn&#039;t return exactly one row&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Client side (Javascript functions) ==&lt;br /&gt;
&lt;br /&gt;
; todo : todo&lt;/div&gt;</summary>
		<author><name>Een</name></author>
	</entry>
	<entry>
		<id>https://sv.doc.boardgamearena.com/index.php?title=Studio_function_reference&amp;diff=304</id>
		<title>Studio function reference</title>
		<link rel="alternate" type="text/html" href="https://sv.doc.boardgamearena.com/index.php?title=Studio_function_reference&amp;diff=304"/>
		<updated>2012-11-25T18:37:20Z</updated>

		<summary type="html">&lt;p&gt;Een: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page references useful server side and client side functions, so that nobody needs to reinvent the wheel (unless he wants to).&lt;br /&gt;
&lt;br /&gt;
== Server side (PHP functions) ==&lt;br /&gt;
&lt;br /&gt;
=== APP_GameAction class &amp;lt;gamename&amp;gt;.action.php ===&lt;br /&gt;
&lt;br /&gt;
; function isArg( $argName )&lt;br /&gt;
: Is this argument filled ?&lt;br /&gt;
; function getArg( $argName, $argType, $mandatory=false, $default=NULL, $argTypeDetails=array(), $bCanFail=false  )&lt;br /&gt;
: Get script argument with the correct type&lt;br /&gt;
: bCanFail means than a validation failure is possible (user input)&lt;br /&gt;
: The main argType values are as follows.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define( &#039;AT_int&#039;, 0 );        //  an integer&lt;br /&gt;
define( &#039;AT_posint&#039;, 1 );     //  a positive integer &lt;br /&gt;
define( &#039;AT_float&#039;, 2 );      //  a float&lt;br /&gt;
define( &#039;AT_email&#039;, 3 );      //  an email  &lt;br /&gt;
define( &#039;AT_url&#039;, 4 );        //  a URL&lt;br /&gt;
define( &#039;AT_bool&#039;, 5 );       //  1/0/true/false&lt;br /&gt;
define( &#039;AT_enum&#039;, 6 );       //  argTypeDetails list the possible values&lt;br /&gt;
define( &#039;AT_alphanum&#039;, 7 );   //  only 0-9a-zA-Z_ and space&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Table class (&amp;lt;gamename&amp;gt;.game.php) ===&lt;br /&gt;
&lt;br /&gt;
== Client side (Javascript functions) ==&lt;br /&gt;
&lt;br /&gt;
; todo : todo&lt;/div&gt;</summary>
		<author><name>Een</name></author>
	</entry>
	<entry>
		<id>https://sv.doc.boardgamearena.com/index.php?title=Development&amp;diff=303</id>
		<title>Development</title>
		<link rel="alternate" type="text/html" href="https://sv.doc.boardgamearena.com/index.php?title=Development&amp;diff=303"/>
		<updated>2012-11-25T16:46:42Z</updated>

		<summary type="html">&lt;p&gt;Een: /* How do I register? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Bga_studio_small.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What is this? ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Board Game Arena Studio&#039;&#039;&#039; is a platform to build online board game adaptation using the Board Game Arena platform.&lt;br /&gt;
&lt;br /&gt;
It is open to any gamer with development skills :)&lt;br /&gt;
&lt;br /&gt;
See announcement here:&lt;br /&gt;
http://forum.boardgamearena.com/viewtopic.php?f=10&amp;amp;t=1973&lt;br /&gt;
&lt;br /&gt;
== How can I develop a board game on BGA Studio? ==&lt;br /&gt;
&lt;br /&gt;
Check these presentations first:&lt;br /&gt;
&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/5-reasons-why-you-should-use-bga-studio-for-your-online-board-game 5 reasons why you should use BGA Studio for your online board game]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/the-8-steps-to-create-a-board-game-on-board-game-arena The 8 steps to create a board game on Board Game Arena]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/the-bga-framework-at-a-glance The BGA Framework at a glance]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/bga-studio-focus-on-bga-game-state-machine Focus on BGA game state machine]&lt;br /&gt;
&lt;br /&gt;
== BGA Studio documentation ==&lt;br /&gt;
&lt;br /&gt;
=== How do I register? ===&lt;br /&gt;
&lt;br /&gt;
Registering is done by e-mail to [http://en.boardgamearena.com/#!doc/Contact_us BGA contact address].&lt;br /&gt;
&lt;br /&gt;
Please provide the following information:&lt;br /&gt;
* your developer user name to be used on “BGA Studio” (for technical reasons, no space, number or special character);&lt;br /&gt;
* your real name;&lt;br /&gt;
* your e-mail address;&lt;br /&gt;
* your postal address.&lt;br /&gt;
&lt;br /&gt;
We also drafted a quick [[&#039;terms &amp;amp; conditions&#039; document:BGA_TC_Dev_en.pdf]]. It&#039;s really quick, so as to get to the fun part faster.&lt;br /&gt;
&lt;br /&gt;
To be valid, the registration e-mail must contain this document as an attachment and the following sentence &#039;I agree with the terms &amp;amp; conditions for developers on BGA Studio joined as an attachment&#039;.&lt;br /&gt;
&lt;br /&gt;
And of course, we also encourage you to tell us about which games you would love to develop on BGA!&lt;br /&gt;
&lt;br /&gt;
=== Ok, I registered, what do I get? ===&lt;br /&gt;
&lt;br /&gt;
First, you get by e-mail a list of the games we have an agreement to develop. Please keep this list confidential, or it would ruin our tradition to make players guess the name of the next game on the forum!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;NB: during the BETA pĥase, to smooth things up and make sure that everything is working correctly, &lt;br /&gt;
we will work only with 3 fearless developers on 3 simple games.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Second, once we have discussed together and are fixed on a game you&#039;ll take charge of, we&#039;ll create your studio account and you will get:&lt;br /&gt;
* one login / password to access files through SFTP&lt;br /&gt;
* ten logins with numeric suffixes from 0 to 9 and a common simple password to test games on the studio website while developing.&lt;br /&gt;
&lt;br /&gt;
Once logged in to your SFTP root folder, you will find:&lt;br /&gt;
* a &#039;resources.html&#039; file with the URLs to use and some extra connection information&lt;br /&gt;
* three folders containing the three simple games provided as examples&lt;br /&gt;
* a folder for the game you will be developing initialized after our &#039;EmptyGame&#039; template, providing the game structure (and comments! and examples!)&lt;br /&gt;
&lt;br /&gt;
Then... that&#039;s all, you can start!&lt;br /&gt;
&lt;br /&gt;
=== Great, I&#039;m in! ... How should I start? ===&lt;br /&gt;
&lt;br /&gt;
If you didn&#039;t already, check the presentations at the top of this page to get the basics.&lt;br /&gt;
&lt;br /&gt;
After that, we would advise you to take a peek to tutorials for the example games:&lt;br /&gt;
* [[Tutorial reversi]]&lt;br /&gt;
* [[Tutorial hearts]]&lt;br /&gt;
* [[Tutorial xxx ]]&lt;br /&gt;
&lt;br /&gt;
Then start editing files and see what happens! ;)&lt;br /&gt;
&lt;br /&gt;
=== Other resources ===&lt;br /&gt;
&lt;br /&gt;
[[Development FAQ]]&lt;br /&gt;
&lt;br /&gt;
[[Development file reference]]&lt;br /&gt;
&lt;br /&gt;
[[Development function reference]]&lt;br /&gt;
&lt;br /&gt;
[[Studio back-office]]&lt;br /&gt;
&lt;br /&gt;
[http://forum.boardgamearena.com/viewforum.php?f=12 Development forum]&lt;br /&gt;
&lt;br /&gt;
[http://forum.boardgamearena.com/viewforum.php?f=4 Bugs forum]&lt;/div&gt;</summary>
		<author><name>Een</name></author>
	</entry>
	<entry>
		<id>https://sv.doc.boardgamearena.com/index.php?title=Studio_FAQ&amp;diff=302</id>
		<title>Studio FAQ</title>
		<link rel="alternate" type="text/html" href="https://sv.doc.boardgamearena.com/index.php?title=Studio_FAQ&amp;diff=302"/>
		<updated>2012-11-25T12:38:59Z</updated>

		<summary type="html">&lt;p&gt;Een: /* Is there a quick way to access the database for my current table? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a place where we will collect and answer frequently asked questions.&lt;br /&gt;
&lt;br /&gt;
== What should I use to access the files through SFTP? ==&lt;br /&gt;
&lt;br /&gt;
There is a lot of tools to do that. Use the one you are the most comfortable with.&lt;br /&gt;
&lt;br /&gt;
On Linux, you can for example use the &#039;Connect to server&#039; function of the Nautilus file management system, or use sshfs.&lt;br /&gt;
&lt;br /&gt;
On Windows, there is for example the WinSCP client.&lt;br /&gt;
&lt;br /&gt;
== It&#039;s pretty annoying to log in with multiple users to start a game. Is there some easier way? ==&lt;br /&gt;
&lt;br /&gt;
You can use the &#039;Express start&#039; 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.&lt;br /&gt;
&lt;br /&gt;
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&#039;s perspective.&lt;br /&gt;
&lt;br /&gt;
You can also end the game in two clicks by clicking the &#039;End game&#039; button then selecting &#039;Express game stop&#039; in the popup.&lt;br /&gt;
&lt;br /&gt;
== What is the working language on BGA studio? ==&lt;br /&gt;
&lt;br /&gt;
Working language is &#039;&#039;&#039;English&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Variables and functions must be named with English words.&lt;br /&gt;
&lt;br /&gt;
Comments must be written in English.&lt;br /&gt;
&lt;br /&gt;
Game interface strings and game logs must be written in English.&lt;br /&gt;
&lt;br /&gt;
== How can I provide translation in my language? == &lt;br /&gt;
&lt;br /&gt;
BGA administrators will translate the game in French before the game release.&lt;br /&gt;
&lt;br /&gt;
After the game release, the collaborative translation interface can be used to translate into other languages.&lt;br /&gt;
&lt;br /&gt;
== I updated the images in the &#039;img&#039; folder of my game, but they don&#039;t show? ==&lt;br /&gt;
&lt;br /&gt;
Please try emptying your browser cache and reloading the page.&lt;br /&gt;
&lt;br /&gt;
== I added some game options / some game statistics, but they don&#039;t show? ==&lt;br /&gt;
&lt;br /&gt;
An extra deployment action from the BGA administrators is needed to activate new game options and statistics. Please contact us.&lt;br /&gt;
&lt;br /&gt;
== Is there a quick way to access the database for my current table? ==&lt;br /&gt;
&lt;br /&gt;
Yes! While playing a game on studio, you have a &amp;quot;Go to game database&amp;quot; link at the bottom of your game. This link will bring you directly to the database for the current table.&lt;/div&gt;</summary>
		<author><name>Een</name></author>
	</entry>
	<entry>
		<id>https://sv.doc.boardgamearena.com/index.php?title=Studio_FAQ&amp;diff=296</id>
		<title>Studio FAQ</title>
		<link rel="alternate" type="text/html" href="https://sv.doc.boardgamearena.com/index.php?title=Studio_FAQ&amp;diff=296"/>
		<updated>2012-11-24T18:17:21Z</updated>

		<summary type="html">&lt;p&gt;Een: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a place where we will collect and answer frequently asked questions.&lt;br /&gt;
&lt;br /&gt;
== What should I use to access the files through SFTP? ==&lt;br /&gt;
&lt;br /&gt;
There is a lot of tools to do that. Use the one you are the most comfortable with.&lt;br /&gt;
&lt;br /&gt;
On Linux, you can for example use the &#039;Connect to server&#039; function of the Nautilus file management system, or use sshfs.&lt;br /&gt;
&lt;br /&gt;
On Windows, there is for example the WinSCP client.&lt;br /&gt;
&lt;br /&gt;
== It&#039;s pretty annoying to log in with multiple users to start a game. Is there some easier way? ==&lt;br /&gt;
&lt;br /&gt;
You can use the &#039;Express start&#039; 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.&lt;br /&gt;
&lt;br /&gt;
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&#039;s perspective.&lt;br /&gt;
&lt;br /&gt;
You can also end the game in two clicks by clicking the &#039;End game&#039; button then selecting &#039;Express game stop&#039; in the popup.&lt;br /&gt;
&lt;br /&gt;
== What is the working language on BGA studio? ==&lt;br /&gt;
&lt;br /&gt;
Working language is &#039;&#039;&#039;English&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Variables and functions must be named with English words.&lt;br /&gt;
&lt;br /&gt;
Comments must be written in English.&lt;br /&gt;
&lt;br /&gt;
Game interface strings and game logs must be written in English.&lt;br /&gt;
&lt;br /&gt;
== How can I provide translation in my language? == &lt;br /&gt;
&lt;br /&gt;
BGA administrators will translate the game in French before the game release.&lt;br /&gt;
&lt;br /&gt;
After the game release, the collaborative translation interface can be used to translate into other languages.&lt;br /&gt;
&lt;br /&gt;
== I updated the images in the &#039;img&#039; folder of my game, but they don&#039;t show? ==&lt;br /&gt;
&lt;br /&gt;
Please try emptying your browser cache and reloading the page.&lt;br /&gt;
&lt;br /&gt;
== I added some game options / some game statistics, but they don&#039;t show? ==&lt;br /&gt;
&lt;br /&gt;
An extra deployment action from the BGA administrators is needed to activate new game options and statistics. Please contact us.&lt;br /&gt;
&lt;br /&gt;
== Is there a quick way to access the database for my current table? ==&lt;br /&gt;
&lt;br /&gt;
Yes! While playing a game on studio, you have a &amp;quot;go to database&amp;quot; link at the bottom of your game. This link will bring you directly to the database for the current table.&lt;/div&gt;</summary>
		<author><name>Een</name></author>
	</entry>
	<entry>
		<id>https://sv.doc.boardgamearena.com/index.php?title=Development&amp;diff=295</id>
		<title>Development</title>
		<link rel="alternate" type="text/html" href="https://sv.doc.boardgamearena.com/index.php?title=Development&amp;diff=295"/>
		<updated>2012-11-24T17:46:44Z</updated>

		<summary type="html">&lt;p&gt;Een: /* Great, I&amp;#039;m in! ... How should I start? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Bga_studio_small.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What is this? ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Board Game Arena Studio&#039;&#039;&#039; is a platform to build online board game adaptation using the Board Game Arena platform.&lt;br /&gt;
&lt;br /&gt;
It is open to any gamer with development skills :)&lt;br /&gt;
&lt;br /&gt;
See announcement here:&lt;br /&gt;
http://forum.boardgamearena.com/viewtopic.php?f=10&amp;amp;t=1973&lt;br /&gt;
&lt;br /&gt;
== How can I develop a board game on BGA Studio? ==&lt;br /&gt;
&lt;br /&gt;
Check these presentations first:&lt;br /&gt;
&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/5-reasons-why-you-should-use-bga-studio-for-your-online-board-game 5 reasons why you should use BGA Studio for your online board game]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/the-8-steps-to-create-a-board-game-on-board-game-arena The 8 steps to create a board game on Board Game Arena]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/the-bga-framework-at-a-glance The BGA Framework at a glance]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/bga-studio-focus-on-bga-game-state-machine Focus on BGA game state machine]&lt;br /&gt;
&lt;br /&gt;
== BGA Studio documentation ==&lt;br /&gt;
&lt;br /&gt;
=== How do I register? ===&lt;br /&gt;
&lt;br /&gt;
Registering is done by e-mail to [http://en.boardgamearena.com/#!doc/Contact_us BGA contact address].&lt;br /&gt;
&lt;br /&gt;
Please provide the following information:&lt;br /&gt;
* your developer user name to be used on “BGA Studio” (for technical reasons, no space, number or special character);&lt;br /&gt;
* your real name;&lt;br /&gt;
* your e-mail address;&lt;br /&gt;
* your postal address.&lt;br /&gt;
&lt;br /&gt;
We also drafted a quick &#039;terms &amp;amp; conditions&#039; document. It&#039;s really quick, so as to get to the fun part faster.&lt;br /&gt;
&lt;br /&gt;
To be valid, the registration e-mail must contain this document (TODO: link pdf) as an attachment, and the sentence &#039;I agree with the terms &amp;amp; conditions for developers on BGA Studio joined as an attachment&#039;.&lt;br /&gt;
&lt;br /&gt;
And of course, we also encourage you to tell us about which games you would love to develop on BGA!&lt;br /&gt;
&lt;br /&gt;
=== Ok, I registered, what do I get? ===&lt;br /&gt;
&lt;br /&gt;
First, you get by e-mail a list of the games we have an agreement to develop. Please keep this list confidential, or it would ruin our tradition to make players guess the name of the next game on the forum!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;NB: during the BETA pĥase, to smooth things up and make sure that everything is working correctly, &lt;br /&gt;
we will work only with 3 fearless developers on 3 simple games.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Second, once we have discussed together and are fixed on a game you&#039;ll take charge of, we&#039;ll create your studio account and you will get:&lt;br /&gt;
* one login / password to access files through SFTP&lt;br /&gt;
* ten logins with numeric suffixes from 0 to 9 and a common simple password to test games on the studio website while developing.&lt;br /&gt;
&lt;br /&gt;
Once logged in to your SFTP root folder, you will find:&lt;br /&gt;
* a &#039;resources.html&#039; file with the URLs to use and some extra connection information&lt;br /&gt;
* three folders containing the three simple games provided as examples&lt;br /&gt;
* a folder for the game you will be developing initialized after our &#039;EmptyGame&#039; template, providing the game structure (and comments! and examples!)&lt;br /&gt;
&lt;br /&gt;
Then... that&#039;s all, you can start!&lt;br /&gt;
&lt;br /&gt;
=== Great, I&#039;m in! ... How should I start? ===&lt;br /&gt;
&lt;br /&gt;
If you didn&#039;t already, check the presentations at the top of this page to get the basics.&lt;br /&gt;
&lt;br /&gt;
After that, we would advise you to take a peek to tutorials for the example games:&lt;br /&gt;
* [[Tutorial reversi]]&lt;br /&gt;
* [[Tutorial hearts]]&lt;br /&gt;
* [[Tutorial xxx ]]&lt;br /&gt;
&lt;br /&gt;
Then start editing files and see what happens! ;)&lt;br /&gt;
&lt;br /&gt;
=== Other resources ===&lt;br /&gt;
&lt;br /&gt;
[[Development FAQ]]&lt;br /&gt;
&lt;br /&gt;
[[Development file reference]]&lt;br /&gt;
&lt;br /&gt;
[[Development function reference]]&lt;br /&gt;
&lt;br /&gt;
[[Studio back-office]]&lt;br /&gt;
&lt;br /&gt;
[http://forum.boardgamearena.com/viewforum.php?f=12 Development forum]&lt;br /&gt;
&lt;br /&gt;
[http://forum.boardgamearena.com/viewforum.php?f=4 Bugs forum]&lt;/div&gt;</summary>
		<author><name>Een</name></author>
	</entry>
	<entry>
		<id>https://sv.doc.boardgamearena.com/index.php?title=Studio_back-office&amp;diff=252</id>
		<title>Studio back-office</title>
		<link rel="alternate" type="text/html" href="https://sv.doc.boardgamearena.com/index.php?title=Studio_back-office&amp;diff=252"/>
		<updated>2012-11-24T11:41:09Z</updated>

		<summary type="html">&lt;p&gt;Een: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;You will find the URL to the Studio back-office in the &#039;resources.html&#039; file at the root of your SFTP access.&lt;br /&gt;
&lt;br /&gt;
Here is a list and description of the links and functions in this back-office.&lt;br /&gt;
&lt;br /&gt;
Click on a menu to display its content.&lt;br /&gt;
&lt;br /&gt;
=== Documentation ===&lt;br /&gt;
&lt;br /&gt;
Contains links to this wiki, the development forum and the bugs forum.&lt;br /&gt;
&lt;br /&gt;
=== Database ===&lt;br /&gt;
&lt;br /&gt;
Contains a link to the Studio database administration tool (PHPMyAdmin).&lt;br /&gt;
&lt;br /&gt;
Your login / password for this tool is the same as for your SFTP access.&lt;br /&gt;
&lt;br /&gt;
=== Sources ===&lt;br /&gt;
&lt;br /&gt;
Contains a form for committing your sources to the BGA repository.&lt;br /&gt;
* Game name field should contain the name of your game (lower case, no space).&lt;br /&gt;
* Comment field should contain your commit comment describing changes to the code since your last commit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You should commit from time to time when you hit some landmarks in your development. This is an extra assurance not to lose your code, and to have the possibility (by asking BGA administrators) to get a previous version of your code if you need to backtrack.&lt;br /&gt;
&lt;br /&gt;
=== Logs ===&lt;br /&gt;
&lt;br /&gt;
Gives you a web based access to the studio server logs.&lt;br /&gt;
&lt;br /&gt;
; Current table error log&lt;br /&gt;
: main log of interest to you while developing, it contains the error happening at the table you are currently playing at.&lt;br /&gt;
; Current table request logs&lt;br /&gt;
: this log traces all the actions happening at the table you are currently playing at.&lt;br /&gt;
; Javascript error log&lt;br /&gt;
: this log traces all the Javascript errors happening on the client side. Errors are also briefly displayed in your browser, but in this log it&#039;s better formatted and you can look a it quietly.&lt;br /&gt;
; Gameserver error log&lt;br /&gt;
: this log traces all errors happening on the gameserver. It should mainly be useful if your game setup crashes (ie before your table is ready, so before errors are collected in the current table error log), for example if there is a syntax error in your &#039;dbmodel.sql&#039; file.&lt;br /&gt;
; HTTP error log&lt;br /&gt;
: this log traces the web server errors. This is useful to look at PHP syntax errors and warnings. &lt;br /&gt;
&lt;br /&gt;
Please note that the three last logs are common to all games being developed on the platform, so there may be some noise in the data you are interested in.&lt;br /&gt;
&lt;br /&gt;
You can open the log links in a different tab and just hit F5 when you need to refresh. The URL you will get for the new tab has a &amp;quot;?n=100&amp;quot; parameter that gives the number of lines to display: you can modify it in the URL if you need more.&lt;/div&gt;</summary>
		<author><name>Een</name></author>
	</entry>
	<entry>
		<id>https://sv.doc.boardgamearena.com/index.php?title=Studio_back-office&amp;diff=251</id>
		<title>Studio back-office</title>
		<link rel="alternate" type="text/html" href="https://sv.doc.boardgamearena.com/index.php?title=Studio_back-office&amp;diff=251"/>
		<updated>2012-11-24T11:38:02Z</updated>

		<summary type="html">&lt;p&gt;Een: Created page with &amp;quot;You will find the URL to the Studio back-office in the &amp;#039;resources.html&amp;#039; file at the root of your SFTP access.  Here is a list and description of the links and functions in thi...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;You will find the URL to the Studio back-office in the &#039;resources.html&#039; file at the root of your SFTP access.&lt;br /&gt;
&lt;br /&gt;
Here is a list and description of the links and functions in this back-office.&lt;br /&gt;
&lt;br /&gt;
Click on a menu to display its content.&lt;br /&gt;
&lt;br /&gt;
=== Documentation ===&lt;br /&gt;
&lt;br /&gt;
Contains links to this wiki, the development forum and the bugs forum.&lt;br /&gt;
&lt;br /&gt;
=== Database ===&lt;br /&gt;
&lt;br /&gt;
Contains a link to the Studio database administration tool (PHPMyAdmin).&lt;br /&gt;
Your login / password for this tool is the same as for your SFTP access.&lt;br /&gt;
&lt;br /&gt;
=== Sources ===&lt;br /&gt;
&lt;br /&gt;
Contains a form for committing your sources to the BGA repository.&lt;br /&gt;
Game name field should contain the name of your game (lower case, no space).&lt;br /&gt;
Comment should contain your commit comment describing changes to the code since your last commit.&lt;br /&gt;
&lt;br /&gt;
You should commit from time to time when you hit some landmarks in your development. This is an extra assurance not to lose your code, and to have the possibility (by asking us) to get a previous version of your code if you need to backtrack.&lt;br /&gt;
&lt;br /&gt;
=== Logs ===&lt;br /&gt;
&lt;br /&gt;
Gives you a web based access to the studio server logs.&lt;br /&gt;
&lt;br /&gt;
; Current table error log&lt;br /&gt;
: main log of interest to you while developing, it contains the error logs happening at the table you are currently playing at&lt;br /&gt;
; Current table request logs&lt;br /&gt;
: this log traces all the actions happening at the table you are currently playing at&lt;br /&gt;
; Javascript error log&lt;br /&gt;
: this log traces all the Javascript errors happening on the client side. Errors are also briefly displayed in your browser, but in this log it&#039;s better formatted and you can look a it quietly.&lt;br /&gt;
; Gameserver error log&lt;br /&gt;
: this log traces all errors happening on the gameserver. It should mainly be useful if your game setup crashes (ie before your table is ready, so before errors are collected in the current table error log), for example if there is a syntax error in your &#039;dbmodel.sql&#039; file.&lt;br /&gt;
; HTTP error log&lt;br /&gt;
: this log traces the web server errors. This is useful to look at PHP syntax errors and warnings. &lt;br /&gt;
&lt;br /&gt;
Please note that the three last logs are common to all games being developed on the platform, so there may be some noise in the data you are interested in.&lt;br /&gt;
&lt;br /&gt;
You can open the log links in a different tab and just hit F5 when you need to refresh. The URL you will get for the new tab has a &amp;quot;?n=100&amp;quot; parameter that gives the number of lines to display: you can modify it in the URL if you need more.&lt;/div&gt;</summary>
		<author><name>Een</name></author>
	</entry>
	<entry>
		<id>https://sv.doc.boardgamearena.com/index.php?title=Development&amp;diff=250</id>
		<title>Development</title>
		<link rel="alternate" type="text/html" href="https://sv.doc.boardgamearena.com/index.php?title=Development&amp;diff=250"/>
		<updated>2012-11-24T11:12:59Z</updated>

		<summary type="html">&lt;p&gt;Een: /* Ok, I registered, what do I get? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Bga_studio_small.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What is this? ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Board Game Arena Studio&#039;&#039;&#039; is a platform to build online board game adaptation using the Board Game Arena platform.&lt;br /&gt;
&lt;br /&gt;
It is open to any gamer with development skills :)&lt;br /&gt;
&lt;br /&gt;
See announcement here:&lt;br /&gt;
http://forum.boardgamearena.com/viewtopic.php?f=10&amp;amp;t=1973&lt;br /&gt;
&lt;br /&gt;
== How can I develop a board game on BGA Studio? ==&lt;br /&gt;
&lt;br /&gt;
Check these presentations first:&lt;br /&gt;
&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/5-reasons-why-you-should-use-bga-studio-for-your-online-board-game 5 reasons why you should use BGA Studio for your online board game]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/the-8-steps-to-create-a-board-game-on-board-game-arena The 8 steps to create a board game on Board Game Arena]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/the-bga-framework-at-a-glance The BGA Framework at a glance]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/bga-studio-focus-on-bga-game-state-machine Focus on BGA game state machine]&lt;br /&gt;
&lt;br /&gt;
== BGA Studio documentation ==&lt;br /&gt;
&lt;br /&gt;
=== How do I register? ===&lt;br /&gt;
&lt;br /&gt;
Registering is done by e-mail to [http://en.boardgamearena.com/#!doc/Contact_us BGA contact address].&lt;br /&gt;
&lt;br /&gt;
Please provide the following information:&lt;br /&gt;
* your developer user name to be used on “BGA Studio” (for technical reasons, no space, number or special character);&lt;br /&gt;
* your real name;&lt;br /&gt;
* your e-mail address;&lt;br /&gt;
* your postal address.&lt;br /&gt;
&lt;br /&gt;
We also drafted a quick &#039;terms &amp;amp; conditions&#039; document. It&#039;s really quick, so as to get to the fun part faster.&lt;br /&gt;
&lt;br /&gt;
To be valid, the registration e-mail must contain this document (TODO: link pdf) as an attachment, and the sentence &#039;I agree with the terms &amp;amp; conditions for developers on BGA Studio joined as an attachment&#039;.&lt;br /&gt;
&lt;br /&gt;
And of course, we also encourage you to tell us about which games you would love to develop on BGA!&lt;br /&gt;
&lt;br /&gt;
=== Ok, I registered, what do I get? ===&lt;br /&gt;
&lt;br /&gt;
First, you get by e-mail a list of the games we have an agreement to develop. Please keep this list confidential, or it would ruin our tradition to make players guess the name of the next game on the forum!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;NB: during the BETA pĥase, to smooth things up and make sure that everything is working correctly, &lt;br /&gt;
we will work only with 3 fearless developers on 3 simple games.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Second, once we have discussed together and are fixed on a game you&#039;ll take charge of, we&#039;ll create your studio account and you will get:&lt;br /&gt;
* one login / password to access files through SFTP&lt;br /&gt;
* ten logins with numeric suffixes from 0 to 9 and a common simple password to test games on the studio website while developing.&lt;br /&gt;
&lt;br /&gt;
Once logged in to your SFTP root folder, you will find:&lt;br /&gt;
* a &#039;resources.html&#039; file with the URLs to use and some extra connection information&lt;br /&gt;
* three folders containing the three simple games provided as examples&lt;br /&gt;
* a folder for the game you will be developing initialized after our &#039;EmptyGame&#039; template, providing the game structure (and comments! and examples!)&lt;br /&gt;
&lt;br /&gt;
Then... that&#039;s all, you can start!&lt;br /&gt;
&lt;br /&gt;
=== Great, I&#039;m in! ... How should I start? ===&lt;br /&gt;
&lt;br /&gt;
If you didn&#039;t already, check the presentations at the top of this page to get the basics.&lt;br /&gt;
&lt;br /&gt;
After that, we would advise you to take a peek to tutorials for the example games: (TODO: link tutorials).&lt;br /&gt;
&lt;br /&gt;
Then start editing files and see what happens! ;)&lt;br /&gt;
&lt;br /&gt;
=== Other resources ===&lt;br /&gt;
&lt;br /&gt;
[[Development FAQ]]&lt;br /&gt;
&lt;br /&gt;
[[Development file reference]]&lt;br /&gt;
&lt;br /&gt;
[[Development function reference]]&lt;br /&gt;
&lt;br /&gt;
[[Studio back-office]]&lt;br /&gt;
&lt;br /&gt;
[http://forum.boardgamearena.com/viewforum.php?f=12 Development forum]&lt;br /&gt;
&lt;br /&gt;
[http://forum.boardgamearena.com/viewforum.php?f=4 Bugs forum]&lt;/div&gt;</summary>
		<author><name>Een</name></author>
	</entry>
	<entry>
		<id>https://sv.doc.boardgamearena.com/index.php?title=Development&amp;diff=249</id>
		<title>Development</title>
		<link rel="alternate" type="text/html" href="https://sv.doc.boardgamearena.com/index.php?title=Development&amp;diff=249"/>
		<updated>2012-11-24T11:08:45Z</updated>

		<summary type="html">&lt;p&gt;Een: /* Other resources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Bga_studio_small.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What is this? ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Board Game Arena Studio&#039;&#039;&#039; is a platform to build online board game adaptation using the Board Game Arena platform.&lt;br /&gt;
&lt;br /&gt;
It is open to any gamer with development skills :)&lt;br /&gt;
&lt;br /&gt;
See announcement here:&lt;br /&gt;
http://forum.boardgamearena.com/viewtopic.php?f=10&amp;amp;t=1973&lt;br /&gt;
&lt;br /&gt;
== How can I develop a board game on BGA Studio? ==&lt;br /&gt;
&lt;br /&gt;
Check these presentations first:&lt;br /&gt;
&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/5-reasons-why-you-should-use-bga-studio-for-your-online-board-game 5 reasons why you should use BGA Studio for your online board game]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/the-8-steps-to-create-a-board-game-on-board-game-arena The 8 steps to create a board game on Board Game Arena]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/the-bga-framework-at-a-glance The BGA Framework at a glance]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/bga-studio-focus-on-bga-game-state-machine Focus on BGA game state machine]&lt;br /&gt;
&lt;br /&gt;
== BGA Studio documentation ==&lt;br /&gt;
&lt;br /&gt;
=== How do I register? ===&lt;br /&gt;
&lt;br /&gt;
Registering is done by e-mail to [http://en.boardgamearena.com/#!doc/Contact_us BGA contact address].&lt;br /&gt;
&lt;br /&gt;
Please provide the following information:&lt;br /&gt;
* your developer user name to be used on “BGA Studio” (for technical reasons, no space, number or special character);&lt;br /&gt;
* your real name;&lt;br /&gt;
* your e-mail address;&lt;br /&gt;
* your postal address.&lt;br /&gt;
&lt;br /&gt;
We also drafted a quick &#039;terms &amp;amp; conditions&#039; document. It&#039;s really quick, so as to get to the fun part faster.&lt;br /&gt;
&lt;br /&gt;
To be valid, the registration e-mail must contain this document (TODO: link pdf) as an attachment, and the sentence &#039;I agree with the terms &amp;amp; conditions for developers on BGA Studio joined as an attachment&#039;.&lt;br /&gt;
&lt;br /&gt;
And of course, we also encourage you to tell us about which games you would love to develop on BGA!&lt;br /&gt;
&lt;br /&gt;
=== Ok, I registered, what do I get? ===&lt;br /&gt;
&lt;br /&gt;
First, you get by e-mail a list of the games we have an agreement to develop. Please keep this list confidential, or it would ruin our tradition to make players guess the name of the next game on the forum!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;NB: during the BETA pĥase, to smooth things up and make sure that everything is working correctly, &lt;br /&gt;
we will work only with 3 fearless developers on 3 simple games.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Second, once we have discussed together and are fixed on a game you&#039;ll take charge of, we&#039;ll create your studio account and you will get:&lt;br /&gt;
* one login / password to access files through SFTP&lt;br /&gt;
* ten logins with numeric suffixes from 0 to 9 and a common simple password to test games on the studio website while developing.&lt;br /&gt;
&lt;br /&gt;
Once logged in to your SFTP root folder, you will find:&lt;br /&gt;
* a &#039;ressources.html&#039; file with the URLs to use and some extra connection information&lt;br /&gt;
* three folders containing the three simple games provided as examples&lt;br /&gt;
* a folder for the game you will be developing initialized after our &#039;EmptyGame&#039; template, providing the game structure (and comments! and examples!)&lt;br /&gt;
&lt;br /&gt;
Then... that&#039;s all, you can start!&lt;br /&gt;
&lt;br /&gt;
=== Great, I&#039;m in! ... How should I start? ===&lt;br /&gt;
&lt;br /&gt;
If you didn&#039;t already, check the presentations at the top of this page to get the basics.&lt;br /&gt;
&lt;br /&gt;
After that, we would advise you to take a peek to tutorials for the example games: (TODO: link tutorials).&lt;br /&gt;
&lt;br /&gt;
Then start editing files and see what happens! ;)&lt;br /&gt;
&lt;br /&gt;
=== Other resources ===&lt;br /&gt;
&lt;br /&gt;
[[Development FAQ]]&lt;br /&gt;
&lt;br /&gt;
[[Development file reference]]&lt;br /&gt;
&lt;br /&gt;
[[Development function reference]]&lt;br /&gt;
&lt;br /&gt;
[[Studio back-office]]&lt;br /&gt;
&lt;br /&gt;
[http://forum.boardgamearena.com/viewforum.php?f=12 Development forum]&lt;br /&gt;
&lt;br /&gt;
[http://forum.boardgamearena.com/viewforum.php?f=4 Bugs forum]&lt;/div&gt;</summary>
		<author><name>Een</name></author>
	</entry>
	<entry>
		<id>https://sv.doc.boardgamearena.com/index.php?title=Development&amp;diff=248</id>
		<title>Development</title>
		<link rel="alternate" type="text/html" href="https://sv.doc.boardgamearena.com/index.php?title=Development&amp;diff=248"/>
		<updated>2012-11-24T09:56:14Z</updated>

		<summary type="html">&lt;p&gt;Een: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Bga_studio_small.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What is this? ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Board Game Arena Studio&#039;&#039;&#039; is a platform to build online board game adaptation using the Board Game Arena platform.&lt;br /&gt;
&lt;br /&gt;
It is open to any gamer with development skills :)&lt;br /&gt;
&lt;br /&gt;
See announcement here:&lt;br /&gt;
http://forum.boardgamearena.com/viewtopic.php?f=10&amp;amp;t=1973&lt;br /&gt;
&lt;br /&gt;
== How can I develop a board game on BGA Studio? ==&lt;br /&gt;
&lt;br /&gt;
Check these presentations first:&lt;br /&gt;
&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/5-reasons-why-you-should-use-bga-studio-for-your-online-board-game 5 reasons why you should use BGA Studio for your online board game]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/the-8-steps-to-create-a-board-game-on-board-game-arena The 8 steps to create a board game on Board Game Arena]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/the-bga-framework-at-a-glance The BGA Framework at a glance]&lt;br /&gt;
* [http://www.slideshare.net/boardgamearena/bga-studio-focus-on-bga-game-state-machine Focus on BGA game state machine]&lt;br /&gt;
&lt;br /&gt;
== BGA Studio documentation ==&lt;br /&gt;
&lt;br /&gt;
=== How do I register? ===&lt;br /&gt;
&lt;br /&gt;
Registering is done by e-mail to [http://en.boardgamearena.com/#!doc/Contact_us BGA contact address].&lt;br /&gt;
&lt;br /&gt;
Please provide the following information:&lt;br /&gt;
* your developer user name to be used on “BGA Studio” (for technical reasons, no space, number or special character);&lt;br /&gt;
* your real name;&lt;br /&gt;
* your e-mail address;&lt;br /&gt;
* your postal address.&lt;br /&gt;
&lt;br /&gt;
We also drafted a quick &#039;terms &amp;amp; conditions&#039; document. It&#039;s really quick, so as to get to the fun part faster.&lt;br /&gt;
&lt;br /&gt;
To be valid, the registration e-mail must contain this document (TODO: link pdf) as an attachment, and the sentence &#039;I agree with the terms &amp;amp; conditions for developers on BGA Studio joined as an attachment&#039;.&lt;br /&gt;
&lt;br /&gt;
And of course, we also encourage you to tell us about which games you would love to develop on BGA!&lt;br /&gt;
&lt;br /&gt;
=== Ok, I registered, what do I get? ===&lt;br /&gt;
&lt;br /&gt;
First, you get by e-mail a list of the games we have an agreement to develop. Please keep this list confidential, or it would ruin our tradition to make players guess the name of the next game on the forum!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;NB: during the BETA pĥase, to smooth things up and make sure that everything is working correctly, &lt;br /&gt;
we will work only with 3 fearless developers on 3 simple games.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Second, once we have discussed together and are fixed on a game you&#039;ll take charge of, we&#039;ll create your studio account and you will get:&lt;br /&gt;
* one login / password to access files through SFTP&lt;br /&gt;
* ten logins with numeric suffixes from 0 to 9 and a common simple password to test games on the studio website while developing.&lt;br /&gt;
&lt;br /&gt;
Once logged in to your SFTP root folder, you will find:&lt;br /&gt;
* a &#039;ressources.html&#039; file with the URLs to use and some extra connection information&lt;br /&gt;
* three folders containing the three simple games provided as examples&lt;br /&gt;
* a folder for the game you will be developing initialized after our &#039;EmptyGame&#039; template, providing the game structure (and comments! and examples!)&lt;br /&gt;
&lt;br /&gt;
Then... that&#039;s all, you can start!&lt;br /&gt;
&lt;br /&gt;
=== Great, I&#039;m in! ... How should I start? ===&lt;br /&gt;
&lt;br /&gt;
If you didn&#039;t already, check the presentations at the top of this page to get the basics.&lt;br /&gt;
&lt;br /&gt;
After that, we would advise you to take a peek to tutorials for the example games: (TODO: link tutorials).&lt;br /&gt;
&lt;br /&gt;
Then start editing files and see what happens! ;)&lt;br /&gt;
&lt;br /&gt;
=== Other resources ===&lt;br /&gt;
&lt;br /&gt;
[[Development FAQ]]&lt;br /&gt;
&lt;br /&gt;
[[Development file reference]]&lt;br /&gt;
&lt;br /&gt;
[[Development function reference]]&lt;br /&gt;
&lt;br /&gt;
[http://forum.boardgamearena.com/viewforum.php?f=12 Development forum]&lt;br /&gt;
&lt;br /&gt;
[http://forum.boardgamearena.com/viewforum.php?f=4 Bugs forum]&lt;/div&gt;</summary>
		<author><name>Een</name></author>
	</entry>
	<entry>
		<id>https://sv.doc.boardgamearena.com/index.php?title=Studio_function_reference&amp;diff=245</id>
		<title>Studio function reference</title>
		<link rel="alternate" type="text/html" href="https://sv.doc.boardgamearena.com/index.php?title=Studio_function_reference&amp;diff=245"/>
		<updated>2012-11-23T11:00:23Z</updated>

		<summary type="html">&lt;p&gt;Een: Created page with &amp;quot;This page references useful server side and client side functions, so that nobody needs to reinvent the wheel (unless he wants to).  == Server side (PHP functions) ==  ; todo ...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page references useful server side and client side functions, so that nobody needs to reinvent the wheel (unless he wants to).&lt;br /&gt;
&lt;br /&gt;
== Server side (PHP functions) ==&lt;br /&gt;
&lt;br /&gt;
; todo : todo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Client side (Javascript functions) ==&lt;br /&gt;
&lt;br /&gt;
; todo : todo&lt;/div&gt;</summary>
		<author><name>Een</name></author>
	</entry>
	<entry>
		<id>https://sv.doc.boardgamearena.com/index.php?title=Studio_file_reference&amp;diff=244</id>
		<title>Studio file reference</title>
		<link rel="alternate" type="text/html" href="https://sv.doc.boardgamearena.com/index.php?title=Studio_file_reference&amp;diff=244"/>
		<updated>2012-11-23T10:53:17Z</updated>

		<summary type="html">&lt;p&gt;Een: Created page with &amp;quot; This is a quick reference for the files used to implement a game. For more information, edit the file and read the introductory comment.  === &amp;#039;img&amp;#039; directory ===  This direct...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This is a quick reference for the files used to implement a game. For more information, edit the file and read the introductory comment.&lt;br /&gt;
&lt;br /&gt;
=== &#039;img&#039; directory ===&lt;br /&gt;
&lt;br /&gt;
This directory contains the images for your game:&lt;br /&gt;
* game_box.png is displayed on the main site on the game description page and when creating a table (280x280 px)&lt;br /&gt;
* game_icon.png is the icon displayed in the lists of games and tables (50x50 px)&lt;br /&gt;
* publisher.png is the logo of the publisher of the game, displayed on the game description page (width: 150 px)&lt;br /&gt;
* and other images that you need. You should use [http://www.w3schools.com/css/css_image_sprites.asp CSS sprites] for better web performance.&lt;br /&gt;
&lt;br /&gt;
=== dbmodel.sql ===&lt;br /&gt;
&lt;br /&gt;
File for creating specific database tables that you will need to persist data during the game (for example a table for cards).&lt;br /&gt;
&lt;br /&gt;
=== gameoptions.inc.php ===&lt;br /&gt;
&lt;br /&gt;
File for describing your game options (= game variants)&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;gamename&amp;gt;.action.php ===&lt;br /&gt;
&lt;br /&gt;
File used to describe methods that can be called from the client interface through javascript, get parameters and call the appropriate game functions.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;gamename&amp;gt;.css ===&lt;br /&gt;
&lt;br /&gt;
CSS styles specific to your game.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;gamename&amp;gt;.game.php ===&lt;br /&gt;
&lt;br /&gt;
This is the main file for your game logic. Here you initialize the game, persist data, implement the rules and notify changes to the client interface.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;gamename&amp;gt;.js ===&lt;br /&gt;
&lt;br /&gt;
This is the main file for your game interface. Here you will define:&lt;br /&gt;
* which actions on the page will generate calls to the server&lt;br /&gt;
* what happens when you get a notification for change from the server and how it will show in the browser.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;gamename&amp;gt;.view.php and &amp;lt;gamename&amp;gt;_&amp;lt;gamename&amp;gt;.tpl ===&lt;br /&gt;
&lt;br /&gt;
Files used to set up the page layout (&#039;view&#039;) for the game.&lt;br /&gt;
&lt;br /&gt;
=== material.inc.php ===&lt;br /&gt;
&lt;br /&gt;
File used to describe all the game material (cards with their description, dices, tokens...). You can also use it to define game constants.&lt;br /&gt;
&lt;br /&gt;
=== states.inc.php ===&lt;br /&gt;
&lt;br /&gt;
This file describes the states your game will iterate over, and the transitions to get from one state to another.&lt;br /&gt;
&lt;br /&gt;
=== stats.inc.php ===&lt;br /&gt;
&lt;br /&gt;
File used to list statistics that you want to update during the game to be presented to players at the end of the game.&lt;/div&gt;</summary>
		<author><name>Een</name></author>
	</entry>
</feed>