GAMERT (Gaming) Round Table

 View Only
last person joined: yesterday 

The mission of the Games and Gaming Round Table is to provide the following:
  • A forum for the exchange of ideas and concerns surrounding games in libraries;
  • Resources to the library community to support the building and maintaining of library game collections;
  • A force for initiating and supporting game programming in libraries;
  • Create an awareness of, and need for, the support of the value of gaming and play in libraries, schools, and related learning communities.
  • Create an awareness of the value of games and gaming in library outreach and community engagement plans.
  • A professional and social forum for networking among librarians and non-librarians interested in games and gaming.
  • 1.  Selection Report

    Posted Mar 09, 2021 03:19 PM
    Edited by Liam Whalen Mar 09, 2021 03:38 PM
    Hi,

    I'm working on selecting some new board games. The collection at NLPL is three years old. Some locations use it a lot. I'm using the following SQL to get information from a Horizon database to help select locations and types of games for those locations.

    I am looking at locations with board games that have circulated five or more times since the start of 2019. The report shows the location, the sum of the circs for all items at that location for each board game, and the board games title.

    This has allowed me to identify which locations have good circulation, so I can add items to their collections, and it has identified other locations that I will replace on my list with locations that do not have collections yet, in hopes that I find more locations that like board games. When looking at the titles, I am distinguishing between traditional and non-traditional games. Traditional being games like checkers, Connect 5, etc. Within each location I am categorizing them as either in favor of traditional collections, non-traditional, or a mix. Are there other categories I should be considering? I take this information and use it to identify games to add to the possible selection list for the year.

    Here is the SQL I am using (I forgot one important part in my initial posting. The collection code. At NLPL its ttg)

    SELECT i.location, l.name, SUM(i.n_ckos) AS n_ckos, ti.title
    FROM item AS i
    INNER JOIN location AS l
        ON i.location = l.location
    INNER JOIN title_inverted AS ti
        ON i.bib# = ti.bib#
    WHERE AND i.collection = 'ttg'
    AND i.n_ckos >= 5
    AND i.last_cko_date >= DATEDIFF(dd, 'jan 1 1970', 'jan 1 2019')
    GROUP BY i.location, l.name, ti.title

    ------------------------------
    Liam Whalen
    Systems Librarian
    Newfoundland & Labrador Public Libraries
    ------------------------------


  • 2.  RE: Selection Report

    Posted Mar 11, 2021 11:44 AM
    Is "AS" for "Adult" collection? If not, does the collection distinguish between Children's, Teen, and/or Adult? There might be variation between those age groupings within the same library location that you might want to consider. 

    Depending on how granular you want to go, you could look at things like the min and max player counts for games. If you have games that are only for 2 players, do those go out more than 3+ player games? What about games that are for 5+ players, do you have people looking for games that will support larger groups?

    There are other things you *could* look at, but it really depends on how much information is already in the database and how much you want to consider when adding titles. You could determine which publishers are popular, which mechanisms are popular (maybe your community is obsessed with deck builders but tile placement rarely goes out, etc.).

    The possibilities are endless! But what will be useful?

    ------------------------------
    Rebecca Strang
    Children's Services Librarian
    Naperville Public Library

    www.ToPlayIsHuman.com
    ------------------------------



  • 3.  RE: Selection Report

    Posted Mar 15, 2021 08:48 AM
    AS is a part of the SQL code used to alias a table name (location) to the alias l.

    I have been grouping the purchases as adult or children. I will take a look at the records and see what information is contained there.

    Thank you for suggesting number of players. I will need to review our catalog to see what other details are available.

    Endless board game fun at the library would be useful,

    ------------------------------
    Liam Whalen
    Systems Librarian
    Newfoundland & Labrador Public Libraries
    ------------------------------



  • 4.  RE: Selection Report

    Posted May 03, 2021 12:49 PM
    Thanks to NLPL's wonderful Technical Services Department, most of the board game records have 500 fields with player counts in them. Here is some SQL that will work with Horizon to get a report on player counts and check outs per location.

    It's a bit to look at, but here is a sample of the output, which might make looking at the SQL worthwhile ��. Because the data is derived from a text field, the min_players and max_players values are occasionally unusual, but most of the time they are very helpful.

    min_players max_players games_with_players n_ckos      location
    ----------- ----------- ------------------ ----------- --------
    2           4           12                 58          abr
    2                       3                  23          abr
    2           6           3                  16          abr
    2            +          1                  11          abr
    1           6           2                  9           abr
    2           10          1                  9           abr
    2           8           1                  8           abr
    3           6           2                  8           abr
    3           +           1                  2           abr
    2           4           1                  0           abs
    2           4           7                  39          acr
    2           10          1                  13          acr
    2                       4                  10          acr
    3           7           1                  5           acr
    2           6           1                  3           acr
    1           6           1                  2           acr
    3           10          1                  2           acr
    3           8           1                  2           acr
    3           99          1                  2           acr
    1           4           2                  1           acr
    1           8           1                  1           acr
    3           5           1                  1           acr
    2                       4                  1           ahd
    2            +          1                  1           ahd
    2           4           4                  1           ahd
    2           5           1                  1           ahd
    1           4           1                  0           ahd
    2           +           1                  0           ahd
    2           10          2                  0           ahd
    2           6           1                  0           ahd
    3           6           1                  0           ahd
    2           4           13                 175         amp
    2           5           5                  71          amp
    2           6           8                  50          amp
    3           6           4                  32          amp
    2           8           2                  23          amp
    2                       4                  20          amp
    3           4           1                  13          amp
    1           4           2                  9           amp
    1           7           1                  8           amp
    1           8           1                  8           amp
    5           30          1                  6           amp
    5           8           1                  6           amp
    1           6           1                  3           amp
    3           +           1                  3           amp
    3           8           1                  3           amp
    2           10          1                  2           amp
    2           +           1                  1           amp


    --Checkouts by players count per location
    SELECT SUBSTRING(min_players, 1, 10) AS min_players, SUBSTRING(max_players, 1, 10) AS max_players, COUNT(max_players) games_with_players, SUM(n_ckos) AS n_ckos, location
    FROM
    (
      SELECT
        SUBSTRING
        (
          player_count,
          1,
          PATINDEX
          (
            '%[^0-9]%',
            player_count
          )
            -
          1
        ) AS min_players,
        SUBSTRING
        (
          player_count,
          PATINDEX
          (
            '%[^0-9]%',
            player_count
          )
            +
          PATINDEX
          (
            '%[0-9]%',
            SUBSTRING
            (
              player_count,
              PATINDEX
              (
                '%[^0-9]%',
                player_count
              )
                +
              1,
              LEN(player_count)
            )
          ),
          LEN(player_count)
        ) AS max_players,
        n_ckos,
        location
      FROM
      (
        SELECT
          SUBSTRING
          (
            text,
            PATINDEX
            (
              '%[0-9]%',
              text
            ),
            CASE WHEN
              (
                PATINDEX('%player%', text)
                  -
                PATINDEX('%[0-9]%', text)
              )
                >=
              0
            THEN
              PATINDEX('%player%', text)
                -
              PATINDEX('%[0-9]%', text)
            ELSE
              0
            END
          ) AS player_count,
          i.n_ckos,
          i.location
        FROM bib AS b
        INNER JOIN item AS i
           ON b.bib# = i.bib#
        WHERE b.bib# IN (SELECT bib# FROM item WHERE itype = 'ttg')
        AND b.tag LIKE '5%'
        AND b.text LIKE '%player%'
      ) AS query1
      WHERE player_count LIKE '[0-9]%'
      AND LEN(player_count) < 10
      AND PATINDEX('%[^0-9]%', player_count) > 0
    ) AS query2
    GROUP BY location, min_players, max_players
    ORDER BY location, n_ckos DESC, min_players, max_players

    Liam