For me it was the combination of Harry Potter and online roleplaying[1]. I know that English isn't quite the same as other languages as it's quite widespread, but I believe it's possible to do the same for other languages.
I also improved my Spanish a little through a website called lang-8.com, but I am not sure how active its community is these days; when I joined it was new and the community was relatively small. I stopped using it since I lacked the time and motivation to pursue Spanish more vigorously.
[1]: As a side-note, I met my best friend this way; I was 13, she was 11 when we met. She'd would always go out of her way to help me with my English and would help me prepare for a roleplay and also analyse it afterwards, pointing out all the mistakes and potential improvements, taught me colloquialisms, etc. Although, everyone would help from time to time, too. So, meeting the right people/community also matters.