As we all know, Web 2.0 is defined by the consumer also being the producer. Previously we have talked about this in terms of the end product itself: media or information. But what about the services that provide this media or information? If the product itself is consumed and produced by the users, then why not the services themselves?
The Application Programming Interface
A program or service can have what is called an Application Programming Interface (API). This is, in basic terms, a list of functions that another programmer can have access too, and are taken from the base program. The API, in effect, "exposes" a bunch of useful tools and information that the base program already uses implicitly.
Why should an application have such an animal? Well, in almost all cases, it's because the original developers understand a couple of really important things:
1) We don't know everything about what our potential users may want,
2) We don't know all of the potential applications that our base program may have,
3) We can't work as fast as a large fanbase with the drive to make a new program (and the tools to do so) can, and
4) Free labour is free.
By providing an Application Programming Interface, the developers of the original service immediately give the users to ability to fulfil their own demand for a service they want for a very affordable price and no additional effort. How can you possibly say no?
Challonge.com
So far in these weekly discussions I have been talking about obvious examples of the pattern in question. This week I'm going to deviate, and talk about something that I already have some knowledge in.
Challonge.com is a web service that allows for users to create and manage their own tournaments. It's suitably abstract enough to work for any game or sport you care to name, but is most popular among the competitive video gaming community. It's fast, it's free, it's easy to use, and it's relatively customisable.
But, as if those things were not enough, Challonge also provides an API. Using the Challonge API you can create, delete, populate, and edit tournaments and players and their scores.
So, why would I want to use the Challonge API when organising my tournament? Well, the Challonge service itself doesn't allow for any more complicated tournament structures than the single elimination, double elimination, round robin and so on. It also doesn't recognise players over multiple tournaments, and so a players long-term performance isn't captured.
However, with the API, we can create complicated tournaments and remember who played in them, and what their performance was. For example, suppose we wanted our players or teams to play in a group stage, with an elimination "playoffs" (as most tradition sports competitions do) then we can used the API to create two separate Challonge tournaments (one a round robin, and the other single elimination) and have the winners of the first automatically placed as the participants in the second.
We can also relate all of this information in our own database automatically, to record our players performance. By using an API Challonge has given us to ability to tailor our own tournament system to meet our own needs. We required no additional help from Challonge itself, beyond the creation of the API, and we did it relatively cheaply (and it didn't cost Challonge a cent!).
How can you say no?
I love stumbling upon posts that separate themselves from the crowd!! Unlike many bloggers that focus on the obvious web services that utilise API's, you chose one that many of us wouldn’t have heard of. I'm not much of a gamer, but what sort of games does this generally get used with? I’m heavy into my sports and this sounds like a great tool, Do you know anyone that uses Challonge.com for Sporting events?
ReplyDeleteAs I say in the post, you can theoretically use it for any competitive activity. As for actual examples of traditional sports that use Challonge, there is an 8-Ball (pool) tournament underway. (http://westcoastpoolplayers.challonge.com/vinnies120323)
DeleteThe games it's mostly used for are those video games that have a healthy competitive community: Starcraft II, fighting games, League of Legends (and other MOBAs), and there's even a Pokemon tournament in the list.