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
- 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.