Article
i/2008/08/crayons

Programming, Pictures, Presentations or Prose?

Dave Mark on August 27, 2008

For this week’s discussion, Dave Mark introduces the subject of learning from different forms of media — in the context of game AI. Do you think reading code is valuable or a waste of time? Prefer downloading powerpoint slides? Let us know below!

From now on, all AI papers should be written in crayon!

In early July, I wrote in this space about how I was feeling a little inundated by the massive amount of research and discussion material that was out there lately. (My metaphor complained about how we had been getting hammered by severe weather in the plains states. My concerned readers will be happy to know that it hasn’t so much as rained here in a month. Be careful what you wish for, I suppose… I’m spending a fortune on watering my lawn.) My point was, it’s hard to decide what or how much to read. There must be a way of filtering things down so that I only use time on the most meaningful information. Do you try to touch on everything a little or do you just pick and choose things that you can get elbows deep into.

However, there has been something that has kind of fallen out of that original lament. I have begin realizing that a part of my filtering algorithm has been based around what format the information is delivered in. There are some things that work better in some formats whereas others are better delivered in other ways. Unfortunately, sometimes the information isn’t presented in that preferable format. Of course, sometimes that just isn’t possible. Still, I like it when people go the lengths to make digestion easy for me.

Less Code, Please

There are a few recent examples of how I just don’t have the calories to burn on something which should be very important to me. One such medium is SDKs or other forms of AI code. I downloaded the F.E.A.R. SDK a few months back — and I looked through it some. I also grabbed the AI source code for Civ 4 — which is really important to me with my specialization in strategy simulations. In neither case could I find the time to wade through it. I suppose I could have done it a little bit at a time… but just the act of remounting my brain to figure out where I left off is time-consuming. I often wish that there were road maps that pointed me straight to the important bits so I didn’t have to go through the mundane stuff. I want write-ups of what I’m looking at. I want diagrams of how the pieces and parts are working so I don’t have to assemble all the clues myself. (To be fair, I don’t even like looking through my old code that I haven’t touched in a while… but going through someone else’s sight-unseen is very tedious.)

More Code, Please

Code good? Code bad?

On the other hand, one thing I don’t like so much is presentations on what are ostensibly programming concepts (or programmable concepts) that don’t include code. Whether it be a book, whitepaper or blog article on a subject, there are times when grasping the concept would be just a touch easier, quicker… or at least more complete, if they were to include even simple code snippets. I will even accept pseudo-code at times. Now, I understand that for shorter things like blog posts, writing up sample code is asking a bit much. But I really appreciate the extra effort made by authors of books to show what they are talking about in code. In the AI Game Programming Wisdom books, for example, there is definately a premium on articles that have code — not just on the CD, but actually excerpted in the article itself.

Pretty Pictures, Please

Another form of explanation that really works for me is the visual side of things. If you can put example data in a table, do it. If you can assist in the presentation of a sequence of events by drawing a simple box and arrow diagram, do it. As I read on through the written material, my eyes will flicker back and forth to the diagram. In a way, it acts like an anchor for my thoughts. For more involved concepts such as entity relationships, this becomes even more important. If you are going to paint an example of how an agent will react in a situation, show me a simple representation of the situation.

Presentations are only as good as the presenter…

Uh, What Are These Pretty Pictures?

On the other hand, there’s only so much I can get from pretty pictures. Sometimes I really want to hear the person describe what they did (and by implication, what I should do). I find that I can often not only get more information quicker with a video or live presentation than I can get from a paper or code, but the quality of the transfer is better into my brain. I also know that he is not likely to bother saying or showing the fluff… but rather the sexy stuff. Coming full circle, however, there is going to be a wall in even the best presentation where I am going to want code to complete my immersion into the concept.

This is Grandfather Minsky... not Damián Isla. Thought you would like to know.

On a related note, there is nothing more frustrating than having some killer Powerpoint slides without the actual presentation available. You get all the teaser material but the content is missing. One of the best examples I saw of this recently was Damián Isla’s 2005 AIIDE presentation on “spatial competence” entitled “Dude, where’s my Warthog?” (7.1 MB ppt download) I was salivating in true Pavlovian style by going through the 44 slides of bulleted lists, images (many of which have multiple overlays per slide), and a one paragraph nod to “Grandfather Minsky”. However, without Damian’s dulcet tones to fill in the gaps between the bullets, I was left creating small puddles of drool on my desk. I needed more… I needed explanation… I needed it written out… I needed code. (BTW, my plan is to ply Damián with beer at October’s AIIDE Conference and get him to reprise this presentation.)

And The Verdict?

Another reason that this whole idea of various presentation methods has been important to me lately is… well… I can’t officially announce my reason yet. (Many of you know anyway - but give me a few more days before I go “on the record” with it.) Suffice to say, I will be doing some “presenting” of my own soon. I have had to ask myself over and over throughout the process (and will need to continue to do so), what is “the best way” of getting my point across? So, that brings me to my discussion question for the week…

How do you like getting your educational information? When is code a good thing and when is it over the top? When do you want detailed text and when would you rather have a diagram handy? When do you just simply have to have Damián a live person armed with Powerpoint or simply a paper napkin and a pen?

Discussion 3 Comments

JonBWalsh on August 27th, 2008

I don't think there's really an easy answer as pictures, code, etc. are all more about how they are used rather than if they exist or not. Still I do like seeing code during presentations. Not long blocks or anything but the meat of what's being talked about. I was reading a gamasutra article today about how you might do the physics of portal ( [URL="http://www.gamasutra.com/view/feature/3770/games_demystified_portal.php?page=1"]See the Article here[/URL] ) and I thought that the block of code really solidified the whole article nicely, though it does perhaps cover a little more code than is necessary. Any code you include should really outline whatever technique or algorithm that you're discussing. Code also 'speaks for itself' in many cases so someone viewing your slides at a later date can at least get useful information from the presentation by looking over your code samples.

ChrisJRock on August 27th, 2008

For me, the ideal is a descriptive title; a low resolution, eye-catching, and easily comprehensible sort of "intro" (most likely in the form of images) followed by a conceptual explanation with links or notation leading to details and technical explanations (containing actual math and code). I believe informative literature should generally allow the reader to navigate it as they would any tree-branching system, glancing through nodes and only exploring the paths of greatest interest to their final leaf. Still, as computational as this method sounds, designing an article to fit within it well may demand an artful approach. But if you're a programmer, it shouldn't be anything new.

emikanter on August 28th, 2008

I believe in both variety and parallelism. The same ideas should first be explained conceptually, then exemplified with pictures and methods, and actual game examples in videos/pictures. At last, a little code, but not of the whole thing, only the highlights. It should teach you one approach to the problem, not a program you're gonna transform into something else... Only concepts will let you with salivating without something to eat, and too much code is like too much food when you're not hungry, and it gets arid, boring... and no examples, well, that is just useless. I don't believe you should master techniques and then find out what they are good for. You can, and should, and will, find new uses for techniques you already have... but you can't master them in the first place if there's nowhere to use it. So, yeah, I like that. From general (concepts) to specifics (code), with the tasty (examples, variations, ideas) in the middle.

If you'd like to add a comment or question on this page, simply log-in to the site. You can create an account from the sign-up page if necessary... It takes less than a minute!