Plus/Minus Real-Time Hockey Game Scoring Software
Email: mph-at-sportscliche-dot-com

This freeware program was developed to automate the +/- scoring of a hockey game in real-time. The essential idea is as follows: During the game, the scorer uses the program to keep track of players on the ice. When a goal is scored, the appropriate button (Home goal or Guest goal) is pressed causing +/- data to be recorded for each team.

The program assumes 10-skaters on each team: 6 forwards on two lines and 4 defenders on two lines. It takes advantage of the fact that in rec league games players almost always stay together on their lines for the duration of the game. The graphical user interface is two window tabs that allow the scorer to record line changes with a single click or to track individual players substitutions. Screenshots of these two tabs can be seen here: Tab 1   Tab 2

It is written using LabView, but is a stand-alone executable, i.e. does not need LabView installed. It does require installation of the LabView run time engine on your computer. The engine is available as free download from National Instruments. The program was developed and tested on Windows 2K/XP. Improvements and refinements were made using Linux. I also wrote a version for Mac/OSX but have not independently tested it. Each version can only be run on its corresponding operating system, eg. the Linux version will not work on Windows and vice-versa. This is due to the way National Instruments codes their runtime engines.

Windows 2K/XP. Install the LabView 7.1 run time engine on the host PC. The engine is a 32 Mb executable, available as free download from National Instruments at this page. The Windows executable +/- program is found here.

Linux. Install the LabView 8.6 run-time engine for Linux found here. Note that two file downloads are required. NI only supports RedHat based distributions like Fedora that use the rpm package manager. The alien software package, however, can convert the NI .rpm files to .deb binaries that will work on popular Debian-based distributions such as Ubuntu and Mint. This can be implemented from the command line as follows:

sudo aptitude install alien
sudo alien -k --scripts labview-rte-aal-1.1-1.i386.rpm
sudo alien -k --scripts labview86-rte-8.6.0-1.i386.rpm
sudo dpkg -i labview-rte-aal_1.1-1_i386.deb
sudo dpkg -i labview86-rte_8.6.0-1_i386.deb

There are other ways to make the conversion that may be more appropriate for different Linux distributions. I was able to install the RTE on ArchLinux without alien. Email me or search +archlinux +labview for details. The Linux +/- program executable can be downloaded by a right-click on this link.

Mac OSX. I made a Mac binary but do not know if it works. You will need this run-time engine.

Operation The +/- executable can be placed anywhere on the PC, including the desktop. Double-clicking the program icon should automatically locate the run-time engine and get it to launch. This may not always happen on Linux, so you can try writing a launcher script that specifies where the RTE libraries are located, for example:

#!/bin/bash
export LD_LIBRARY_PATH="/usr/lib/LabVIEW-8.6:$LD_LIBRARY_PATH"
path to the +/- executable

When the program starts, the scorer is asked to specify a directory where game data will be stored. Browse to the desired directory and then `Select Current Directory'. Data can be retrieved from the home/guest data files if there is an accidental computer crash.

Set the lineups in the `Lines' tab. Enter the player numbers for the home and guest teams in the boxes on the outside columns. Player numbers are all initialized at 0 and the `duplicate number' error message is displayed. This error will clear when 10 unique numbers are set. Each player is identified as a forward (F) or defender (D) on the adjacent selection menu and whether they are on the first or second line. For example, a forward on the first line is designated F1 and a defender on the second line is D2. Setting up lines this way allows the scorer to track offensive and defensive line changes using the four toggle switches. Take care when entering player numbers -- once that number has been assigned +/- data (ie. after a goal is recorded), it cannot be changed.

Numbers shown in the center of the display correspond to players on the ice. Warnings are displayed if: i) there are duplicate numbers on a team and/or ii) there are not five players for each team on the ice (four players when the overtime box is checked). No +/- data should be recorded when a team scores on a power play, but provision is made for a pulled goalie/extra attacker and short-handed situations. The scorer can only edit player numbers in the outer boxes.

Press the appropriate button when a goal is scored. The program will query the scorer before recording data, but once the OK button is clicked the data cannot be edited from inside the program. If the program is stopped and re-started, all displayed and saved data is permanently erased. Real-time +/- data is shown at the bottom of the display. Clicking the end-of-game switch at the bottom of the display will not erase the +/- data, but re-starting the program will.

It is strongly recommended that player number entry occur immediately at the start of the game, not during warmup. The idea is to group offensive and defensive lines together and this is very difficult if forwards and defenders are intermixed on the roster. Grouping forwards in the top slots and defenders at the bottom is the best approach. If this is followed, the scorer's most difficult work occurs on the first two shifts when players are assigned to lines. Teams generally keep their lines together but if this changes during the game, the scorer must be alert to switch designations as appropriate.

The `Individuals' tab allows player switches to be tracked individually, which often occurs in overtime. With four skaters per team in overtime, some of the regulation lines will not stay intact. Note that this tab can be used in regulation as well. The scorer can move back and forth between the `Lines' and `Individuals' tabs during the course of a game with full functionality.