His lecture is approximately 70 minutes with the rest dedicated to a Q&A session, but even if you are not scientifically minded, I highly encourage you to watch this webcast. He isn't negative against religion, he isn't needlessly pro-science, he doesn't talk down to people. What he does do is show what is at risk in very stark detail. Pay attention at approximately 1 hour, 7 minutes, 40 seconds.

April 26, 2008

Some of you may know about a new film recently released by Ben Stein called "Expelled: No Intelligence Allowed." The basic premise of the movie is that if you believe in creation instead of evolution, your views are being suppressed in education and that the "controversy should be taught."

As an aside, I think it's funny that a film of creationist propaganda would use a song that espouses "Imagine there's no heaven...No hell below us...No religion," all of which in the first half of the song...but I digress.

Now, this isn't to say that there are not legitimate controversies within evolution, but the controversies are not about the accuracy of the theory. The debate within the scientific community is more about the specific mechanisms in force during natural selection. Is it group selection, Dawkin's "selfish gene" theory, or others? All of these have merit and the evidence to support all of them is currently building.

If you insist on teaching the controversies present in science, make sure that you are teaching the controversies that are actually there.

April 25, 2008

I've had to start using MSN Messenger again at work, and one disturbing feature of it is a small content rotator at the bottom of the contact list. It cycles through various stories and video clips that are highlighted on various Microsoft and sponsor properties.

April 24, 2008

You started as a tester and were making $8 an hour and were happy. You did a great job, so they offered you a test lead position for $36,000 a year. If you were working a flat 40 a week, this would work out to approximately $17.30 an hour or $692 a week, and would be good.

Most test leads don't work a flat 40. Most test leads end up working about 60 hours a week. Guess what? You just prorated yourself down to $8 an hour. I'll explain.

When you are working hourly, you get paid time and a half for every hour above 40. If you aren't getting overtime, check with your local labor board because there are severe problems.

At $8 an hour, you gross $320 a week.

If you work 1 hour of overtime, that goes to $332 a week. At 10 hours of overtime (not uncommon), that goes to $452 a week. At 20 hours of overtime, that goes to $692 a week...a tie with the salaried test lead position.

During crunch time, there are times when I've worked enough hours to prorate myself down to minimum wage.

Most companies say that because you are salaried, you are now part of the bonus program, etc., but given how rarely the bonus programs pay out anymore, you really have to stop and think for a bit. If hourly won't pay a living wage and salaried essentially requires you to devote your life to work, who is really benefiting?

As long as game testing is seen as glamorous and attracts the sheer number of applicants that it currently does, there is no systemic solution for this. If you are going to accept a salaried position, work with your manager to put hard caps on the number of hours that you will work each week. Failure to do so can only end in wishing that you stuck around flipping burgers.

April 21, 2008

Over the weekend, I had the chance to go to the movies with a few Shackers, including a couple of D/FW area game developers. One of them was starting to reach his one-year anniversary at his studio, and what he was going through reminded me of what was going on during my one-year anniversaries at both Microsoft Game Studios and Ritual.

Most people who go into game development specifically enter the field because they love games. Note: they don't love game development, they love games. It's this passion for games that carries most people through their first year or so. It carries them through the long hours, the (comparatively) low pay, the milestone stresses, and so on. There are a couple of catches, though.

The first catch is that the act of making games affects how you enjoy games. When you look at a game that you are playing for fun, you no longer just see it as a wonderfully interactive experience...you notice the components. You notice the varying texture densities on various objects, the oddities in pathfinding, the strange concessions made in the interest of certification or compatibility, the strange color mixing of sortless Z-test glass rendering, etc. Because you're essentially noticing the man behind the certain as it were, you are drawn out of the experience. As a result, your passion for games tends to start to wane after your first year.

The second catch is that because your passion for games isn't as prevalent, your passion isn't able to carry you through the difficult times and you start thinking, "What the Hell am I doing this for?" Remember, you've just spent a year prorating your hourly salary down to nothing, ignoring life and love for the sake of your craft...and things won't get any better. Waves of ennui wrack your body, the fuse on your temper gets shorter, and most of all you just start wondering if any of the effort is going to be worth it.

This process is a very personal experience and frankly is not one that you are going to be able to find much help with if you are experiencing it. The trick is to find a secondary passion that game development enables you to do that doesn't involve video games. Some people find that passion in sin: gambling, strippers, and hookers are all good examples that I've seen people get involved in. Some find that passion in collecting: DVD's, anime cels, guns, porn actress action figures, and educational films are all examples I've seen people dive into. I know a few who have focused on community service as well. Back at Microsoft, I went into painting, and at Ritual I focused my energy into this blog.

One thing that I like about no longer being in the industry is that my passion for gaming is recharging, but when you are in the factory that passion can and will wane. If you don't take time for you as a factor of finding a proper work/life balance, you'll drive yourself out of the career that you worked so hard to get into.

April 17, 2008

I want to talk about piracy again, but I'm going to remove morality from the discussion because it just brings the language Nazis out of the woodwork and I think this discussion can actually work without morality being brought in for this viewpoint. The reason I want to bring this up now is because recent information has led to the possibility of an equilibrium being found. For the sake of simplicity, copy protection is not included as a factor for this simple model.

An evolutionary stable strategy (ESS) is defined as a strategy which, if most members of a population adopt it, cannot be bettered by an alternative strategy. (Dawkins, 1976) It is not necessary for all of a population to adopt a strategy for an ESS to emerge. In fact, it is possible to find a blended ESS which depends on percentages of the population adopting complementary or opposite behaviors.

In a software ecosystem, we have three behavior patterns: producer, buyer and liar. Producers create the software, buyers purchase the software, and liars pirate the software.

For producers, there is a cost associated with the creation of the software and a cost associated with handling support after the fact. In order to maintain an ESS, a producer has to have its initial release bring in enough resources to cover the cost of the initial release, the cost of supporting the release and the cost of the next release at a minimum. Any less and it risks dying out.

For buyers, there is a cost associated with the acquisition of the software and a gradually smaller support cost per buyer for the producers. (The reason that the cost is gradually smaller is that as patches and support documentation grow, the cost to the producer to support the release shrinks.)

For liars, there is next to no cost associated with the acquisition of the software and a much more stable support cost per liar for the producers. (The reason that the cost is much more stable is that liars cannot get the patches.)

As long as a producer has enough buyers to support his release and the support costs for the liars and the buyers, a producer can continue to produce. Experience and evidence released by other companies show that on average, 80% of technical support contacts are from people who have purchased the software, 15% are from people who may purchase the software, and 5% are from liars (people who have not purchased the software). While we cannot quantify the number of people who have not purchased the software, we can quantify their expense on support.

Regional experiments with game pricing has shown that for most games, the initial cost does not affect the number purchased, just the curve at which they are purchased. In other words, if a game will sell 300,000 units, it will sell them quickly at first with rapid drop down to a low level at $50 or at a slow steady pace at $20, but it will still only sell 300,000 units. So cost for games is not really one of the factors that can easily be adjusted.

The two factors that a producer can adjust are quality and quantity on a sliding scale based on the number of buyers in the market. A very short, high-quality game and a lengthy bug-laden game can cost about the same to make. A producer is trying to strike the balance between the duration of the game and its quality. In practice, the "money spot" is less than one support contact per thirty copies sold.

Now as the number of liars in a marketplace increase, the amount of resources that a producer can devote to the production of their next release decreases due to the increased support cost of the liar's market share.

At least at the moment, we have achieved a bit of equilibrium in the PC market. Five years ago, that equilibrium was at about $2 million to produce a product with about 350,000 buyers. Nowadays, the balance point has shifted to $750,000 to $1 million with 250,000 to 300,000 buyers. Fixed costs per unit have risen even though the prices that we sell games at has not. Pirated goods are more available on the PC due to the proliferation of broadband and the number of liars willing to pirate has increased in part due to the extremism of the anti-piracy lobbies of the RIAA and MPAA. Attempts to continually monetize games (MMO's, ad revenue) have had mixed results with most MMO's not being profitable and ad revenue averaging under $2 per unit sold.

Even digital distribution isn't a godsend because rather than the cost of the unit and the retailer margin, we have the chargeback margin and the ongoing cost for bandwidth. Digital distribution may grow your marketplace, but people are still (rightfully) skittish about using their credit cards online, European debit cards won't always work on American networks, and to be fair, it further reduces the opportunity cost necessary for one to become a liar. In short, digital distribution is a wash.

The current generation of consoles is still trying to hit an equilibrium. The biggest advantage that consoles have is that there is a higher barrier of entry for a liar to take from a producer on a console (the cost of modifying the console) and there is a risk associated with modding because the act of modding could result in damaging or destroying the console. As a result, liars don't really become a problem for consoles until a soft mod is released.

So to sum up, the marketplace is evolving to handle the larger number of pirates by reducing the amount spent per title. If the number of liars continue to increase while the number of buyers continues its slow decline, it is very likely that the PC market will return to the days of hobbyist developers being in charge (in which cases systems like Microsoft's XNA initiative will seem more prophetic than anything), but unless we can come to some middle ground between the anti-piracy and copyright-abolition agendas, we will continue to see fewer and fewer high-profile bets on the PC.

April 13, 2008

One thing you may hear about from time to time in the games industry is an event called a "game jam." What a game jam is is nothing more than a few game developers getting together for a weekend and knocking a game out. The game may not have very high production values or a lot of gameplay or even work, but the whole point is to experiment with different gameplay. Most of the time, the results of these jams aren't seen by the public, but on occasion one will seep out.

This is from a game jam I participated in back 0n February 20 and 21 2005, with some minor modifications through to February 24, 2005. It will not work as is. It uses Managed DirectX and Visual Basic .NET 2003 and is distributed in source form. Once you are able to get it to run, you'll find the assets for four levels but only the level data for one. I'm not all that happy with my coding style at the time, but I'm happy to say that the quality of my code has improved dramatically since then.

I've also included the source code for SplitTGA, the tool used to split the original 4096x4096 TGA files into the smaller TGA tiles. To be honest, I should have converted them to JPG files.

April 10, 2008

One of the key skills you acquire on your way to a leadership position in software development is a bit of an innate gut feeling about exactly WHEN you are going to ship. However, there are times when your gut isn't enough and you need to be able to back it up with facts.

In the past, I created an Excel spreadsheet and a chart that mapped find rates, resolve rates, fix rates, tester and developer weeks to a logarithmic chart and usually came up with a gold date that was accurate within five days.

About Me

Currently Sr. Software Engineer in Test at Netflix. Formerly Sr. Quality Engineer on Firefly at Amazon, QA Manager at Ritual Entertainment, Software Test Lead at Microsoft Game Studios, Director of IT for Meeting Professionals International.

Opinions expressed are my own and do not necessarily represent those of any current, former, or future employer.