• Welcome to Smashboards, the world's largest Super Smash Brothers community! Over 250,000 Smash Bros. fans from around the world have come to discuss these great games in over 19 million posts!

    You are currently viewing our boards as a visitor. Click here to sign up right now and start on your path in the Smash community!

[WIP] Elo Ratings System

Nintendude

Smash Hero
Joined
Feb 23, 2006
Messages
5,024
Location
San Francisco
I was told to make a thread here for this project. For now just refer to this thread for details:
http://www.smashboards.com/showthread.php?t=301546

edit:
Here's a rundown of what I envision for our implementation of an Elo ratings system.

Tio Plugin
The next release of Tio will support plugins. Plugins can add bracket types, player information fields, methods of seeding, etc. Plugins must be programmed in a .NET language.

Regulating Committee
TOs will have to submit Tio files to some kind of committee that verifies the integrity of the results and updates ratings. The biggest thing to look out for would be the rules. In order for ratings to be successful, there needs to be a consistent set of rules across rated tournaments. It would make sense that the MBR official ruleset should be the standard here.

Online Database
With the Tio files, the regulating committee should be able to upload results directly to an online database. The database and web program should automatically detect existing players and update their ratings. New players will be added at a default "unrated" rating, and then their rating will be updated with the results.

At the most basic level, the public part of the database will be a large spreadsheet showing basic information like gamertag, rating, location, win/loss record, etc.

Categorized Player ID Numbers
Players should be identified by an ID number, not their gamertag or real name. This is good because of inconsistencies in gamertags, spelling errors in real names, and the privacy granted by an ID number (it isn't any kind of personal information). ID Numbers also make easier for players to have ratings for more than one Smash game tied to the same "account." Categorized ID numbers are great for generating regional statistics and tracking where players are originally from. An example of a categorized USA ID would be 1XXYYZZZZ, where 1 means from North America, XX is a country code, YY is a state code, and ZZZZ is your player number. So, 123321234 would mean I'm from North America (1), United States (23, assigning numbers alphabetically), New York (32), and then I am player number 1234.

As for coding aspect of ID numbers, 00000000 (all zeros) should be reserved for unrated players. When the system encounters an unrated player, it'll look at their location and spit out a unique number. If the system encounters a number that it does not recognize, then it should assume it is a typo and perhaps suggest a correction based on gamertag.

The biggest obstacle right now, is as Skler mentioned, getting a programmer. Also, Tio doesn't actually support plugins yet. nealdt says that it will be featured in the next release and he'll provide the support we need to get it to work.
 

Skler

Smash Master
Joined
Mar 17, 2006
Messages
4,518
Location
On top of Milktea
I'd just like to say this is totally awesome.

My only issue is administration for it; who can give it inputs and such? It seems really easy for somebody to just download the software, invent a tournament and then mess with everyone's ratings.

Solution: Web application with admin rights to people who would want to be Elo reps or something with a better sounding title. One central database for all players and it can only be controlled by trusted people. The problems I see with this would be that you need a server + database. Also a programmer.

Edit: I can offer my own knowledge of php/mysql. I know enough php to do a basic account style system with different privileges for different users and enough about MySQL to work with unranked players, store rankings, reference things and do basic math with all the numbers and such.

I don't know exactly how .net works though, and I don't have a whole lot of free time with my current internship. I feel like if you had the servers you could find qualified volunteers. The main problem would be finding volunteers who know enough about security to keep people from doing blind SQL injections, cross site scripting and all the other nasty things you can do over the web.
 

Fortress | Sveet

▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀
Joined
Dec 21, 2005
Messages
16,260
Location
Northern IL
Why don't we have an official TIO database that various projects can work from. This is the first i'm hearing about plugins, but if I had access to TIO files that had character information I could use that for the CRL too.
 

Skler

Smash Master
Joined
Mar 17, 2006
Messages
4,518
Location
On top of Milktea
All the more reason the application should just be a php and SQL thing. Everyone can access the online database and it'd be super easy to use and super easy to fix things when they go wrong. No need to release patches that everyone needs to download, no need for people to download ANYTHING (except TIO I guess).

Database with the following fields for the player section:
Player_id (auto increment)
Tag
Tournaments Entered (just so people can see)
ELO rank
ranked games played (just so people can see)

I'm not sure how to update it with only TIO files, but I'm sure somebody with more php/sql/.net knowledge than me can figure it out.

Maybe convert TIO files into a pile of SQL commands for each entrant and runs it. It'd encourage players to use real tags in an effort to increase their ELO ranking and show that they've been to a lot of tournies and such.

Everything but making it work with TIO files is super easy to do. Even then, it wouldn't be incredibly difficult to create a form that dynamically generates a bracket for TOs to fill in with the tags of players (have it resemble a bracket in the way TIO would generate it. Only problem is making it not look like crap due to HTML/CSS). It'd take a few minutes for a TO to fill out, but if they really care about rankings they'd do it anyways.

tl;dr: Brainstorming!
 

Fortress | Sveet

▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀
Joined
Dec 21, 2005
Messages
16,260
Location
Northern IL
tio files are just XML, so it should be possible to extract data from them programatically

edit-
[collapse=TIO file from SGNG7]
Code:
<?xml version="1.0" encoding="utf-8"?>
<AppData>
	<Culture>en-US</Culture>
	<Version>1.2.0</Version>
	<EventList>
		<Event>
			<ID>b1ba56b5-b27a-411a-af2e-d4514f823201</ID>
			<Name>Smashing Grounds: Next Generation 7</Name>
			<StartDate>5/7/2011 12:00:00 AM</StartDate>
			<Organizer>Sveet</Organizer>
			<Location>College of Dupage</Location>
			<InProgress>True</InProgress>
			<Games>
				<Game>
					<Name>Melee Singles Pools</Name>
					<ID>0f86356d-cc5c-4f62-8676-16766005aac0</ID>
					<Date>5/7/2011 12:00:00 AM</Date>
					<BracketType>RoundRobin</BracketType>
					<EntryFee>10</EntryFee>
					<BasePotSize>0</BasePotSize>
					<Entrants>
						<PlayerID seed="1" AmountPaid="10">97ad5294-a001-4088-abda-9d751b219868</PlayerID>
						<PlayerID seed="6" AmountPaid="10">2fee7640-24b7-480b-afa9-ffdb2f6e3f30</PlayerID>
						<PlayerID seed="3" AmountPaid="10">d6921448-2f88-4ff3-aca1-5d6aa14a8c1a</PlayerID>
						<PlayerID seed="9" AmountPaid="10">8fdeea32-b581-4000-83bc-cb29cc5a86ec</PlayerID>
						<PlayerID seed="5" AmountPaid="10">15eb7e69-1cd4-42f8-8d88-996694fc22c0</PlayerID>
						<PlayerID seed="7" AmountPaid="10">6dd85daf-e0e1-4543-8429-e611b297a2f9</PlayerID>
						<PlayerID seed="10" AmountPaid="10">fef4703a-6ab4-449c-813a-8d8a31b638a9</PlayerID>
						<PlayerID seed="11" AmountPaid="10">955b30dc-6bff-459b-ac34-7df4d4974192</PlayerID>
						<PlayerID seed="14" AmountPaid="10">7d611507-d4dd-4fbb-87d4-dd3ad456012f</PlayerID>
						<PlayerID seed="12" AmountPaid="10">772f989d-851f-4ff6-bd92-2e415d5d1415</PlayerID>
						<PlayerID seed="16" AmountPaid="10">6bc456e0-9890-4d0a-992f-4cba22a1c65a</PlayerID>
						<PlayerID seed="2" AmountPaid="10">b969a59c-e5d8-4e9c-85ae-7605b4e6b4ac</PlayerID>
						<PlayerID seed="4" AmountPaid="10">d5e4b8c7-0e72-4f05-b40a-429c792c3820</PlayerID>
						<PlayerID seed="15" AmountPaid="10">45612b4b-60fb-4e44-8a7e-fcb4c6ae6f76</PlayerID>
						<PlayerID seed="17" AmountPaid="10">54c47231-c163-4c95-b5b4-b8b4caffff7a</PlayerID>
						<PlayerID seed="0" AmountPaid="10">e2737995-9440-4ac7-bde0-73bb7c786061</PlayerID>
						<PlayerID seed="13" AmountPaid="10">e02808b6-a233-406b-8efe-520194476ef4</PlayerID>
						<PlayerID seed="8" AmountPaid="10">296e6697-edad-431b-ae29-7f63b393971d</PlayerID>
					</Entrants>
					<GameType>Singles</GameType>
					<HouseCut>0</HouseCut>
					<HouseCutType>Percent</HouseCutType>
					<Payouts removeabsolute="False">
						<Payout placing="1" amount="60" type="Percentage" />
						<Payout placing="2" amount="30" type="Percentage" />
						<Payout placing="3" amount="10" type="Percentage" />
					</Payouts>
					<InProgress>False</InProgress>
					<SeedType>Ordered</SeedType>
					<SeparateByLocation>False</SeparateByLocation>
					<Seeds>
						<PlayerID>e2737995-9440-4ac7-bde0-73bb7c786061</PlayerID>
						<PlayerID>97ad5294-a001-4088-abda-9d751b219868</PlayerID>
						<PlayerID>b969a59c-e5d8-4e9c-85ae-7605b4e6b4ac</PlayerID>
						<PlayerID>d6921448-2f88-4ff3-aca1-5d6aa14a8c1a</PlayerID>
						<PlayerID>d5e4b8c7-0e72-4f05-b40a-429c792c3820</PlayerID>
						<PlayerID>15eb7e69-1cd4-42f8-8d88-996694fc22c0</PlayerID>
						<PlayerID>2fee7640-24b7-480b-afa9-ffdb2f6e3f30</PlayerID>
						<PlayerID>6dd85daf-e0e1-4543-8429-e611b297a2f9</PlayerID>
						<PlayerID>296e6697-edad-431b-ae29-7f63b393971d</PlayerID>
						<PlayerID>8fdeea32-b581-4000-83bc-cb29cc5a86ec</PlayerID>
						<PlayerID>fef4703a-6ab4-449c-813a-8d8a31b638a9</PlayerID>
						<PlayerID>955b30dc-6bff-459b-ac34-7df4d4974192</PlayerID>
						<PlayerID>772f989d-851f-4ff6-bd92-2e415d5d1415</PlayerID>
						<PlayerID>e02808b6-a233-406b-8efe-520194476ef4</PlayerID>
						<PlayerID>7d611507-d4dd-4fbb-87d4-dd3ad456012f</PlayerID>
						<PlayerID>45612b4b-60fb-4e44-8a7e-fcb4c6ae6f76</PlayerID>
						<PlayerID>6bc456e0-9890-4d0a-992f-4cba22a1c65a</PlayerID>
						<PlayerID>54c47231-c163-4c95-b5b4-b8b4caffff7a</PlayerID>
					</Seeds>
					<GameName>Super Smash Bros. Melee</GameName>
					<Metrics>
						<BracketStart>1/1/0001 12:00:00 AM</BracketStart>
						<BracketEnd>12/31/9999 11:59:59 PM</BracketEnd>
						<OriginalEstimate>12/31/9999 11:59:59 PM</OriginalEstimate>
						<OriginalPhases>1</OriginalPhases>
						<Milestones />
					</Metrics>
					<Bracket>
						<Size>4</Size>
						<GamesPerMatch>3</GamesPerMatch>
						<SetType>BestOf</SetType>
						<Pools>
							<Pool>
								<Number>0</Number>
								<GamesPerMatch>3</GamesPerMatch>
								<SetType>BestOf</SetType>
								<Players>
									<PlayerID>e2737995-9440-4ac7-bde0-73bb7c786061</PlayerID>
									<PlayerID>97ad5294-a001-4088-abda-9d751b219868</PlayerID>
									<PlayerID>b969a59c-e5d8-4e9c-85ae-7605b4e6b4ac</PlayerID>
									<PlayerID>d6921448-2f88-4ff3-aca1-5d6aa14a8c1a</PlayerID>
									<PlayerID>d5e4b8c7-0e72-4f05-b40a-429c792c3820</PlayerID>
								</Players>
								<Matches>
									<Match>
										<Number>0</Number>
										<Player1>e2737995-9440-4ac7-bde0-73bb7c786061</Player1>
										<Player2>97ad5294-a001-4088-abda-9d751b219868</Player2>
										<Games>3</Games>
										<Winner>e2737995-9440-4ac7-bde0-73bb7c786061</Winner>
										<Margin>
										</Margin>
										<Losses>0</Losses>
										<SetType>BestOf</SetType>
										<Note>
										</Note>
										<InProgress>False</InProgress>
									</Match>
									<Match>
										<Number>1</Number>
										<Player1>e2737995-9440-4ac7-bde0-73bb7c786061</Player1>
										<Player2>b969a59c-e5d8-4e9c-85ae-7605b4e6b4ac</Player2>
										<Games>3</Games>
										<Winner>e2737995-9440-4ac7-bde0-73bb7c786061</Winner>
										<Margin>
										</Margin>
										<Losses>0</Losses>
										<SetType>BestOf</SetType>
										<Note>
										</Note>
										<InProgress>False</InProgress>
									</Match>
									<Match>
										<Number>2</Number>
										<Player1>e2737995-9440-4ac7-bde0-73bb7c786061</Player1>
										<Player2>d6921448-2f88-4ff3-aca1-5d6aa14a8c1a</Player2>
										<Games>3</Games>
										<Winner>e2737995-9440-4ac7-bde0-73bb7c786061</Winner>
										<Margin>
										</Margin>
										<Losses>0</Losses>
										<SetType>BestOf</SetType>
										<Note>
										</Note>
										<InProgress>False</InProgress>
									</Match>
									<Match>
										<Number>3</Number>
										<Player1>e2737995-9440-4ac7-bde0-73bb7c786061</Player1>
										<Player2>d5e4b8c7-0e72-4f05-b40a-429c792c3820</Player2>
										<Games>3</Games>
										<Winner>e2737995-9440-4ac7-bde0-73bb7c786061</Winner>
										<Margin>
										</Margin>
										<Losses>0</Losses>
										<SetType>BestOf</SetType>
										<Note>
										</Note>
										<InProgress>False</InProgress>
									</Match>
									<Match>
										<Number>4</Number>
										<Player1>97ad5294-a001-4088-abda-9d751b219868</Player1>
										<Player2>b969a59c-e5d8-4e9c-85ae-7605b4e6b4ac</Player2>
										<Games>3</Games>
										<Winner>b969a59c-e5d8-4e9c-85ae-7605b4e6b4ac</Winner>
										<Margin>
										</Margin>
										<Losses>0</Losses>
										<SetType>BestOf</SetType>
										<Note>
										</Note>
										<InProgress>False</InProgress>
									</Match>
									<Match>
										<Number>5</Number>
										<Player1>97ad5294-a001-4088-abda-9d751b219868</Player1>
										<Player2>d6921448-2f88-4ff3-aca1-5d6aa14a8c1a</Player2>
										<Games>3</Games>
										<Winner>97ad5294-a001-4088-abda-9d751b219868</Winner>
										<Margin>
										</Margin>
										<Losses>0</Losses>
										<SetType>BestOf</SetType>
										<Note>
										</Note>
										<InProgress>False</InProgress>
									</Match>
									<Match>
										<Number>6</Number>
										<Player1>97ad5294-a001-4088-abda-9d751b219868</Player1>
										<Player2>d5e4b8c7-0e72-4f05-b40a-429c792c3820</Player2>
										<Games>3</Games>
										<Winner>97ad5294-a001-4088-abda-9d751b219868</Winner>
										<Margin>
										</Margin>
										<Losses>0</Losses>
										<SetType>BestOf</SetType>
										<Note>
										</Note>
										<InProgress>False</InProgress>
									</Match>
									<Match>
										<Number>7</Number>
										<Player1>b969a59c-e5d8-4e9c-85ae-7605b4e6b4ac</Player1>
										<Player2>d6921448-2f88-4ff3-aca1-5d6aa14a8c1a</Player2>
										<Games>3</Games>
										<Winner>b969a59c-e5d8-4e9c-85ae-7605b4e6b4ac</Winner>
										<Margin>
										</Margin>
										<Losses>0</Losses>
										<SetType>BestOf</SetType>
										<Note>
										</Note>
										<InProgress>False</InProgress>
									</Match>
									<Match>
										<Number>8</Number>
										<Player1>b969a59c-e5d8-4e9c-85ae-7605b4e6b4ac</Player1>
										<Player2>d5e4b8c7-0e72-4f05-b40a-429c792c3820</Player2>
										<Games>3</Games>
										<Winner>b969a59c-e5d8-4e9c-85ae-7605b4e6b4ac</Winner>
										<Margin>
										</Margin>
										<Losses>0</Losses>
										<SetType>BestOf</SetType>
										<Note>
										</Note>
										<InProgress>False</InProgress>
									</Match>
									<Match>
										<Number>9</Number>
										<Player1>d6921448-2f88-4ff3-aca1-5d6aa14a8c1a</Player1>
										<Player2>d5e4b8c7-0e72-4f05-b40a-429c792c3820</Player2>
										<Games>3</Games>
										<Winner>d6921448-2f88-4ff3-aca1-5d6aa14a8c1a</Winner>
										<Margin>
										</Margin>
										<Losses>0</Losses>
										<SetType>BestOf</SetType>
										<Note>
										</Note>
										<InProgress>False</InProgress>
									</Match>
								</Matches>
								<Ties />
							</Pool>
							<Pool>
								<Number>1</Number>
								<GamesPerMatch>3</GamesPerMatch>
								<SetType>BestOf</SetType>
								<Players>
									<PlayerID>15eb7e69-1cd4-42f8-8d88-996694fc22c0</PlayerID>
									<PlayerID>2fee7640-24b7-480b-afa9-ffdb2f6e3f30</PlayerID>
									<PlayerID>6dd85daf-e0e1-4543-8429-e611b297a2f9</PlayerID>
									<PlayerID>296e6697-edad-431b-ae29-7f63b393971d</PlayerID>
									<PlayerID>8fdeea32-b581-4000-83bc-cb29cc5a86ec</PlayerID>
								</Players>
								<Matches>
									<Match>
										<Number>0</Number>
										<Player1>15eb7e69-1cd4-42f8-8d88-996694fc22c0</Player1>
										<Player2>2fee7640-24b7-480b-afa9-ffdb2f6e3f30</Player2>
										<Games>3</Games>
										<Winner>15eb7e69-1cd4-42f8-8d88-996694fc22c0</Winner>
										<Margin>
										</Margin>
										<Losses>1</Losses>
										<SetType>BestOf</SetType>
										<Note>
										</Note>
										<InProgress>False</InProgress>
									</Match>
									<Match>
										<Number>1</Number>
										<Player1>15eb7e69-1cd4-42f8-8d88-996694fc22c0</Player1>
										<Player2>6dd85daf-e0e1-4543-8429-e611b297a2f9</Player2>
										<Games>3</Games>
										<Winner>15eb7e69-1cd4-42f8-8d88-996694fc22c0</Winner>
										<Margin>
										</Margin>
										<Losses>0</Losses>
										<SetType>BestOf</SetType>
										<Note>
										</Note>
										<InProgress>False</InProgress>
									</Match>
									<Match>
										<Number>2</Number>
										<Player1>15eb7e69-1cd4-42f8-8d88-996694fc22c0</Player1>
										<Player2>296e6697-edad-431b-ae29-7f63b393971d</Player2>
										<Games>3</Games>
										<Winner>15eb7e69-1cd4-42f8-8d88-996694fc22c0</Winner>
										<Margin>
										</Margin>
										<Losses>0</Losses>
										<SetType>BestOf</SetType>
										<Note>
										</Note>
										<InProgress>False</InProgress>
									</Match>
									<Match>
										<Number>3</Number>
										<Player1>15eb7e69-1cd4-42f8-8d88-996694fc22c0</Player1>
										<Player2>8fdeea32-b581-4000-83bc-cb29cc5a86ec</Player2>
										<Games>3</Games>
										<Winner>15eb7e69-1cd4-42f8-8d88-996694fc22c0</Winner>
										<Margin>
										</Margin>
										<Losses>0</Losses>
										<SetType>BestOf</SetType>
										<Note>
										</Note>
										<InProgress>False</InProgress>
									</Match>
									<Match>
										<Number>4</Number>
										<Player1>2fee7640-24b7-480b-afa9-ffdb2f6e3f30</Player1>
										<Player2>6dd85daf-e0e1-4543-8429-e611b297a2f9</Player2>
										<Games>3</Games>
										<Winner>2fee7640-24b7-480b-afa9-ffdb2f6e3f30</Winner>
										<Margin>
										</Margin>
										<Losses>0</Losses>
										<SetType>BestOf</SetType>
										<Note>
										</Note>
										<InProgress>False</InProgress>
									</Match>
									<Match>
										<Number>5</Number>
										<Player1>2fee7640-24b7-480b-afa9-ffdb2f6e3f30</Player1>
										<Player2>296e6697-edad-431b-ae29-7f63b393971d</Player2>
										<Games>3</Games>
										<Winner>2fee7640-24b7-480b-afa9-ffdb2f6e3f30</Winner>
										<Margin>
										</Margin>
										<Losses>1</Losses>
										<SetType>BestOf</SetType>
										<Note>
										</Note>
										<InProgress>False</InProgress>
									</Match>
									<Match>
										<Number>6</Number>
										<Player1>2fee7640-24b7-480b-afa9-ffdb2f6e3f30</Player1>
										<Player2>8fdeea32-b581-4000-83bc-cb29cc5a86ec</Player2>
										<Games>3</Games>
										<Winner>2fee7640-24b7-480b-afa9-ffdb2f6e3f30</Winner>
										<Margin>
										</Margin>
										<Losses>0</Losses>
										<SetType>BestOf</SetType>
										<Note>
										</Note>
										<InProgress>False</InProgress>
									</Match>
									<Match>
										<Number>7</Number>
										<Player1>6dd85daf-e0e1-4543-8429-e611b297a2f9</Player1>
										<Player2>296e6697-edad-431b-ae29-7f63b393971d</Player2>
										<Games>3</Games>
										<Winner>6dd85daf-e0e1-4543-8429-e611b297a2f9</Winner>
										<Margin>
										</Margin>
										<Losses>1</Losses>
										<SetType>BestOf</SetType>
										<Note>
										</Note>
										<InProgress>False</InProgress>
									</Match>
									<Match>
										<Number>8</Number>
										<Player1>6dd85daf-e0e1-4543-8429-e611b297a2f9</Player1>
										<Player2>8fdeea32-b581-4000-83bc-cb29cc5a86ec</Player2>
										<Games>3</Games>
										<Winner>6dd85daf-e0e1-4543-8429-e611b297a2f9</Winner>
										<Margin>
										</Margin>
										<Losses>0</Losses>
										<SetType>BestOf</SetType>
										<Note>
										</Note>
										<InProgress>False</InProgress>
									</Match>
									<Match>
										<Number>9</Number>
										<Player1>296e6697-edad-431b-ae29-7f63b393971d</Player1>
										<Player2>8fdeea32-b581-4000-83bc-cb29cc5a86ec</Player2>
										<Games>3</Games>
										<Winner>8fdeea32-b581-4000-83bc-cb29cc5a86ec</Winner>
										<Margin>
										</Margin>
										<Losses>1</Losses>
										<SetType>BestOf</SetType>
										<Note>
										</Note>
										<InProgress>False</InProgress>
									</Match>
								</Matches>
								<Ties />
							</Pool>
							<Pool>
								<Number>2</Number>
								<GamesPerMatch>3</GamesPerMatch>
								<SetType>BestOf</SetType>
								<Players>
									<PlayerID>fef4703a-6ab4-449c-813a-8d8a31b638a9</PlayerID>
									<PlayerID>955b30dc-6bff-459b-ac34-7df4d4974192</PlayerID>
									<PlayerID>772f989d-851f-4ff6-bd92-2e415d5d1415</PlayerID>
									<PlayerID>e02808b6-a233-406b-8efe-520194476ef4</PlayerID>
								</Players>
								<Matches>
									<Match>
										<Number>0</Number>
										<Player1>fef4703a-6ab4-449c-813a-8d8a31b638a9</Player1>
										<Player2>955b30dc-6bff-459b-ac34-7df4d4974192</Player2>
										<Games>3</Games>
										<Winner>955b30dc-6bff-459b-ac34-7df4d4974192</Winner>
										<Margin>
										</Margin>
										<Losses>1</Losses>
										<SetType>BestOf</SetType>
										<Note>
										</Note>
										<InProgress>False</InProgress>
									</Match>
									<Match>
										<Number>1</Number>
										<Player1>fef4703a-6ab4-449c-813a-8d8a31b638a9</Player1>
										<Player2>772f989d-851f-4ff6-bd92-2e415d5d1415</Player2>
										<Games>3</Games>
										<Winner>fef4703a-6ab4-449c-813a-8d8a31b638a9</Winner>
										<Margin>
										</Margin>
										<Losses>0</Losses>
										<SetType>BestOf</SetType>
										<Note>
										</Note>
										<InProgress>False</InProgress>
									</Match>
									<Match>
										<Number>2</Number>
										<Player1>fef4703a-6ab4-449c-813a-8d8a31b638a9</Player1>
										<Player2>e02808b6-a233-406b-8efe-520194476ef4</Player2>
										<Games>3</Games>
										<Winner>fef4703a-6ab4-449c-813a-8d8a31b638a9</Winner>
										<Margin>
										</Margin>
										<Losses>0</Losses>
										<SetType>BestOf</SetType>
										<Note>
										</Note>
										<InProgress>False</InProgress>
									</Match>
									<Match>
										<Number>3</Number>
										<Player1>955b30dc-6bff-459b-ac34-7df4d4974192</Player1>
										<Player2>772f989d-851f-4ff6-bd92-2e415d5d1415</Player2>
										<Games>3</Games>
										<Winner>955b30dc-6bff-459b-ac34-7df4d4974192</Winner>
										<Margin>
										</Margin>
										<Losses>0</Losses>
										<SetType>BestOf</SetType>
										<Note>
										</Note>
										<InProgress>False</InProgress>
									</Match>
									<Match>
										<Number>4</Number>
										<Player1>955b30dc-6bff-459b-ac34-7df4d4974192</Player1>
										<Player2>e02808b6-a233-406b-8efe-520194476ef4</Player2>
										<Games>3</Games>
										<Winner>955b30dc-6bff-459b-ac34-7df4d4974192</Winner>
										<Margin>
										</Margin>
										<Losses>0</Losses>
										<SetType>BestOf</SetType>
										<Note>
										</Note>
										<InProgress>False</InProgress>
									</Match>
									<Match>
										<Number>5</Number>
										<Player1>772f989d-851f-4ff6-bd92-2e415d5d1415</Player1>
										<Player2>e02808b6-a233-406b-8efe-520194476ef4</Player2>
										<Games>3</Games>
										<Winner>e02808b6-a233-406b-8efe-520194476ef4</Winner>
										<Margin>
										</Margin>
										<Losses>0</Losses>
										<SetType>BestOf</SetType>
										<Note>
										</Note>
										<InProgress>False</InProgress>
									</Match>
								</Matches>
								<Ties />
							</Pool>
							<Pool>
								<Number>3</Number>
								<GamesPerMatch>3</GamesPerMatch>
								<SetType>BestOf</SetType>
								<Players>
									<PlayerID>7d611507-d4dd-4fbb-87d4-dd3ad456012f</PlayerID>
									<PlayerID>45612b4b-60fb-4e44-8a7e-fcb4c6ae6f76</PlayerID>
									<PlayerID>6bc456e0-9890-4d0a-992f-4cba22a1c65a</PlayerID>
									<PlayerID>54c47231-c163-4c95-b5b4-b8b4caffff7a</PlayerID>
								</Players>
								<Matches>
									<Match>
										<Number>0</Number>
										<Player1>7d611507-d4dd-4fbb-87d4-dd3ad456012f</Player1>
										<Player2>45612b4b-60fb-4e44-8a7e-fcb4c6ae6f76</Player2>
										<Games>3</Games>
										<Winner>7d611507-d4dd-4fbb-87d4-dd3ad456012f</Winner>
										<Margin>
										</Margin>
										<Losses>0</Losses>
										<SetType>BestOf</SetType>
										<Note>
										</Note>
										<InProgress>False</InProgress>
									</Match>
									<Match>
										<Number>1</Number>
										<Player1>7d611507-d4dd-4fbb-87d4-dd3ad456012f</Player1>
										<Player2>6bc456e0-9890-4d0a-992f-4cba22a1c65a</Player2>
										<Games>3</Games>
										<Winner>6bc456e0-9890-4d0a-992f-4cba22a1c65a</Winner>
										<Margin>
										</Margin>
										<Losses>1</Losses>
										<SetType>BestOf</SetType>
										<Note>
										</Note>
										<InProgress>False</InProgress>
									</Match>
									<Match>
										<Number>2</Number>
										<Player1>7d611507-d4dd-4fbb-87d4-dd3ad456012f</Player1>
										<Player2>54c47231-c163-4c95-b5b4-b8b4caffff7a</Player2>
										<Games>3</Games>
										<Winner>7d611507-d4dd-4fbb-87d4-dd3ad456012f</Winner>
										<Margin>
										</Margin>
										<Losses>1</Losses>
										<SetType>BestOf</SetType>
										<Note>
										</Note>
										<InProgress>False</InProgress>
									</Match>
									<Match>
										<Number>3</Number>
										<Player1>45612b4b-60fb-4e44-8a7e-fcb4c6ae6f76</Player1>
										<Player2>6bc456e0-9890-4d0a-992f-4cba22a1c65a</Player2>
										<Games>3</Games>
										<Winner>45612b4b-60fb-4e44-8a7e-fcb4c6ae6f76</Winner>
										<Margin>
										</Margin>
										<Losses>0</Losses>
										<SetType>BestOf</SetType>
										<Note>
										</Note>
										<InProgress>False</InProgress>
									</Match>
									<Match>
										<Number>4</Number>
										<Player1>45612b4b-60fb-4e44-8a7e-fcb4c6ae6f76</Player1>
										<Player2>54c47231-c163-4c95-b5b4-b8b4caffff7a</Player2>
										<Games>3</Games>
										<Winner>45612b4b-60fb-4e44-8a7e-fcb4c6ae6f76</Winner>
										<Margin>
										</Margin>
										<Losses>0</Losses>
										<SetType>BestOf</SetType>
										<Note>
										</Note>
										<InProgress>False</InProgress>
									</Match>
									<Match>
										<Number>5</Number>
										<Player1>6bc456e0-9890-4d0a-992f-4cba22a1c65a</Player1>
										<Player2>54c47231-c163-4c95-b5b4-b8b4caffff7a</Player2>
										<Games>3</Games>
										<Winner>6bc456e0-9890-4d0a-992f-4cba22a1c65a</Winner>
										<Margin>
										</Margin>
										<Losses>0</Losses>
										<SetType>BestOf</SetType>
										<Note>
										</Note>
										<InProgress>False</InProgress>
									</Match>
								</Matches>
								<Ties>
									<Tie>
										<Placing>1</Placing>
										<Pool>3</Pool>
										<Players>
											<PlayerID>6bc456e0-9890-4d0a-992f-4cba22a1c65a</PlayerID>
											<PlayerID>45612b4b-60fb-4e44-8a7e-fcb4c6ae6f76</PlayerID>
											<PlayerID>7d611507-d4dd-4fbb-87d4-dd3ad456012f</PlayerID>
										</Players>
										<Results>
											<PlayerID>7d611507-d4dd-4fbb-87d4-dd3ad456012f</PlayerID>
											<PlayerID>45612b4b-60fb-4e44-8a7e-fcb4c6ae6f76</PlayerID>
											<PlayerID>6bc456e0-9890-4d0a-992f-4cba22a1c65a</PlayerID>
										</Results>
									</Tie>
								</Ties>
							</Pool>
						</Pools>
						<Ties />
					</Bracket>
				</Game>
				<Game>
					<Name>Melee Singles Bracket</Name>
					<ID>a4438570-62a7-4d97-82ab-1bb6bd0d4eda</ID>
					<Date>5/7/2011 12:00:00 AM</Date>
					<BracketType>DoubleElim</BracketType>
					<EntryFee>0</EntryFee>
					<BasePotSize>180</BasePotSize>
					<Entrants>
						<PlayerID seed="10" AmountPaid="0">e2737995-9440-4ac7-bde0-73bb7c786061</PlayerID>
						<PlayerID seed="5" AmountPaid="0">15eb7e69-1cd4-42f8-8d88-996694fc22c0</PlayerID>
						<PlayerID seed="0" AmountPaid="0">955b30dc-6bff-459b-ac34-7df4d4974192</PlayerID>
						<PlayerID seed="15" AmountPaid="0">7d611507-d4dd-4fbb-87d4-dd3ad456012f</PlayerID>
						<PlayerID seed="6" AmountPaid="0">b969a59c-e5d8-4e9c-85ae-7605b4e6b4ac</PlayerID>
						<PlayerID seed="9" AmountPaid="0">2fee7640-24b7-480b-afa9-ffdb2f6e3f30</PlayerID>
						<PlayerID seed="12" AmountPaid="0">fef4703a-6ab4-449c-813a-8d8a31b638a9</PlayerID>
						<PlayerID seed="3" AmountPaid="0">45612b4b-60fb-4e44-8a7e-fcb4c6ae6f76</PlayerID>
						<PlayerID seed="2" AmountPaid="0">97ad5294-a001-4088-abda-9d751b219868</PlayerID>
						<PlayerID seed="13" AmountPaid="0">6dd85daf-e0e1-4543-8429-e611b297a2f9</PlayerID>
						<PlayerID seed="8" AmountPaid="0">e02808b6-a233-406b-8efe-520194476ef4</PlayerID>
						<PlayerID seed="7" AmountPaid="0">6bc456e0-9890-4d0a-992f-4cba22a1c65a</PlayerID>
					</Entrants>
					<GameType>Singles</GameType>
					<HouseCut>0</HouseCut>
					<HouseCutType>Percent</HouseCutType>
					<Payouts removeabsolute="False">
						<Payout placing="1" amount="70" type="Percentage" />
						<Payout placing="2" amount="20" type="Percentage" />
						<Payout placing="3" amount="10" type="Percentage" />
					</Payouts>
					<InProgress>False</InProgress>
					<SeedType>Ordered</SeedType>
					<SeparateByLocation>False</SeparateByLocation>
					<Seeds>
						<PlayerID>955b30dc-6bff-459b-ac34-7df4d4974192</PlayerID>
						<PlayerID>00000001-0001-0001-0101-010101010101</PlayerID>
						<PlayerID>97ad5294-a001-4088-abda-9d751b219868</PlayerID>
						<PlayerID>45612b4b-60fb-4e44-8a7e-fcb4c6ae6f76</PlayerID>
						<PlayerID>00000001-0001-0001-0101-010101010101</PlayerID>
						<PlayerID>15eb7e69-1cd4-42f8-8d88-996694fc22c0</PlayerID>
						<PlayerID>b969a59c-e5d8-4e9c-85ae-7605b4e6b4ac</PlayerID>
						<PlayerID>6bc456e0-9890-4d0a-992f-4cba22a1c65a</PlayerID>
						<PlayerID>e02808b6-a233-406b-8efe-520194476ef4</PlayerID>
						<PlayerID>2fee7640-24b7-480b-afa9-ffdb2f6e3f30</PlayerID>
						<PlayerID>e2737995-9440-4ac7-bde0-73bb7c786061</PlayerID>
						<PlayerID>00000001-0001-0001-0101-010101010101</PlayerID>
						<PlayerID>fef4703a-6ab4-449c-813a-8d8a31b638a9</PlayerID>
						<PlayerID>6dd85daf-e0e1-4543-8429-e611b297a2f9</PlayerID>
						<PlayerID>00000001-0001-0001-0101-010101010101</PlayerID>
						<PlayerID>7d611507-d4dd-4fbb-87d4-dd3ad456012f</PlayerID>
					</Seeds>
					<GameName>Super Smash Bros. Melee</GameName>
					<Metrics>
						<BracketStart>1/1/0001 12:00:00 AM</BracketStart>
						<BracketEnd>12/31/9999 11:59:59 PM</BracketEnd>
						<OriginalEstimate>12/31/9999 11:59:59 PM</OriginalEstimate>
						<OriginalPhases>2147483647</OriginalPhases>
						<Milestones />
					</Metrics>
					<Bracket>
						<Size>16</Size>
						<GamesPerMatch>3</GamesPerMatch>
						<ChampionshipGames>5</ChampionshipGames>
						<Matches>
							<Match>
								<Number>0</Number>
								<Player1>955b30dc-6bff-459b-ac34-7df4d4974192</Player1>
								<Player2>00000001-0001-0001-0101-010101010101</Player2>
								<Games>3</Games>
								<Winner>955b30dc-6bff-459b-ac34-7df4d4974192</Winner>
								<Margin>
								</Margin>
								<WinnerNextMatch>8</WinnerNextMatch>
								<LoserNextMatch>16</LoserNextMatch>
								<Player1PrevMatch>-1</Player1PrevMatch>
								<Player2PrevMatch>-1</Player2PrevMatch>
								<NextSiblingMatch>1</NextSiblingMatch>
								<PrevSiblingMatch>-1</PrevSiblingMatch>
								<IsWinners>True</IsWinners>
								<IsChampionship>False</IsChampionship>
								<IsSecondChampionship>False</IsSecondChampionship>
								<Label>
								</Label>
								<Round>1</Round>
								<Losses>0</Losses>
								<Note>
								</Note>
								<InProgress>False</InProgress>
							</Match>
							<Match>
								<Number>1</Number>
								<Player1>6dd85daf-e0e1-4543-8429-e611b297a2f9</Player1>
								<Player2>45612b4b-60fb-4e44-8a7e-fcb4c6ae6f76</Player2>
								<Games>3</Games>
								<Winner>00000000-0000-0000-0000-000000000000</Winner>
								<Margin>
								</Margin>
								<WinnerNextMatch>8</WinnerNextMatch>
								<LoserNextMatch>16</LoserNextMatch>
								<Player1PrevMatch>-1</Player1PrevMatch>
								<Player2PrevMatch>-1</Player2PrevMatch>
								<NextSiblingMatch>2</NextSiblingMatch>
								<PrevSiblingMatch>0</PrevSiblingMatch>
								<IsWinners>True</IsWinners>
								<IsChampionship>False</IsChampionship>
								<IsSecondChampionship>False</IsSecondChampionship>
								<Label>
								</Label>
								<Round>1</Round>
								<Losses>0</Losses>
								<Note>
								</Note>
								<InProgress>False</InProgress>
							</Match>
							<Match>
								<Number>2</Number>
								<Player1>00000001-0001-0001-0101-010101010101</Player1>
								<Player2>15eb7e69-1cd4-42f8-8d88-996694fc22c0</Player2>
								<Games>3</Games>
								<Winner>15eb7e69-1cd4-42f8-8d88-996694fc22c0</Winner>
								<Margin>
								</Margin>
								<WinnerNextMatch>9</WinnerNextMatch>
								<LoserNextMatch>17</LoserNextMatch>
								<Player1PrevMatch>-1</Player1PrevMatch>
								<Player2PrevMatch>-1</Player2PrevMatch>
								<NextSiblingMatch>3</NextSiblingMatch>
								<PrevSiblingMatch>1</PrevSiblingMatch>
								<IsWinners>True</IsWinners>
								<IsChampionship>False</IsChampionship>
								<IsSecondChampionship>False</IsSecondChampionship>
								<Label>
								</Label>
								<Round>1</Round>
								<Losses>0</Losses>
								<Note>
								</Note>
								<InProgress>False</InProgress>
							</Match>
							<Match>
								<Number>3</Number>
								<Player1>b969a59c-e5d8-4e9c-85ae-7605b4e6b4ac</Player1>
								<Player2>6bc456e0-9890-4d0a-992f-4cba22a1c65a</Player2>
								<Games>3</Games>
								<Winner>00000000-0000-0000-0000-000000000000</Winner>
								<Margin>
								</Margin>
								<WinnerNextMatch>9</WinnerNextMatch>
								<LoserNextMatch>17</LoserNextMatch>
								<Player1PrevMatch>-1</Player1PrevMatch>
								<Player2PrevMatch>-1</Player2PrevMatch>
								<NextSiblingMatch>4</NextSiblingMatch>
								<PrevSiblingMatch>2</PrevSiblingMatch>
								<IsWinners>True</IsWinners>
								<IsChampionship>False</IsChampionship>
								<IsSecondChampionship>False</IsSecondChampionship>
								<Label>
								</Label>
								<Round>1</Round>
								<Losses>0</Losses>
								<Note>
								</Note>
								<InProgress>False</InProgress>
							</Match>
							<Match>
								<Number>4</Number>
								<Player1>e02808b6-a233-406b-8efe-520194476ef4</Player1>
								<Player2>2fee7640-24b7-480b-afa9-ffdb2f6e3f30</Player2>
								<Games>3</Games>
								<Winner>00000000-0000-0000-0000-000000000000</Winner>
								<Margin>
								</Margin>
								<WinnerNextMatch>10</WinnerNextMatch>
								<LoserNextMatch>18</LoserNextMatch>
								<Player1PrevMatch>-1</Player1PrevMatch>
								<Player2PrevMatch>-1</Player2PrevMatch>
								<NextSiblingMatch>5</NextSiblingMatch>
								<PrevSiblingMatch>3</PrevSiblingMatch>
								<IsWinners>True</IsWinners>
								<IsChampionship>False</IsChampionship>
								<IsSecondChampionship>False</IsSecondChampionship>
								<Label>
								</Label>
								<Round>1</Round>
								<Losses>0</Losses>
								<Note>
								</Note>
								<InProgress>False</InProgress>
							</Match>
							<Match>
								<Number>5</Number>
								<Player1>e2737995-9440-4ac7-bde0-73bb7c786061</Player1>
								<Player2>00000001-0001-0001-0101-010101010101</Player2>
								<Games>3</Games>
								<Winner>e2737995-9440-4ac7-bde0-73bb7c786061</Winner>
								<Margin>
								</Margin>
								<WinnerNextMatch>10</WinnerNextMatch>
								<LoserNextMatch>18</LoserNextMatch>
								<Player1PrevMatch>-1</Player1PrevMatch>
								<Player2PrevMatch>-1</Player2PrevMatch>
								<NextSiblingMatch>6</NextSiblingMatch>
								<PrevSiblingMatch>4</PrevSiblingMatch>
								<IsWinners>True</IsWinners>
								<IsChampionship>False</IsChampionship>
								<IsSecondChampionship>False</IsSecondChampionship>
								<Label>
								</Label>
								<Round>1</Round>
								<Losses>0</Losses>
								<Note>
								</Note>
								<InProgress>False</InProgress>
							</Match>
							<Match>
								<Number>6</Number>
								<Player1>fef4703a-6ab4-449c-813a-8d8a31b638a9</Player1>
								<Player2>97ad5294-a001-4088-abda-9d751b219868</Player2>
								<Games>3</Games>
								<Winner>00000000-0000-0000-0000-000000000000</Winner>
								<Margin>
								</Margin>
								<WinnerNextMatch>11</WinnerNextMatch>
								<LoserNextMatch>19</LoserNextMatch>
								<Player1PrevMatch>-1</Player1PrevMatch>
								<Player2PrevMatch>-1</Player2PrevMatch>
								<NextSiblingMatch>7</NextSiblingMatch>
								<PrevSiblingMatch>5</PrevSiblingMatch>
								<IsWinners>True</IsWinners>
								<IsChampionship>False</IsChampionship>
								<IsSecondChampionship>False</IsSecondChampionship>
								<Label>
								</Label>
								<Round>1</Round>
								<Losses>0</Losses>
								<Note>
								</Note>
								<InProgress>False</InProgress>
							</Match>
							<Match>
								<Number>7</Number>
								<Player1>00000001-0001-0001-0101-010101010101</Player1>
								<Player2>7d611507-d4dd-4fbb-87d4-dd3ad456012f</Player2>
								<Games>3</Games>
								<Winner>7d611507-d4dd-4fbb-87d4-dd3ad456012f</Winner>
								<Margin>
								</Margin>
								<WinnerNextMatch>11</WinnerNextMatch>
								<LoserNextMatch>19</LoserNextMatch>
								<Player1PrevMatch>-1</Player1PrevMatch>
								<Player2PrevMatch>-1</Player2PrevMatch>
								<NextSiblingMatch>-1</NextSiblingMatch>
								<PrevSiblingMatch>6</PrevSiblingMatch>
								<IsWinners>True</IsWinners>
								<IsChampionship>False</IsChampionship>
								<IsSecondChampionship>False</IsSecondChampionship>
								<Label>
								</Label>
								<Round>1</Round>
								<Losses>0</Losses>
								<Note>
								</Note>
								<InProgress>False</InProgress>
							</Match>
							<Match>
								<Number>8</Number>
								<Player1>955b30dc-6bff-459b-ac34-7df4d4974192</Player1>
								<Player2>00000000-0000-0000-0000-000000000000</Player2>
								<Games>3</Games>
								<Winner>00000000-0000-0000-0000-000000000000</Winner>
								<Margin>
								</Margin>
								<WinnerNextMatch>12</WinnerNextMatch>
								<LoserNextMatch>22</LoserNextMatch>
								<Player1PrevMatch>0</Player1PrevMatch>
								<Player2PrevMatch>1</Player2PrevMatch>
								<NextSiblingMatch>9</NextSiblingMatch>
								<PrevSiblingMatch>-1</PrevSiblingMatch>
								<IsWinners>True</IsWinners>
								<IsChampionship>False</IsChampionship>
								<IsSecondChampionship>False</IsSecondChampionship>
								<Label> A</Label>
								<Round>2</Round>
								<Losses>0</Losses>
								<Note>
								</Note>
								<InProgress>False</InProgress>
							</Match>
							<Match>
								<Number>9</Number>
								<Player1>15eb7e69-1cd4-42f8-8d88-996694fc22c0</Player1>
								<Player2>00000000-0000-0000-0000-000000000000</Player2>
								<Games>3</Games>
								<Winner>00000000-0000-0000-0000-000000000000</Winner>
								<Margin>
								</Margin>
								<WinnerNextMatch>12</WinnerNextMatch>
								<LoserNextMatch>23</LoserNextMatch>
								<Player1PrevMatch>2</Player1PrevMatch>
								<Player2PrevMatch>3</Player2PrevMatch>
								<NextSiblingMatch>10</NextSiblingMatch>
								<PrevSiblingMatch>8</PrevSiblingMatch>
								<IsWinners>True</IsWinners>
								<IsChampionship>False</IsChampionship>
								<IsSecondChampionship>False</IsSecondChampionship>
								<Label> B</Label>
								<Round>2</Round>
								<Losses>0</Losses>
								<Note>
								</Note>
								<InProgress>False</InProgress>
							</Match>
							<Match>
								<Number>10</Number>
								<Player1>00000000-0000-0000-0000-000000000000</Player1>
								<Player2>e2737995-9440-4ac7-bde0-73bb7c786061</Player2>
								<Games>3</Games>
								<Winner>00000000-0000-0000-0000-000000000000</Winner>
								<Margin>
								</Margin>
								<WinnerNextMatch>13</WinnerNextMatch>
								<LoserNextMatch>20</LoserNextMatch>
								<Player1PrevMatch>4</Player1PrevMatch>
								<Player2PrevMatch>5</Player2PrevMatch>
								<NextSiblingMatch>11</NextSiblingMatch>
								<PrevSiblingMatch>9</PrevSiblingMatch>
								<IsWinners>True</IsWinners>
								<IsChampionship>False</IsChampionship>
								<IsSecondChampionship>False</IsSecondChampionship>
								<Label> C</Label>
								<Round>2</Round>
								<Losses>0</Losses>
								<Note>
								</Note>
								<InProgress>False</InProgress>
							</Match>
							<Match>
								<Number>11</Number>
								<Player1>00000000-0000-0000-0000-000000000000</Player1>
								<Player2>7d611507-d4dd-4fbb-87d4-dd3ad456012f</Player2>
								<Games>3</Games>
								<Winner>00000000-0000-0000-0000-000000000000</Winner>
								<Margin>
								</Margin>
								<WinnerNextMatch>13</WinnerNextMatch>
								<LoserNextMatch>21</LoserNextMatch>
								<Player1PrevMatch>6</Player1PrevMatch>
								<Player2PrevMatch>7</Player2PrevMatch>
								<NextSiblingMatch>-1</NextSiblingMatch>
								<PrevSiblingMatch>10</PrevSiblingMatch>
								<IsWinners>True</IsWinners>
								<IsChampionship>False</IsChampionship>
								<IsSecondChampionship>False</IsSecondChampionship>
								<Label> D</Label>
								<Round>2</Round>
								<Losses>0</Losses>
								<Note>
								</Note>
								<InProgress>False</InProgress>
							</Match>
							<Match>
								<Number>12</Number>
								<Player1>00000000-0000-0000-0000-000000000000</Player1>
								<Player2>00000000-0000-0000-0000-000000000000</Player2>
								<Games>3</Games>
								<Winner>00000000-0000-0000-0000-000000000000</Winner>
								<Margin>
								</Margin>
								<WinnerNextMatch>14</WinnerNextMatch>
								<LoserNextMatch>26</LoserNextMatch>
								<Player1PrevMatch>8</Player1PrevMatch>
								<Player2PrevMatch>9</Player2PrevMatch>
								<NextSiblingMatch>13</NextSiblingMatch>
								<PrevSiblingMatch>-1</PrevSiblingMatch>
								<IsWinners>True</IsWinners>
								<IsChampionship>False</IsChampionship>
								<IsSecondChampionship>False</IsSecondChampionship>
								<Label> E</Label>
								<Round>3</Round>
								<Losses>0</Losses>
								<Note>
								</Note>
								<InProgress>False</InProgress>
							</Match>
							<Match>
								<Number>13</Number>
								<Player1>00000000-0000-0000-0000-000000000000</Player1>
								<Player2>00000000-0000-0000-0000-000000000000</Player2>
								<Games>3</Games>
								<Winner>00000000-0000-0000-0000-000000000000</Winner>
								<Margin>
								</Margin>
								<WinnerNextMatch>14</WinnerNextMatch>
								<LoserNextMatch>27</LoserNextMatch>
								<Player1PrevMatch>10</Player1PrevMatch>
								<Player2PrevMatch>11</Player2PrevMatch>
								<NextSiblingMatch>-1</NextSiblingMatch>
								<PrevSiblingMatch>12</PrevSiblingMatch>
								<IsWinners>True</IsWinners>
								<IsChampionship>False</IsChampionship>
								<IsSecondChampionship>False</IsSecondChampionship>
								<Label> F</Label>
								<Round>3</Round>
								<Losses>0</Losses>
								<Note>
								</Note>
								<InProgress>False</InProgress>
							</Match>
							<Match>
								<Number>14</Number>
								<Player1>00000000-0000-0000-0000-000000000000</Player1>
								<Player2>00000000-0000-0000-0000-000000000000</Player2>
								<Games>3</Games>
								<Winner>00000000-0000-0000-0000-000000000000</Winner>
								<Margin>
								</Margin>
								<WinnerNextMatch>15</WinnerNextMatch>
								<LoserNextMatch>29</LoserNextMatch>
								<Player1PrevMatch>12</Player1PrevMatch>
								<Player2PrevMatch>13</Player2PrevMatch>
								<NextSiblingMatch>-1</NextSiblingMatch>
								<PrevSiblingMatch>-1</PrevSiblingMatch>
								<IsWinners>True</IsWinners>
								<IsChampionship>False</IsChampionship>
								<IsSecondChampionship>False</IsSecondChampionship>
								<Label> G</Label>
								<Round>4</Round>
								<Losses>0</Losses>
								<Note>
								</Note>
								<InProgress>False</InProgress>
							</Match>
							<Match>
								<Number>15</Number>
								<Player1>00000000-0000-0000-0000-000000000000</Player1>
								<Player2>00000000-0000-0000-0000-000000000000</Player2>
								<Games>5</Games>
								<Winner>00000000-0000-0000-0000-000000000000</Winner>
								<Margin>
								</Margin>
								<WinnerNextMatch>30</WinnerNextMatch>
								<LoserNextMatch>30</LoserNextMatch>
								<Player1PrevMatch>14</Player1PrevMatch>
								<Player2PrevMatch>29</Player2PrevMatch>
								<NextSiblingMatch>-1</NextSiblingMatch>
								<PrevSiblingMatch>-1</PrevSiblingMatch>
								<IsWinners>True</IsWinners>
								<IsChampionship>True</IsChampionship>
								<IsSecondChampionship>False</IsSecondChampionship>
								<Label> H</Label>
								<Round>5</Round>
								<Losses>0</Losses>
								<Note>
								</Note>
								<InProgress>False</InProgress>
							</Match>
							<Match>
								<Number>16</Number>
								<Player1>00000001-0001-0001-0101-010101010101</Player1>
								<Player2>00000000-0000-0000-0000-000000000000</Player2>
								<Games>3</Games>
								<Winner>00000000-0000-0000-0000-000000000000</Winner>
								<Margin>
								</Margin>
								<WinnerNextMatch>20</WinnerNextMatch>
								<LoserNextMatch>-1</LoserNextMatch>
								<Player1PrevMatch>0</Player1PrevMatch>
								<Player2PrevMatch>1</Player2PrevMatch>
								<NextSiblingMatch>17</NextSiblingMatch>
								<PrevSiblingMatch>-1</PrevSiblingMatch>
								<IsWinners>False</IsWinners>
								<IsChampionship>False</IsChampionship>
								<IsSecondChampionship>False</IsSecondChampionship>
								<Label>
								</Label>
								<Round>-1</Round>
								<Losses>0</Losses>
								<Note>
								</Note>
								<InProgress>False</InProgress>
							</Match>
							<Match>
								<Number>17</Number>
								<Player1>00000001-0001-0001-0101-010101010101</Player1>
								<Player2>00000000-0000-0000-0000-000000000000</Player2>
								<Games>3</Games>
								<Winner>00000000-0000-0000-0000-000000000000</Winner>
								<Margin>
								</Margin>
								<WinnerNextMatch>21</WinnerNextMatch>
								<LoserNextMatch>-1</LoserNextMatch>
								<Player1PrevMatch>2</Player1PrevMatch>
								<Player2PrevMatch>3</Player2PrevMatch>
								<NextSiblingMatch>18</NextSiblingMatch>
								<PrevSiblingMatch>16</PrevSiblingMatch>
								<IsWinners>False</IsWinners>
								<IsChampionship>False</IsChampionship>
								<IsSecondChampionship>False</IsSecondChampionship>
								<Label>
								</Label>
								<Round>-1</Round>
								<Losses>0</Losses>
								<Note>
								</Note>
								<InProgress>False</InProgress>
							</Match>
							<Match>
								<Number>18</Number>
								<Player1>00000000-0000-0000-0000-000000000000</Player1>
								<Player2>00000001-0001-0001-0101-010101010101</Player2>
								<Games>3</Games>
								<Winner>00000000-0000-0000-0000-000000000000</Winner>
								<Margin>
								</Margin>
								<WinnerNextMatch>22</WinnerNextMatch>
								<LoserNextMatch>-1</LoserNextMatch>
								<Player1PrevMatch>4</Player1PrevMatch>
								<Player2PrevMatch>5</Player2PrevMatch>
								<NextSiblingMatch>19</NextSiblingMatch>
								<PrevSiblingMatch>17</PrevSiblingMatch>
								<IsWinners>False</IsWinners>
								<IsChampionship>False</IsChampionship>
								<IsSecondChampionship>False</IsSecondChampionship>
								<Label>
								</Label>
								<Round>-1</Round>
								<Losses>0</Losses>
								<Note>
								</Note>
								<InProgress>False</InProgress>
							</Match>
							<Match>
								<Number>19</Number>
								<Player1>00000000-0000-0000-0000-000000000000</Player1>
								<Player2>00000001-0001-0001-0101-010101010101</Player2>
								<Games>3</Games>
								<Winner>00000000-0000-0000-0000-000000000000</Winner>
								<Margin>
								</Margin>
								<WinnerNextMatch>23</WinnerNextMatch>
								<LoserNextMatch>-1</LoserNextMatch>
								<Player1PrevMatch>6</Player1PrevMatch>
								<Player2PrevMatch>7</Player2PrevMatch>
								<NextSiblingMatch>-1</NextSiblingMatch>
								<PrevSiblingMatch>18</PrevSiblingMatch>
								<IsWinners>False</IsWinners>
								<IsChampionship>False</IsChampionship>
								<IsSecondChampionship>False</IsSecondChampionship>
								<Label>
								</Label>
								<Round>-1</Round>
								<Losses>0</Losses>
								<Note>
								</Note>
								<InProgress>False</InProgress>
							</Match>
							<Match>
								<Number>20</Number>
								<Player1>00000000-0000-0000-0000-000000000000</Player1>
								<Player2>00000000-0000-0000-0000-000000000000</Player2>
								<Games>3</Games>
								<Winner>00000000-0000-0000-0000-000000000000</Winner>
								<Margin>
								</Margin>
								<WinnerNextMatch>24</WinnerNextMatch>
								<LoserNextMatch>-1</LoserNextMatch>
								<Player1PrevMatch>16</Player1PrevMatch>
								<Player2PrevMatch>10</Player2PrevMatch>
								<NextSiblingMatch>21</NextSiblingMatch>
								<PrevSiblingMatch>-1</PrevSiblingMatch>
								<IsWinners>False</IsWinners>
								<IsChampionship>False</IsChampionship>
								<IsSecondChampionship>False</IsSecondChampionship>
								<Label> C</Label>
								<Round>-2</Round>
								<Losses>0</Losses>
								<Note>
								</Note>
								<InProgress>False</InProgress>
							</Match>
							<Match>
								<Number>21</Number>
								<Player1>00000000-0000-0000-0000-000000000000</Player1>
								<Player2>00000000-0000-0000-0000-000000000000</Player2>
								<Games>3</Games>
								<Winner>00000000-0000-0000-0000-000000000000</Winner>
								<Margin>
								</Margin>
								<WinnerNextMatch>24</WinnerNextMatch>
								<LoserNextMatch>-1</LoserNextMatch>
								<Player1PrevMatch>17</Player1PrevMatch>
								<Player2PrevMatch>11</Player2PrevMatch>
								<NextSiblingMatch>22</NextSiblingMatch>
								<PrevSiblingMatch>20</PrevSiblingMatch>
								<IsWinners>False</IsWinners>
								<IsChampionship>False</IsChampionship>
								<IsSecondChampionship>False</IsSecondChampionship>
								<Label> D</Label>
								<Round>-2</Round>
								<Losses>0</Losses>
								<Note>
								</Note>
								<InProgress>False</InProgress>
							</Match>
							<Match>
								<Number>22</Number>
								<Player1>00000000-0000-0000-0000-000000000000</Player1>
								<Player2>00000000-0000-0000-0000-000000000000</Player2>
								<Games>3</Games>
								<Winner>00000000-0000-0000-0000-000000000000</Winner>
								<Margin>
								</Margin>
								<WinnerNextMatch>25</WinnerNextMatch>
								<LoserNextMatch>-1</LoserNextMatch>
								<Player1PrevMatch>18</Player1PrevMatch>
								<Player2PrevMatch>8</Player2PrevMatch>
								<NextSiblingMatch>23</NextSiblingMatch>
								<PrevSiblingMatch>21</PrevSiblingMatch>
								<IsWinners>False</IsWinners>
								<IsChampionship>False</IsChampionship>
								<IsSecondChampionship>False</IsSecondChampionship>
								<Label> A</Label>
								<Round>-2</Round>
								<Losses>0</Losses>
								<Note>
								</Note>
								<InProgress>False</InProgress>
							</Match>
							<Match>
								<Number>23</Number>
								<Player1>00000000-0000-0000-0000-000000000000</Player1>
								<Player2>00000000-0000-0000-0000-000000000000</Player2>
								<Games>3</Games>
								<Winner>00000000-0000-0000-0000-000000000000</Winner>
								<Margin>
								</Margin>
								<WinnerNextMatch>25</WinnerNextMatch>
								<LoserNextMatch>-1</LoserNextMatch>
								<Player1PrevMatch>19</Player1PrevMatch>
								<Player2PrevMatch>9</Player2PrevMatch>
								<NextSiblingMatch>-1</NextSiblingMatch>
								<PrevSiblingMatch>22</PrevSiblingMatch>
								<IsWinners>False</IsWinners>
								<IsChampionship>False</IsChampionship>
								<IsSecondChampionship>False</IsSecondChampionship>
								<Label> B</Label>
								<Round>-2</Round>
								<Losses>0</Losses>
								<Note>
								</Note>
								<InProgress>False</InProgress>
							</Match>
							<Match>
								<Number>24</Number>
								<Player1>00000000-0000-0000-0000-000000000000</Player1>
								<Player2>00000000-0000-0000-0000-000000000000</Player2>
								<Games>3</Games>
								<Winner>00000000-0000-0000-0000-000000000000</Winner>
								<Margin>
								</Margin>
								<WinnerNextMatch>26</WinnerNextMatch>
								<LoserNextMatch>-1</LoserNextMatch>
								<Player1PrevMatch>20</Player1PrevMatch>
								<Player2PrevMatch>21</Player2PrevMatch>
								<NextSiblingMatch>25</NextSiblingMatch>
								<PrevSiblingMatch>-1</PrevSiblingMatch>
								<IsWinners>False</IsWinners>
								<IsChampionship>False</IsChampionship>
								<IsSecondChampionship>False</IsSecondChampionship>
								<Label>
								</Label>
								<Round>-3</Round>
								<Losses>0</Losses>
								<Note>
								</Note>
								<InProgress>False</InProgress>
							</Match>
							<Match>
								<Number>25</Number>
								<Player1>00000000-0000-0000-0000-000000000000</Player1>
								<Player2>00000000-0000-0000-0000-000000000000</Player2>
								<Games>3</Games>
								<Winner>00000000-0000-0000-0000-000000000000</Winner>
								<Margin>
								</Margin>
								<WinnerNextMatch>27</WinnerNextMatch>
								<LoserNextMatch>-1</LoserNextMatch>
								<Player1PrevMatch>22</Player1PrevMatch>
								<Player2PrevMatch>23</Player2PrevMatch>
								<NextSiblingMatch>-1</NextSiblingMatch>
								<PrevSiblingMatch>24</PrevSiblingMatch>
								<IsWinners>False</IsWinners>
								<IsChampionship>False</IsChampionship>
								<IsSecondChampionship>False</IsSecondChampionship>
								<Label>
								</Label>
								<Round>-3</Round>
								<Losses>0</Losses>
								<Note>
								</Note>
								<InProgress>False</InProgress>
							</Match>
							<Match>
								<Number>26</Number>
								<Player1>00000000-0000-0000-0000-000000000000</Player1>
								<Player2>00000000-0000-0000-0000-000000000000</Player2>
								<Games>3</Games>
								<Winner>00000000-0000-0000-0000-000000000000</Winner>
								<Margin>
								</Margin>
								<WinnerNextMatch>28</WinnerNextMatch>
								<LoserNextMatch>-1</LoserNextMatch>
								<Player1PrevMatch>24</Player1PrevMatch>
								<Player2PrevMatch>12</Player2PrevMatch>
								<NextSiblingMatch>27</NextSiblingMatch>
								<PrevSiblingMatch>-1</PrevSiblingMatch>
								<IsWinners>False</IsWinners>
								<IsChampionship>False</IsChampionship>
								<IsSecondChampionship>False</IsSecondChampionship>
								<Label> E</Label>
								<Round>-4</Round>
								<Losses>0</Losses>
								<Note>
								</Note>
								<InProgress>False</InProgress>
							</Match>
							<Match>
								<Number>27</Number>
								<Player1>00000000-0000-0000-0000-000000000000</Player1>
								<Player2>00000000-0000-0000-0000-000000000000</Player2>
								<Games>3</Games>
								<Winner>00000000-0000-0000-0000-000000000000</Winner>
								<Margin>
								</Margin>
								<WinnerNextMatch>28</WinnerNextMatch>
								<LoserNextMatch>-1</LoserNextMatch>
								<Player1PrevMatch>25</Player1PrevMatch>
								<Player2PrevMatch>13</Player2PrevMatch>
								<NextSiblingMatch>-1</NextSiblingMatch>
								<PrevSiblingMatch>26</PrevSiblingMatch>
								<IsWinners>False</IsWinners>
								<IsChampionship>False</IsChampionship>
								<IsSecondChampionship>False</IsSecondChampionship>
								<Label> F</Label>
								<Round>-4</Round>
								<Losses>0</Losses>
								<Note>
								</Note>
								<InProgress>False</InProgress>
							</Match>
							<Match>
								<Number>28</Number>
								<Player1>00000000-0000-0000-0000-000000000000</Player1>
								<Player2>00000000-0000-0000-0000-000000000000</Player2>
								<Games>3</Games>
								<Winner>00000000-0000-0000-0000-000000000000</Winner>
								<Margin>
								</Margin>
								<WinnerNextMatch>29</WinnerNextMatch>
								<LoserNextMatch>-1</LoserNextMatch>
								<Player1PrevMatch>26</Player1PrevMatch>
								<Player2PrevMatch>27</Player2PrevMatch>
								<NextSiblingMatch>-1</NextSiblingMatch>
								<PrevSiblingMatch>-1</PrevSiblingMatch>
								<IsWinners>False</IsWinners>
								<IsChampionship>False</IsChampionship>
								<IsSecondChampionship>False</IsSecondChampionship>
								<Label>
								</Label>
								<Round>-5</Round>
								<Losses>0</Losses>
								<Note>
								</Note>
								<InProgress>False</InProgress>
							</Match>
							<Match>
								<Number>29</Number>
								<Player1>00000000-0000-0000-0000-000000000000</Player1>
								<Player2>00000000-0000-0000-0000-000000000000</Player2>
								<Games>3</Games>
								<Winner>00000000-0000-0000-0000-000000000000</Winner>
								<Margin>
								</Margin>
								<WinnerNextMatch>15</WinnerNextMatch>
								<LoserNextMatch>-1</LoserNextMatch>
								<Player1PrevMatch>28</Player1PrevMatch>
								<Player2PrevMatch>14</Player2PrevMatch>
								<NextSiblingMatch>-1</NextSiblingMatch>
								<PrevSiblingMatch>-1</PrevSiblingMatch>
								<IsWinners>False</IsWinners>
								<IsChampionship>False</IsChampionship>
								<IsSecondChampionship>False</IsSecondChampionship>
								<Label> G</Label>
								<Round>-6</Round>
								<Losses>0</Losses>
								<Note>
								</Note>
								<InProgress>False</InProgress>
							</Match>
							<Match>
								<Number>30</Number>
								<Player1>00000000-0000-0000-0000-000000000000</Player1>
								<Player2>00000000-0000-0000-0000-000000000000</Player2>
								<Games>5</Games>
								<Winner>00000000-0000-0000-0000-000000000000</Winner>
								<Margin>
								</Margin>
								<WinnerNextMatch>-1</WinnerNextMatch>
								<LoserNextMatch>-1</LoserNextMatch>
								<Player1PrevMatch>15</Player1PrevMatch>
								<Player2PrevMatch>15</Player2PrevMatch>
								<NextSiblingMatch>-1</NextSiblingMatch>
								<PrevSiblingMatch>-1</PrevSiblingMatch>
								<IsWinners>True</IsWinners>
								<IsChampionship>False</IsChampionship>
								<IsSecondChampionship>True</IsSecondChampionship>
								<Label> H</Label>
								<Round>6</Round>
								<Losses>0</Losses>
								<Note>
								</Note>
								<InProgress>False</InProgress>
							</Match>
						</Matches>
						<Ties />
					</Bracket>
				</Game>
			</Games>
			<Stations />
		</Event>
	</EventList>
	<PlayerList>
		<Players>
			<Player>
				<Name>
				</Name>
				<Nickname>Gem</Nickname>
				<Skill>5</Skill>
				<Location>
				</Location>
				<IsBye>False</IsBye>
				<ID>8fdeea32-b581-4000-83bc-cb29cc5a86ec</ID>
			</Player>
			<Player>
				<Name>
				</Name>
				<Nickname>sleK</Nickname>
				<Skill>5</Skill>
				<Location>
				</Location>
				<IsBye>False</IsBye>
				<ID>45612b4b-60fb-4e44-8a7e-fcb4c6ae6f76</ID>
			</Player>
			<Player>
				<Name>
				</Name>
				<Nickname>Ratatta</Nickname>
				<Skill>5</Skill>
				<Location>
				</Location>
				<IsBye>False</IsBye>
				<ID>7d611507-d4dd-4fbb-87d4-dd3ad456012f</ID>
			</Player>
			<Player>
				<Name>
				</Name>
				<Nickname>Al</Nickname>
				<Skill>5</Skill>
				<Location>
				</Location>
				<IsBye>False</IsBye>
				<ID>97ad5294-a001-4088-abda-9d751b219868</ID>
			</Player>
			<Player>
				<Name>
				</Name>
				<Nickname>Kels</Nickname>
				<Skill>5</Skill>
				<Location>
				</Location>
				<IsBye>False</IsBye>
				<ID>15eb7e69-1cd4-42f8-8d88-996694fc22c0</ID>
			</Player>
			<Player>
				<Name>
				</Name>
				<Nickname>Sveet</Nickname>
				<Skill>5</Skill>
				<Location>
				</Location>
				<IsBye>False</IsBye>
				<ID>e2737995-9440-4ac7-bde0-73bb7c786061</ID>
			</Player>
			<Player>
				<Name>
				</Name>
				<Nickname>Shun</Nickname>
				<Skill>5</Skill>
				<Location>
				</Location>
				<IsBye>False</IsBye>
				<ID>d5e4b8c7-0e72-4f05-b40a-429c792c3820</ID>
			</Player>
			<Player>
				<Name>
				</Name>
				<Nickname>Zwarm</Nickname>
				<Skill>5</Skill>
				<Location>
				</Location>
				<IsBye>False</IsBye>
				<ID>296e6697-edad-431b-ae29-7f63b393971d</ID>
			</Player>
			<Player>
				<Name>
				</Name>
				<Nickname>Sothe</Nickname>
				<Skill>5</Skill>
				<Location>
				</Location>
				<IsBye>False</IsBye>
				<ID>54c47231-c163-4c95-b5b4-b8b4caffff7a</ID>
			</Player>
			<Player>
				<Name>
				</Name>
				<Nickname>Arty</Nickname>
				<Skill>5</Skill>
				<Location>
				</Location>
				<IsBye>False</IsBye>
				<ID>2fee7640-24b7-480b-afa9-ffdb2f6e3f30</ID>
			</Player>
			<Player>
				<Name>
				</Name>
				<Nickname>Scythe</Nickname>
				<Skill>5</Skill>
				<Location>
				</Location>
				<IsBye>False</IsBye>
				<ID>b969a59c-e5d8-4e9c-85ae-7605b4e6b4ac</ID>
			</Player>
			<Player>
				<Name>
				</Name>
				<Nickname>Sago</Nickname>
				<Skill>5</Skill>
				<Location>
				</Location>
				<IsBye>False</IsBye>
				<ID>6bc456e0-9890-4d0a-992f-4cba22a1c65a</ID>
			</Player>
			<Player>
				<Name>
				</Name>
				<Nickname>Wise Lugia</Nickname>
				<Skill>5</Skill>
				<Location>
				</Location>
				<IsBye>False</IsBye>
				<ID>e02808b6-a233-406b-8efe-520194476ef4</ID>
			</Player>
			<Player>
				<Name>
				</Name>
				<Nickname>DLA</Nickname>
				<Skill>5</Skill>
				<Location>
				</Location>
				<IsBye>False</IsBye>
				<ID>d6921448-2f88-4ff3-aca1-5d6aa14a8c1a</ID>
			</Player>
			<Player>
				<Name>
				</Name>
				<Nickname>ORLY</Nickname>
				<Skill>5</Skill>
				<Location>
				</Location>
				<IsBye>False</IsBye>
				<ID>fef4703a-6ab4-449c-813a-8d8a31b638a9</ID>
			</Player>
			<Player>
				<Name>
				</Name>
				<Nickname>Kochiha</Nickname>
				<Skill>5</Skill>
				<Location>
				</Location>
				<IsBye>False</IsBye>
				<ID>6dd85daf-e0e1-4543-8429-e611b297a2f9</ID>
			</Player>
			<Player>
				<Name>
				</Name>
				<Nickname>Oro</Nickname>
				<Skill>5</Skill>
				<Location>
				</Location>
				<IsBye>False</IsBye>
				<ID>955b30dc-6bff-459b-ac34-7df4d4974192</ID>
			</Player>
			<Player>
				<Name>
				</Name>
				<Nickname>Roman</Nickname>
				<Skill>5</Skill>
				<Location>
				</Location>
				<IsBye>False</IsBye>
				<ID>772f989d-851f-4ff6-bd92-2e415d5d1415</ID>
			</Player>
		</Players>
		<Teams />
	</PlayerList>
</AppData>
[/collapse]



edit- if nobody minds, ill start working on an algorithm for rebuilding a tio file.
 

Nintendude

Smash Hero
Joined
Feb 23, 2006
Messages
5,024
Location
San Francisco
The tio plugin is trivial compared to everything else. The purpose of the plugin is to add fields for player ID numbers and regions / subregions (in order to generate new ID numbers) and to replace the 1-10 seeding method with something that pulls Elo ratings from the online database to seed brackets and pools.

TOs participating in the rating project will need the tio plugin to do so. I can't think of any way around that.

edit - I had a brief discussion with Sveet about some things that you may want to read, because I share some thoughts in more detail than up above.

[collapse=AIM convo]
SveetX 12:42 am
hey
Nintendude1189 12:42 am
hey
SveetX 12:43 am
wanted to talk to you about some of this stuff
Nintendude1189 12:44 am
yeah sure
SveetX 12:44 am
well i'
SveetX 12:44 am
well i'll be honest, the ELO thing isn't my primary motivation
but i think both of our projects could use this TIO database
Nintendude1189 12:46 am
whats your project?
SveetX 12:46 am
the character ranking list
SveetX 12:47 am
i want to be able to keep the data up to date in a similar fashion as you want to get data about match wins
Nintendude1189 12:47 am
yeah, that makes sense
and its a good idea
i think that if implemented properly, this database can replace all of those <insert character or region> player finders
every known smasher who goes to tournaments will ideally have a smasher profile tied to this system
and likewise, every tournament run by smashboards will be stored in there
so then with all of the data available, it can be used however people want to
SveetX 12:49 am
yeah i agree
so i think we should work on a universal plugin
Nintendude1189 12:50 am
i think you are confusing the plugin and the database tho
SveetX 12:50 am
no
as it was said in the thread, it should be with minimal work from the TOs
they shouldnt have to download anything
but the plugin is something that they will have to download
Nintendude1189 12:51 am
i dont see how it can work without that component
how can regions be entered into the system?
SveetX 12:51 am
and both our causes and other future ones would benefit from a united plugin
Nintendude1189 12:51 am
and how would you automatically seed by rating?
SveetX 12:51 am
so TOs dont have to DL a CRL plugin and an ELO plugin and a region plugin
Nintendude1189 12:51 am
what would be the purpose of a CRL plugin?
SveetX 12:52 am
All i need really is character information
the rest is provided by tio
Nintendude1189 12:52 am
right, what characters people used
so the plugin can add a field for character
its literally like a copy and paste job
SveetX 12:53 am
what do you mean?
Nintendude1189 12:53 am
unless you want to get more robust
and record what chars were used in which matches
SveetX 12:53 am
well my idea is to keep it simple
Nintendude1189 12:53 am
instead of just saying m2k used fox, sheik, and marth
SveetX 12:53 am
just have players sign up with a character
they arent stuck to that character
Nintendude1189 12:53 am
yeah, then make it a player information field
SveetX 12:54 am
yep
Nintendude1189 12:54 am
for elo, you need to add fields for ID number and region (used to generate new ID numbers)
SveetX 12:54 am
yeah
im working through the tio file right now
TIO already creates an ID number for each player
Nintendude1189 12:55 am
but it has to be redefined
SveetX 12:55 am
yes afaik the ID number is random (for the tournament)
Nintendude1189 12:55 am
yeah
SveetX 12:55 am
<ID>8fdeea32-b581-4000-83bc-cb29cc5a86ec</ID>
Nintendude1189 12:55 am
for this, we have to have players register with an ID number
then tio looks in the database and finds it
if a player has no ID number, then it can be entered as all zeros
tio can recognize that and know to create a new ID number taking into account the region entered
SveetX 12:56 am
would it be possible
instead of using numbers
have it based around their SWF account name
Nintendude1189 12:57 am
theres a couple issues with that
SveetX 12:57 am
name changes
Nintendude1189 12:57 am
name changes, people without smashboards accounts, difficulty in spelling some names
especially when they have unusual characters
SveetX 12:58 am
true, but its pretty difficult for players to remember an ID number
it would be less intrusive to go by their username
Nintendude1189 12:58 am
so the system can be read to use either
SveetX 12:58 am
or a set playername
like jman's account on SWF is like
*JMAN* or something
but they system would recognize "jman" as him
Nintendude1189 12:59 am
personally i think that real name should be higher priority than account name
SveetX 12:59 am
real name regonition?
Nintendude1189 12:59 am
but if someone doesnt want to give their real name
they can just use their ID number
SveetX 12:59 am
oh you mean like
first and last name?
Nintendude1189 12:59 am
yes
SveetX 12:59 am
hmmm
never thought of that
Nintendude1189 12:59 am
its more professional
everyone else does that
SveetX 12:59 am
yes it is
Nintendude1189 12:59 am
nobody else uses these stupid gamertags
SveetX 1:00 am
hahaha
SveetX 1:00 am
inside the video game world its pretty common
Nintendude1189 1:00 am
yeah, of course
SveetX 1:00 am
but yeah, what do you know about these tio plugins?
Nintendude1189 1:00 am
but look how far behind the times most professional gaming communities are
they are to be written in a .NET language or something similar
neal said C# can be used
they can do things like add information fields, add bracket types, change methods of doing things
SveetX 1:01 am
are there any restrictions? can the plugins access the internet?
Nintendude1189 1:01 am
im pretty sure if that wasnt the case neal would have told me
SveetX 1:02 am
hmm
Nintendude1189 1:02 am
thats a very simple kind of task
SveetX 1:03 am
so the idea is to have the TO input all the information into the TIO file then upload it and all the information is extracted after
Nintendude1189 1:04 am
yeah
Nintendude1189 1:04 am
it definitely requires more work from TOs but theres no way around that
SveetX 1:04 am
yeah but i think players and TOs will like the idea
I think itd be really interesting to get an accurate count of active tournament players, too
Nintendude1189 1:05 am
also, regiional statistics will be so easy to generate
regional statistics for anything
because with categorized ID numbers you know where every player is from on several levels of resolution
[/collapse]
 

Cactuar

El Fuego
BRoomer
Joined
Mar 10, 2006
Messages
4,823
Location
Philadephia, PA
Sveet's project proposal can be added as an afterthought. I recommend having focus on getting the core project in place, as player/character information can be taken care of once it is by tying it to the player name/ID.


Also, I'm going to sign up to every tournament as GaW.
 

Fortress | Sveet

▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀
Joined
Dec 21, 2005
Messages
16,260
Location
Northern IL
In my mind this is the things we need to get done:

- TIO Database (including a place for people to upload... possibly tie it to SWF?)
- TIO Plugin to include various player and tournament information (i believe in 1 universal plugin as less downloading/work from the TOs is less intrusive and better for all projects in general)

I suppose a lot of work has to be done on the database idea. How is it going to be maintained? I think a public read/query should be available but any submissions should be approved (by whom?).

For the TIO Plugin, here are a list of some fields that should be added:

- Player ID/Name recognition
- Character information
- Tournament results thread (for easy verification process)
 

Nintendude

Smash Hero
Joined
Feb 23, 2006
Messages
5,024
Location
San Francisco
The MBR should discuss what constitutes an MBR-approved tournament and then put together a committee to approve submissions. Maybe nealdt would have some good insight here, since AiB has a similar system; TOs submit tio files and then tournament moderators approve them before they get processed by AiB to automatically update people's tournament profiles, hand out badges, etc.
 

Teczer0

Research Assistant
Premium
BRoomer
Joined
Mar 25, 2007
Messages
16,863
Location
Convex Cone, Positive Orthant
The MBR should discuss what constitutes an MBR-approved tournament and then put together a committee to approve submissions. Maybe nealdt would have some good insight here, since AiB has a similar system; TOs submit tio files and then tournament moderators approve them before they get processed by AiB to automatically update people's tournament profiles, hand out badges, etc.
I think Cactus and I were discussing something about this earlier. The idea was to give only certain TOs the ability to add any information into the ELO rankings by handpicking them.

In any case since the MBR has regional leaders I would suggest to have the regional leaders become the tournament moderators or hand out the ability to add information into ELO.
 

Nintendude

Smash Hero
Joined
Feb 23, 2006
Messages
5,024
Location
San Francisco
I'd rather the TOs themselves not be the ones to add tourney info to the database. There needs to be another party to check and make sure everything's straight. Also there needs to be some kind of moderation of the database itself (like to correct any errors) and that shouldn't be a job of TOs.
 

Fortress | Sveet

▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀
Joined
Dec 21, 2005
Messages
16,260
Location
Northern IL
I dont really think its an issue to allow TOs to submit. What errors can a MBR member (or any outside party) correct over the TO? I couldn't find a mistake in bracket, character use, player name, ect in a MI tournament and I know most of the players there.

The only real need for a higher authority is to prevent abuse, which is mostly solved by making the submitting group selective.
 

Skler

Smash Master
Joined
Mar 17, 2006
Messages
4,518
Location
On top of Milktea
Anybody can be a TO, having a group of people who submit results is probably a better choice. Just give TOs a submission system that goes directly to the people who cram things into the program.

My theory is the less people who can change the DB the better.
 

AlphaZealot

Smashboards Owner
Administrator
BRoomer
Joined
Jul 6, 2003
Messages
12,944
Location
Bellevue, Washington
Skler hit the nail on the head. TO's should not be able to directly change the database. There should be 1 person, or at most a small group of 2-4 people, who maintain the database and whose job it is to take submissions, approve them, and then update the ratings.
 

Cactuar

El Fuego
BRoomer
Joined
Mar 10, 2006
Messages
4,823
Location
Philadephia, PA
My assumption was that there would have to be the manual input element. Tournament submissions needing approval coming from whoever is in charge of the ELO project prior to being accepted into the ELO rating calculation.
 

HyugaRicdeau

Baller/Shot-caller
Joined
Jun 4, 2003
Messages
3,899
Location
Portland, OR
Slippi.gg
DRZ#283
Agree. It's much easier to have a small group of trusted/knowledgeable people making the decisions about what an "approved" tournament is on a case-by-case basis. There are always going to be a bunch of circumstances that affect it that a rigid set of criteria will miss. You may try building such a set as you go though.
 

Nintendude

Smash Hero
Joined
Feb 23, 2006
Messages
5,024
Location
San Francisco
Something that needs to be discussed is what kinds of deviations from the MBR ruleset don't disqualify a tournament for being rated. Examples would be variations in stage lists and whether or not wobbling is banned.
 

Fortress | Sveet

▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀
Joined
Dec 21, 2005
Messages
16,260
Location
Northern IL
TBH i think variation in ruleset effects the set outcome by only a marginal amount (for the most part, players beat who they beat and lose to who they lose to) that the ELO ratings should be accurate. The only exception i would make to this is if the ruleset had more stages than the pound ruleset or had another funky rule (such as items on or brinstar/RC but no stage bans)
 

Skler

Smash Master
Joined
Mar 17, 2006
Messages
4,518
Location
On top of Milktea
Items should invalidate the match.

Non-MBR approved stagelist (we'll have three, right? That shouldn't be tough), unless both players agree that they would like it ranked, should invalidate the match.

Non-MBR rules (eg. removal of DSR/counterpicks/double-blind, etc) should invalidate the match unless both players agree they would like it ranked.

Basically, use our stuff or don't get ranked by the thing we put work into. The MBR spends a lot of time thinking and debating, so it's probably for the best that TOs are encouraged to host tournaments with the MBR's rules.
 

Nintendude

Smash Hero
Joined
Feb 23, 2006
Messages
5,024
Location
San Francisco
We should have two programmers being granted access to the project room very shortly. Then this project can really get rolling.
 

Tirno

Smash Journeyman
Joined
Jan 4, 2006
Messages
207
Location
Austin, TX
Hey guys, I'm one of the programmers set to work on this project. I've already talked some to the other guy who's agreed to work on the project (mytummyhurtz is his username, IIRC).

So far, I think there are there main components to this software project:

1. A database: simply a file hosted online (preferably by someone like Smashboards or AIB) . This file will primarily just store a mapping of players to ratings. We think a full-blown database (like something SQL based) is overkill and will introduce unnecessary complexity.

2. A tio plugin that does three things mainly. First, it will download the data from wherever it's hosted. Then, it will provide seeding to tio using the ratings. Finally, upon completion, dump the results of the tournament in a way that is much simpler to parse than the tio files.

3. A small script or application for taking results and updating the database/file.

Some questions:

What to use as input to the db: Nintendude suggested that using the tio files to update the database will be more user-friendly. I agree with that point, but my concern is that we have no control over the format of tio files. Parsing the tio format is definitely doable, but will be more error-prone and will likely fail if tio ever changes the format of tio files. If we dump the results out through the plugin, we'll have full control over the interaction between the plugin and the application that updates the db.

How to update the elo ratings: the main choice here is between updating the ratings after each tournament or after each set. The problem with per tournament is that it is less accurate, I think, since sets earlier in the tournament will not affect your expected performance later in the same tournament. The problem with per match is pools, whose matches happen in no particular order. The tentative solutions is to update ratings per pool when dealing with pools and then to update per set during brackets.

Comments/ideas/suggestions?
 

hectohertz

Smash Ace
Joined
Aug 20, 2006
Messages
800
Location
Brooklyn, NY
hey, i'm the other programmer who's going to be working on this.

i think the easiest/sanest thing is just going to be to update after the tournament. you use elo to seed, and then once the tournament is done, that can update the rankings.

parsing xml is pretty easy with a good library, if tio already outputs the results in a standard format, let's just use that. what format are the uploads to AIB ?

so at some point we need to know who's willing to host this database and who's going to be in charge of updating, so we can work something nice out to do all of that. i'm pretty php/sql/.net savvy, so it shouldn't be a problem to build some sort of web-interface to update the db with a .tio file. on the other hand, that might be overkill if the person doing the uploading is like the webmaster they could just run a little shell script.

anyway....
 

Nintendude

Smash Hero
Joined
Feb 23, 2006
Messages
5,024
Location
San Francisco
Hey guys, I'm one of the programmers set to work on this project. I've already talked some to the other guy who's agreed to work on the project (mytummyhurtz is his username, IIRC).

So far, I think there are there main components to this software project:

1. A database: simply a file hosted online (preferably by someone like Smashboards or AIB) . This file will primarily just store a mapping of players to ratings. We think a full-blown database (like something SQL based) is overkill and will introduce unnecessary complexity.
I'm not totally sure what additional functionality SQL provides, but is the region-encoding (via ID numbers) possible with a simple database? And would it be easily possible to expand upon a simple database someday?

2. A tio plugin that does three things mainly. First, it will download the data from wherever it's hosted. Then, it will provide seeding to tio using the ratings. Finally, upon completion, dump the results of the tournament in a way that is much simpler to parse than the tio files.
It should also add player information fields for ID number and 3 subregions (country -> state / province -> city) if we want to do the region thing.

How to update the elo ratings: the main choice here is between updating the ratings after each tournament or after each set. The problem with per tournament is that it is less accurate, I think, since sets earlier in the tournament will not affect your expected performance later in the same tournament. The problem with per match is pools, whose matches happen in no particular order. The tentative solutions is to update ratings per pool when dealing with pools and then to update per set during brackets.

Comments/ideas/suggestions?
I think that ratings should be updated after every tournament (or technically when the tournament gets submitted). There's no easy way to do it otherwise. I think chess does it the same way but I'm not entirely sure.

Be sure to try to document your code well when developing this thing. This is in case one of you guys drops out or something it'll be easy for a replacement to pick up right where you left off without being too confused.
 

Tirno

Smash Journeyman
Joined
Jan 4, 2006
Messages
207
Location
Austin, TX
What exactly do you mean by region-encoding for IDs?

As for the file, it could simply be in the csv format (comma-separated values), which is more or less a text-only spreadsheet. For example, this is what it might look like with just me as an entry:

Code:
player,region_id,country,state,city,rating
Tirno,42,US,TX,Austin,9001
Such a file format is incredibly easy to parse, and is easily imported by pretty much any spreadsheet program. As such, automating the migration to a more sophisticated database wouldn't be particularly difficult.

I think you misunderstood my question about the ratings. The question isn't about when to actually update the data in the online db, it's about how to calculate Elo ratings. Here's an excerpt from Wikipedia showing an example calculation for updated ratings:

Supposing Player A was expected to score EA points but actually scored SA points. The formula for updating his rating is

R_A' = R_A + K(S_A - E_A).

This update can be performed after each game or each tournament, or after any suitable rating period. An example may help clarify. Suppose Player A has a rating of 1613, and plays in a five-round tournament. He loses to a player rated 1609, draws with a player rated 1477, defeats a player rated 1388, defeats a player rated 1586, and loses to a player rated 1720. His actual score is (0 + 0.5 + 1 + 1 + 0) = 2.5. His expected score, calculated according to the formula above, was (0.506 + 0.686 + 0.785 + 0.539 + 0.351) = 2.867. Therefore his new rating is (1613 + 32· (2.5 − 2.867)) = 1601, assuming that a K factor of 32 is used.
Notice the bit about performing the update after each game or each tournament. In the example calculation, they update the rating only after the tournament. If you do update the ratings per match, the change in rating is like so:

Match 1: R_A = 1613, R_B = 1609, Expected Score = 0.506, Actual Score = 0
R_A' = 1613 + 32 * (0 - 0.506) = 1596.82

Match 2: R_A = 1596.82, R_B = 1477, Expected Score = 0.666, Actual Score = 0.5
R_A' = 1596.82 + 32 * (0.5 - 0.666) = 1591.51

Match 3: R_A = 1591.51, R_B = 1388, Expected Score = 0.763, Actual Score = 1
R_A' = 1591.51 + 32 * (1 - 0.763) = 1599.08

Match 4: R_A = 1599.08, R_B = 1586, Expected Score = 0.519, Actual Score = 1
R_A' = 1599.08 + 32 * (1 - 0.519) = 1614.48

Match 5: R_A = 1614.48, R_B = 1720, Expected Score = 0.353, Actual Score = 0
R_A' = 1614.48 + 32 * (0 - 0.353) = 1603.19

Notice the change in the final rating. I would guess updating per set would be more accurate, since your expected performance is adjusted to match your performance earlier in the tournament, but like I said pools pose a bit of a difficulty.
 

Nintendude

Smash Hero
Joined
Feb 23, 2006
Messages
5,024
Location
San Francisco
What exactly do you mean by region-encoding for IDs?
Take a look at what I wrote about ID numbers in the first post. If I were to enter a rated tournament for the first time, I'd tell the TO my precise region (North America / USA / New York). Then when an ID number is generated for me by the system, the first 5 digits or so would corresponds to my region. It's not something essential by any means but it adds some great functionality to the system. All kinds of regional statistics would be really easy to generate, and on a level of detail never before seen in the Smash community.

As for the file, it could simply be in the csv format (comma-separated values), which is more or less a text-only spreadsheet. For example, this is what it might look like with just me as an entry:

Code:
player,region_id,country,state,city,rating
Tirno,42,US,TX,Austin,9001
Such a file format is incredibly easy to parse, and is easily imported by pretty much any spreadsheet program. As such, automating the migration to a more sophisticated database wouldn't be particularly difficult.
Sounds good:)

Notice the change in the final rating. I would guess updating per set would be more accurate, since your expected performance is adjusted to match your performance earlier in the tournament, but like I said pools pose a bit of a difficulty.
I think the most straightforward way is to consider all matches played in all pools and brackets simultaneously. I don't think the level of precision you get from updating after each set really matters. Anyone else have thoughts on this?
 

Skler

Smash Master
Joined
Mar 17, 2006
Messages
4,518
Location
On top of Milktea
Just do it all at the same time. While crawling through a bracket would be pretty easy it just doesn't make sense to have your rating essentially change mid tournament. Doesn't chess just change after each tournament/ranked match? It'd be weird for them to calculate new Elo rankings after each game in a tournament.
 

Zankoku

Never Knows Best
Administrator
Premium
BRoomer
Joined
Nov 8, 2006
Messages
22,994
Location
Milpitas, CA
NNID
SSBM_PLAYER
Ratings themselves are changed after each game in chess, since both uncertainty and relative ratings will be different after each match. I guess one issue here is that chess tournaments run in Swiss, which has a very direct order of when each match got played. I'm not sure how pools would be done, but brackets are pretty easy - do each of the winners' bracket sets in ascending order, then do each of the losers' bracket sets in ascending order, then do the grand finals. Due to how the brackets work, this ensures correctness time-wise for all players involved in any ratings changes for a given match anyway.
 

Tirno

Smash Journeyman
Joined
Jan 4, 2006
Messages
207
Location
Austin, TX
Yeah, brackets are pretty straightforward. I think the best we can do for pools (and other non-ordered events) is to change the ratings after each pool.

In any case, we don't have to exactly mimic chess' Elo system. In fact, there isn't even just one chess Elo rating system. For now, we could just follow how FIDE's Elo ratings are calculated, but we might want to tweak stuff like how our K-factors are chosen or if we want to use things like FIDE's rule of 400.
 

Nintendude

Smash Hero
Joined
Feb 23, 2006
Messages
5,024
Location
San Francisco
Is there any reason to mimic FIDE instead of USCF or the other way around? I haven't been able to find anything arguing why one is better than the other. They just seem to be slightly different.
 

Tirno

Smash Journeyman
Joined
Jan 4, 2006
Messages
207
Location
Austin, TX
Not particularly, I haven't found any good comparisons either. I think maybe for now we should just implement the simplest Elo rating (following the suggestions of Elo himself), and if we keep the results of tournaments, we should be able to tweak the rating system as we see fit.
 

Nintendude

Smash Hero
Joined
Feb 23, 2006
Messages
5,024
Location
San Francisco
I'd be fine with using only the basic formula. Chess really needs a ridiculously precise rating system because it's trying to compare thousands of players from literally all over the world, with many many masters and grandmasters. Smash really doesn't have use for such precision.
 

Skler

Smash Master
Joined
Mar 17, 2006
Messages
4,518
Location
On top of Milktea
Some would argue that the more precision in the rankings, the more "legit" smash becomes. A rating system (especially a really good one) would make people look at the game in a better light. Since doing brackets the "right" way is easy there's no reason not to.
 

Nintendude

Smash Hero
Joined
Feb 23, 2006
Messages
5,024
Location
San Francisco
I think that for the purposes of the getting the system up and running, we should stick to the basic formula unless it's actually really simple to use something more advanced. Before ratings can be used to seed there has to be a long "incubation" period anyway. During this time we can make small adjustments to the algorithm and make it more complex.
 

joeplicate

Smash Master
Joined
Nov 30, 2008
Messages
4,842
Location
alameda, ca
so i'm hella out of the loop right now, lol
(moving/no computer johns)


i absolutely love the idea of Elo rankings
and the best part about it is, even if people don't like it, then they can take it or leave it!
 
Top Bottom