This is a documentation for Board Game Arena: play board games online !

Pre-release checklist

From Board Game Arena
Revision as of 19:40, 23 April 2020 by Een (talk | contribs) (Clarify final steps)
Jump to navigation Jump to search


Game File Reference



Useful Components

Official

  • ItemManager: a PHP component to manage cards or other game items.
  • PlayerCounter and TableCounter: PHP components to manage counters.
  • Draggable: a JS component to manage drag'n'drop actions.
  • Counter: a JS component to manage a counter that can increase/decrease (ex: player's score).
  • 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).
  • 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-zoom : a JS component for zoom controls.
  • bga-animations : a JS component for animations.
  • bga-cards : a JS component for cards.
  • bga-dice : a JS component for dice.
  • bga-autofit : a JS component to make text fit on a fixed size div.
  • bga-score-sheet : a JS component to help you display an animated score sheet at the end of the game.
  • bga-jump-to : a JS component to add board shortcuts

Deprecated

  • Deck: a PHP component to manage cards (deck, hands, picking cards, moving cards, shuffle deck, ...).
  • Stock: a JS component to manage and display a set of game elements displayed at a position.

Unofficial



Game Development Process



Guides for Common Topics



Miscellaneous Resources

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
    • 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 [email protected] 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.