I'd posted this on my blog but I decided to delete it after no one commented nor e-mailed me.. I was like, what are they thinking? "LOSER!" ?? "Poor guy" ? "What an idiot." ? Or, what I'd hoped for, "I was there, and despite you panicking, it really wasn't that bad! Can I have a copy of your PowerPoint slides?"
On the other hand, there's the Club forum! If nothing else, I hope anyone planning on doing an educational XNA session can glean from this lame experience.
Speaking of those PowerPoint slides, the PowerPoint 2007 file, which originated from Microsoft Canada's game camp files till I did some tweaking and a few additions, and of which I only used the first nine slides before pulling out and trying (and failing) to jump into coding up a complete and simple game, can be had here:
http://www.jondavis.net/misc/DesertCodeCamp07_XNA.ppt
---------------------
I was faced with something of a moral dilemma @ Desert Code Camp. I tend to do fairly well with presentations, but really make a mess of things if adequate preparations aren’t properly made ahead of time. By the time the deadline (per communicated ideal) came around for the camp director to receive a notice of cancellation, I was fairly confident that I had adequate vacation time scheduled to prepare for my two sessions. Then my boss told me to cancel one of my four-day weekends, to shorten it to three. Things weren't going well at work for me that week, either, so I went the extra mile and shortened it to two (a normal weekend).
By Monday of last week after said weekend, I knew I was in for a real disaster. I couldn't cancel, at least not without feeling horrible about it, and I knew it was too late to be ready to really deliver something of excellence. We got our final e-mail requesting last-minute cancellations, and I held off replying.
I suppose in the long run I'm glad I didn't cancel, but I certainly felt bad for the people attending. Fortunately, they weren't paying a penny to be there, but they were giving their time.
But I did blow it today, at the Intro to Microsoft XNA session. Although I had spent some time wading through background information and slides I had taken from Microsoft, I decided not to bring my Xbox 360 after all, despite spending $150 on video conversion equipment, because I didn't want to haul my Xbox 360 and my laptop on a ten-minute walk in the heat of the 110 degrees Phoenix sun (there is no parking available at the location, I had to park across the street which meant waiting for not one but three slow-changing crosswalks, and a climb / jump over a parking lot wall). Plus in yesterday's session the presenter didn't leave until well after my session was supposed to start and I didn't want to run the risk of spending too much time setting things up. So I crammed a coding session rather than a demoing session at the last minute, preparing a simple 2D game that took me 3 hours last night and this morning to piece together. I intended to just copy-and-paste my way through it, but didn't have time to practice, particularly in a multi-screen (laptop and projector) environment. And actually that latter part was the killer, my biggest mistake, the belief that it's a good idea to use seperate display modes for each screen. That works fine for prefab stuff like PowerPoint, but not when you're trying to stare at the projection to write code. I also didn't have my LAN connection set up ahead of time, and I was going to show off http://creators.xna.com/ (and originally with the Xbox to log into my account so I could push code to the console) but of course it didn't come up.
So I was painfully disorganized, and so as the code I was adding wouldn't compile, I had to sit there blushing and squirming while thirty attendees sat there quietly breathing on my neck. I couldn't get assistance from any of them, either, because I didn't know any of them (hence didn't get preparation help), and XNA is still very new so I didn't luck out. So after ten minutes of this, "Hmm, why is that null? Wha? Go! What's wrong?", one older attendee just jumped up and stormed out. So I was like, phooey. Screw it. I demonstrated another starter kit and one or two more demos, and then basically said, "Alright, I'm just going to pull up XNA Racer, wait for it to compile, and play it until you guys leave the room." They had all cleared the room before I got the thing compiled.
Wow, that was bad. *shaking my head*
Fortunately they did get ten or so minutes of simplified PowerPoint presentations and an obvious history of DirectX and its evolution. They also saw some demos of the technology running on Windows. So they didn't go home completely empty-handed. I sure felt horrible, though.
While I could continue to beat myself up for not being fully prepared, I think the biggest lesson learned is that one should never do one of these presentations, particularly if its a distracting one (like game programming) or one with extra logistics (like the whole idea of hauling in an Xbox 360, or setting up the network) without someone willing to buddy up with you. That person should hold you accountable, be a test audience to give you feedback, lend a hand in setup, and be able to sit in during the session to help spot my mistakes and to help answer questions (or produce artificial ones, to keep interesting questions flowing).
Sadly, I am still lacking in the "lots of friends" department. Far too geeky, I guess, being such a homebody...
Edit: On the other hand, no, I take that back. The biggest lessons learned are the most obvious ones: 1) prepare to an acceptable extent first, then volunteer--even if you it's too late to volunteer by the time you get there, if nothing else, you firmed up your learnings--2) plan on coding at a Code Camp, not just talking abstractly and raving and demoing others' work, 3) rehearse at least a week ahead of time, 4) cancel if not ready by the cancellation deadline; the self-inflicted pain is just not worth it, 5) make the most of the slides; if you have 24 PowerPoint slides, don't show only nine when there is still time left over, 6) don't panic when things go wrong, and have a back-up plan prepared if you cannot pick up the pieces, 7) if someone asks an IDE question ("if I write code that doesn't run on the Xbox, do I at least get a warning?") don't just nod your head, SHOW it!, and 8) if you must end the session early, DO NOT TURN YOUR BACK TO THE ATTENDEES AND SAY "So um .. ima load, build, and play XNA Racer starter kit again and just keep playing it until you guys have cleared the room.." !!! For Pete's sake, at least thank them for coming, let them go, and invite them to stick around and discuss stuff.