In this book you'll learn about software engineering in the context of working on a computer game project of your own. The purpose of this chapter is to get you to start thinking about your game project.
Software engineering is the set of techniques used to produce computer programs which people are willing to buy. In a single phrase, the software engineer's goal is: 'Ship it!' Although shipping a product used to mean putting a disk and a manual in a shrink-wrapped box, these days it can equally well mean making a program available for download from the web.
Although there is only one goal, there are many different aspects to software engineering. If you go into a large computer bookstore and look at the section on software engineering, you'll find an extraordinary range of books.
In this book we are going to focus on software engineering as something that programmers do, as opposed to something that managers do. Managers can motivate and orchestrate the process ? but they are not doing the kind of software engineering that we're going to focus on. Here we think of a software engineer more as a programmer, as the kind of person a business is looking for when they advertise, 'we are looking for programmers who have shipped an application.' This book will show you how to make a certain kind of shippable application.
What kinds of applications? We're going to focus on using C++ and the Microsoft Foundation Classes (MFC) to create Windows applications for personal computers. And the kinds of programs we look at will be computer games of various kinds.
All you really need in order to use this book is to have a solid knowledge of C++ or, at the very least, Java or C. You'll learn about Windows and MFC programming as we go along. If you already know some Windows programming, so much the better!