June 15, 2008: Lessons learned
Now that I've had time to review the source code I can reflect on some lessons learned throughout Episode 1. This will
undoubtedly result in more streamlined code for projects ahead as well as a more fluid development cycle.
So, here's a breakdown of those lessons in no particular order:
If it's 2:00 am there's no reason to be coding. At some point it becomes counterproductive.
There's no benefit to using a singleton pattern if static classes accomplish the same thing. There's no sense in
bloating code for no good reason.
Very few people like to "pixel hunt" during an adventure game; stay generous in the size of mouse-over regions.
Always code for the possibility of objects being null, especially event subscriptions. Even if you
swear something should never be null, be prepared for unexpected situations which challenge that assertion.
Don't key off an item's "inventory" flag when determining the state of a scene. That item may disappear
from the player's inventory, wreaking havoc on your state logic. Using a "locked" flag may be a better choice.
It's nearly impossible to achieve a seamless loop while playing a background song/sound using MediaElement.
The toughest part is gauging whether the game is too simple or complex. Players will inevitably have varying opinions
of the difficulty level, so provide a mixture of simple and challenging puzzles. Flow is what's important here; when a player
solves a challenging puzzle let them bask in their progress for a bit. Don't slam them right away with yet another
cryptic riddle.
June 12, 2008: An exciting first week!
Buddy Knavery got a boost right out of the gate last week when he landed on several blogs
in the developer community. Just when the first wave of momentum reached a plateau, he appeared on the
Silverlight Showcase at www.silverlight.net!
Many thanks to those who helped put this project on the radar:
Random Thoughts From A Certified Geek - Jason Ward
Yet Another Coding Blog - Avi Pilosof
Musings of a Client Platform Technical Evangelist - Tim Sneath
Andrew Coates ::: MSFT - Andrew Coates
June 5, 2008: Counting down the hours
Only a few hours before Silverlight 2 Beta 2 is publicly released... and here I am scrambling to tie loose ends
together so that Buddy Knavery is ready for primetime. What an amazing experience this has been.
The basic timeline as I remember it:
On March 4 I started dabbling with Silverlight. After seeing a point-and-click adventure game written in Flash, I
asked myself what it'd take to develop something similar in Silverlight.
On March 16 the character Buddy Knavery was born. The technical challenges were mostly overcome, now it was a matter of
wrapping a story around it all.
On March 22 the scripting engine was mostly in place. But the longest phase was still ahead of me -- drawing all of the scenes.
By May 30 the last scene had been drawn and the game was officially ready for Beta testing.
So what's next? Sleep. Lots of it. The last three months have been unreal, but it was a challenge to balance time between
my full-time job, this project, and other fundamentals like eating and bathing. Once my mind and body have
fully recovered you can bet I'll have lots of ideas slated for Episode 2.