Showing vs Telling
I am archiving older pieces I have written on other sites, making this the definitive home for all my work. This is one of several I am porting over from my GameDev.Net user journal. Enjoy!
Video games are a visual medium, yet virtually all introductory resources/articles/tutorials are reams and reams of text. We're often asking complete beginners - most have never written any programs, ever - to muddle through pages of text and then craft source code to eventually create graphical experiences. Until very recently, the default first language recommendation was C++, which meant that they had to write simple text console games or use crude approximations of graphics via ASCII art. Libraries like Allegro and SDL helped, but they still required quite a bit of futzing to set up correctly.
I plan on using Python and Pygame, which make setting graphical modes, displaying images and so forth fairly trivial, but even those aren't the ideal instruction environment. Why? They still required leaving the web-based learning resource to work in a separate environment. The ideal teaching tool is one that could be embedded right in the learning resource, and can be used to make the resource interactive. JavaScript, Flash/Flex, Silverlight...
In such a case, one could provide an incomplete program that the student needed to fix, evaluate it immediately, generate a "test score" and show the working (graphical) program, all in the browser. That was my original ambition, but I figured that waiting until I got Flex/Silverlight toolchains and learned enough to build this RIA would stall for too long.