Welcome to the new site!

Well, it’s been a long time since I’ve written a real blog post, and this is the first one on my new site, so what do I want to talk about!? I suppose we should start with why I migrated to a new site to begin with!

There are two major reasons in reality. First, I needed a web host for some experiments I wanted to run, so I figured I may as well just catch up with the times and buy one. I’m only a decade or so late, but better late than never right? Second, I needed to have more freedom in what I wanted to say. Having my blog hosted on MSDN was great and all, but despite the disclaimer up top, the reality is that anything I say there is essentially the same as saying it as Microsoft. While it’s certainly true some folks go wild on their MSDN blogs, I never felt very comfortable in doing so.  Now, I’ll be able to say whatever it is that I’m thinking!

Of course, this also means that my MSDN blog is essentially retired as of now, but given the frequency (or lack thereof) of posts there, it probably isn’t a big deal anyway!

So, what do I want to talk about on this new site? Well, a lot of stuff I used to talk about on the old site, game programming, XNA, Xbox, and Windows Phone! For example, while my latest XNA book is already out (look to the right), should I consider writing a new one? Perhaps I should release a few games on XBLIG or the WP7 marketplace? I’m not entirely sure what I want to do yet, but now i’ll have the chance to do them without having to worry about speaking as anyone but myself, which will be nice.

It occurs to me that I forgot to announce a few things on my blog..

For starters, I never mentioned that I had left the XNA team here.  After spending approximately a decade working on XNA and it’s predecessors, I had finally decided it was time to move on.  An opportunity came up within MGS (Microsoft Game Studios) that gave me the opportunity to make games rather than enabling others to do so.  Since I had accomplished virtually everything I had hoped to with the XNA product, and the available opportunity was too good to pass up, I moved to the new group in June.  I did announce that move on my twitter account, completley forgot to announce it here!

Along side that, Dean and I have been hard at work with our book, which you can find out more information about here:


You should expect the book to come out around the same time GS4 does.

I would say that my new role probably doesn’t afford me a bunch of time to be blogging here, but since I didn’t even remember to blog about my move, I’m not sure that it matters anyway.  I don’t even know if people still read this!

My blog is a constant source of new and exciting information…

It’s been over a year since my last post, and despite my many promises to myself (and anyone who still reads this thing), I never seem to find time to post here.  Well, other than right now, since I obviously am doing it now.

A lot has happened since my last post.  We shipped Game Studio 3.0 and opened up the Indie Games on Xbox Live, although it was so long ago, it wasn’t even *called* Indie Games back then, it was called Community Games.  I’m sure everyone has heard about it by now, and I still think it’s awesome that you can sell games you’ve created.  Then again, we also shipped a completely new version since then as well in Game Studio 3.1!  Wow, I really am behind aren’t I?  We added cool new stuff like Avatar support in that version.

I even completely forgot about my annual Aprils Fools post!  Of course, I didn’t really come up with a cool topic for that anyway.  I’d make up something outlandish now, but that wouldn’t be nearly as effective since it’s September.

Speaking of Indie Games though, I think I’ve finally decided the game I’m going to write to ship there.  Of course, my idea is way too ambitious for my artistic talent (read; zero), and I have no idea where I’m going to find the time to actually write it, but no matter.  I will finish it and ship it and suffer the ridicule of the masses!

Maybe that will even give me the impetus for writing more here.  We can hope…  If not, lets hope I’ll remember to write something sooner than the next two versions of Game Studio.

Introducing XNA Game Studio Mind Edition…

I’m probably going to get in trouble for announcing this before any press release has went out publicly, but I find it hard to hold back my excitement!  The next version of the XNA Game Studio product line will be the “XNA Game Studio Mind Edition”.

I suspect everyone will want to upgrade to Game Studio ME as soon as possible because it will revolutionize game development as we know it today.  Gone will be the days of having to actually write code for the games you want to do create.  We decided to take our contest theme extremely literally and use that to build our next project.  Dream.  Build.  Play.

With the release of Game Studio ME, developers, hobbyists, pianists, small children, Nobel Prize physicists, and even Maytag repair people will be able to bring their dreams to life.  With our new Game Studio ME Brain Wave Actuator (patent pending) writing games is as simple as donning the new apparatus and taking a nap.  Shortly after you fall asleep soothing music will be played in the ear plugs that come with the device, and a series of electrical jolts will be given to stimulate your brain and activate REM sleep.  Once you wake up a few hours later, you can simply go to your computer and click the “Build” button in Game Studio ME (it will be easy to find, it is the only option available) and your dream will now be packaged up as a ready to play game!

I know what you’re thinking though.  Is this safe?  Here at Microsoft safety is our number one concern for our customers.  We’ve only had a handful of people die while using the device, and the number of people still suffering from serious mental defects from the electrical charges has shrunk by dozens!  By the time we have finished our beta testing, we fully expect the odds of serious injury to be less than 10%.  Speaking of beta testing, we’re actively looking for volunteers.  You’ll have to sign a waiver though.

I must also add that we’ve ran into one minor problem with our implementation however.  It seems in our zest to follow our contest theme no one took the time to realize that the majority of people don’t really dream about things that translate well into games.  As a matter of fact, some of the so called games we’ve seen have been down-right demented.  To help protect our interests (and your own) we’ve decided to upload a copy of everyone’s dreams to our servers locally.  Here at Microsoft though, we take privacy almost as seriously as we do safety, and you can rest assured that your private intimate thoughts from your dreams will be seen only by those who have a very real need to.  These people will include local law enforcement, Joe from accounting, and we will randomly play some of them during regularly scheduled team meetings.  You know how they say everyone has that dream where they go to school/work in their underwear?  If our team meeting videos prove anything it’s that this is a very real statement.

Since we know our customers want and need the new Game Studio ME as soon as possible, but we discovered this “problem” with the games being produced a bit too late for this product cycle, we’ve decided to release on schedule in the fall, and follow up with a service release next spring.  This service release will be a prescription you can fill at your local pharmacy, and we’ve dubbed it the eXactPill release.  You will be able to use Game Studio XP once it is released to control what you’re dreaming about by simply taking a pill before putting on the device, and thinking about whatever you want your game to be about.

While that is the latest and greatest news from my team, I also need to get a little personal in this space as well.  If there’s one thing I’m pretty sure of it is that people are desparate for information on what is going on in my life.  I’m pleased to announce that I was selected as one of the finalists for the prestigious National Award Given to Young Origami Understudies (NAGYOU).  With any luck my rendition of the two-toed sloth will bring home the prize.  I’m really hoping I win, because if I do I plan on taking the opportunity the prize money will give me to pursue my real dream in life, which I’m sure you are all aware is bringing back Boo Berries all year round, not just around Halloween.  Unfortunately though, the contest will pull me away from my every day workings, so I’ll be taking a leave of absence from Microsoft for a few years preparing by folding many pieces of paper, then unfolding them, and folding them again.  If my blog posts start to dwindle, this is why.

I have to admit, I feel excited to get all of this off of my chest now.  I haven’t felt this good in at least a year.  Must be something in the air.

Why CornflowerBlue?

This post will be purely speculation by me!

Take a time travel machine back in time to early 2003.  It might have even been late 2002, but I think it was 2003. I was coming up with the concepts and code that would eventually be my first kick start book, and was rendering everything on a bland black background.  For some things, black makes sense, but it’s hard to see shaded objects (and particular shadows, etc) on black objects.  Black in general is a horrible color to use as a clear color.  If you clear your scene to black, then render a model and see nothing but black, what went wrong?  Was the model not drawn because your camera is facing the wrong way?  Was the model drawn, but not colored because your pixel shader wasn’t set?  You could tell the difference if your background wasn’t black.

I needed something brighter, and white was out of the question.  I can stare at a white screen all day as I type text, but a white background with a single 3D object on it is just too contrasting and is ugly in my opinion.  So i needed a color that was light, but not too light, dark, but not too dark, and it needed to be something that I would feel comfortable using for just about anything.

So, as I was inside visual studio, I typed “System.Drawing.Color” then hit the extra period and started scrolling through intellisense, stopping at ones that sounded promising and trying them out.  I eventually narrowed it down to a light shade of blue.  I had narrowed my choice down to “LightBlue” “DodgerBlue” “PowderedBlue” “RoyalBlue” and “CornflowerBlue”.  For various reasons I eliminated a couple more and came down to a list of three left.

I had to choose between CornflowerBlue, RoyalBlue, and DodgerBlue.  I tried various models on each of the background colors, and finally decided that RoyalBlue and DodgerBlue were too “bold” and contrasted too much, but CornflowerBlue was a much more “calm” color, and everything I tried looked good against it.  Plus who wants to use a color called “RoyalBlue” or “DodgerBlue” when “CornflowerBlue” is such a cooler name.

If you’ve read my Kickstart book, the vast majority of sample code in there clears all of the backgrounds to CornflowerBlue.  Every sample I’ve written since that point in time does as well.

Can I say with any sense of certainty that everyone else uses it because I did way back then?  Probably not, I’m sure there are people who haven’t even read that book!  At times though, I like to delude myself and think I started the craze way back then. =)

Not quite what I had in mind…

Well, so far my promise to myself to write new blog posts more often has been working out well.  I’ve almost written as much this week as I did the entirety of last year (and I have to admit, four blog posts over the course of a year is pretty pathetic, which is what I had last year).

This post though doesn’t have any interesting anecdotes from our latest release, and in fact isn’t even about XNA Game Studio or game development at all!

As part of my exercise of “writing more” one of the things I had to do was go back and see what I was writing about back in the day when I was enjoying my blog posting, so over the course of today I went back and re-read every post I ever made.  It was an interesting experiment to say the least, I’m surprised at the number of things I read that I just had completely forgotten.

A couple of the posts I found were related to World of Warcraft, which is what this post will be about.  They were about a year apart, and they were each essentially scathing reviews of the state of the game.  While I most likely really did feel so annoyed when I wrote them (and had cancelled my account each time), the fact remains I still play the game to this day.  While many people bemoaned the expansion and how much it “changed the game”, I for one, enjoyed the changes.  There is much less of a brick wall when you hit the level cap than there was before, and there are plenty of things to do regardless of what type of player you are or were.

In my original WoW life, I was a “hardcore raider”.  We raided every day from 6:30 until 11,12, whenever we felt finished for the night.  We cleared Molten Core, Onyxia, Blackwing Lair, ZG, AQ20/40, and Naxxramus (although to be fair, I left the guild after BWL).  My schedule became to the point where I couldn’t meet those demands and amongst other reasons I left that guild.

That began my second WoW life, where I decided to start over on a PvP server.  I won’t get into my philosophies on the pvp servers because I don’t want to be inundated with a series of “l33t speak” that I don’t understand telling me how much I suck.  I maxed out multiple characters on the pvp server, killed thousands upon thousands of my “enemies” (there were no cross server battle grounds back then), and there is absolutely no doubt in my mind that the pvp ruleset isn’t for me.  I am a carebear through and through apparently.

Around the time I was realizing this and getting frustrated though, my original “hardcore” characters had the option to move.  My old server was too big and had queue’s every night, and all characters were invited to move to another new server.  Sensing this was a great time to see if I still enjoyed the game without the pvp annoyance and removing myself from the pressure of raiding constantly, I moved all of my characters to the new server and started playing again.  I joined a little guild, had a bit of fun.. They merged with a huge guild and I considered that a big mistake for a variety of reasons.  Shortly after that merge, I left the big guild, and reformed the old little guild, bringing most of the original members back.

So now I’m the guild leader of some random guild on a brand new server.  We were the definition of casual, and happy that way.  Well, most of us were.  Some were annoyed we weren’t doing the big 40man raids (I’d already seen so much of Molten Core i never wanted to step foot in it again), and they left.  The beta for the expansion was just around the corner though, and that’s where we all started playing more again.  Everyone in the “core” of the guild was in the expansion beta as well.

Once the expansion came out, I decided the name of the old guild was stupid, and we needed to find a much more stupid name to call ourselves, so I kicked everyone out of <Dark Crusade> and created the guild <Less Than Three>.  For those who are “unaware” Less Than Three is <3, which is an emoticon for a heart.  Naturally, our guild tabard is pink with a heart.  That still annoys some people, but eh, I get a kick out of it.  So anyways, the expansion came out, and we were invigorated, so many new quests, so many new dungeons, so much to do!

So we all leveled up with varying levels of speed, and ran all kinds of dungeons along the way.  It was good fun.  Eventually we got to the point where we decided we were ready, we were going to run a “heroic”.  We were going to collect epic loots and slaughter the place.  We decided we would try heroic Slave Pens because at the time you needed revered reputation to run a heroic and that was the easiest faction to get rep with, and on top of that was supposedly one of the easiest heroics in the game.  We gathered at the entrance, we walked in, we were ready to do great things.

We wiped on the first pull.  Twice.  We wiped on the second pull.  We were all red before we got to the first boss.  We did kill that first boss though before we decided we weren’t ready for heroics yet.

Looking back at it now, it’s pretty funny, but at the time, the thoughts were “Holy crap, this is impossible.”  We yawn through most of them nowadays, but I always look back at that first wipe fest with fond memories..

Anyway, finally around November of last year I decided as a guild we needed to start doing more, and that meant Karazhan.  As I stated earlier, we are an extremely small casual guild, but I figured that doesn’t mean we were bad players (half of us came from the hardcore raids back in the day), we were just not focused on being #1 anymore.  When I say small though, I mean not even large enough to run Karazhan (ie, less than 10 players keyed).  We had all the core classes covered though.  We had enough tanks and healers, all we needed was DPS classes.  I figured we could just find random pick up group (PUG) members to fill out our DPS slots, and that’s what we started doing.

We had some success too.  Soon we were killing multiple bosses and things were going well, when we eventually hit a brick wall.  We had gotten to the point where we could take just about any random PUG and clear through Curator.  When I say any random PUG, i mean just that as well.  We’ve had a PUG who did half the damage I did (I’m the main tank).  We’ve had a PUG who went out of his way to break any crowd control that existed.  We’ve had a PUG who decided to use his pet to pull a group of mobs that weren’t even in the same room as us.  Actually, that was all the same guy.  He didn’t understand why I didn’t invite him back next week because of how awesome he was.  Where was I?  Oh yeah, brick wall.  Shade of Aran was our brick wall.

This is what Shade of Aran had taught me.  At the time, the majority of our raids were made up with 8-9 guild members and 1-2 PUGs.  I learned that we could 8 man every boss up until Curator, and that we could 9man Curator.  I also learned that a random pug in all greens who doesn’t understand the need to stand still during Flame Wreath is a recipe for disaster.  Unlike any boss before it, Aran punishes players for doing things wrong, and if there is one thing you can count on a pug doing, it’s “something wrong”.

So, I started trying to recruit players to help us out.  I talked to all of the PUG members we had with us that went well, but most of them were in established guilds and were with us on an alt for easy/free badges and loot.  The ones interested in joining were the ones who were horrible.  This is where I learned that I am a horrible recruiter.  I simply cannot do it at all!

Which brings us to this extremely long winded post!  Consider this my last lame attempt at recruitement.  Our raid times are pretty inflexible (given our small size and the schedule requirements of some of our members), but our normal raid nights are Friday and Saturday nights, from 8pm to Midnight pacific time.  We have killed all of the bosses in Karazhan with the exception of Prince, Nightbane and Netherspite (see my note on pugs above), but hope to have those done soon.

So, if you’re interested in raiding Karazhan (and eventually Zul’Aman soon) on those days, and random other dungeons throughout the week (all in the evenings, we’re all at work during the day you know), you should contact me!  If you’re a warlock, even better, since all our current warlocks are alts of characters already in Kara and some bosses (I’m looking at you Illhoof) could really use a warlock.  I really don’t care what class you are though.  Do you want to tank?  Awesome, that means I could bring an alt sometimes.  Want to heal?  I’m sure our healers would like to bring an alt sometimes too!  Got DPS, that’s awesome, we always need DPS.

Now, we’re a pretty accomodating guild for the most part.  I’m entirely too helpful for my own good most times.  Given the extremely public nature of this post though, I’m going to have to be a little more particular on the things I am looking for.  I understand the concept that beggars can’t be choosers, but I don’t feel like being taken advantage of and helping someone get ready for raids with us just to have them disappear.  If you want to create a new character on the server, we’ll help you level up when it’s convenient for us, but it won’t be all that often.  I’d much rather if you were already level 70 and keyed.  If you want to tank in Kara, you’ll need to be uncrittable, and have a minimum of 12k hps and 12k armor (20k if druid).  If you want to heal, you’ll need at least 1000 +heal, and preferably more, along with a decent mana regen and mana pool.  If you want to DPS, I hope you can sustain 400+ the entire run.

To be honest, I hate putting any kind of preconditions on it at all.  However, i think what i have is pretty reasonable.  I don’t care what class you are, what spec you are, so long as you are a good player, you’d be welcome.  So after all that, if you’re still interested, you should contact me, either here on these boards, or in game.  We play on the Eitrigg server as Alliance, and you can contact any character that starts with “Miller” in the guild <Less Than Three>.

We have a web site as well at http://lt3.darkcrusade.org (as you can see our old guild name remnants still exist), but it’s been flaky the last few days to say the least.  Hopefully it is resolved soon.

P.S. How sad is it that I’m posting a recruiting post on my blog?  I almost feel dirty.

Why purple?

One of the things I’m going to try to do this year is write more on my blog.  The publisher for my books is hoping I’ll write something new for them this year as well, although at the moment I don’t know if I’d have the time, or what I’d write about anyway..  Anyone have suggestions on topics they’d like me to cover in a book or a blog post?  Shawn normally goes a great job staying ahead of the curve so the possibilties of topics diminishes some. =)

So for now I’m just going to post a random anecdote that was asked in our internal alias one day..  Why does the framework clear the targets (render targets, back buffer) to purple when RenderTargetUsage.DiscardContents is turned on?

When I originally implemented that feature, I wanted something that jumped out at me and was extremely noticeable.  I picked the brightest, most obnoxious shade of neon green I could.  It did the trick, it was instantly noticeable when it was there.  As time went on though, I kept seeing it all the time, day in, day out, over and over again.  It irritated me something fierce and eventually I decided I just had to change it to something much less obnoxious, so I picked a dark purple.  The intention was to switch it back to the bright neon green before we shipped to ensure everyone got to experience the joy that was that color.

As time went on though, we all got used to the purple.  It was pretty quickly and easily recognized and that was the goal for the clear to begin with.  Why torture everyone’s eyes and have them all hate me when everyone is soothed by the purple?

So, why purple?  To avoid the hate mail that would have come from the original neon green!

Gamefest (or “I never seem to write blog posts anymore”)

Well, Gamefest started today, and with that our team blog posted a new announcement.  Exciting stuff!

I also realize I rarely update this blog.  I’d love to say that I’m working on improving that, but the truth is, aside from being busy, I have I guess what you’d call “writers block”.  Nothing interesting to really talk about work related that isn’t being covered by someone else.

I’ve considered switching to the Live Spaces thingy and writing more often, but it wouldn’t be anything like the things I write here, and I can imagine the few readers i have left aren’t overly interested in the ramblings of whatever i’m thinking about at the time.  Besides, i’m sure most of that stuff would simply get me in trouble anyway.