This is a documentation for Board Game Arena: play board games online !
Pre-release checklist
Перайсці да навігацыі
Перайсці да пошуку
- 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
If you think your game is ready to be reviewed by by BGA admins and/or Publisher please consult this checklist first
- Metadata and graphics
- Game_meta-information: gameinfos.inc.php has correct and up to date information about the game
- Game box graphics is 3D version of the game box (if available) and publisher icon is correct (see Game art: img directory). Space around the box has to be transparent, not white.
- There is no images in img directory which are not needed anymore
- Multiple images (i.e. cards) are compressed in "Sprite" (see Game art: img directory)
- Each image should not exceed 4M
- Total size should not exceed 10M, image compression should be used otherwise
- Server side
- Game progression is implemented (getGameProgression() in php)
- Zombie turn is implemented (zombieTurn() in php). Note: it can only be tested if you explicitly click on the quit button to create a zombie. If you are expelled it does not generated a Zombie.
- You have defined and implemented some meaningful statistics for your game (i.e. total points, point from source A, B, C...)
- Game has meaningful notification messages (but don't overkill it, more user logs will slow down the loading)
- You implemented tiebreaking (using aux score field) and updated tiebreaker description in meta-data
- Special testing
- Game is tested with spectator (non player observer)
- Game is tested with in-game replay feature (by clicking on notification log items)
- Game works in Chrome and Firefox browsers at least. Also very recommended to test in IE 11 and Edge.
- Game works on mobile device (if you don't have mobile device to test at least test in Chrome with smaller screen, they have a mode for that)
- Test your game in realtime mode. Usually people will run out of time if you use default times unless you add call giveExtraTime($active_player_id) before each turn
- Test your game in 3D mode
- Cleanup
- Remove all extra console.log from your js code
- Remove all unnecessary debug logging from your php code
- Copyright headers in all source files have your name
- User Interface
- Review BGA UI design Guidelines BGA_Studio_Guidelines
- Non-self explanatory graphic elements should have tooltips
- If graphic elements appear in notification log they should have titles (i.e. title attribute of div) so can be read in non rendered form (i.e. as text only)
- Strings in your source code are ready for translation. See Translations
- A prefix for example a trigram for your game that you append to all the css classes to avoid namespace conflicts, i.e. vla_selected vs selected
- If you are looking for advice on design and some 3rd party testing you can post a message on the developers forum, and ask other developers, there are a lot of people who will gladly do it.
- Finally
- If possible (meaning if there is not already a project with that name) copy your project to a new project matching exactly the name of the game (no prefix or suffix). If not possible move on to the next steps, admin will have to retrieve the other project and overwrite it.
- Create a build for your game from the "manage game" page and check the log to make sure that everything builds fine (very often the js build fails because of this constraint).
- Send an e-mail to studio@boardgamearena.com asking to move the project forward for review. You cannot deploy yourself from the "manage game" page until a first deploy has been done by the admins.