NSFootySim

From NSwiki, the NationStates encyclopedia.
Revision as of 05:53, 18 June 2006 by Rejistania (Talk | contribs)

Jump to: navigation, search

NSFootySim is a program written in Java used to scorinate domestic football leagues and cups as well as some international competitions such as the World Cup. Though not originally intended as a competitor to the highly successful Leagion, its market share has been growing due to its usefulness as a somewhat more user-friendly alternative.

The current release of the program is version 1.2.4, released on May 20, 2006. The program is licensed under the GNU General Public License, and its source code is included in the download.

Features

The program will generate results for all matches in leagues consisting of two or more teams (the theoretical maximum is 32,767 teams, but this is untested). Each team can play each other team either once at home and once away or once on neutral ground. At the user's discretion, draws can be disallowed, requiring tied matches to proceed into extra time or penalty shootouts if necessary to determine a winner.

In addition, single-elimination cup-style knockout tournaments are possible with any even number of teams; rounds will be generated until an odd number of teams remain. Such tournaments, like the leagues, may consist of two matches or one in each round. An option exists to randomize the fixtures for the first round of the cup; otherwise matchups will proceed in the order defined in the input file.

The input file

The input file was designed to be very easy to create. It follows this format:

League,League Name,Season ID Number
Team,Team Name,Rank,Style
Team,Team Name,Rank,Style
etc.

Style is an optional value from -5 to 5 describing the team's playing style, where 5 is the most offensive and -5 the most defensive. Any value in this range can be used, including non-integers. If a style is not provided, the team will default to 0 (neutral).

Limitations

There are some things the program cannot do; some of these may be implemented in future releases, and some may not. The two primary drawbacks are that only one league or group can be in a given input file and that custom fixtures are not possible. Leagion provides both of these features. Also NSFootySim lacks an interactive mode as leagion which allows to scorinate matches without creating a file.

History

The program was originally created in the late summer of 2003 by Bedistan as a simple DOS-based utility to generate scores of individual matches. At the time, it was programmed in C. In its first year of development, it underwent several wholesale rewrites and language changes, being converted to Java for version 0.2, back to C for 0.2.5, then to Visual Basic for version 0.3. During this time, it gained a graphical interface, a first among non-spreadsheet-based scorinators. It also became more powerful while simultaneously becoming more limited in scope – though it now had the capability to generate an entire league season with one click of the mouse, it could do so only for the Bedistani leagues, which were hard-coded into the program.

A major breakthrough in version 0.4 (June 2004) using some source code from Leagion paved the way for leagues of arbitrary size to be able to be generated, and generation of results for custom leagues was made available in version 0.4.1. For a few days, it would only work for leagues with an even number of teams, but odd-league capabilities were added in version 0.4.3 along with settings to further help customize the league such as specifying whether teams played each other once or twice, whether or not to allow draws, and how many league points are awarded for a win, draw, or loss (allowing for such things as the Rejistanian 4/2/1 point system).

The program finally returned to Java in version 0.5 (August 2004), and shortly thereafter the ability to generate cup-style tournament results was added. Version 0.6 (September 2004) introduced the ability to generate partial seasons and resume them later. Version 0.7 (September 2004) introduced mostly minor changes that were nevertheless big steps toward segregating the program from the Bedistani league structure and therefore making it more useful to the general public. The later 0.7 releases and 0.8 (December 2004) gave end-users more power than ever before by being able to customize almost every facet of the formulae used by the program for result generation. At this point, the author planned to implement a "deluxe mode" for the program that would produce a more realistic simulation all the way down to the individual player level, but the idea was soon scrapped as it went against the program's ideal of being as easy to use as possible.

Version 0.9 (December 2005) introduced optional style modifiers to the program and redesigned the interface. These two changes also required significant changes to be made to the format of the input file.

Version 1.0 (January 2006, the first "full" release, incorporated the ability to allow teams to enter cup competitions in different rounds, and version 1.1 (February 2006) added the ability to generate results for multiple divisions or leagues in one input file.

Though the program was made available on request to #sport regulars beginning in the fall of 2004, version 0.8.3a (August 15, 2005) was the first official public release of the program.

Current development

Projected features for the near future:

  • Interdivisional play

Leagues scorinated with NSFootySim

In alphabetical order by nation:

Old versions

Older versions of the program are provided here for convenience:

  • 1.2.0 – the last known version believed to be fully functional on all computers (no Unicode support)
  • 1.1.3 – results still output to multiple files
  • 1.0.0 – no multidivisional support
  • 0.9.7 – no custom fixtures
  • 0.9.0
  • 0.8.3a – first released version, uses old input file format


NationStates World Cup
Editions: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38
Affiliated tournaments: Baptism of Fire | Cup of Harmony | Under-21 World Cup
Scorinating: KPB ranking system | Leagion | NSFootySim | Role play ranks (RPR) | Style modifiers
Related articles: World Cup Committee | FAQs | Player Hall of Fame | Nation Hall of Fame | Football