Category: Software engineering

A Day in the Life - 5 February 2006
High Moon Studios is an unusual company in the games industry. We're applying agile methodologies for all of our development. My team in particular is using both Scrum (an agile management methodology) and Extreme Programming (an agile engineering methodology). And yes, that means we're doing pair programming, test-driven development, and all the other often controversial practices. I expect that in a few years, these practices will be a lot more common than they are today. [more]

No plan survives first contact with the enemy. In game development, detailed milestones, complex schedules, and careful planning often go out the window as soon as the project starts. Agile development provides a set of techniques to steer the project in the right direction and embrace change. [more]

Simple Is Beautiful - 17 June 2004
If you've read some of my other articles, you know that I believe that the best code is no code at all. But what if you actually have to write some code? What then? This article deals with that question and shows the importance of simplicity. [more]

It is true that no tools are necessary to apply good software engineering techniques, but they can often be a big help. The third and last session of "By the Books: Software Engineering in the Games Industry" concentrated exclusively on languages and tools, and participants shared their favorite tools and warned others about potential duds. [more]

The second session of the GDC 2004 roundtable "By The Books: Software Engineering in the Games Industry" concentrated on processes and methodologies. In particular, we had a good look at agile development and how it can be applied to game development. [more]

This is the summary of the first session of my GDC 2004 roundtable: By the Books: Software Engineering in the Games Industry. Unlike other years, each session focused on different topics. This one starts with a general discussion of what we need software engineering for in the games industry and then looks into specific techniques that teams can adopt as part of their development process right away. [more]

For small projects, we can blissfully code away without paying any attention to physical structure and we won't be any worse off for it. However, as a project grows, it reaches a critical point where build times become unbearably slow. This article looks into the reasons for such slow build times and explores some techniques to speed things up. [more]

The physical structure of a C++ program is very important yet it is often overlooked. This two-part article will attempt to explain why the physical structure of a program is so important, present some useful guidelines, and show its effect on compile times. [more]

Have you ever tackled a problem that was supposed to be solved by writing some code in half an hour, but that code haunted you (or your coworkers, much to their chagrin I'm sure) for months or years to come? Then you have felt first hand the consequences of maintenance, the hidden cost of software. Check out this article and find out why the best code is no code at all. [more]