Okay, MASTACHIEFPWN...
Just by your username and the fact you are participating in a Left for Dead 2 tournament are enough for me to assume you're a bit of a dork.
However, cuteness ALWAYS wins over being a confident badass in any girl's books whos worth being with. Don't get me wrong, be confident, but not a jerk. Be romantic, kind, funny and sensitive. If you have wanted her for this long just tell her that, it will make her feel special. Make sure you look good on the day you ask her. Shave, cut and wash your hair, wear nice clothes and smell nice. Don't stutter or fidget. Just relax.
Take it easy, don't seem to eager, it will put her off. Just ask softly, preferably just as you part. It's easier on the both of you. If she wants to say no, or wants to think about it, she has time to come up with an answer. It is NEVER fair to put someone on the spot, and she may say something she doesn't really want, which will make it harder for both of you.
Which brings me to my next point: There is NO point in having a relationship that one of you does not want. Don't labour the point.
If you have liked this girl for this long you are obviously very emotionally attached to her. Don't let yourself be crushed if she says no. Accept it, learn to let it pass, and move on.
And my most IMPORTANT TIP:
ALWAYS BECOME EMOTIONALLY ATTACHED TO A GIRL BEFORE YOU ASK HER OUT.
Girls are very emotionally driven beings. First off, are you even friends with this girl? If not, forget about it, or at least hang out for a while first and get to know each other. If you are, what's the tone of your relationship? Can you identify that?
Good luck anyway, mate.