Showing vs Telling

Published October 01, 2007
Advertisement
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.

Okay, I'm done for today.
0 likes 4 comments

Comments

TANSTAAFL
Back in the day when I was starting to program (which would be 20 years ago), I remember books and magazines with code listings in BASIC.

I didn't have to understand how BASIC worked, nor really much of anything else. It may as well have been magic.

I didn't need specialized tools and libraries that I needed to download and configure and understand the bazillion options of.

Between then and now, I have programmed in a number of different ways for a number of different platforms and a number of different languages.

Now, if I get to choose a language and environment to program in and for, I will choose &#106avascript in an html page.

Why? I can use Notepad++ as my code writing tool (I like it because it does syntax highlighting, and tells me the line number), Firefox to test it (the Error Console will tell me a line number that has an error if one exists), and Paint .NET to manipulate images.

It also supports a flexible style of coding. I don't *HAVE* to make class functions if I don't want to, yet I can still use objects.

The downside of this is that I have to bring my own discipline to my coding style, which a beginner would not have.

If I were to write a book again, I would use &#106avascript for teaching, and have it more in the &#115;tyle of the old learn to program books of the 80s. <br> <br>But I've pitched it twice, and there have been no takers. <br> <br>Other languages/environments you might consider: KPL/Phrogram and Scratch. Scratch has an interesting set of challenges, however, as many of the things developers tend to take for granted (arrays, strings) are just not present. <br> <br>Anyway, good luck. <br> <br>
October 02, 2007 09:34 AM
Oluseyi
Quote:Original post by TANSTAAFL
Now, if I get to choose a language and environment to program in and for, I will choose &#106avascript in an html page.

Why? I can use Notepad++ as my code writing tool (I like it because it does syntax highlighting, and tells me the line number), Firefox to test it (the Error Console will tell me a line number that has an error if one exists), and Paint .NET to manipulate images.

It also supports a flexible style of coding. I don't *HAVE* to make class functions if I don't want to, yet I can still use objects.

I completely agree with this rationale, and it is one of the reasons why I use Python. I can write a top-down, one-off script with no defined entry points or functions (my near-feature complete Pong game still doesn't have a main or any such), use objects and intuitive, powerful syntax, and refactor my code over time. The only advantage JavaScript has over Python, in my opinion, is the pervasiveness of its platform support via the browser (and the fact that ActionScript is just another ECMAScript variant, making the skills highly transferable).

Quote:The downside of this is that I have to bring my own discipline to my coding style, which a beginner would not have.

However the upside for a beginner is that the focus is on writing a program that works, not on satisfying compiler impositions per well-formedness and structure. For learning/instruction purposes, both JavaScript and Python allow the instructor (me) to defer addressing structural issues until the student has a grasp of operational issues, letting me introduce those gradually more difficult concepts over time.

Quote:If I were to write a book again, I would use &#106avascript for teaching, and have it more in the &#115;tyle of the old learn to program books of the 80s.<!--QUOTE--></td></tr></table></BLOCKQUOTE><!--/QUOTE--><!--ENDQUOTE--> <br>Way in the back of my mind, I'm considering putting together a manuscript if I get all the way to my third planned resource, as I'd cover a wide range of topics that I think are extremely valuable. We'll just have to see what happens. <br> <br><!--QUOTE--><BLOCKQUOTE><span class="smallfont">Quote:</span><table border=0 cellpadding=4 cellspacing=0 width="95%"><tr><td class=quote><!--/QUOTE--><!--STARTQUOTE-->But I've pitched it twice, and there have been no takers.<!--QUOTE--></td></tr></table></BLOCKQUOTE><!--/QUOTE--><!--ENDQUOTE--> <br>Self-publish. If the small first run does well, you'll be surprised how quickly the larger publishers will jump &#111;n it. Remember, they're in the business of mass marketing; where there is no obvious existing "demand" (read: hype), they get skittish. <br> <br><!--QUOTE--><BLOCKQUOTE><span class="smallfont">Quote:</span><table border=0 cellpadding=4 cellspacing=0 width="95%"><tr><td class=quote><!--/QUOTE--><!--STARTQUOTE-->Anyway, good luck.<!--QUOTE--></td></tr></table></BLOCKQUOTE><!--/QUOTE--><!--ENDQUOTE--> <br>Thanks, and you too! (Write that book!)
October 02, 2007 10:19 AM
Gaheris
Quote:Original post by Oluseyi
Video games are a visual medium, yet virtually all introductory resources/articles/tutorials are reams and reams of text.


Thank FSM that it is still the case. I can read multiple times faster than anyone can present and talk about a subject. For graphics stuff there is a wonderful invention called screenshot and of course the video.
October 02, 2007 11:22 AM
Oluseyi
Quote:Original post by Gaheris
Quote:Original post by Oluseyi
Video games are a visual medium, yet virtually all introductory resources/articles/tutorials are reams and reams of text.

Thank FSM that it is still the case. I can read multiple times faster than anyone can present and talk about a subject. For graphics stuff there is a wonderful invention called screenshot and of course the video.

I think you ignored that word in bold there...
October 02, 2007 12:17 PM
You must log in to join the conversation.
Don't have a GameDev.net account? Sign up!
Profile
Author
Advertisement
Advertisement