SkillzTrack: PC Meets Android Meets FTP
(This blog originally drafted in 2012)
The project originally started as a Lotus 1-2-3 spreadsheet as localized leagues of pinball enthusiast began spreading across residential game rooms.
In 2004 Wolffysoft was exploring Microsoft's embedded operation system Windows CE. While development efforts were able to obtain the designed for Windows CE and Windows Mobile certifications, the technology became outdated in both software and hardware. While all the CE projects ceased development in 2006, the league scoring application known as StatMaster was finally retired in 2010. That old software wasn't archived but instead ported into a new cross platform implementation with new looks, design concepts and web publishing. What would emerge is the all new SkillzTrack.
The 2014 the first truly cross platform solution was produced thanks to years of developmental experience. SkillzTrack becomes the first solution to be available on Android mobile devices The new print features allow for printing of the current meet score cards and playlists directly from SkillzTrack. SkillzTrack is designed to be fast and fluid on both the desktop or mobile device. Each view is designed to be as human intuitive as possible focusing on the flow of how leagues used and collected match up information and results.
All the settings from the number of meets, to the points awarded, to the name of the league are configured in an XML file called LeagueConfiguration.xml. To prevent accidental changes to these settings a UI is only provided to display the current configuration. This was an intentional part of the design to prevent in field inadvertent changes from occurring. The basic safety check required that if SkillzTrack is running when the file is saved it will need to be closed and re-opened for the new changes to take effect. This file is loaded only once at application start.
To keep memory and data storage to an optimized minimum, every storage component is kept in a file based architecture simulating a higher normalized form database. When it comes time to compete, this information is served up from quick to access file formats. The Wolffysoft development system knows how to de-code the playlist into maps that produced an elegant display for statuses and entering results.
At the end of new scoring meets, results and player's stats are crunched into a simple HTML based internal website. The built in FTP client would automatically published the needed files to a live website for public viewing of each player's performance.
What is the primary purpose of developing SkillzTrack? Available on both Windows and Linux
The primary reason was to migrate away from a platform and operating system that was sunset with the advent of Windows Phone OS. During that process arose the next important reason: making the application customizable to be used by other organized leagues. The underlying rules are no longer compiled into an embedded application but are instead read from an XML file. This allows the rules to be modified to meet a specific scoring purpose. In turn, that should allow this application to be commercially available to other clubs and tournament operators who could make use of the provided automation.
The rule compilation modules along with the player's SkillzCard are planned to be built into a future project. With the rule stack and result generation in place, the addition of the phased in WS Framework will start shifting this into a peer-to-peer system to allow for multiple devices to be used to update match results.
How many code bases are needed for cross-platform support? Available on both Windows and Linux
Just one. SkillzTrack uses the Qt cross-platform development toolkit. Windows was the first OS version and has been expanded to Android. This did cause a much needed rewrite providing improved flexibility in porting over the previous CE version.
SkillzTrack added achievements players can earn, why? Available on both Windows and Linux
That is just one of many aspects from modern gaming that was borrowed to enhance the production and creation of a UI that is understandable by today's players. Matchups in the software are referred to as playlists and each round is considered a party. The primary mode for a league season is referred to as a Campaign, which is also used to describe a team's regular season schedule in major sports leagues.
As a sign of the times people have come to expect that their experiences in a certain adventure would be marked with progress. Looking at wins and losses is just a collection of good games and bad games. Adding these awards provides a visual indication that a player is progressing in the adventure and once an award is earned it can't be taken away. Gamer Giovanni Guiffra tweaked the achievement system to restore it back to how it would have looked and felt if it was implemented in a never developed Pinball game.
The feedback received was positive as lower ranked players used the achievement page to see how many were unlocked at a particular meet, even if their match play didn't go so well. Homebrew developers would later add achievements into their game rules which today is mainstream in Stern Pinball's Insider Connect system.
Fun Fact: SkillzTrack contained a secret achievement that was a bit of a pain to unlock. This achievement was an Easter Egg nod back to early WareWolffy Studios' supporter Jackson Burger.
What is the story behind the concept of Rivals? Available on both Windows and Linux
SkillzTrack is intended to record the progress of players who may not be competing specifically against people of similar skills. Rival's allow players to choose who is close in skill level to single out as someone they are going head to head with. During the "It Starts with One" campaign of 2011, the concept was introduced as it was used in the never developed pinball prototype project framework. When the pinball project was officially shelved on November 10, 2011, the feature remained behind for friends who are charting progress toward a co-op goal and planned to be expanded upon for other comparison type features. SkillzTrack was originally designed to be just one component of the pinball prototype project.
Why are player reports static HTML files? Available on both Windows and Linux
For simplicity. Most hosted websites have a limited set of technologies that can be used for security reasons. Static HTML rendered using CSS doesn't require any scripts to be execute either on the server or within the user's browser. StatMaster required WebBlaze, a CGI based application, to be run on the server and run-time libraries would generate the content to display in the browser. Not to mention, to eliminate the need of server side technologies for dynamic rendering, static HTML files are the safest assumption to make for file uploading.
Enter Players, Games, and Get To It!
On the players tab, select new and enter the player information. Repeat this step for each player that needs to be added to the league.
On the machines tab, select new and enter the information about the pinball machine that will be used. Repeat this step for each pinball machine that the league will use for play. In the owners section of the pinball machine properties dialog, add each league member that owns the machine. When a host is selected for a meet, games that are listed as being owned by the host will automatically be highlighted and will be the only games listed in the meet screen.
On the season tab, select new, acknowledging any dialogs that you are prompted with. From the "Choose Your Fate" dialog, select the option that corresponds to the type of season playlist to generate for competition.
For each meet, select the meets tab at the start of the meet and select new. A playlist for the meet will be generated. A dialog will appear asking for host information and will allow you to select a substitute or remove a player from the playlist in the event of an absence.
During the meet, information about the matchups and the results will be entered on the meet tab. Selecting the machine name link will present a dialog in which a machine can be specified as the pinball machine used for that round. By default, all remaining rounds will be set to this machine so if substitutions aren't required this action only needs to be performed once for each column. Selecting the round number will present the dialog in which results can be entered. Once a result is entered for each player the proper number of points earned will appear and achievements earned by the players will be unlocked. These points are added to the player's meet score and over all league score at this time and all other statistics are updated.