Home »

What is BGA Studio?

Getting started

4 slideshare presentations to get ready to use BGA Studio in 30 minutes:

Reference Documentation

This page come from BGA wiki, and has been written by BGA players community. Feel free to edit it!

What is Board Game Arena Studio?

Board Game Arena Studio is a platform to build online board game adaptation using the Board Game Arena platform.

It is open to any gamer with development skills :)

BGA Studio website: http://en.studio.boardgamearena.com

(original announcement on BGA forum: http://forum.boardgamearena.com/viewtopic.php?f=10&t=1973)

Discover BGA Studio in 5 presentations

Why, how, what... to start discovering BGA Studio, we prepared 5 "powerpoint" presentations for you:

How to join the BGA developer team?

Please see this page: How to join BGA developer team?

Great, I'm in! ... How should I start?

If you didn't already, check the presentations at the top of this page to get the basics.

Then, you should checkout the First steps with BGA Studio to make sure that runs fine.

After that, we advise you to take a peek at one or both of these two game creation tutorials:

Then start editing files and see what happens! ;)

If you have any questions, please check out the Studio FAQ first, then if you didn't find the answer you were looking for, please post your question on the development forum.

BGA Studio documentation

BGA Studio Framework reference

This part of the documentation focuses on the development framework itself: functions and methods available to build your game.

File structure of a BGA game

Game logic

Game interface

Other components

BGA Studio game components reference

Game components are useful tools you can use in your game adaptations.

  • Deck: a PHP component to manage cards (deck, hands, picking cards, moving cards, shuffle deck, ...).
  • Counter: a JS component to manage a counter that can increase/decrease (ex: player's score).
  • Draggable: a JS component to manage drag'n'drop actions.
  • ExpandableSection: a JS component to manage a rectangular block of HTML than can be displayed/hidden.
  • Scrollmap: a JS component to manage a scrollable game area (useful when the game area can be infinite. Examples: Saboteur or Takenoko games).
  • Stock: a JS component to manage and display a set of game elements displayed at a position.
  • Wrapper: a JS component to wrap a <div> element around his child, even if these elements are absolute positioned.
  • Zone: a JS component to manage a zone of the board where several game elements can come and leave, but should be well displayed together (See for example: token's places at Can't Stop).

BGA Studio user guide

This part of the documentation is a user guide for the BGA Studio online development environment.

BGA Developer team organization

Other resources

Development forum

Bugs forum


Please remember me

Join BGA Studio developer team

To start developing on BGA Studio and get access to development environment, you need to create an account below.

Personal infos provided in this form is NOT shown to anyone but BGA Studio admin, and is NOT used for any other purpose that BGA Studio organization.

(Must be valid. We may remove accounts from developers we can't contact.)

(3 to 20 characters. No space, no number, no special characters)

(The exact username you are using on BGA)

Important: we need your REAL name to attribute your work on the Studio & to send you stuff by Post when needed.

Important: we need your REAL name to attribute your work on the Studio & to send you stuff by Post when needed.

Please enter the security code you are seeing

I agree to Terms&conditions for developers of BGA Studio.


Timer based games

Lets say I have a game where real timer should be used for all players. What what would best way to implement that?
Basically I need to
a) disable turn-based games for this game
b) tap in timer API some-how to set global timer and get alarm when expired, and not in UI code, notification must come from server
10/21/20164 comments

Not sure why "This move is not authorized now" when clicking on a stock component

I have two items in my stock. When I click on either one it is selected. But a red bar appears with the message: "This move is not authorized now."

Why is that?

10/16/20163 comments

Replay instant positioning and going backward

** Keep in mind that I don't know how the underlying code works

I was wondering if implementing instant positioning and going backward in a table replay is something doable? Debugging something when it's on move 300 takes a really long time just going there, and if you miss what happen, you have to do it all over again.

I might be missing something, too!
10/10/20168 comments

Want to help others with their games

I am new to this but not at all new to programming. I have struggled to take the tutorials and turn them into something else. I would like to see if there is someone or a group building a game that I may be able to jump in and help. I think this would help them to have more hands but it would also help me to become more acquainted with the framework and better understand the system so i can build my own in the future. Let me know if you have any interest in this.

09/20/20161 comment

Screen format for Love Letter

I dont know if i am posting this in the right section, but... Could the screen for Love Letter be changed?
Look my example down. I have a 1366x768 monitor. The screen is a little bit down already (as you can see by the scroll bar in the right), hiding my name/points and the second player's name in the right. The "updating game situation" bar on top hides the up player's name. And I don't have any previous card showing below my card, but it would be partially hidden too.

If I set the browser to full screen, I can see the whole board, but my name/points in the right would still be hidden. Also if I set the browser for 90%.


My suggestions are:
1) That space between the center cards and the up player cards could be dminished
2) The 'previous cards' coins could be changed from below to the side of the player's cards (there are too much room in the sides)
3) The phrases "last played" and "deck" above the center cards could be replaced to the sides.

It could be something like this (dont mind my poor photoshop skills):

09/11/20161 comment

Application loading ... ...