First steps with BGA Studio
- Main game logic: yourgamename.game.php
- Your game state machine: states.inc.php
- Game database model: dbmodel.sql
- Players actions: yourgamename.action.php
- Game material description: material.inc.php
- Game statistics: stats.inc.php
- Game interface logic: yourgamename.js
- Game art: img directory
- Game interface stylesheet: yourgamename.css
- Game layout: view and template: yourgamename.view.php and yourgamename_yourgamename.tpl
- Your game mobile version
- Translations (how to make your game translatable)
- Game options and preferences: gameoptions.inc.php
- Game meta-information: gameinfos.inc.php
- Game replay
- 3D
- Some usual board game elements image ressources
- 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).
- 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.
- 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).
Undocumented component (if somebody knows please help with docs)
- 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.
- Wrapper: a JS component to wrap a <div> element around its child, even if these elements are absolute positioned.
- BGA game Lifecycle
- First steps with BGA Studio
- Tutorial reversi
- Tutorial gomoku
- Tutorial hearts
- Create a game in BGA Studio: Complete Walkthrough
- Tools and tips of BGA Studio - Tips and instructions on setting up development environment
- Practical debugging - Tips focused on debugging
- Studio logs - Instructions for log access
- BGA Studio Cookbook - Tips and instructions on using API's, libraries and frameworks
- BGA Studio Guidelines
- Troubleshooting - Most common "I am really stuck" situations
- Studio FAQ
- Pre-release checklist - Go throught this list if you think you done development
- Post-release phase
- BGA Code Sharing - Shared resources, projects on git hub, common code, other links
Connect to the BGA Studio website
Go to BGA Studio website: http://en.studio.boardgamearena.com
Choose one of your 10 accounts (ex: myusername0, password was sent in welcome email), and login into the website - as you would do for Board Game Arena.
If you don't have account see How to join BGA developer team?
Create a new game project
You can do most of the projects-related operations from "Control Panel / Manage games". In particular, you can create a new project automatically from there.
Your first "game" should be one of the tutorials, so your project name should be something like "tutorialbob".
At this stage it is too early to create a real game but if you really don't want to start until you have a game in mind, check Create a game in BGA Studio: Complete Walkthrough section "Select a First Game"
For reference top bar studio links
- AVAILABLE LICENSES - list of all available licenses (not public domain) - http://en.studio.boardgamearena.com/#!licensing
- STUDIO PROJECTS - list of all registered studio projects - http://en.studio.boardgamearena.com/#!projects
- CONTROL PANEL - manage projects - http://en.studio.boardgamearena.com/#!controlpanel
Connect to your SFTP folder
From the initial email from the Studio you get:
- the name of the SFTP server to connect to
- your SFTP login and password
Using this information:
- Connect to the SFTP server using your SFTP login and password, through your favourite SFTP client software (such as WinSCP, see File Sync)
- Check that your remote home folder contains one folder for each of the three example games (reversi, hearts, gomoku). If you have already created a new game project, one additional folder should be in your "home" folder.
- Note: You have to setup AUTOMATED sync between your folder and remote folder, manually ftp'ing files would be no-starter. For WinSCP you can do this from the file menu (Commands->Keep remote directories up to Date...)
Let's code!
Now, you can try to launch a new game on BGA Studio from the "Play now" menu entry, as you would do on Board Game Arena website.
- Find your game in the 'PLAY NOW' section and create a table
- Use the 'I want between X and X' players to tick down the maximum players number to the minimum
- Click 'Express start': your game launches with the maximum number of players specified. It shows an empty canvas: in the game zone you just have a sentence 'This is your game interface. You can edit this HTML in your ".tpl" file.'.
- Switch to your SFTP home folder, go into your game folder. Edit the game_game.tpl file, and change this sentence to 'Hey, this is my first game!', then save.
- Go back to your browser and refresh, check that the game zone has updated.
- Click the red arrow next to a test account's name in the player panel to view the game from that player's account
- From the Player page or Table page click on the link "You are playing <name of game> (realtime)" (or click on the 'Gear' icon on the top right) and choose 'Express STOP'. The game ends automatically and you are brought back to the table screen for this ended game.
- Switch to your game folder, go into the img folder and overwrite your game_box.png file with another image.
- Go back to your browser, empty your browser cache, then refresh the page, and check that the game box image has been updated.
Then you can modify the provided skeleton and begin to develop your game :)
Commit your changes
Committing uploads your changes on BGA's revision control system. This is an extra assurance not to lose your code, and to have the possibility to get a previous version of your code if you need to backtrack. It also helps us to follow your progress (we get an email when you commit). So you should commit from time to time, when you hit some landmark in your development.
You can automatically commit your sources in the repository from "Control Panel / Manage Games / Your game / Commit my modifications now". Then:
- Enter your commit comment (such as 'My first commit') then hit the 'Submit' button;
- Check the log for errors, it should end with the following lines:
Transmitting file data . Committed revision #revision number#. HAL says: done.
NOTE: committing the code is currently not working until admin commits it manually the first time. Even if it does you cannot automatically deal with this version control system except for committing. Therefore its recommended to use another means of storing the code in version control system, such as local git repo or github, see Version Control
That's all!
Now you know about the basics of updating your game on BGA Studio and testing your changes.
Now you can select one of the tutorials to play with and start coding.
For links to tutorials and ALL studio documentation see Studio.