Tourney Bracket Control 2.0

posted on 2005-09-25 at 18:57:28 by Joel Ross

Well, I think I'm finally ready to reveal a little bit about our plans for the next version of the Tourney Bracket Control, and where we still have work to do.

First, some background on where we were coming from. When we designed the original TBC, we built it to be ultimately flexible - you can do anything you want with it - you can make a lopsided bracket with 8 teams in one half and 16 in the other. You can create multiple groups and label those any way you want. You can color right down to the round level.

Of course, you have to figure out how to do that. That means you have to lay out (most likely before you work with the TBC) how you want to group the bracket, how many rounds you have, how many competitors you want, how you want to link up matchups (i.e, the winner of game?1 and game 2 plays in game 3), how each team will be slotted, and then you seed each team. And due to an issue in?the way some of the logic worked, you better get the seeding right, or it's not rendering! And while we had design-time support, it was very touchy. You can see exactly how your bracket would be laid out on the design campus, but it really never worked until you had it all laid out - it couldn't handle rendering partially completed brackets.

So while I could lay out pretty much any bracket you could think of, not many others could. It was very particular, and not exactly user friendly. So, when we made the decision to make a new version, we knew it had to be easier. We tried to reduce it down to the bare minimum amount of data you need, and what we came up with is about as simple as it gets - the number of competitors. Strictly from the number of competitors, we can figure out what your bracket should look like. No more worrying about groups, rounds, matchups, linking matchups to each other, or worrying about how to lay out your groups.

Nope. It's much simpler than that. You add a collection of competitors. We figure out what your bracket should look like. You assign competitors to their opening slot, which we'll make easy for you by giving you a list of the open slots. The markup you create is much cleaner and smaller, and it's much easier to make a bracket.

So what are you losing? Flexibility. But to be honest, no one (that we know of) used most of flexibility. Everyone uses a standard way to lay out brackets. The one caveat to that is a double elimination tournament, which we don't have support for yet, but are working on. And it'll still be as simple as the above - just define your teams, and we'll handle the rest!

So what else has changed. The way it's rendered! Here's a screen shot of?the top part of a?32 team bracket.

Tourney Bracket Control 2.0

There's some UI work to do, but it's functional - you're able to move teams around and we limit what teams are in each drop down based on the selections you make. Just like before. So, how is the rendering different than before? Well, before, we used a complete table layout. Now, we use a combination of tables and divs. We also use CSS to determine how a match up should look, rather than explicitly defining the fonts, sizes, colors, etc. Before, a large bracket would slow down the browser when rendering - browsers aren't great at rendering large tables - but by using a combo of a single, simple table and a bunch of divs, the rendering is much less processor intensive.

So what's left to do before you can get your hands on it? Let's list them out.

  • Design-time support: I'm having issues with how things are persisted. The design time view works just fine, but the way it's written to the aspx page isn't quite right.
  • Coloring: We haven't defined exactly how coloring should work. We've gotten rid of the concept of groups, which was our primary way of coloring sections in the bracket. Now, we're thinking of filling all of the area behind a matchup with defineable colors.
  • Editable properties: We have?a lot of things that are built-in to the way the bracket renders. We need to decide what can be exposed and modified.
  • Postbacks: I haven't done a ton with pulling results out of the TBC yet, which is very important - picking a winner is useless if you can't find out who you've selected.
  • Testing: We have much more testing to do. Before releasing, we'll probably drop it in the Tourney Pool Manager too, and ensure it works there as well. That's a big test for us, and a way to confirm that it works well for a larger bracket.
  • Changes to make this work in ASP.NET 1.1 and ASP.NET 2.0. It's written in VS 2005 beta 2 right now, but there's only a few changes we would need to make it work in VS 2003. Until we come up with a reason not to, we'll build it to be backwards compatible too.
  • Double elimination: Currently, we're thinking we'll release without double elimination for now, and add it in after we get 2.0 out the door. With the new model in place, it won't be a huge deal to do this afterwards, and any markup you may have for the TBC 2.0 will work with a double elimination bracket too.

If you're currently using the Tourney Bracket Control, or you've tried it in the past, does this sound easier? Are we missing anything that you're using it to do? What else would you like to see?

Categories: Develomatic