NaNoWriMo starts tomorrow…

I’ve always wanted to participate in NaNoWriMo in years past, but never did because I was afraid of spending so much time writing. Afraid my ideas wouldn’t be good enough or coherent enough or that I wouldn’t want to “waste” so much time doing little more than writing. That was before I actually got the nerve to release my first fiction book. It was liberating and I enjoyed it much more than I thought I would, bringing an entire new world and story alive. Leaving readers with a sense of moral uneasiness with enough ambiguity to wonder what happened.

So this year, not only will I participate in NaNoWriMo, my second fiction book will be published at the end for whatever I come up with. It’s a little scary still truthfully because here we are the day before starting, and I still have no idea what the story will be. As I mentioned before, I have a lot of ideas in my head, but they’re all intermingling and nothing really coherent exists in here at all. So this should be fun and interesting. To abuse a quote I’ve read in my past, I’m just going to start writing, continue on until I reach the end, and then stop. The story should take care of itself.

You can never finish something if you don’t start.

Public Education is broken..

As the title implies, I’m not a huge fan of public education, but I also don’t want you to think that means I don’t value education or teachers in particular. I believe most teachers try to do the best job educating youth as they can. I believe that some are even trying to make the huge changes our education system needs but are being thwarted by circumstances out of their control. I believe teachers have one of the hardest jobs in the country, I believe teachers are underappreciated, and I believe they are underpaid. Keep this in mind during the rest of this diatribe. I’d also like to pre-apologize for the length of this post, because I already know it will be long.

For those who are unaware, I will give a bit of history of myself. Many people would consider me “successful” (based on their definition of success) since I work at Microsoft, make enough money to provide for my family, have a house, wife, kids, etc. You would find many people who think my life fits the “american dream”. To be clear, I do consider myself successful, but I define success in a much different way. I am successful because I enjoy my life and do the things that I love to do. Anyway, I want to start this out with a story about my past, since I didn’t exactly come to this “success” in the ordinary way.

In 1982 I was in second grade and I was seven years old. Now granted, I was very young, but even at that young age I had been through enough in my life to know a simple truth. When I “grew up”, my life would be different than what it was then. I won’t go into huge details or a big “woe is me” story, but my father was gone, and my mother (while trying her best) had problems of her own. Things got better as time went on, but I knew at an extremely young age that no matter what I was going to *be* when I grew up, I knew it would be something more than what I saw around me. Education was my ticket out, and I knew this because my teachers told me so. This meant that I was going to be the best student I could possibly be, as that was the only way out.

Now, in 1982 and in second grade, this was easy. School was little more than memorization of facts, and I had lucked into a remarkable memory. Even today, I can remember some extraordinary things from a very long time ago. If it’s a fact I am supposed to remember, I remember it for a significant amount of time (although to be fair, if it’s mundane useless knowledge like what I had for dinner 3 days ago, i probably couldn’t tell you). I was also lucky in the sense that I didn’t go to a “normal” public school, but instead the education system had decided I could go to a “magnet” school. I can’t actually tell you what the qualifications for this type of school was, or if it was really better, but they told me it was and I was 7, who was I to argue?

The teachers all agreed on one thing though. I was “smart”. Of course, to them, what “smart” meant was I could memorize facts better than anyone else in the class (and probably better than the teachers themselves). This obviously meant I was “gifted”, and they could tell that I was bored. While it is very true I was bored, their solution to “fix” my boredom was puzzling. They decided that what I really needed was to be advanced to a new grade. So halfway through my second grade year they asked my mother for permission to take me out of my second grade class and put me instead into a third grade class. My mother was worried about this (I was already small for my age) and she thought this would just make things worse for me. She thought “bullys” would pick on me since I would be even smaller, etc. After some persuasion from the teachers though she relented and I packed up my desk and moved to the third grade.

Now, I had missed the entire second half of the second grade curriculum as well as the first half of the third grade curriculum, so obviously I was going to be very far behind right? Most people who believe that the job of education is to teach children would say that I almost certainly had to be behind. The fact was though that I was not behind in the slightest because the goal of education (particularly at that level) was not to teach me anything, but rather to measure how well I could remember facts, something I was already inherently good at. So now I was in third grade, still getting straight A’s, still just as bored as I was in second grade. For me, nothing had changed at all aside from the person giving me the facts to memorize and the other kids sitting near me in the classroom.

This went on for years. I would go to school, do well, get essentially perfect grades and I would be bored out of my mind. They tried to get me to skip other grades but my mother couldn’t be convinced again, I can’t really decide if that matters anymore. I doubt I’d be in any different spot now than I am had she chosen differently. To be clear, I absolutely despised going to school. It was so mundane, dreary and absolutely boring. I put up with it because I believed that it was the only way to get out of the situation I was in though, and I made sure I did well. Fast forward a while.

Now, in 1991, I was a Junior in High School and fifteen years old at the time. Nothing had really changed yet, math occasionally had me do something more than memorize facts (albeit not really), and not a single class had really ever given me a lesson or assignment where there was more than a single answer. In the real world here, it’s very rarely the case that any given “problem” a single right answer, yet that’s the way the majority of lessons are taught in school. Along with being a teenager who knew everything (as most teenagers seem to), by this time I had also grown disenfranchised with the entirety of the public education system. I had straight As in all of my classes, I was a model student the teachers would tell you, and I was completely sick of it. I could have passed the G.E.D. test probably in 5th grade (and probably earlier, that’s just when I happened to see it the first time and realized how easy it was). Why was I going to school at all?

It was a bit of an epiphany for me at the time. I no longer believed having an education was my ticket out of the situation I was in, and I found the entire idea of school to be ludicrous and beneath me. So in my 11th grade year I decided I would simply stop going and that’s what I did. Now, I was still a kid in the eyes of the law, and public education is compulsory. I (along with my mother) could actually get in legal trouble for me not going to school, particularly if I was out roaming the streets. I had a friend at the time that was older and most days would go hang out at his house doing things that young teenage boys would do (playing games, watching movies, etc). School was the last thing on my mind. My grades naturally suffered for it, not because I no longer knew the information (i still did, my memory hadn’t changed at all), but because I wasn’t there to turn in assignments.

When my mother found out what I was doing, she was livid. I was punished, read the riot act, told how I would never amount to anything, all that fun stuff. My teachers had equally dire warnings; I was throwing my life away, not living up to my potential, wasting my talent. What talent exactly though? My “talent” of being able to memorize everything? If you would have asked me why I was doing this back then I probably would have told you it was boring (because it was), but I couldn’t actually articulate the real reasons like I can now. A few years before this I had discovered computers and before that had discovered computer games. I was completely enthralled by them, that was what I wanted to do with my life and I knew it then just as I know it now. I took all of the computer courses in school, but for whatever reasons the teachers responsible for those courses had no knowledge to teach computer programming.

So here I was, a young kid but I knew exactly what I wanted to be when I grew up. What’s more, I could see that education, and this school in particular didn’t have a path leading to it. Coupled with the average teenage angst and rebellion most kids go through it is easy for me to see in hindsight what happened. I went to school enough the rest of that year to barely pass all of my classes (ruining my GPA in the process) not because I believed it was important, but really just to please my mother. She felt it was important that I graduate High School, so I did. I found college to be a complete waste of time as well but my little story has gone on long enough so I won’t get into that portion. Suffice it to say I didn’t attend college, and look at me now. I’m still just as successful now as I would have been had I gone.

Fast forward again to now. I have two kids both in the public education system. My son is now a junior in High School just as I was earlier in my story, and he is essentially just like me. My daughter is two years younger, and she is very little like me. My son has a memory much like mine and he can memorize any set of facts he needs to. However very rarely does he actually do it because he doesn’t see the point. His grades suffer for it as well since despite knowing the material, he doesn’t bother doing any of the work or even when he does do the work he can’t be bothered to turn it in. My daughter on the other hand gets great grades. Teachers and people who look at each of my children via education transcripts would invariably agree that my daughter is “smarter” than my son. Yet, if you asked her that question, I bet she would say that she was not. Hell, she asks him for help with her homework because she knows that he will know the answer and be able to explain how to do the work to her. Why do they think she is smarter? How can the people in charge of education and who “define” what intelligence is be so mistaken about the reality of the situation? To be clear, I’m not saying my son *is* smarter than my daughter, I think they both excel at different things.

I am a huge fan of Sir Ken Robinson and I share a great deal of his views on education. People familiar with his lectures and books may find many similar ideas in the things I’m about to say. I fully support and agree with his contention that we need to drastically restructure the way education is doled out to our youth and redefine what intelligence really is. From my own experiences though, here are a wide variety of things I don’t understand.

Why is school taught from 6am until 2pm? I am most certainly *not* a morning person at all, and I know this about myself. It has little to do with the amount of sleep I get I’ve discovered. If I get 8 hours of sleep and wake up at noon I function better than getting those same 8 hours of sleep and getting up at 6am. Honestly, I could get 4 hours of sleep and wake up at noon and function better than any amount of sleep waking up at 6am. I simply can’t think straight in the mornings. I rarely do great work before the mid-late afternoons, and I do my absolute best work late in the evenings. In the real world at my job now, I’m normally the last one into the office, and many times the last one to leave. I get the majority of my work done much later in the days than many coworkers. There have been plenty of studies that show that some people work better in the morning, some people work better at night. Why are public schools all run in the morning, and not only the morning, but so early in the morning?

My son is just like me, and at 6am he is barely functional. When I was in school, I was barely functional then as well. I suppose it’s a good thing that school never really required us to think because we simply can’t. Yet all schools seem to enforce this notion. Why? Not only is school boring, but I resented it for making me be awake when I didn’t want to be. I’m sure there are a class of people who would say to this “quit whining, and just deal with it” and these people are missing the point. Nowadays I’m an adult, and if my job required me to be fully functional and become a “morning person” when I didn’t want to, I wouldn’t “just deal with it” at all. I simply wouldn’t take that job. Kids don’t have that choice though, school is required, and that’s when it’s taught so that’s when they go. Of course, the “quit whining and just deal with it” mentality is part of the problem. People take too many things for granted, such as the notion that school starts early, or that kids should be taught in groups by age, or that the entire concept of education works the way people thinks it does.

Why are some subjects in school considered more important than others? Why is math so important? There are many jobs in the world where math isn’t useful (or used) at all. I picked math intentionally because I loved math, and math is used extensively in my line of work. However it only is used in one of my passions. Readers of this are probably aware I love writing as well, and math is essentially useless for that. Why are the languages so important? They’re very useful in my writing of course, but almost useless in my development job. Plus, if you look at the grammar of the majority of young folks in the world today on various social media platforms, you could argue they aren’t listening anyway. Why is history considered so important? I’ve never once in my life thought to myself “Whew, I’m glad I knew that the hundred years war lasted more than a hundred years.” Well, aside from when I was playing Trivial Pursuit. Why was science considered so important, what point did learning anatomy and physiology have? I didn’t want to become a doctor or a nurse, and I’ve never once needed that knowledge in my life.

On the opposite end of the spectrum, you know what I have wondered in my life before? “Why don’t I know how to dance?” Why isn’t dance taught in school? Why is dance, or drama, or music relegated to second banana in school while math, science, languages and history are bubbled to the top? I’m sure you’ve all heard a teacher say that you should ignore music, you won’t grow up to be a musician, or artist, or dancer, or any other variety of things. Do we expect people to grow up to be history teachers or lawyers though? Are all kids going to grow up being a doctor or nuclear physicist? Why would the public education system ostracize some subjects while pushing others down kids throats.

Kids nowadays are inundated on all sides by a menagerie of distractions. This age is a completely different world than when I was growing up. Information is everywhere and I could probably learn more in a single night browsing the web than I ever learned in the entire course of my public education. When I was young I had very few distractions outside of my own imagination. We had 7 television stations, the radio and books. Nowadays kids have the internet, video games, books, hundreds of television stations, computers, mobile device, so many ways to be distracted, and then we punish them for actually being distracted. We would rather them pay strict attention to school work, which almost everyone agrees is the boring stuff! Most kids find some subjects boring (for myself it was all of the languages, history, and health type classes), while they find other classes to be quite fun and interesting (again for myself those were math, and some of the sciences such as physics). The lucky kids will find some of the “important” classes (important in the eyes of education) exciting and useful. The unlucky kids will not, they will find something like dancing or theater exciting and they will be told (even if only implicitly) how useless those desires are and how they should instead focus on things were they have no passion. Why?

People like to often say that the “smart” kids who do poorly in school are simply lazy. I am very guilty of this myself, having told my son that I thought he was being lazy by getting poor grades when we both knew that he *could* get better grades if he cared enough to try. It strikes me that the last part of that sentence is the important part though, if he cared enough to try. The fact is he does not care enough to try and I have a hard time convincing myself that he’s wrong here. The classes that are exciting to him (math, etc) he does well in, getting A’s in almost everything. He’s bored in those classes as well, but he finds the work exciting enough to do well. The classes that he has no excitement in whatsoever (English, history, health, etc) he does poorly in, so much that at times he is failing (or has failed) those classes. He will do fine on the tests and in class assignments, but his grades suffer because homework and the like he sees no point in doing so he simply doesn’t. The zero’s he gets on those assignments bring his grade down, yet it is plainly obvious that he knows the material by the test scores.

So if the goal of education is to teach this boring material, and the student demonstrates he knows the material, why would they be failed? The easy answer is because the goal of education isn’t to teach the material and if this wasn’t such a long post already I would argue the real goal of education is to cultivate a bunch of young workers who obey instructions blindingly, but I will digress from that topic until another time. You could make the argument that turning in all of your assignments on time teaches responsibility, and while I can see the merits in that argument it falls flat to me.

Instead, people call these kids lazy, and as I said, I used to believe that as well. Why? In the real world, if I’m told that I have to do something boring that does nothing to advance the things I love, I don’t just accept it and blindly go do that boring thing. No, I either do not do it or I find something else to do. You would be hard pressed to find anyone that would call me lazy though because everyone who knows me knows that I work hard and do a damn good job at the things I do. I do such a good job and work so hard in these areas though because the things I do are the things that bring me passion. So why, when I do the exact same thing as these kids do, I’m celebrated for it while they’re called lazy? They’re making rational adult decisions, the same ones I would make, and being punished for it.

My wife and I have vastly different ideas about the role of schools and public education in general. She very much believes in the myth of public education and considers school to be a vital part of a young person’s upbringing. You can imagine that the “struggles” I’ve described my son as having above are extremely frustrating to her. So while I do disagree with a lot of her beliefs in this regard, I do find it important that parents approach kids with a united front, so when we discuss these things with the kids, we do so from her point of view (or I should say we usually do).

I’m sure that many people would think that one of our kids doing poorly in school means that the parents simply don’t care, which also couldn’t be further from the truth. In order to get our son into the mode where he’s “doing well” in school we’ve tried countless different options. We’ve tried rewarding good work, punishing “poor” work, strict rules, all the way to treating school just like a job where his grades determined his “pay”, and privileges were “bought”. None of these things changed where his passions were or his behavior, and really, why would they? Let me tell you another story.

In 2004 while I was working at Microsoft I was developing some amazing technology. I loved my job, and my passion for my work was immeasurable. My wife was annoyed because I loved my job so much I would lose track of time and work very long hours while she was home alone with the kids. The management of my group at Microsoft though did not find my work to be valuable and decided that instead of continuing that project I should instead be reassigned to a completely new project they needed help with. This project contained none of the things I was passionate about though, and I told them as much. I said no, I didn’t want to do it but was given the choice of doing it or finding a new job.

Now, I seriously considered simply finding a new job. The only reason I didn’t do that immediately is because the project I was working on originally was so important to me that I was afraid it would be lost completely if I did and I didn’t want that. So I was faced with a tough choice, doing a job I knew I would hate and keeping the project I loved alive or abandoning the job I loved and go find something new. Meanwhile the management in my group knew that I did amazing work so they decided the best way to convince me to do this new project was to bribe me. Now granted, they never told me they were “bribing” me, but that’s how I took it. For years they hadn’t cared about all of the hard work I had done, and now all of a sudden when they want me to do this new job they gave me an award for a lot of money for all the “hard work” I had done.

I had already decided I would stick around though because I had decided that losing my original project wasn’t something I was willing to do. I was given an incentive to do a good job (essentially promised a promotion), was given an award to try to help motivate me to do a good job, and I knew the punishment I would face if I didn’t do a good job (low review scores, no raise, no bonus, no stock). This is a very similar situation to my son and his grades on the classes he finds boring. So what did I do? I was an adult, very rational thinking with very clear goals. I obviously did a good job on the thing I hated and the story has a happy ending yes?

Of course not. I despised the work and found every excuse I could to not do it to the point I was eventually taken off the project completely. It is still to this day the only time at Microsoft that I ever received a poor review score and didn’t get a bonus or stock. I had every reason to do the work, knew the consequences for not doing it, and I still did not do it. Yet, in a similar situation why would I be surprised when a kid made the same decision.

Now I’m sure there are folks out there who would call me lazy or stupid or some other mean words, and by extension kids who make similar decisions. Why? Because I value doing something I love over doing something I don’t love? We should be ostracized for not doing what I was told when I had a choice?

Why does education teach that for virtually all problems there is a single solution when the reality is that’s very rarely the case? How can a teacher ask a student to write an essay that is their opinion on something and then give them a grade as if their opinion could be wrong? Hell, most times schools would never ask to get an opinion to begin with.

While I’m on a roll, can someone explain to me what the point of homework is? My kids currently go to school for 7 hours per day, and I’ve had the teachers tell us that we should expect them to have up to 3 hours of homework per night. Why is school expecting kids to work 10 hours per day when the standard work day for an adult is only 8 hours? How many people with jobs they hate continue working when they get home anyway? I work from home sometimes, but only because I love what I do.

I have a lot more to say, but this has already rambled on for entirely too long so for now I will end this. I agree with Sir Ken Robinson, we need to dramatically reform education, and the way we view intelligence.


I don’t have writers block…

Since my first (fiction) book was released about a month ago I have been anxious to start writing a new story; another tale of macabre. I have a few goals with this second book, but I’m running into a bit of a problem. As of this moment in time I have written exactly zero words of this book. Now, granted, they are the best set of zero words I’ve ever written, but at this rate, finishing anything might take a wee bit longer than I was hoping.

The thing is though that I don’t have writers block. I am not struggling trying to figure out what to write at all, my problem is exactly the opposite. I have too many ideas of what to write and they’re jumbling up inside my head and I’m finding it difficult to focus on just one of them. One story is bleeding into the others and they all start running together which makes for little more than confusion.

I considered briefly having a multitude of stories started at once and writing about the one that was inspiring me at the moment and swapping between them all as my mood changed before realizing that was one of the more stupid ideas I had ever had. Even if I could eventually finish them all (which seems unlikely), I would consistently get the stories confused while I was writing leading to the reader being even more confused before they eventually just decided I was a terrible writer and never looked my way again.

I wonder how people pick the story they want to write about when there are so many in their head?

Thoughts on my first fiction book..

My First Fiction Book!Now that my first fiction book is available, I figured I’d write down some thoughts about the writing process for this book.

When I first started writing each technical book I’ve published I began the same way. I started with a rough outline of what I wanted to teach in the book, and in each section of the book. When the book was finished and published you could look at the outline and the finished product and they would match up almost perfectly! I followed the outline I had initially laid out much like you would expect, I just had to fill out the detail.

So naturally I decided to follow a similar pattern here with my first fiction book. I’ve been playing around with a few story ideas in my head for a while, and I had one more flushed out than the rest. I knew how the story started, I knew how the story ended and I knew the important pieces of conflict that happened throughout the story. All I had to do was to fill out the detail.

Yet, if you saw the outline of that book and read “The Light In The Cabin” you would say to yourself “Huh? That isn’t the same story at all.” Which is very true, the story I wrote was not the story I was originally going to. If you read the outline I originally had, you would notice that neither the light nor the cabin were mentioned at all, and they’re so important in the book I actually wrote that they make up the title!

So how did this happen? I have no idea actually. Perhaps all writers go through something similar, but something strange happened during that last part where all I had to do was “fill out the detail”. The detail started becoming the book, and the detail started driving itself into a different story. Characters that were initially incendental to the plot were now key (perhaps because I enjoyed those characters while filling out the detail?). The main antagonist completely changed. The ending I originally had in mind couldn’t have been further from the ending that is in the book (although truth be told, the ending in the book is much better than what I originally was planning in my honest opinion).

It was such a strange experience. When writing the technical books, it was easy to follow the outline. I needed to teach concept A, so I taught concept A. There wasn’t room for divergence really, it was simply a recitation of the things I already knew. In this fiction book though, that isn’t how it went at all. All I did was diverge. I diverged so much that I actually had to go back and re-write chapter one because by the time I was finished it didn’t make any sense in the context of the story I had actually written. It made perfect sense at the time I wrote it (with the original story in mind), but not after the story led me somewhere else.

I’ve considered going back and writing the story I was intending to write from the beginning, but I don’t think I will. It was a good story I think, but all it would do now is remind me of the story I actually wrote which was better.

I can’t think of a good way to describe the process that happened (great quality for a writer, not being able to think of a description eh?). I had an idea in my mind, and then the story took over and told itself to me, and I just wrote it down.

I hope anyone who reads it enjoys the ride as much as I did.

Thoughts on being nervous

In a few days my first fiction book will be released publicly and I have to admit that I’m actually pretty nervous about the whole thing. Now, this isn’t the first book I’ve ever published, so you wouldn’t think I would be very nervous at all, but you wouldn’t be farther from the truth!

It’s one thing to publish a book on a subject you know. Hell, all of my previous books were not only on subjects I knew intimately, I could argue pretty convincingly that there wasn’t a single person on the face of the planet who knew those subjects better than I did. There’s very little to be nervous about when you are attempting to educate or give out knowledge on a subject that you invented.

Fiction is an entirely different cup of tea though. For one, I’m certainly not an “expert” in fiction books (if such a thing exists). More importantly a fiction book is just me, the characters I’ve created, my words, and my ideas. What if people read it and think “That is the worst idea I’ve ever heard.” or “This is the worst piece of writing I’ve ever seen.” What if people read it and think “Wow, that guy is crazy.” (I am!) I’ve already had people who have seen early review copies tell me it was disturbing (which given the genre I enjoy and am writing I guess could be considered a compliment).

At the end of the day, I’m writing this book because I enjoy it and it doesn’t particularly matter how many other people like it as well. That doesn’t mean I don’t want others to enjoy it though, and I’m hoping that they do. I certainly feel more exposed writing fiction than I ever did telling people how code worked, and perhaps that’s all I really feel nervous about.

My book is called “The Light In The Cabin” and I’m sure I’ll post more about it soon.

Garbage detector from my Gamefest Slides

One of the last things in my slides for Gamefest was a simple little object I had written to help us detect when our code was allocating memory we weren’t expecting. Due to the size limitations of slides I had attempted to to shorten the object to the minimalist version, and in doing so lost a few things. Here is the object I used in its entirety:

Not very much different than what’s in the slides, but a few subtle differences. The most important being whether or not ‘true’ or “false” is passed in during the two calls to GetTotalMemory. What does this code actually do though?

I wrote it basically to allow myself to “wrap” a section of code and measure any allocations from it. At the constructor of the helper object I measure the total memory in use and store how much allocation (in bytes) I expect the code block to take. Then at the end I measure the memory once more and if more memory was allocated than I was expecting I break into the debugger.

A few things to note. First, when you pass in ‘true’ to GetTotalMemory a full collection will occur, so if you are doing this often you will dramatically slow down your application.

Second, you’ll notice that the slides pass in ‘true’ in both spots which is probably not the behavior you want (you’ll notice in the code above that ‘false’ is passed at the end in the second constructor). If you pass in true in both spots, you will only catch allocations that were not garbage because any garbage would have been collected due to the ‘true’ being passed in!

Now, there are times when you do want to know this, so having the option is certainly fine, but the majority of time you want to know about allocations that create garbage, in which case you need to pass in false to the second call.

Another point I brought up during the talk that isn’t obvious is that this code completely ignores other threads. Which means if you have another thread allocating memory in between the two calls, you will get “false positives” that can prove difficult to track down. When I used this method I kept the code I wrapped in this object small to help eliminate them.

To see an example of using this helper in code see below:

I love books!

I suppose that isn’t a huge surprise given that I’ve written three of them and as I’ve said before writing a book can be hard work. It goes beyond that though, I’ve always been a fan of books. I used to sit up and read constantly, and while I rarely have time to read as much now as I used to, I still enjoy a good book when I have the time.

I was always a fan of fiction, although interesting non-fiction stories are pretty cool I suppose. I just liked the idea of being able to be transported to an author’s world when reading. When I was younger I used to imagine myself publishing books and being a famous author and bringing other people into world’s I’ve created. I suppose you can see the parallel’s between that and video game development as well.

The thing is, the major reason I wrote my first book on Managed DirectX was because I wanted to be an “author”. I wasn’t actively looking to write a book at the time I was approached at the Game Developers Conference back in 2003, I just happened to have a lucky series of circumstances. I had the bulk of knowledge about a subject people were interested in, I was easy to find, and I happened to be able to write in a way that people found helpful. So when I was asked to write what turned out to be the Kickstart book, I jumped at the opportunity.

I was so focused on being an “author” that I almost completely lost sight of some of the benefits. I was offered multiple contracts (from various publishers) for that first book, and I came extremely close to signing and accepting the first one I saw. All I cared about was being able to walk into a book store finding my book and saying “I wrote this!” While my first book would have been just as awesome had I actually signed that first contract, I would have missed out on quite a bit of the extra benefits. For example, both contracts had an “advance” in them (which by the way to show you my naivete surprised me). However, the ‘advance’ in the first contract gave me a LCD monitor, while the advance in the one I eventually signed gave me actual money and substantially more than the cost of a monitor. The first one also had portions of royalties paid in Amazon gift cards, and while I love Amazon, they weren’t that great back then, and even now, money is still better.

I never did it for the money though, and while I certainly won’t complain about it, it wasn’t a motivating factor. That isn’t to say I’m not glad I picked the contract I did because I certainly am. However in my second book I had lost that motivation of “becoming an author” that I had in my first book and it suffered for it. The second book is obviously inferior to the first, and it took me forever to write it because my motivation wasn’t there. It took another five years before I decided to write another book and even then I only did it once I had a co-author to help me. While I didn’t have quite the same motivation for the most recent book as the first, it’s very close in quality and information. It wasn’t “work” like the second one was (and I did like that I was helping Dean become an “author” as well).

However my initial love of books and desire to write some fiction that will enable me to bring someone into a world of my creation still exists and has grown dramatically over the last few years. I still love video games and making video games, but they are often a collaborative effort. It’s very rare that a game is made under a single vision with no deviation, while that is the norm for books.

Barring unforeseen circumstances, later this year I will be publishing my first fiction book, and I’m quite excited about it. I’m terrible at picking names so it is currently still “Untitled”, but I’m sure I’ll come up with a better title soon enough. Some of my favorite authors are Stephen King, John Saul and Dean Koontz if that might help dictate where the genre might be heading as well!

Duke Nukem Forever, or when 14 years later is still too soon…

Duke Nukem Forever
Duke Nukem Forever

I first heard about Duke Nukem Forever before I even started working at Microsoft. In my previous job Duke Nukem 3D was one of the games we played constantly and we had more fun than we should have playing it. I was naturally pretty excited when I first heard about Duke Nukem Forever.

Of course, that was sometime around 1997, and I heard it was coming in 1998 if my memory serves me. I heard something similar for 1999 and 2000 or 2001 as well. After a few more years it became a running joke. 3D Realms kept saying it would be done “when it was done”, and “when it was done” seemed to be “never”. After more than ten years of “coming soon”, the game was completely cancelled a few years ago. Take-Two sued 3D Realms for wasting so much time and money and the game had completed it’s life by becoming a laughing stock.

Of course, behind the scenes there were still dealings going on. It turns out gearbox was in negotiations to release Duke Nukem Forever (one of the founders of gearbox worked on a version of Duke Nukem 3D). Finally at PAX last year they announced that the game would finally be released after 14 years.

Duke Nukem Forever ScreenshotI have to say that I was pretty excited. I imagine that nostalgia was kicking in or something, but it made sense at the time. I absolutely loved Duke Nukem 3D and the last gearbox game I had played was Borderlands which was amazing as well (I should write a review about that one sometime, if you haven’t played that game yet, go buy it now, it’s only $15). Between the next version of a classic game I loved being finished by a developer who developed a recent game I loved it was a perfect recipe for awesomeness. Unfortunately, even perfect recipes can be burned.

After yet another delay (minor in comparison to the others) Duke Nukem Forever was finally released on June 14th 2011 and since I had pre-ordered it I received it that day. I was excited to play it when I got home from work that day and jumped right in to do so. I played through a bit before going to bed that night. The next day when asked by a coworker what I thought of it, I summed up my thoughts by saying that “it is a terrible game, but I am glad I bought it”. By the end of the week I realized what a stupid statement that was.

First, the game starts off as a game inside the game and you’re literally pissing (or can be). I suppose that’s sort of funny, or at least it was when I was 11. Worse, the stall next there has a piece of shit you can play with for an achievement, and I’m not even making that up. I’ve been in the game for 90 seconds and I’m already covered in urine and feces? He was saying some classic “funny” lines though, so I forgave that part and continued on. The graphics looked like they were out of the 90s (oh wait, I guess they were), and while I never expected it to live up to some of the modern day games graphic wise, the poor quality of the graphics was jarring. There were mirrors all over and when I jumped, my character in the mirror simply didn’t move. In 14 years, couldn’t the artists figure out how to assign more than 6 bones to the character?

Duke Nukem Forever

I honestly expected most of the graphic inferiority to be a “by-product” of the game within a game motif that you start under. Yet, when that game was over and I was in the “real” world, the graphics were exactly the same, and I was quite dissapointed in that. Of course, who cares about graphics if the game play is top notch right?

Except, game play was horrible as well. It’s like they forgot what made Duke Nukem 3D fun. It certainly wasn’t his witty lines, they added flavour, a nice bonus, but didn’t make the game fun. It definitely wasn’t digitized boobs, and even if it was due to the grahpical inferiority displayed quite a few games out now show you better anyway. They took away the ability to hold every gun in the world down to having just two (which I didn’t like in Halo and still don’t like now). No longer do you have health, but now you have “Ego” which is simply a glorified health/shield combo (again, like Halo and every other shooter in the world nowadays it seems).

Yet, even after taking some of these “design decisions” for more recent games, they completely skipped some of the other ones like helping to improve aiming (via magnetizing or auto-aim or something) which made it into a complete chore to shoot things. Plus, I could barely tell if I was actually hitting the thing I was shooting at to begin with. Oh, and can we make a new rule? Water levels are terrible and they should be outlawed.

Duke also has a reputation for being cocky. I like that actually, I don’t mind arrogance at all, but you need to be able to back it up. Duke had the cockiness down without the amazingly good game to back it up though. Throughout the game he makes fun of Halo (when he see’s master chiefs helmet), Gears of War (Gears 0, Duke 1), Valve games (Half life or portal? who knows, he says “I hate valve puzzles”), all of which are vastly superior to Duke Nukem Forever.

Duke Nukem Forever screenshot

I normally don’t play a ton of multiplayer with these types of games (for a variety of reasons), but since I remembered all of the fun I had playing multiplayer back in Duke Nukem 3D, I gave it a shot here, and it wasn’t terrible, but it certainly had lost alot of the fun. The graphic problems were even more noticeable (it’s one thing when the image of yourself in a mirror is not moving while jumping, completely different when it’s your opponent). It’s still fun to shrink someone and stomp on them though.

After all that, I haven’t even talked about my biggest problem with the game, and that was loading times. I don’t know who worked on the system for loading in this game, but he/she/they should seriously consider a different line of work. I can’t fathom how anyone could look at the loading times this game had and think “yup, that’ll work”. You had 14 years to make this damn thing, loading should not take 45 seconds anytime something minor happens. I’m fighting a boss and I died? The last save point was exactly where the boss was? All you have to do is reset the bosses health and my health and ammo and we’re good to go? Nope, 45 seconds of loading time.

Now, I know that I’m a bit of a stickler for performance and loading times. I mean, I’m giving a talk about this exact issue at Gamefest next month, and I’ve given several performance talks at GDC over the years, so perhaps I’m just naturally inclined to notice them? I’ve had several other people who have complained about them with me as well, so it isn’t just me. These are extremely noticeable and very frustrating. Hell, part of me wonders if it wasn’t done on purpose, because I think I would have to work hard to get things to load so slowly (without putting artificial waits around everything). I simply cannot fathom what was going on during those loading screens other than maybe Duke was praying we would just stop playing.

At the end of the day, I bought this game on nostalgia and little else. For Duke Nukem Forever, nostalgia and 14 years simply wasn’t enough. The game needed a lot more work to be worthy of the gearbox logo if you ask me. It was one of my most disappointing purchases ever.

Nintendo 3DS, now with a price cut!

When the Nintendo 3DS was first announced, I wasn’t overly excited about it. The 3D seemed like nothing more than a gimmick I wouldn’t really care about, and the majority of the games seemed like re-hashes of games I’d long since played and beaten. I will admit to salivating over the prospect of a new Kid Icarus though, but aside from that, I was underwhelmed.

So when it came close to release time, I had decided not to pre-order and take a “wait and see” approach. Shortly before the release date when I saw a few of the augmented reality videos (of the games that came bundled) I almost changed my mind. Few folks at work ended up getting it on launch day (actually before) which wasn’t a surprise so I checked it out then. Certainly a nifty piece of hardware, but wasn’t worth it for me to buy right then, so I decided to wait.. I knew the Kid Icarus release would push me over anyway.

Of course, since then the device apparently isn’t doing all that great. The latest ads I see don’t even mention the much hyped 3D, and the games seem to be few and far between. Which led to Nintendos announcement yesterday that starting on August 12th, they’re dropping the price by about a third from $250 to $170. That’s a pretty big price cut really fast.

Despite that, I’m still not sure if I will actually get one or not. The games still aren’t doing it for me. I guess it does make the decision to pick one up easier whenever Kid Icarus finally does come out though.

Some thoughts on Azure…

With all of the spare time that I don’t seem to have, i’ve been working with Azure a bit for a personal project that I’m not going to go into much detail about (yet). Well actually, I suppose that isn’t fair. Initially I started simply using the hosting I have on this site to do some simple stuff before I quickly got annoyed with it. I didn’t need a web host, I needed some real cloud computing. I briefly looked at Google’s App Engine and Amazon’s AWS before figuring since I work at Microsoft I should probably just dive in with Azure, so that’s what I did!

Once I got over the initial system shock of “what on earth is all of this stuff” and followed through a few examples, I was actually pretty pleased at how simple getting something up and running was. I had downloaded and tried the Azure SDK quite a while back in beta (before we announced it) and it was hard to use, the docs were non-existent, and no samples existed at all. I was completely lost and gave up on it until recently. While I can’t speak for the SDKs for Google or Amazon, the Azure SDK has improved leaps and bounds now and it finally started making sense!

It took me basically a week to write the underlying infrastructure for what my side project wanted when I was using this hosting environment, and a large portion of that was trying to remember SQL, and writing stored procs. I made the equivalent Azure worker role in about a day and didn’t have to write a single SQL statement (unless you count some LINQ in my role, which I don’t) or stored procedure! I also didn’t have to worry about transactions or any of that painful stuff!

One thing that I guess makes me naive is that I was surprised at the potential cost for even the simplest of things! For example, a “small core” on Azure costs $0.12 per CPU hour (and CPU hour is measured by the amount of time the application is deployed). This means for a single core, for an average month you’re looking at $0.12 * 30 days * 24 hours = ~$86. Worse, it’s recommended you run at least two instances, and you have to if you want the “guaranteed” 99.99% uptime. Since each instance is another core, basically double that cost so $172 per month to run your application in the cloud. You can get 3+ years of web hosting for less than that.  That’s just the CPU cost though, you end up paying for storage as well!

At first, storage “sounds” pretty cheap. You pay $0.01 per 10,000 transactions which sounds super cheap, but that adds up as well. In most of the samples for Azure you’ll notice that in the run method it will essentially check for messages in a never-ending loop to see if there is work to do, and will normally check these messages about once every five seconds. The act of checking to see if a message exists is a storage transaction though! Checking every five seconds is 12 times per minute or 720 per hour or 17,280 per day or 518,400 per month or an extra 51.84 pennies per month. Ok, so that isn’t all that expensive I guess. It does start to add up though, and there is an extra $0.15 per gigabyte of data you’re storing.. So a million transactions a month storing 2gigs of data is an extra $1.30, not terrible.

Now, I’m sure that large companies needing cloud computing find these prices to be quite acceptable (the Azure prices seem to be similar to the prices offered by Google and Amazon), and I actually don’t mind them too much, but they do seem to be a decent chunk of change for a developer just starting out. I guess I was just expecting prices to be similar to hosting prices so was surprised by the costs I saw.

I’m no where near an expert on the subject yet, but so far working with Azure and “in the cloud” has been a pleasure. Now if I could just get off my lazy butt and finish this thing…