Game Box Creation - Testing

From BOARD18 Project WIKI
Revision as of 18:31, 23 September 2013 by Rich (talk | contribs) (→‎Do an Actual Reload: documented changes to script)
Jump to navigation Jump to search

Once you have a finished JSON control file and the associated image files for a game box, the next step is to test it.
But first you should pass the finished JSON file through a JSON validater like JSON lint.

Game Box Creation edit

"Do It Yourself" Testing

Here are the steps necessary to test the game box on your own PC before publishing it in any form. The setup for this procedure is not easy to do and requires a PC that can run an Apache server. If you can not or are not willing to do this, then skip to the Other Ways To Get It Tested section below.

The Testing Environment

To test a board18 game box you must have a working BOARD18 server. Your local PC or any remote PC to which you have shell access should be able to be used for this.
This is especially true if you are running a Linux distribution on that PC.

Installing Apache, MySql and PHP on your PC is a bit time consuming, but it can be done by following the detailed instructions available for various operating systems.

For Ubuntu LINUX see ApacheMySQLPHP. For Windows see Apache for Windows or WampServer.
There is much more documentation out there and it covers other operating systems too.

Creating The BOARD18 Test Site

Next you must create a BOARD18 site on your Apache server.
This help file was intended for people seting up remote servers, but it has all the information that you need to create a local test server.

At this point you should have a working instance of a BOARD18 web site. Test to make sure that it works before you try to use it to test your new game box. The easiest way to do this is to create a few dummy users and start a game using one of the existing game boxes. Make sure that you can drop tokens and tiles and that everything looks as it should. If it works then you can finally start testing your new game box.

Loading Your Game Box

This step requires you to use your shell (command line) access on the web server PC.

Loading The Game Box Images and Control File

On the command line do the following:

  • cd to the images directory on your web server. This directory should contain sub directories with names like 1826-REP01 and 1870-REP01.
  • Create a new sub directory for your game box in this directory. The name of this sub directory must be unique!
  • Load all of your gamebox image files into this sub directory.
  • cd to the utility directory on your web server. This directory should contain a sub directory called control.
  • Place your control file into this directory. The name of this control file must be unique!

The Game Box Control File

To load the new game box control file into the database table, do the following (but replace boxname with the name of your control file):

  • cd to the utility directory on your web server.
  • Enter on the command line:
 
php loadGameBox.php control/boxname.json
  • You should now see an output that looks something like this:
 
Successfully created game box table row 1.
The box name is 1826.
The version is REP01.
The author is Rich Price.
The date is 2013-07-15 09:26:48.

The Actual Testing

The most common errors in a game box result from minor mis-measurements in the pixel counts of the images. So these are what we look at here.

Start a game using your new game box, Does the board display correctly? If not check the horizontal and vertical size parameters in the "board" object. Make any needed corrections and/or adjustments. Then reload the game board and test again. Be sure to check that the hexes are proportioned correctly.

Do the same for the Stock Market.

Place the first tile on the tray on the board near the top left of the map. Does it line up with the containing hex? . . . both horizontally and vertically? If not, then adjust the relevant start values in the "board" object. Next, if the tile seems to be clipped either horizontally or vertically, then adjust the relevant start values for the tile sheet object. Finally rotate the placed tile. If the tile seems to become more and more clipped as it is rotated, then adjust the xStep value for the tile sheet object. Repeat this procedure for a tile near the bottom of the tray to test the yStep value for the tile sheet object. Use a tile with six rotations.

You will have to go through this entire process for each tray object (both tile and token sheet types).

Finally, to test the xStep and yStep values for the "board" and "market" objects, repeat the first test one more time per object. Use any relevant tray and place the object near the bottom right of the map or market sheet. Does it line up with the containing hex? . . . both horizontally and vertically? If not, then adjust the relevant step values in the "board" or "market" object.

Reloading the Modified Control File to the Database

While testing your game box you will probably have to modify the control file repeatedly.
Use the following procedure to reload the JSON control file into the database without changing any other part of the table row for the game box.

Setup the Reload Procedure

You only have to do this once for a given game box.

  • Start a terminal session.
  • Enter the following command on the command line:
 mysql -u board18 -pboard18 board18BOARD18/

If you did not use board18 for your user id (-u) or your password (-p) then substitute the correct values.

  • Enter mysql command:
 select box_id, bname from box;
  • You should see output similar to the following:
    +--------+---------+
    | box_id | bname   |
    +--------+---------+
    |      1 | testBox |
    +--------+---------+
    1 row in set (0.00 sec)
  • Make note of the box id for your testBox.
  • Exit mysql.

Do an Actual Reload

Do the following each time that you wish to reload your control file to the database.

  • Start a terminal session.
  • Go to the utility directory.
  • Enter the following command on the command line:
 ./addJSONtoBox box_id control/testGame.json

Replace box_id with the value noted above and testGame.json with the name of your control file.

  • You should see the name, version and author of your game box displayed if the reload was successful.

Other Ways To Get It Tested