21/10/2011

Programming Gamification

The concept of gamification has been around for a while.
http://en.wikipedia.org/wiki/Gamification
It has spawned a new age of educational training and some programming languages have already put to the test some interactive tutorials.

I first came across a gamified interactive tutorial while studying a functional language (Haskell.org). I found it so addictive, I loaded it up on my Blackberry Torch later the day while I was waiting at an interview. Needless to say, it has a small glitch which is rather bothersome when using a small screen/mobile device - but I don't believe they had users in mind using their mobile phones when designing an interactive programming tutorial ;)


http://tryhaskell.org/

At Try Haskell, they stated: concept and interface blatantly copied from _why's Try Ruby!

At that time I wasn't entirely interested in learning ruby - after all I already had done some python and was more interested in python's and ruby's love-child: Groovy.


At a later stage I eventually did go try Ruby. At this very moment, I haven't finished the entire tutorial but did come across another interesting site: Code School - Learn by Doing whom offer some interesting courses, such as:
  • Rails for Zombies
  • Rails for Zombies 2
  • jQuery Air: First Flight
  • Functional HTML5 && CSS3
  • Rails Best Practices
  • Try Ruby (Same as previously mentioned I think)
Honestly, my interest in gamification started developing after reading some articles of at Jeff Atwood's blog Coding Horror. The article that got me interested was this one: http://www.codinghorror.com/blog/2011/10/the-gamification.html - quite an interesting read!

It gave me an idea of developing a gamified programming challenge type game, ranging from beginner to advanced level. (For those who just finished these try * gamified tutorials who are somewhat acquanted with the programming language).

The game would use the .NET Framework and the game itself focused around hacking and other challenges - with this catch - you would have to write and improve your own library in your language of choice given theory and specifications ingame. Intermediate Language would allow gamers to use C#, Visual Basic.NET, C/C++, IronPython, IronRuby, F# etc. out of the box to implement their libraries - not that it would be impossible to make wrappers for haskell and other programming languages.

Given such, there are somewhat endless possibilities.